)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ee56ee5b72d72007b7c460775107101e9443053a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"13e88321_f303e5fd","updated":"2023-10-04 09:11:13.000000000","message":"1) Please open a LP bug describing this issue.\n\n2) Add testing.","commit_id":"8a02f09f0c72e58445fc9102dc4bf876fe89046d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6004f68d81d5a795e63e1eb78144d8b2f4a4aa3d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3c748848_37a1d7ad","updated":"2023-10-05 10:08:48.000000000","message":"Please don\u0027t vote for yourself in a patch.","commit_id":"2cbf87c272df3f445c96d216d0aed65277e8be11"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovsdb_monitor.py":[{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"cd1b158a85c05ea9847a16983c19ac832e7ea7db","unresolved":false,"context_lines":[{"line_number":590,"context_line":"            # Remove the mac binding for the virtual ip, to make sure"},{"line_number":591,"context_line":"            # the virtual ip is reachable from external (e.g. Floating IP)"},{"line_number":592,"context_line":"            self.driver.delete_mac_binding_entries(row.options.get("},{"line_number":593,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY))"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"class FIPAddDeleteEvent(row_event.RowEvent):"}],"source_content_type":"text/x-python","patch_set":1,"id":"e03b3794_987ee70a","line":593,"updated":"2023-10-04 09:09:41.000000000","message":"Same method/workaround is applied in FIPAddDeleteEvent","commit_id":"8a02f09f0c72e58445fc9102dc4bf876fe89046d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"ee56ee5b72d72007b7c460775107101e9443053a","unresolved":true,"context_lines":[{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if (row.options or {}).get("},{"line_number":589,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY):"},{"line_number":590,"context_line":"            # Remove the mac binding for the virtual ip, to make sure"},{"line_number":591,"context_line":"            # the virtual ip is reachable from external (e.g. Floating IP)"},{"line_number":592,"context_line":"            self.driver.delete_mac_binding_entries(row.options.get("},{"line_number":593,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY))"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"class FIPAddDeleteEvent(row_event.RowEvent):"}],"source_content_type":"text/x-python","patch_set":1,"id":"a423b032_1bd99f36","line":593,"range":{"start_line":590,"start_character":12,"end_line":593,"end_character":54},"updated":"2023-10-04 09:11:13.000000000","message":"Why don\u0027t you execute this inside the \"event \u003d\u003d self.ROW_DELETE\" branch?","commit_id":"8a02f09f0c72e58445fc9102dc4bf876fe89046d"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"5d5858dea5c57980614e6432a1ab63e108a27ec4","unresolved":false,"context_lines":[{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if (row.options or {}).get("},{"line_number":589,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY):"},{"line_number":590,"context_line":"            # Remove the mac binding for the virtual ip, to make sure"},{"line_number":591,"context_line":"            # the virtual ip is reachable from external (e.g. Floating IP)"},{"line_number":592,"context_line":"            self.driver.delete_mac_binding_entries(row.options.get("},{"line_number":593,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY))"},{"line_number":594,"context_line":""},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"class FIPAddDeleteEvent(row_event.RowEvent):"}],"source_content_type":"text/x-python","patch_set":1,"id":"4dc759aa_4a1a4def","line":593,"range":{"start_line":590,"start_character":12,"end_line":593,"end_character":54},"in_reply_to":"a423b032_1bd99f36","updated":"2023-10-04 09:16:49.000000000","message":"Because afaik the event is a ROW_UPDATE event, as the information on the row gets an update, and the port-binding is not deleted.","commit_id":"8a02f09f0c72e58445fc9102dc4bf876fe89046d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6004f68d81d5a795e63e1eb78144d8b2f4a4aa3d","unresolved":true,"context_lines":[{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if (row.options or {}).get("},{"line_number":589,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY):"},{"line_number":590,"context_line":"            # Remove the mac binding for the virtual ip, to make sure"},{"line_number":591,"context_line":"            # the virtual ip is reachable from external (e.g. Floating IP)"},{"line_number":592,"context_line":"            self.driver.delete_mac_binding_entries(row.options.get("},{"line_number":593,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY))"},{"line_number":594,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3b69ec88_1b45b6dd","line":591,"range":{"start_line":590,"start_character":12,"end_line":591,"end_character":74},"updated":"2023-10-05 10:08:48.000000000","message":"But this is removing MAC binding entry of the current VIP, not the old one. According to the LP bug, what you are expecting from this\n\nAs commented in [1], this should go in the DELETE event. Since [2][3], when the parent port of a VIP is removed, the port_binding register is removed too. This is when you should remove the mac binding register associated to the old parent port.\n\n[1]https://review.opendev.org/c/openstack/neutron/+/896884/comment/a423b032_1bd99f36/\n[2]https://github.com/ovn-org/ovn/commit/ec933537f9b04b35ef4b79fb2b4743f9095da209\n[3]https://github.com/ovn-org/ovn/commit/cd3b685043fa9758df3665bf3e3fc972048698a6","commit_id":"2cbf87c272df3f445c96d216d0aed65277e8be11"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"7b0c615b0af3815a1d27f0c99e2b06ed3402974b","unresolved":true,"context_lines":[{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if (row.options or {}).get("},{"line_number":589,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY):"},{"line_number":590,"context_line":"            # Remove the mac binding for the virtual ip, to make sure"},{"line_number":591,"context_line":"            # the virtual ip is reachable from external (e.g. Floating IP)"},{"line_number":592,"context_line":"            self.driver.delete_mac_binding_entries(row.options.get("},{"line_number":593,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY))"},{"line_number":594,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"adf54262_c60aa998","line":591,"range":{"start_line":590,"start_character":12,"end_line":591,"end_character":74},"in_reply_to":"3b69ec88_1b45b6dd","updated":"2023-10-05 13:00:37.000000000","message":"From what i\u0027ve seen in our env, we receive a update event once the VIP changes from VM1 to VM2. \n\nI\u0027ve captured the event with a simple LOG.info and stored the results here:\nhttps://bugs.launchpad.net/neutron/+bug/2038422/comments/2\n\nAs you can see, the virtual_parent is receiving a update upon the bind_vport action within OVN (which happens when ARP reply/gratuitous arp is received from a VM)\n\nSo the parent port is not removed, it is just overwriting the `virtual_parent` field in the existing `port_binding` record.","commit_id":"2cbf87c272df3f445c96d216d0aed65277e8be11"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"36f64452e0dcabd17b3bb676d4d8c0c5d307eef3","unresolved":false,"context_lines":[{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if (row.options or {}).get("},{"line_number":589,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY):"},{"line_number":590,"context_line":"            # Remove the mac binding for the virtual ip, to make sure"},{"line_number":591,"context_line":"            # the virtual ip is reachable from external (e.g. Floating IP)"},{"line_number":592,"context_line":"            self.driver.delete_mac_binding_entries(row.options.get("},{"line_number":593,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY))"},{"line_number":594,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5cf846b1_844ab440","line":591,"range":{"start_line":590,"start_character":12,"end_line":591,"end_character":74},"in_reply_to":"3b69ec88_1b45b6dd","updated":"2023-10-05 10:44:09.000000000","message":"Well the VIP stays the same, it is just pointing to another virtual parent. I\u0027ll update the bug report with some more details of the process.","commit_id":"2cbf87c272df3f445c96d216d0aed65277e8be11"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"352effd127e3285939f6ab7c93b1a2f26bf078bb","unresolved":true,"context_lines":[{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        if (row.options or {}).get("},{"line_number":589,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY):"},{"line_number":590,"context_line":"            # Remove the mac binding for the virtual ip, to make sure"},{"line_number":591,"context_line":"            # the virtual ip is reachable from external (e.g. Floating IP)"},{"line_number":592,"context_line":"            self.driver.delete_mac_binding_entries(row.options.get("},{"line_number":593,"context_line":"                ovn_const.LSP_OPTIONS_VIRTUAL_IP_KEY))"},{"line_number":594,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"30de9e05_c8555891","line":591,"range":{"start_line":590,"start_character":12,"end_line":591,"end_character":74},"in_reply_to":"adf54262_c60aa998","updated":"2023-10-09 14:03:43.000000000","message":"According to the OVN patches, the port binding register should be deleted.\n\nBut as you are showing in [1], what you need to do is:\n1) Rebase this patch on top of https://review.opendev.org/c/openstack/neutron/+/896883, to avoid conflicts with you own patches.\n2) Check, in the \"match_fn\" method, if the \"virtual_parent\" has changed.\n3) In that case, remove the \"old.virtual_parent\" MAC binding register.\n\n[1]https://bugs.launchpad.net/neutron/+bug/2038422/comments/2","commit_id":"2cbf87c272df3f445c96d216d0aed65277e8be11"}]}
