)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"2f44ed2167e5c3bb2f1ada3dafa9b3a3733e2ecd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d939fd19_5799f3ad","updated":"2022-04-19 07:28:50.000000000","message":"UT may get failed, -1 for now, verify the failing case first: test_update_instance_port_admin_state","commit_id":"22b75eeaf7b571e75f096adae6fb002cb1b06b4f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"ea4fd1e1972908b5e9b55b2ae6c2e79a5cee0b9e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"254c6a3d_2058ca5b","updated":"2022-04-19 08:18:06.000000000","message":"check experimental","commit_id":"22b75eeaf7b571e75f096adae6fb002cb1b06b4f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"104271eed4f6a7e08eb57e71e4e8fd4cde3dca0e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"de2844e2_ee99e81a","updated":"2022-04-19 11:53:21.000000000","message":"neutron-ovs-tempest-slow https://zuul.opendev.org/t/openstack/build/9ad2dc3fc852442da114cb91cf248aa4 : SUCCESS in 1h 34m 33s\n\nOK, then, I will update the remain works.","commit_id":"22b75eeaf7b571e75f096adae6fb002cb1b06b4f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"53d988db78ebf62e3c38e666558dc15935e7b0f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3825e55b_4e6d8c89","updated":"2022-04-20 04:48:51.000000000","message":"check experimental","commit_id":"8dfb24a9332673c8b972f26cb92f5d4024b1bf6f"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"047b97707bdd8679a04627c2e2d76f76cd78ac08","unresolved":false,"context_lines":[{"line_number":1210,"context_line":"                if cur_info[\u0027tag\u0027]:"},{"line_number":1211,"context_line":"                    LOG.warning(\"Uninstall flows of ofport %s due to \""},{"line_number":1212,"context_line":"                                \"local vlan change.\", port.ofport)"},{"line_number":1213,"context_line":"                    self.int_br.uninstall_flows(in_port\u003dport.ofport)"},{"line_number":1214,"context_line":""},{"line_number":1215,"context_line":"    def _bind_devices(self, need_binding_ports):"},{"line_number":1216,"context_line":"        devices_up \u003d []"}],"source_content_type":"text/x-python","patch_set":1,"id":"78a121e0_438856bb","line":1213,"range":{"start_line":1213,"start_character":20,"end_line":1213,"end_character":68},"updated":"2022-04-19 08:16:34.000000000","message":"++","commit_id":"22b75eeaf7b571e75f096adae6fb002cb1b06b4f"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"daf91598aba705b6d1ff5a4f9730e93dcfd05267","unresolved":true,"context_lines":[{"line_number":1383,"context_line":"                                         log_errors\u003dlog_errors)"},{"line_number":1384,"context_line":"        # Port normal vlan tag is set correctly, remove the drop flows"},{"line_number":1385,"context_line":"        if cur_tag and cur_tag !\u003d constants.DEAD_VLAN_TAG:"},{"line_number":1386,"context_line":"            self.int_br.uninstall_flows(in_port\u003dport.ofport)"},{"line_number":1387,"context_line":""},{"line_number":1388,"context_line":"    def port_dead(self, port, log_errors\u003dTrue):"},{"line_number":1389,"context_line":"        \u0027\u0027\u0027Once a port has no binding, put it on the \"dead vlan\"."}],"source_content_type":"text/x-python","patch_set":1,"id":"e0ae4d3c_ca16d336","line":1386,"range":{"start_line":1386,"start_character":12,"end_line":1386,"end_character":60},"updated":"2022-04-19 07:57:30.000000000","message":"This one seems too broad - there might be not only \"drop\" flows matched","commit_id":"22b75eeaf7b571e75f096adae6fb002cb1b06b4f"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"6e4133f3c8c0398776f1a68932d0db29e372224f","unresolved":false,"context_lines":[{"line_number":1383,"context_line":"                                         log_errors\u003dlog_errors)"},{"line_number":1384,"context_line":"        # Port normal vlan tag is set correctly, remove the drop flows"},{"line_number":1385,"context_line":"        if cur_tag and cur_tag !\u003d constants.DEAD_VLAN_TAG:"},{"line_number":1386,"context_line":"            self.int_br.uninstall_flows(in_port\u003dport.ofport)"},{"line_number":1387,"context_line":""},{"line_number":1388,"context_line":"    def port_dead(self, port, log_errors\u003dTrue):"},{"line_number":1389,"context_line":"        \u0027\u0027\u0027Once a port has no binding, put it on the \"dead vlan\"."}],"source_content_type":"text/x-python","patch_set":1,"id":"9b6ddb3a_5dc7e6d9","line":1386,"range":{"start_line":1386,"start_character":12,"end_line":1386,"end_character":60},"in_reply_to":"382b474c_350dce82","updated":"2022-04-19 08:35:16.000000000","message":"That one is for the case when port\u0027s tag is changed which seems quite a rare case. Anyway I believe adding priority and table_id to the matching filters should be safer","commit_id":"22b75eeaf7b571e75f096adae6fb002cb1b06b4f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"504f2d4bd76696b745c12a8e3337c743ec4b3d26","unresolved":false,"context_lines":[{"line_number":1383,"context_line":"                                         log_errors\u003dlog_errors)"},{"line_number":1384,"context_line":"        # Port normal vlan tag is set correctly, remove the drop flows"},{"line_number":1385,"context_line":"        if cur_tag and cur_tag !\u003d constants.DEAD_VLAN_TAG:"},{"line_number":1386,"context_line":"            self.int_br.uninstall_flows(in_port\u003dport.ofport)"},{"line_number":1387,"context_line":""},{"line_number":1388,"context_line":"    def port_dead(self, port, log_errors\u003dTrue):"},{"line_number":1389,"context_line":"        \u0027\u0027\u0027Once a port has no binding, put it on the \"dead vlan\"."}],"source_content_type":"text/x-python","patch_set":1,"id":"d1fc8179_feac7b66","line":1386,"range":{"start_line":1386,"start_character":12,"end_line":1386,"end_character":60},"in_reply_to":"9b6ddb3a_5dc7e6d9","updated":"2022-04-19 09:27:41.000000000","message":"Sure, make sense. Commit c54c5791b43deada9936f0c9c5d8b681a3216893 was a work around fix for test_update_instance_port_admin_state, it can work is because of the action of uninstall flow on line 1213, removing all in_port related flows and all flows will be re-installed in the following procedures. But that may have a side effect is it may take long time for port to get link ready. Tests show that if port admin state is down, the installed flows are still there for the ofport. So a strict flow removing should be fine.","commit_id":"22b75eeaf7b571e75f096adae6fb002cb1b06b4f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"f39a3a4be0258368e7574b8bd05d4d30424aa888","unresolved":false,"context_lines":[{"line_number":1383,"context_line":"                                         log_errors\u003dlog_errors)"},{"line_number":1384,"context_line":"        # Port normal vlan tag is set correctly, remove the drop flows"},{"line_number":1385,"context_line":"        if cur_tag and cur_tag !\u003d constants.DEAD_VLAN_TAG:"},{"line_number":1386,"context_line":"            self.int_br.uninstall_flows(in_port\u003dport.ofport)"},{"line_number":1387,"context_line":""},{"line_number":1388,"context_line":"    def port_dead(self, port, log_errors\u003dTrue):"},{"line_number":1389,"context_line":"        \u0027\u0027\u0027Once a port has no binding, put it on the \"dead vlan\"."}],"source_content_type":"text/x-python","patch_set":1,"id":"ec43f1cb_a7c44d29","line":1386,"range":{"start_line":1386,"start_character":12,"end_line":1386,"end_character":60},"in_reply_to":"d1fc8179_feac7b66","updated":"2022-04-19 09:38:20.000000000","message":"@Oleg\nI have another case, sometimes in cloud operation and maintenance, operators may use port admin state DOWN/UP to fix some potential flow miss or wrong flows. They want to delete all ports related flows after set it to DOWN state, and refresh them all after UP. If we do strict delete for the block flow on table\u003d0 only, some stale flows may remain. What do you think?","commit_id":"22b75eeaf7b571e75f096adae6fb002cb1b06b4f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"047b97707bdd8679a04627c2e2d76f76cd78ac08","unresolved":false,"context_lines":[{"line_number":1383,"context_line":"                                         log_errors\u003dlog_errors)"},{"line_number":1384,"context_line":"        # Port normal vlan tag is set correctly, remove the drop flows"},{"line_number":1385,"context_line":"        if cur_tag and cur_tag !\u003d constants.DEAD_VLAN_TAG:"},{"line_number":1386,"context_line":"            self.int_br.uninstall_flows(in_port\u003dport.ofport)"},{"line_number":1387,"context_line":""},{"line_number":1388,"context_line":"    def port_dead(self, port, log_errors\u003dTrue):"},{"line_number":1389,"context_line":"        \u0027\u0027\u0027Once a port has no binding, put it on the \"dead vlan\"."}],"source_content_type":"text/x-python","patch_set":1,"id":"382b474c_350dce82","line":1386,"range":{"start_line":1386,"start_character":12,"end_line":1386,"end_character":60},"in_reply_to":"e0ae4d3c_ca16d336","updated":"2022-04-19 08:16:34.000000000","message":"Actually it is what ovs-agent done before, see line 1213, a story introduced by this commit c54c5791b43deada9936f0c9c5d8b681a3216893.","commit_id":"22b75eeaf7b571e75f096adae6fb002cb1b06b4f"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"1a23cd829fa609dddffc43051e13410c5705a7fb","unresolved":false,"context_lines":[{"line_number":1383,"context_line":"                                         log_errors\u003dlog_errors)"},{"line_number":1384,"context_line":"        # Port normal vlan tag is set correctly, remove the drop flows"},{"line_number":1385,"context_line":"        if cur_tag and cur_tag !\u003d constants.DEAD_VLAN_TAG:"},{"line_number":1386,"context_line":"            self.int_br.uninstall_flows(in_port\u003dport.ofport)"},{"line_number":1387,"context_line":""},{"line_number":1388,"context_line":"    def port_dead(self, port, log_errors\u003dTrue):"},{"line_number":1389,"context_line":"        \u0027\u0027\u0027Once a port has no binding, put it on the \"dead vlan\"."}],"source_content_type":"text/x-python","patch_set":1,"id":"06dca01f_6f8c44cd","line":1386,"range":{"start_line":1386,"start_character":12,"end_line":1386,"end_character":60},"in_reply_to":"ec43f1cb_a7c44d29","updated":"2022-04-19 09:50:42.000000000","message":"I think these two methods (port_alive, port_dead) should operate same flows, and hence be consistent with each other. If port_alive() uninstalls all flows, even not related to dropping - that doesn\u0027t sound safe and reliable to me.","commit_id":"22b75eeaf7b571e75f096adae6fb002cb1b06b4f"}]}
