)]}'
{"doc/source/specs/vm_live_migration.rst":[{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"99cc5a754682658bb5a6d74200056df1c4d70a06","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Support checking if chassis is alive"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/vm-live-migration"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_3c1fbe5c","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":36},"updated":"2016-11-14 13:51:51.000000000","message":"?","commit_id":"e0aef25378eeae3d9211ed93944137f394357ca9"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"99cc5a754682658bb5a6d74200056df1c4d70a06","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/vm-live-migration"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"VM live migration is important feature in openstack, native neutron has"},{"line_number":14,"context_line":"supported it, so any SDN controller based design in neutron should support"},{"line_number":15,"context_line":"it, including dragonflow."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_bc33cef5","line":13,"range":{"start_line":13,"start_character":42,"end_line":13,"end_character":51},"updated":"2016-11-14 13:51:51.000000000","message":"OpenStack","commit_id":"e0aef25378eeae3d9211ed93944137f394357ca9"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"99cc5a754682658bb5a6d74200056df1c4d70a06","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Curruntly, dragonflow do not support VM. When VM is migrated from one"},{"line_number":21,"context_line":"compute node to another compute node, the flows won\u0027t be updated correctly,"},{"line_number":22,"context_line":"including L2, L3, DNAT, etc. So, what this spec will do is to ensure the"},{"line_number":23,"context_line":"flows are updated correctly and fastly, in order to make sure the downtime"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_fc72a6af","line":20,"range":{"start_line":20,"start_character":22,"end_line":20,"end_character":24},"updated":"2016-11-14 13:51:51.000000000","message":"does","commit_id":"e0aef25378eeae3d9211ed93944137f394357ca9"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"99cc5a754682658bb5a6d74200056df1c4d70a06","unresolved":false,"context_lines":[{"line_number":42,"context_line":"simultaneously in all nodes, including source node, destination node, and"},{"line_number":43,"context_line":"other nodes. The interval between the second and third steps is uncertain,"},{"line_number":44,"context_line":"but we can update flows in the third step also to make sure the flows are"},{"line_number":45,"context_line":"update correctly if the second step don\u0027t update flows correctly because"},{"line_number":46,"context_line":"of other problems."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"NB Data Model Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_fcce26b6","line":45,"range":{"start_line":45,"start_character":36,"end_line":45,"end_character":41},"updated":"2016-11-14 13:51:51.000000000","message":"doesn\u0027t","commit_id":"e0aef25378eeae3d9211ed93944137f394357ca9"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"99cc5a754682658bb5a6d74200056df1c4d70a06","unresolved":false,"context_lines":[{"line_number":42,"context_line":"simultaneously in all nodes, including source node, destination node, and"},{"line_number":43,"context_line":"other nodes. The interval between the second and third steps is uncertain,"},{"line_number":44,"context_line":"but we can update flows in the third step also to make sure the flows are"},{"line_number":45,"context_line":"update correctly if the second step don\u0027t update flows correctly because"},{"line_number":46,"context_line":"of other problems."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"NB Data Model Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_5c80f246","line":45,"range":{"start_line":45,"start_character":0,"end_line":45,"end_character":6},"updated":"2016-11-14 13:51:51.000000000","message":"updated","commit_id":"e0aef25378eeae3d9211ed93944137f394357ca9"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"99cc5a754682658bb5a6d74200056df1c4d70a06","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"There is new field called port state to indicate if the port is in migraion."},{"line_number":52,"context_line":"This field is not necessary to save to DB store in compute node, just in"},{"line_number":53,"context_line":"nouth DB, as the field should be accessed by controllers in source and"},{"line_number":54,"context_line":"destination node to synchronize state."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Publisher Subscriber Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_1c3bda9d","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":5},"updated":"2016-11-14 13:51:51.000000000","message":"north","commit_id":"e0aef25378eeae3d9211ed93944137f394357ca9"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"99cc5a754682658bb5a6d74200056df1c4d70a06","unresolved":false,"context_lines":[{"line_number":78,"context_line":"1 When a new port is online in destination node, controller check whether"},{"line_number":79,"context_line":"the chassis is equal to self chassis. It will be the VM live migration"},{"line_number":80,"context_line":"scenario if the port\u0027s chassis not equal to the self chassis, and then"},{"line_number":81,"context_line":"setting the port state to self chassis."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"2 When the port is offline in source node, controller will query the NB"},{"line_number":84,"context_line":"database to check if the port has the port state field, and if yes, it"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a629dbe_7ca2169c","line":81,"range":{"start_line":81,"start_character":0,"end_line":81,"end_character":39},"updated":"2016-11-14 13:51:51.000000000","message":"setting the port state to migrating?","commit_id":"e0aef25378eeae3d9211ed93944137f394357ca9"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5706eaa66fa884a41f09397afc4b989fbd8aa083","unresolved":false,"context_lines":[{"line_number":4,"context_line":""},{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Support VM live migration"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/vm-live-migration"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_ec69c8bf","line":9,"range":{"start_line":7,"start_character":0,"end_line":9,"end_character":36},"updated":"2016-11-16 16:20:38.000000000","message":"notice the format","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":22338,"name":"xuxiaojie","email":"xiaojie.xu@huawei.com","username":"xuxiaojie"},"change_message_id":"8567cb03cc9c7427c2a14de0ebf09bf4c0aa2a07","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/vm-live-migration"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"VM live migration is important feature in Openstack, native neutron has"},{"line_number":14,"context_line":"supported it, so any SDN controller based design in neutron should support"},{"line_number":15,"context_line":"it, including dragonflow."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_77d71c4b","line":13,"range":{"start_line":13,"start_character":20,"end_line":13,"end_character":21},"updated":"2016-11-17 10:06:14.000000000","message":"an","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"983faba065b9c4edc5b25459021d9478d53e01ea","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/vm-live-migration"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"VM live migration is important feature in Openstack, native neutron has"},{"line_number":14,"context_line":"supported it, so any SDN controller based design in neutron should support"},{"line_number":15,"context_line":"it, including dragonflow."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_f5cf19b1","line":15,"range":{"start_line":13,"start_character":0,"end_line":15,"end_character":25},"updated":"2016-11-15 09:59:15.000000000","message":"This is not necessary and meaningless, you could remove it","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5706eaa66fa884a41f09397afc4b989fbd8aa083","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Curruntly, dragonflow does not support VM live migration. When VM is"},{"line_number":21,"context_line":"migrated from one compute node to another compute node, the flows won\u0027t"},{"line_number":22,"context_line":"be updated correctly, including L2, L3, DNAT, etc. So, what this spec"},{"line_number":23,"context_line":"will do is to ensure the flows are updated correctly and fastly, in"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_4c8d5c7a","line":20,"range":{"start_line":20,"start_character":11,"end_line":20,"end_character":21},"updated":"2016-11-16 16:20:38.000000000","message":"Dragonflow","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5706eaa66fa884a41f09397afc4b989fbd8aa083","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Curruntly, dragonflow does not support VM live migration. When VM is"},{"line_number":21,"context_line":"migrated from one compute node to another compute node, the flows won\u0027t"},{"line_number":22,"context_line":"be updated correctly, including L2, L3, DNAT, etc. So, what this spec"},{"line_number":23,"context_line":"will do is to ensure the flows are updated correctly and fastly, in"},{"line_number":24,"context_line":"order to make sure the downtime of network is as short as possible."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_ecde286c","line":21,"range":{"start_line":21,"start_character":34,"end_line":21,"end_character":54},"updated":"2016-11-16 16:20:38.000000000","message":"another","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":22338,"name":"xuxiaojie","email":"xiaojie.xu@huawei.com","username":"xuxiaojie"},"change_message_id":"8567cb03cc9c7427c2a14de0ebf09bf4c0aa2a07","unresolved":false,"context_lines":[{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Curruntly, dragonflow does not support VM live migration. When VM is"},{"line_number":21,"context_line":"migrated from one compute node to another compute node, the flows won\u0027t"},{"line_number":22,"context_line":"be updated correctly, including L2, L3, DNAT, etc. So, what this spec"},{"line_number":23,"context_line":"will do is to ensure the flows are updated correctly and fastly, in"},{"line_number":24,"context_line":"order to make sure the downtime of network is as short as possible."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_77963c40","line":21,"range":{"start_line":21,"start_character":60,"end_line":21,"end_character":65},"updated":"2016-11-17 10:06:14.000000000","message":"flow tables","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"983faba065b9c4edc5b25459021d9478d53e01ea","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Curruntly, dragonflow does not support VM live migration. When VM is"},{"line_number":21,"context_line":"migrated from one compute node to another compute node, the flows won\u0027t"},{"line_number":22,"context_line":"be updated correctly, including L2, L3, DNAT, etc. So, what this spec"},{"line_number":23,"context_line":"will do is to ensure the flows are updated correctly and fastly, in"},{"line_number":24,"context_line":"order to make sure the downtime of network is as short as possible."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Proposed Change"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_d5469dbe","line":24,"range":{"start_line":23,"start_character":53,"end_line":24,"end_character":67},"updated":"2016-11-15 09:59:15.000000000","message":"\u0027in order to\u0027 makes the sentence wired","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5706eaa66fa884a41f09397afc4b989fbd8aa083","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Curruntly, dragonflow does not support VM live migration. When VM is"},{"line_number":21,"context_line":"migrated from one compute node to another compute node, the flows won\u0027t"},{"line_number":22,"context_line":"be updated correctly, including L2, L3, DNAT, etc. So, what this spec"},{"line_number":23,"context_line":"will do is to ensure the flows are updated correctly and fastly, in"},{"line_number":24,"context_line":"order to make sure the downtime of network is as short as possible."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Proposed Change"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_8c6214ac","line":24,"range":{"start_line":23,"start_character":53,"end_line":24,"end_character":67},"in_reply_to":"7a77a97e_d5469dbe","updated":"2016-11-16 16:20:38.000000000","message":"+1","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5706eaa66fa884a41f09397afc4b989fbd8aa083","unresolved":false,"context_lines":[{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"To support VM live migration, we must understand the interaction between"},{"line_number":30,"context_line":"nova and neutron while in migration, and in general there are three points"},{"line_number":31,"context_line":"we shoud pay attention to."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"1 VIF plugged in destination node."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_0c6fe492","line":30,"range":{"start_line":30,"start_character":17,"end_line":30,"end_character":25},"updated":"2016-11-16 16:20:38.000000000","message":"during","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"983faba065b9c4edc5b25459021d9478d53e01ea","unresolved":false,"context_lines":[{"line_number":48,"context_line":"NB Data Model Impact"},{"line_number":49,"context_line":"--------------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"There is a new field called port state to indicate if the port is in"},{"line_number":52,"context_line":"migraion. It\u0027s not necessary to save the field to DB store in compute node,"},{"line_number":53,"context_line":"just in north DB, as the field should be accessed by controllers in source"},{"line_number":54,"context_line":"and destination node to synchronize state."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_7525c9c0","line":52,"range":{"start_line":51,"start_character":0,"end_line":52,"end_character":9},"updated":"2016-11-15 09:59:15.000000000","message":"You mean the value will look like IN_MIGRATION, NOT_MIGRATION? But you patch set the destination chassis to it. If you are going to save the destination, I suggest you rename this new field, port state seems wired","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5706eaa66fa884a41f09397afc4b989fbd8aa083","unresolved":false,"context_lines":[{"line_number":49,"context_line":"--------------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"There is a new field called port state to indicate if the port is in"},{"line_number":52,"context_line":"migraion. It\u0027s not necessary to save the field to DB store in compute node,"},{"line_number":53,"context_line":"just in north DB, as the field should be accessed by controllers in source"},{"line_number":54,"context_line":"and destination node to synchronize state."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_8c2f74f5","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":8},"updated":"2016-11-16 16:20:38.000000000","message":"typo","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5706eaa66fa884a41f09397afc4b989fbd8aa083","unresolved":false,"context_lines":[{"line_number":49,"context_line":"--------------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"There is a new field called port state to indicate if the port is in"},{"line_number":52,"context_line":"migraion. It\u0027s not necessary to save the field to DB store in compute node,"},{"line_number":53,"context_line":"just in north DB, as the field should be accessed by controllers in source"},{"line_number":54,"context_line":"and destination node to synchronize state."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_ac0d1092","line":52,"range":{"start_line":52,"start_character":15,"end_line":52,"end_character":28},"updated":"2016-11-16 16:20:38.000000000","message":"unnecessary","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"983faba065b9c4edc5b25459021d9478d53e01ea","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"There is a new field called port state to indicate if the port is in"},{"line_number":52,"context_line":"migraion. It\u0027s not necessary to save the field to DB store in compute node,"},{"line_number":53,"context_line":"just in north DB, as the field should be accessed by controllers in source"},{"line_number":54,"context_line":"and destination node to synchronize state."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Publisher Subscriber Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_b54e81bf","line":53,"range":{"start_line":53,"start_character":8,"end_line":53,"end_character":16},"updated":"2016-11-15 09:59:15.000000000","message":"north DB is more like neutron DB, use df-db","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5706eaa66fa884a41f09397afc4b989fbd8aa083","unresolved":false,"context_lines":[{"line_number":84,"context_line":"database to check if the port has the port state field, and if yes, it"},{"line_number":85,"context_line":"will be treated as VM live migration, then publish migration event to"},{"line_number":86,"context_line":"all related nodes to notify flows update, including destination node,"},{"line_number":87,"context_line":"source node, and other nodes which has subscribed the same topic as the"},{"line_number":88,"context_line":"migrating VM."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"3 At the last stage, neutron calls update_port to update port chassis."}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_ac135065","line":87,"range":{"start_line":87,"start_character":35,"end_line":87,"end_character":38},"updated":"2016-11-16 16:20:38.000000000","message":"have","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5706eaa66fa884a41f09397afc4b989fbd8aa083","unresolved":false,"context_lines":[{"line_number":93,"context_line":"so if it does, it will ensure the flows are updated correctly in condition"},{"line_number":94,"context_line":"the second step fail to update flows, such as publish event missing."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"We try to use the existing interfaces when update flows, to avoid making"},{"line_number":97,"context_line":"too many changes to the existing architecture. At present, almost all"},{"line_number":98,"context_line":"dragonflow apps have implemented add_local_port, remove_local_port,"},{"line_number":99,"context_line":"add_remote_port, remove_remote_port, so we should notify flows using"},{"line_number":100,"context_line":"notify_add_local_port, notify_remove_local_port, notify_add_remote_port,"},{"line_number":101,"context_line":"notify_remove_remote_port respectively and not use new interface like"},{"line_number":102,"context_line":"update_local_port."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_dfd2f0ff","line":102,"range":{"start_line":96,"start_character":1,"end_line":102,"end_character":18},"updated":"2016-11-16 16:20:38.000000000","message":"This is the code implementation level description, you do not need to describe it here.","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5706eaa66fa884a41f09397afc4b989fbd8aa083","unresolved":false,"context_lines":[{"line_number":100,"context_line":"notify_add_local_port, notify_remove_local_port, notify_add_remote_port,"},{"line_number":101,"context_line":"notify_remove_remote_port respectively and not use new interface like"},{"line_number":102,"context_line":"update_local_port."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"7a77a97e_5f050078","line":105,"range":{"start_line":103,"start_character":0,"end_line":105,"end_character":0},"updated":"2016-11-16 16:20:38.000000000","message":"3 empty lines??","commit_id":"09f736356737dab433180566cde2ee9e4e2c2642"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"80f98924810a31199a6559de69212557643a7dd9","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"VM live migration is an important feature in Openstack, native neutron has"},{"line_number":14,"context_line":"supported it, so any SDN controller based design in neutron should support"},{"line_number":15,"context_line":"it, including dragonflow."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a77a97e_6a1c2a6a","line":15,"range":{"start_line":15,"start_character":14,"end_line":15,"end_character":24},"updated":"2016-11-20 14:42:24.000000000","message":"Dragonflow","commit_id":"a016214ba817b688206b6f76053eca9e5ae7525b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"80f98924810a31199a6559de69212557643a7dd9","unresolved":false,"context_lines":[{"line_number":17,"context_line":"Problem Description"},{"line_number":18,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Curruntly, Dragonflow does not support VM live migration. When VM is"},{"line_number":21,"context_line":"migrated from one compute node to another, the flows won\u0027t be updated"},{"line_number":22,"context_line":"correctly, including L2, L3, DNAT, etc. So, what this spec will do is to"},{"line_number":23,"context_line":"ensure the flows are updated correctly and fastly, to make sure the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a77a97e_8a17c643","line":20,"range":{"start_line":20,"start_character":0,"end_line":20,"end_character":9},"updated":"2016-11-20 14:42:24.000000000","message":"typo","commit_id":"a016214ba817b688206b6f76053eca9e5ae7525b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"80f98924810a31199a6559de69212557643a7dd9","unresolved":false,"context_lines":[{"line_number":20,"context_line":"Curruntly, Dragonflow does not support VM live migration. When VM is"},{"line_number":21,"context_line":"migrated from one compute node to another, the flows won\u0027t be updated"},{"line_number":22,"context_line":"correctly, including L2, L3, DNAT, etc. So, what this spec will do is to"},{"line_number":23,"context_line":"ensure the flows are updated correctly and fastly, to make sure the"},{"line_number":24,"context_line":"downtime of network is as short as possible."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Proposed Change"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a77a97e_ea1e7a5d","line":24,"range":{"start_line":23,"start_character":54,"end_line":24,"end_character":44},"updated":"2016-11-20 14:42:24.000000000","message":"make the xxx as short as possible","commit_id":"a016214ba817b688206b6f76053eca9e5ae7525b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"80f98924810a31199a6559de69212557643a7dd9","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3 Nova calls neuron API(update_port) to update port chassis information."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"In order to make sure the downtime of network is as short as possible, we"},{"line_number":40,"context_line":"should update flows when the VM is really down at source node. As the above"},{"line_number":41,"context_line":"analysis, VM is shut down at the second step, and we should update flows"},{"line_number":42,"context_line":"simultaneously in all nodes, including source node, destination node, and"}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a77a97e_6a334af6","line":39,"range":{"start_line":39,"start_character":12,"end_line":39,"end_character":69},"updated":"2016-11-20 14:42:24.000000000","message":"ditto","commit_id":"a016214ba817b688206b6f76053eca9e5ae7525b"},{"author":{"_account_id":9044,"name":"Will","email":"wangjian.ika@bytedance.com","username":"Will"},"change_message_id":"545b386614b15c29f5919c3481b6e20d62b2ee62","unresolved":false,"context_lines":[{"line_number":96,"context_line":"We try to use the existing interfaces when update flows, to avoid making"},{"line_number":97,"context_line":"too many changes to the existing architecture. At present, almost all"},{"line_number":98,"context_line":"dragonflow apps have implemented both adding and removing local/remote"},{"line_number":99,"context_line":"port, so we should use these interface, not adding new ones."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"7a77a97e_52b2d54c","line":99,"range":{"start_line":99,"start_character":29,"end_line":99,"end_character":38},"updated":"2016-11-19 04:11:39.000000000","message":"interfaces","commit_id":"a016214ba817b688206b6f76053eca9e5ae7525b"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5777f5e5dfddff9c6b74d6a323022f23d1e869ad","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/vm-live-migration"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"VM live migration is an important feature in Openstack, native neutron has"},{"line_number":14,"context_line":"supported it, so any SDN controller based design in neutron should support"},{"line_number":15,"context_line":"it, including Dragonflow."},{"line_number":16,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a71b18c_a24aa2c3","line":13,"range":{"start_line":13,"start_character":63,"end_line":13,"end_character":70},"updated":"2016-12-02 08:00:09.000000000","message":"Neutron","commit_id":"bf3acd917d8269e6d89d619098b59df72bdb75fa"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5777f5e5dfddff9c6b74d6a323022f23d1e869ad","unresolved":false,"context_lines":[{"line_number":11,"context_line":"https://blueprints.launchpad.net/dragonflow/+spec/vm-live-migration"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"VM live migration is an important feature in Openstack, native neutron has"},{"line_number":14,"context_line":"supported it, so any SDN controller based design in neutron should support"},{"line_number":15,"context_line":"it, including Dragonflow."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a71b18c_4210eea8","line":14,"range":{"start_line":14,"start_character":52,"end_line":14,"end_character":59},"updated":"2016-12-02 08:00:09.000000000","message":"ditto","commit_id":"bf3acd917d8269e6d89d619098b59df72bdb75fa"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5777f5e5dfddff9c6b74d6a323022f23d1e869ad","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"2 VIF unplugged in souce node."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3 Nova calls neuron API(update_port) to update port chassis information."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"In order to make sure the downtime of network as short as possible, we"},{"line_number":40,"context_line":"should update flows when the VM is really down at source node. As the above"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a71b18c_c2731e14","line":37,"range":{"start_line":37,"start_character":13,"end_line":37,"end_character":19},"updated":"2016-12-02 08:00:09.000000000","message":"typo","commit_id":"bf3acd917d8269e6d89d619098b59df72bdb75fa"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5777f5e5dfddff9c6b74d6a323022f23d1e869ad","unresolved":false,"context_lines":[{"line_number":39,"context_line":"In order to make sure the downtime of network as short as possible, we"},{"line_number":40,"context_line":"should update flows when the VM is really down at source node. As the above"},{"line_number":41,"context_line":"analysis, VM is shut down at the second step, and we should update flows"},{"line_number":42,"context_line":"simultaneously in all nodes, including source node, destination node, and"},{"line_number":43,"context_line":"other related nodes. The interval between the second and third steps is"},{"line_number":44,"context_line":"uncertain, but we can also update flows in the third step to make sure the"},{"line_number":45,"context_line":"flows are updated correctly if it doesn\u0027t update flows in the second step"},{"line_number":46,"context_line":"correctly because of some problems."}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a71b18c_c24a3eac","line":43,"range":{"start_line":42,"start_character":18,"end_line":43,"end_character":19},"updated":"2016-12-02 08:00:09.000000000","message":"all related nodes","commit_id":"bf3acd917d8269e6d89d619098b59df72bdb75fa"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5777f5e5dfddff9c6b74d6a323022f23d1e869ad","unresolved":false,"context_lines":[{"line_number":48,"context_line":"NB Data Model Impact"},{"line_number":49,"context_line":"--------------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"There is a new field called port migration to indicate if the port is in"},{"line_number":52,"context_line":"migraion. It\u0027s not necessary to save the field to DB store in compute node,"},{"line_number":53,"context_line":"just in df-db, as the field should be accessed by controllers in source"},{"line_number":54,"context_line":"and destination node to synchronize state."}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a71b18c_c2f87e4c","line":51,"range":{"start_line":51,"start_character":28,"end_line":51,"end_character":42},"updated":"2016-12-02 08:00:09.000000000","message":"pls emphasize this word","commit_id":"bf3acd917d8269e6d89d619098b59df72bdb75fa"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5777f5e5dfddff9c6b74d6a323022f23d1e869ad","unresolved":false,"context_lines":[{"line_number":49,"context_line":"--------------------"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"There is a new field called port migration to indicate if the port is in"},{"line_number":52,"context_line":"migraion. It\u0027s not necessary to save the field to DB store in compute node,"},{"line_number":53,"context_line":"just in df-db, as the field should be accessed by controllers in source"},{"line_number":54,"context_line":"and destination node to synchronize state."},{"line_number":55,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a71b18c_e2957ae4","line":52,"range":{"start_line":52,"start_character":0,"end_line":52,"end_character":8},"updated":"2016-12-02 08:00:09.000000000","message":"typo","commit_id":"bf3acd917d8269e6d89d619098b59df72bdb75fa"},{"author":{"_account_id":20287,"name":"hujie","email":"mike.hu@huawei.com","username":"hujie"},"change_message_id":"5777f5e5dfddff9c6b74d6a323022f23d1e869ad","unresolved":false,"context_lines":[{"line_number":78,"context_line":"1 When a new port is online in destination node, controller check whether"},{"line_number":79,"context_line":"the chassis is equal to self chassis. It will be the VM live migration"},{"line_number":80,"context_line":"scenario if the port\u0027s chassis not equal to the self chassis, and then"},{"line_number":81,"context_line":"setting the port state to self chassis."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"2 When the port is offline in source node, controller will query the NB"},{"line_number":84,"context_line":"database to check if the port has the port state field, and if yes, it"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a71b18c_c254fe22","line":81,"range":{"start_line":81,"start_character":12,"end_line":81,"end_character":38},"updated":"2016-12-02 08:00:09.000000000","message":"state \u003d\u003d chassis??? It seems they are not the same type object","commit_id":"bf3acd917d8269e6d89d619098b59df72bdb75fa"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"5ca75d9f851d34fd0f973df0a65e25cfca3311e1","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"2 VIF unplugged in souce node."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3 Nova calls Neuron API(update_port) to update port chassis information."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"In order to make sure the downtime of network as short as possible, we"},{"line_number":40,"context_line":"should update flows when the VM is really down at source node. As the above"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_b6eb6577","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":72},"updated":"2017-01-05 01:46:21.000000000","message":"Nova will call neutron api to udpate port\u0027s binding information(update the host), and the dragonflow ml2 mechanism driver will be called to update the port\u0027s chassis information, right? From nova or neutron\u0027s perspective, there is no concept about chassis. So, maybe this sentence can be reworded to make it clearer.","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"20edb173d623ddb5be663679806cbc805ebbcc93","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"2 VIF unplugged in souce node."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"3 Nova calls Neuron API(update_port) to update port chassis information."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"In order to make sure the downtime of network as short as possible, we"},{"line_number":40,"context_line":"should update flows when the VM is really down at source node. As the above"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_8c9d740c","line":37,"range":{"start_line":37,"start_character":0,"end_line":37,"end_character":72},"in_reply_to":"ba5201f7_b6eb6577","updated":"2017-01-05 02:53:12.000000000","message":"Done","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"5ca75d9f851d34fd0f973df0a65e25cfca3311e1","unresolved":false,"context_lines":[{"line_number":41,"context_line":"analysis, VM is shut down at the second step, and we should update flows"},{"line_number":42,"context_line":"simultaneously in all ralated nodes, including source node, destination"},{"line_number":43,"context_line":"node, and other related nodes. The interval between the second and third"},{"line_number":44,"context_line":"steps is uncertain, but we can also update flows in the third step to make"},{"line_number":45,"context_line":"sure the flows are updated correctly if it doesn\u0027t update flows in the"},{"line_number":46,"context_line":"second step correctly because of some problems."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_76c3bded","line":44,"range":{"start_line":44,"start_character":19,"end_line":44,"end_character":74},"updated":"2017-01-05 01:46:21.000000000","message":"So, when would you update the flows? In step 2, or in step 3, or in both steps?","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"20edb173d623ddb5be663679806cbc805ebbcc93","unresolved":false,"context_lines":[{"line_number":41,"context_line":"analysis, VM is shut down at the second step, and we should update flows"},{"line_number":42,"context_line":"simultaneously in all ralated nodes, including source node, destination"},{"line_number":43,"context_line":"node, and other related nodes. The interval between the second and third"},{"line_number":44,"context_line":"steps is uncertain, but we can also update flows in the third step to make"},{"line_number":45,"context_line":"sure the flows are updated correctly if it doesn\u0027t update flows in the"},{"line_number":46,"context_line":"second step correctly because of some problems."},{"line_number":47,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_4c1aac7e","line":44,"range":{"start_line":44,"start_character":19,"end_line":44,"end_character":74},"in_reply_to":"ba5201f7_76c3bded","updated":"2017-01-05 02:53:12.000000000","message":"It will be done in step2, and the step3 is auxiliary.","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"5ca75d9f851d34fd0f973df0a65e25cfca3311e1","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Publisher Subscriber Impact"},{"line_number":57,"context_line":"---------------------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The publisher function should be enabled in compute node, to send flow"},{"line_number":60,"context_line":"update event in the second step."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Dragonflow Applications Impact"},{"line_number":63,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_b1cd2fb9","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":32},"updated":"2017-01-05 01:46:21.000000000","message":"Is the publisher the one that is used in port status report, or the publisher that we use to publish resource event? I guess it is the latter one.","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"20edb173d623ddb5be663679806cbc805ebbcc93","unresolved":false,"context_lines":[{"line_number":56,"context_line":"Publisher Subscriber Impact"},{"line_number":57,"context_line":"---------------------------"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The publisher function should be enabled in compute node, to send flow"},{"line_number":60,"context_line":"update event in the second step."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Dragonflow Applications Impact"},{"line_number":63,"context_line":"------------------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_ec0b6028","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":32},"in_reply_to":"ba5201f7_b1cd2fb9","updated":"2017-01-05 02:53:12.000000000","message":"yes, it\u0027s the latter one","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"5ca75d9f851d34fd0f973df0a65e25cfca3311e1","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"1 When a new port is online in destination node, controller check whether"},{"line_number":79,"context_line":"the chassis is equal to self chassis. It will be the VM live migration"},{"line_number":80,"context_line":"scenario if the port\u0027s chassis not equal to the self chassis, and then"},{"line_number":81,"context_line":"setting the port migration to self chassis."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"2 When the port is offline in source node, controller will query the NB"},{"line_number":84,"context_line":"database to check if the port has the port state field, and if yes, it"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_d122b351","line":81,"range":{"start_line":80,"start_character":62,"end_line":81,"end_character":43},"updated":"2017-01-05 01:46:21.000000000","message":"You mean setting the new field \"port-migration\" in lport, right? Have you considered the potential db write conflict from neutron server side.","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"20edb173d623ddb5be663679806cbc805ebbcc93","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"1 When a new port is online in destination node, controller check whether"},{"line_number":79,"context_line":"the chassis is equal to self chassis. It will be the VM live migration"},{"line_number":80,"context_line":"scenario if the port\u0027s chassis not equal to the self chassis, and then"},{"line_number":81,"context_line":"setting the port migration to self chassis."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"2 When the port is offline in source node, controller will query the NB"},{"line_number":84,"context_line":"database to check if the port has the port state field, and if yes, it"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_529b2272","line":81,"range":{"start_line":80,"start_character":62,"end_line":81,"end_character":43},"in_reply_to":"ba5201f7_4c4f0c6b","updated":"2017-01-05 02:53:12.000000000","message":"Yes, this is new table, and I think there is no conflict between neutron server and controller, as server will not modify this table.","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"5ed8001f18ff7a1c54d6811d5ff3c1011ea68b3e","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"1 When a new port is online in destination node, controller check whether"},{"line_number":79,"context_line":"the chassis is equal to self chassis. It will be the VM live migration"},{"line_number":80,"context_line":"scenario if the port\u0027s chassis not equal to the self chassis, and then"},{"line_number":81,"context_line":"setting the port migration to self chassis."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"2 When the port is offline in source node, controller will query the NB"},{"line_number":84,"context_line":"database to check if the port has the port state field, and if yes, it"}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_4c4f0c6b","line":81,"range":{"start_line":80,"start_character":62,"end_line":81,"end_character":43},"in_reply_to":"ba5201f7_d122b351","updated":"2017-01-05 02:39:17.000000000","message":"After checking the code, it is a new table name \"lport_migration\" in nb db. I would be better to specify it is a new table, not a new field(which might make people like me to think it is a field in lport)","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"5ca75d9f851d34fd0f973df0a65e25cfca3311e1","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"3 At the last stage, neutron calls update_port to update port chassis."},{"line_number":91,"context_line":"And controller will respond to the publish event from the neuron server."},{"line_number":92,"context_line":"The controller can either update migration flows or not in this step,"},{"line_number":93,"context_line":"so if it does, it will ensure the flows are updated correctly in condition"},{"line_number":94,"context_line":"the second step fail to update flows, such as publish event missing."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_11ac3b8b","line":92,"range":{"start_line":92,"start_character":0,"end_line":92,"end_character":69},"updated":"2017-01-05 01:46:21.000000000","message":"It makes me a bit confused here, I don\u0027t know what the actual action the controller will take eventually, is the action configurable?","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"20edb173d623ddb5be663679806cbc805ebbcc93","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"3 At the last stage, neutron calls update_port to update port chassis."},{"line_number":91,"context_line":"And controller will respond to the publish event from the neuron server."},{"line_number":92,"context_line":"The controller can either update migration flows or not in this step,"},{"line_number":93,"context_line":"so if it does, it will ensure the flows are updated correctly in condition"},{"line_number":94,"context_line":"the second step fail to update flows, such as publish event missing."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_321cde69","line":92,"range":{"start_line":92,"start_character":0,"end_line":92,"end_character":69},"in_reply_to":"ba5201f7_11ac3b8b","updated":"2017-01-05 02:53:12.000000000","message":"No, it will do nothing in the third step at present, I will consider to update flows at this step to ensure the flows will be modified correctly if the second step failed to update flows because of pub/sub miss","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":11159,"name":"Hong Hui Xiao","email":"honghui_xiao@yeah.net","username":"HongHuiXiao"},"change_message_id":"5ca75d9f851d34fd0f973df0a65e25cfca3311e1","unresolved":false,"context_lines":[{"line_number":97,"context_line":"too many changes to the existing architecture. At present, almost all"},{"line_number":98,"context_line":"Dragonflow apps have implemented both adding and removing local/remote"},{"line_number":99,"context_line":"port, so we should use these interfaces, not adding new ones."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_51a323b2","line":101,"range":{"start_line":100,"start_character":0,"end_line":101,"end_character":0},"updated":"2017-01-05 01:46:21.000000000","message":"You could remove these tailing empty lines.","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"20edb173d623ddb5be663679806cbc805ebbcc93","unresolved":false,"context_lines":[{"line_number":97,"context_line":"too many changes to the existing architecture. At present, almost all"},{"line_number":98,"context_line":"Dragonflow apps have implemented both adding and removing local/remote"},{"line_number":99,"context_line":"port, so we should use these interfaces, not adding new ones."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"ba5201f7_72282687","line":101,"range":{"start_line":100,"start_character":0,"end_line":101,"end_character":0},"in_reply_to":"ba5201f7_51a323b2","updated":"2017-01-05 02:53:12.000000000","message":"Done","commit_id":"51c5695bb1e0875ef98d07e3d4aa169898c243a7"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"1294e11a02bebde89872d70337d3635ef95c2c0a","unresolved":false,"context_lines":[{"line_number":21,"context_line":"migrated from one compute node to another, the flows won\u0027t be updated"},{"line_number":22,"context_line":"correctly, including L2, L3, DNAT, etc. So, what this spec will do is to"},{"line_number":23,"context_line":"ensure the flows are updated correctly and fastly, to make sure the"},{"line_number":24,"context_line":"downtime of network as short as possible."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"For more infomation about VM live migration, refer to [#]_."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba5201f7_11044d7c","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":8},"updated":"2017-01-11 14:05:07.000000000","message":"why does it have downtime? usually it will lose several(\u003c5) packets, but the network connection inside VM is still maintained via live migration.","commit_id":"c36228e5cc8b3fd57f1296fc702776f85530488c"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"6bc7f9d36d9bf07b76654a22180ae1b98a524d8d","unresolved":false,"context_lines":[{"line_number":21,"context_line":"migrated from one compute node to another, the flows won\u0027t be updated"},{"line_number":22,"context_line":"correctly, including L2, L3, DNAT, etc. So, what this spec will do is to"},{"line_number":23,"context_line":"ensure the flows are updated correctly and fastly, to make sure the"},{"line_number":24,"context_line":"downtime of network as short as possible."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"For more infomation about VM live migration, refer to [#]_."},{"line_number":27,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a57fde8_872f91a0","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":8},"in_reply_to":"ba5201f7_11044d7c","updated":"2017-01-12 13:00:13.000000000","message":"here downtime means the lost of packets, I think the connection inside VM will not be affected if the downtime is as short as possible","commit_id":"c36228e5cc8b3fd57f1296fc702776f85530488c"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"1294e11a02bebde89872d70337d3635ef95c2c0a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"In order to make sure the downtime of network as short as possible, we"},{"line_number":44,"context_line":"should update flows when the VM is really down at source node. As the above"},{"line_number":45,"context_line":"analysis, VM is shut down at the second step, and we should update flows"},{"line_number":46,"context_line":"simultaneously in all ralated nodes, including source node, destination"},{"line_number":47,"context_line":"node, and other related nodes. The interval between the second and third"},{"line_number":48,"context_line":"steps is uncertain, but we can also update flows in the third step to make"},{"line_number":49,"context_line":"sure the flows are updated correctly if it doesn\u0027t update flows in the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba5201f7_8c3f4624","line":46,"range":{"start_line":46,"start_character":22,"end_line":46,"end_character":29},"updated":"2017-01-11 14:05:07.000000000","message":"related","commit_id":"c36228e5cc8b3fd57f1296fc702776f85530488c"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"6bc7f9d36d9bf07b76654a22180ae1b98a524d8d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"In order to make sure the downtime of network as short as possible, we"},{"line_number":44,"context_line":"should update flows when the VM is really down at source node. As the above"},{"line_number":45,"context_line":"analysis, VM is shut down at the second step, and we should update flows"},{"line_number":46,"context_line":"simultaneously in all ralated nodes, including source node, destination"},{"line_number":47,"context_line":"node, and other related nodes. The interval between the second and third"},{"line_number":48,"context_line":"steps is uncertain, but we can also update flows in the third step to make"},{"line_number":49,"context_line":"sure the flows are updated correctly if it doesn\u0027t update flows in the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a57fde8_a72c95ac","line":46,"range":{"start_line":46,"start_character":22,"end_line":46,"end_character":29},"in_reply_to":"ba5201f7_8c3f4624","updated":"2017-01-12 13:00:13.000000000","message":"Done","commit_id":"c36228e5cc8b3fd57f1296fc702776f85530488c"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"1294e11a02bebde89872d70337d3635ef95c2c0a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"analysis, VM is shut down at the second step, and we should update flows"},{"line_number":46,"context_line":"simultaneously in all ralated nodes, including source node, destination"},{"line_number":47,"context_line":"node, and other related nodes. The interval between the second and third"},{"line_number":48,"context_line":"steps is uncertain, but we can also update flows in the third step to make"},{"line_number":49,"context_line":"sure the flows are updated correctly if it doesn\u0027t update flows in the"},{"line_number":50,"context_line":"second step correctly because of some problems."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba5201f7_4c6d5e03","line":48,"range":{"start_line":48,"start_character":9,"end_line":48,"end_character":18},"updated":"2017-01-11 14:05:07.000000000","message":"could we insert the related flows in advance to make sure the minimal downtime?","commit_id":"c36228e5cc8b3fd57f1296fc702776f85530488c"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"6bc7f9d36d9bf07b76654a22180ae1b98a524d8d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"analysis, VM is shut down at the second step, and we should update flows"},{"line_number":46,"context_line":"simultaneously in all ralated nodes, including source node, destination"},{"line_number":47,"context_line":"node, and other related nodes. The interval between the second and third"},{"line_number":48,"context_line":"steps is uncertain, but we can also update flows in the third step to make"},{"line_number":49,"context_line":"sure the flows are updated correctly if it doesn\u0027t update flows in the"},{"line_number":50,"context_line":"second step correctly because of some problems."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a57fde8_e2784b92","line":48,"range":{"start_line":48,"start_character":9,"end_line":48,"end_character":18},"in_reply_to":"ba5201f7_4c6d5e03","updated":"2017-01-12 13:00:13.000000000","message":"We could not install flows in advance because in the pre-live-migration stage, because the VM in the source host is really working at that moement","commit_id":"c36228e5cc8b3fd57f1296fc702776f85530488c"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"1294e11a02bebde89872d70337d3635ef95c2c0a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"node, and other related nodes. The interval between the second and third"},{"line_number":48,"context_line":"steps is uncertain, but we can also update flows in the third step to make"},{"line_number":49,"context_line":"sure the flows are updated correctly if it doesn\u0027t update flows in the"},{"line_number":50,"context_line":"second step correctly because of some problems."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"NB Data Model Impact"},{"line_number":53,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba5201f7_8c02e63c","line":50,"range":{"start_line":50,"start_character":38,"end_line":50,"end_character":46},"updated":"2017-01-11 14:05:07.000000000","message":"what are the problems that causes flow update failure? event loss? network disconnection?","commit_id":"c36228e5cc8b3fd57f1296fc702776f85530488c"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"6bc7f9d36d9bf07b76654a22180ae1b98a524d8d","unresolved":false,"context_lines":[{"line_number":47,"context_line":"node, and other related nodes. The interval between the second and third"},{"line_number":48,"context_line":"steps is uncertain, but we can also update flows in the third step to make"},{"line_number":49,"context_line":"sure the flows are updated correctly if it doesn\u0027t update flows in the"},{"line_number":50,"context_line":"second step correctly because of some problems."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"NB Data Model Impact"},{"line_number":53,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a57fde8_62653be0","line":50,"range":{"start_line":50,"start_character":38,"end_line":50,"end_character":46},"in_reply_to":"ba5201f7_8c02e63c","updated":"2017-01-12 13:00:13.000000000","message":"yes,maybe pub/sub miss or delay","commit_id":"c36228e5cc8b3fd57f1296fc702776f85530488c"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"1294e11a02bebde89872d70337d3635ef95c2c0a","unresolved":false,"context_lines":[{"line_number":52,"context_line":"NB Data Model Impact"},{"line_number":53,"context_line":"--------------------"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"There is a new field called port-migration to indicate if the port is in"},{"line_number":56,"context_line":"migration. It\u0027s not necessary to save the field to DB store in compute node,"},{"line_number":57,"context_line":"just in df-db, as the field should be accessed by controllers in source"},{"line_number":58,"context_line":"and destination node to synchronize state."}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba5201f7_6c3ea2db","line":55,"range":{"start_line":55,"start_character":28,"end_line":55,"end_character":42},"updated":"2017-01-11 14:05:07.000000000","message":"the north bound data store usually is eventually consistent. i doubt this implementation.","commit_id":"c36228e5cc8b3fd57f1296fc702776f85530488c"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"1294e11a02bebde89872d70337d3635ef95c2c0a","unresolved":false,"context_lines":[{"line_number":55,"context_line":"There is a new field called port-migration to indicate if the port is in"},{"line_number":56,"context_line":"migration. It\u0027s not necessary to save the field to DB store in compute node,"},{"line_number":57,"context_line":"just in df-db, as the field should be accessed by controllers in source"},{"line_number":58,"context_line":"and destination node to synchronize state."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Publisher Subscriber Impact"},{"line_number":61,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ba5201f7_670cfb3b","line":58,"range":{"start_line":58,"start_character":24,"end_line":58,"end_character":41},"updated":"2017-01-11 14:05:07.000000000","message":"in order to get the synchronized status in time, we can use pub/sub to notify the status and the nb-db is just to store the final status, not the intermediate status.","commit_id":"c36228e5cc8b3fd57f1296fc702776f85530488c"},{"author":{"_account_id":22060,"name":"jingting","email":"kangjingting@huawei.com","username":"jingting"},"change_message_id":"6bc7f9d36d9bf07b76654a22180ae1b98a524d8d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"There is a new field called port-migration to indicate if the port is in"},{"line_number":56,"context_line":"migration. It\u0027s not necessary to save the field to DB store in compute node,"},{"line_number":57,"context_line":"just in df-db, as the field should be accessed by controllers in source"},{"line_number":58,"context_line":"and destination node to synchronize state."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"Publisher Subscriber Impact"},{"line_number":61,"context_line":"---------------------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"9a57fde8_c2dc271b","line":58,"range":{"start_line":58,"start_character":24,"end_line":58,"end_character":41},"in_reply_to":"ba5201f7_670cfb3b","updated":"2017-01-12 13:00:13.000000000","message":"yes, this field just indicate the VM, to which the port belongs is in migrating stage,eventually flows is update simultaneously in all related nodes by pub/sub event invoked from source host, which depending on this field.","commit_id":"c36228e5cc8b3fd57f1296fc702776f85530488c"}]}
