)]}'
{"id":"openstack%2Fneutron~990232","triplet_id":"openstack%2Fneutron~master~I776a9d3e9092fc062fcade8a5499b5dd0bfb1756","project":"openstack/neutron","branch":"master","attention_set":{"16688":{"account":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"last_update":"2026-09-26 15:49:07.000000000","reason":"\u003cGERRIT_ACCOUNT_37598\u003e replied on the change","reason_account":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}},"38822":{"account":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"last_update":"2026-09-28 16:23:56.000000000","reason":"Someone else replied on the change"},"11975":{"account":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"last_update":"2026-07-06 23:25:18.000000000","reason":"\u003cGERRIT_ACCOUNT_38822\u003e replied on the change","reason_account":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"}},"8313":{"account":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"last_update":"2026-09-28 15:41:43.000000000","reason":"Added by \u003cGERRIT_ACCOUNT_37598\u003e using the hovercard menu","reason_account":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}},"37598":{"account":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"last_update":"2026-09-28 16:23:56.000000000","reason":"Someone else replied on the change"}},"removed_from_attention_set":{"37632":{"account":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"last_update":"2026-09-26 17:36:49.000000000","reason":"\u003cGERRIT_ACCOUNT_37632\u003e replied on the change","reason_account":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"}},"1131":{"account":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"last_update":"2026-09-28 16:23:56.000000000","reason":"removed on reply"}},"hashtags":[],"change_id":"I776a9d3e9092fc062fcade8a5499b5dd0bfb1756","subject":"Fix SNAT ambiguity for routers with multiple gateway ports","status":"NEW","created":"2026-05-27 04:49:05.000000000","updated":"2026-09-28 16:23:56.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":17,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"05b6a680fff48b0b0c22dc6835a8135fb49bca7f","_number":990232,"virtual_id_number":990232,"owner":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-09-26 17:57:06.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"all":[{"value":1,"date":"2026-09-26 17:36:49.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":2,"date":"2026-09-28 16:23:56.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-09-26 16:08:56.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"value":0,"permitted_voting_range":{"min":-1,"max":2},"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-05-27 05:32:58.000000000","updated_by":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"reviewer":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-05-27 06:54:43.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-05-27 17:28:14.000000000","updated_by":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"reviewer":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"state":"CC"},{"updated":"2026-06-15 07:29:24.000000000","updated_by":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"reviewer":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"state":"CC"},{"updated":"2026-06-17 12:58:49.000000000","updated_by":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"reviewer":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"state":"REVIEWER"},{"updated":"2026-07-06 23:22:22.000000000","updated_by":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"reviewer":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"state":"REMOVED"},{"updated":"2026-07-06 23:22:22.000000000","updated_by":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"reviewer":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"state":"REMOVED"},{"updated":"2026-07-06 23:22:22.000000000","updated_by":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"reviewer":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"state":"REMOVED"},{"updated":"2026-07-06 23:22:22.000000000","updated_by":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"reviewer":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"state":"REMOVED"},{"updated":"2026-07-06 23:25:18.000000000","updated_by":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"reviewer":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"state":"CC"},{"updated":"2026-07-06 23:25:18.000000000","updated_by":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"reviewer":{"_account_id":37662,"name":"Brian Haley","email":"v-brianhaley@microsoft.com"},"state":"CC"},{"updated":"2026-07-06 23:25:18.000000000","updated_by":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"reviewer":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"state":"REVIEWER"},{"updated":"2026-07-06 23:27:09.000000000","updated_by":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"reviewer":{"_account_id":37662,"name":"Brian Haley","email":"v-brianhaley@microsoft.com"},"state":"REMOVED"},{"updated":"2026-07-06 23:27:09.000000000","updated_by":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"reviewer":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"state":"CC"},{"updated":"2026-08-11 09:46:11.000000000","updated_by":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"reviewer":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"state":"REVIEWER"},{"updated":"2026-08-25 05:21:08.000000000","updated_by":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"reviewer":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-09-26 15:48:55.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"state":"REVIEWER"},{"updated":"2026-09-26 15:48:59.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"state":"REVIEWER"},{"updated":"2026-09-26 15:49:07.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"state":"REVIEWER"},{"updated":"2026-09-26 15:49:37.000000000","updated_by":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"reviewer":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"state":"REVIEWER"}],"messages":[{"id":"d02115f2e5637e30c647518dcf62f7de134847d5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-05-27 04:49:05.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"dc1526d402c28d909702eaecf044976f1cba35e1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-05-27 04:53:02.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"d54b504afcbd2ed244d767fc97e23353c094a28d","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-05-27 05:32:58.000000000","message":"Patch Set 1: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/May-2026/Arista_Tempest_Testrefs/changes/32/990232/1 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":1},{"id":"32c27919acabd9123008cf67760fb7728610e142","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-05-27 06:16:57.000000000","message":"Patch Set 2: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/May-2026/Arista_Tempest_Testrefs/changes/32/990232/2 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":2},{"id":"1c3474cf2d7edd6be3c8706475017f64c7a4c0f1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-27 06:54:43.000000000","message":"Patch Set 2: Verified-1\n\n(4 comments)\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/d113293159134b8ebed83fd431ab7d64\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/13c51014e18b4e15bed549f68dd1e15a : SUCCESS in 1h 27m 35s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/338073dd66b844f28364bb50992dccdd : SUCCESS in 1h 04m 48s\n- neutron-tempest-plugin-openvswitch https://zuul.opendev.org/t/openstack/build/8c951cbd95ba4a9bba22e639228b41fe : SUCCESS in 1h 24m 51s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/04d6009c29db48f7b2122dd228ee9a13 : FAILURE in 1h 50m 06s\n- neutron-tempest-plugin-designate-scenario https://zuul.opendev.org/t/openstack/build/488de6330a454cdea141c6a5ab1bd80e : SUCCESS in 33m 59s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/78e7c293b95a4b7d84461d33bffbc217 : SUCCESS in 1h 05m 06s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/bced97befcc044fca81aefd18e0b8024 : FAILURE in 6m 29s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2704b174c4ed4f1191f7b32cb961cc06 : SUCCESS in 28m 52s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/3d30b46618ea42399e0644ec7e965986 : SUCCESS in 26m 10s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/f4b3ca9d799b479e9d8642a9d89325a0 : SUCCESS in 20m 14s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3bbb50b8b682422f845768b0b5af2338 : SUCCESS in 11m 57s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/442c5dfdabc24d529d2b5e426ae46ad1 : SUCCESS in 15m 11s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/544ab439e66f4df890b389ae3f85af40 : FAILURE in 53m 45s\n- neutron-ovs-grenade-multinode https://zuul.opendev.org/t/openstack/build/aa990d52f47a4190b156d1540b932b60 : SUCCESS in 1h 16m 00s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/456f29c920de4c68a130369abea4053f : SUCCESS in 1h 17m 17s\n- neutron-ovs-tempest-multinode-full https://zuul.opendev.org/t/openstack/build/5dc786ffa8dd4a4d9b36edc954f71e42 : SUCCESS in 1h 59m 37s\n- neutron-ovs-tempest-dvr-ha-multinode-full https://zuul.opendev.org/t/openstack/build/ee3d8bc661d34477a5055745cb6c1a44 : SUCCESS in 1h 40m 03s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/bf31ca17332d4131a2a881d9853316cb : SUCCESS in 1h 15m 36s\n- neutron-ovs-rally-task https://zuul.opendev.org/t/openstack/build/f09ea93d04d341b1af501fe81c121a4e : SUCCESS in 1h 08m 58s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/2d539f2a694a4b71998bb4feb682723f : SUCCESS in 1h 33m 38s\n- neutron-ovn-bgp-tempest-multinode https://zuul.opendev.org/t/openstack/build/24bcfca230eb4525b5f35910a387f007 : SUCCESS in 1h 19m 19s (non-voting)","accounts_in_message":[],"_revision_number":2},{"id":"a3c8dad47691a1d048e03f79052654eb5a4cc4d0","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-05-27 07:01:06.000000000","message":"Uploaded patch set 3.\n\nOutdated Votes:\n* Verified+1, Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"92c5c7d1e3b15d69d805bf6baed64373ede812b3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-05-27 08:00:00.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"bb6dff0a9b94d7e87ad346a4189ceec214ad2fc2","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-05-27 08:18:44.000000000","message":"Patch Set 3: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/May-2026/Arista_Tempest_Testrefs/changes/32/990232/3 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":3},{"id":"958f4605bd76b056329744c2c49dba12348a4031","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-05-27 09:46:56.000000000","message":"Patch Set 4: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/May-2026/Arista_Tempest_Testrefs/changes/32/990232/4 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":4},{"id":"045504215dc1b12ade8cb472c265b6f0e8f50895","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-27 10:15:48.000000000","message":"Patch Set 4: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/699b722f6481477a8803a74db7491b8b\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/90e74be196cf4692b07bd0cb0d3dee3c : SUCCESS in 1h 26m 37s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/f7e2af2efd8543168f5a435357334d78 : SUCCESS in 1h 06m 42s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/33d9b0b4ff1347529185f2777558c6d3 : SUCCESS in 2h 12m 34s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/17a8b46b25cd4279b8b6ca9a9399b19c : FAILURE in 1h 05m 12s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cf02a678ede747289aca1fd04e98dfc0 : SUCCESS in 10m 17s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e21e79a577cc4aa5b3d14473b80945c6 : FAILURE in 33m 15s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/d4b7d3c3d56c459cb0c581e91d121572 : FAILURE in 22m 40s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7c1b1d8356914493a134182ff056c7e6 : FAILURE in 29m 17s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e9a87035a17e4ca4ad739f875b762028 : SUCCESS in 14m 13s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/3c24b989ce3c49c0b52aa5e3ecf949ac : SUCCESS in 15m 14s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/f36a3f54cdaf4df8aa0df5540d0b2547 : SUCCESS in 1h 33m 59s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/ed60b6c7759549d9b1507ae5d5405496 : SUCCESS in 1h 15m 04s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/aa62c2096a464923b2de42f1857c3085 : SUCCESS in 1h 14m 14s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/cdd73af75b5848a7a570d44cf5797fb8 : SUCCESS in 1h 31m 51s\n- neutron-ovn-bgp-tempest-multinode https://zuul.opendev.org/t/openstack/build/fe9db775c1774b728e7328fac9cf2aa3 : SUCCESS in 1h 19m 05s (non-voting)\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":4},{"id":"6f8515239858846ae5c0300c16af8f5a776d09c5","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-27 10:17:48.000000000","message":"Patch Set 4:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/49094cf0691a4b6190529a49e999b468\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/a8f55ce8ac1548b3a26339a2e5a691e2 : FAILURE in 1h 00m 10s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/42ad31535364493fa72231e9a889964c : FAILURE in 26m 07s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/0be9e86e43b7493ba983212cd2682401 : FAILURE in 1h 05m 15s (non-voting)","accounts_in_message":[],"_revision_number":4},{"id":"5afebeabf97068e0097c36c8df5a72b492caedf5","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2026-05-27 17:28:14.000000000","message":"Patch Set 4:\n\n(2 comments)","accounts_in_message":[],"_revision_number":4},{"id":"fc21bc4528bd6b5349f4f23b3240b8871a1e470f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-05-27 23:48:54.000000000","message":"Uploaded patch set 5.\n\nOutdated Votes:\n* Verified+1, Verified-1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":5},{"id":"eacd633a0c878971738d14473a81d74a973d7d84","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-28 01:08:57.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f538854afd41480bba22dc094cbc8e2a\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/dd482e8bab29455b8bef72075d387a0a : SUCCESS in 20m 51s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/ba7376141dfe44058eac404c2432d0bc : SUCCESS in 44m 24s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/3271579547f44570b36f108ec3b9ccc9 : SUCCESS in 1h 03m 16s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"3f9919c01e4c872bfdd65a249e2b74edb0b0aef2","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-05-28 02:18:11.000000000","message":"Patch Set 5:\n\nHi Brian,\n\nThanks for your review on PS4. I\u0027ve applied your suggestions (yield-from simplification, test fixes) in PS5.\n\nWhile testing this patch on a real deployment with same-subnet multi-gateway, I found additional data plane issues beyond SNAT that I\u0027d like to discuss.\n\nWhat this patch fixes (SNAT):\nWithout gateway_port on SNAT rules, northd generates conflicting lflows in lr_out_snat — same priority, same match, different ct_snat() actions. This patch fixes it, consistent with Bug #2035281 which addressed the same gateway_port omission for FIP (dnat_and_snat) rules.\n\nWhat I additionally found (FIP + routing on same-subnet multi-gateway):\nOn a same-subnet multi-gateway setup (ECMP disabled), the default route selects only one LRP. If a FIP is bound to the *other* LRP via gateway_port, the VM\u0027s return traffic bypasses the FIP\u0027s SNAT (priority 161) and hits the subnet SNAT (priority 153) instead, because lr_in_gw_redirect requires outport to match the FIP\u0027s gateway_port but routing already selected a different LRP.\n\nAlso, lr_in_ip_routing generates conflicting lflows at priority 198 for the connected route (ip4.dst \u003d\u003d \u003cexternal_subnet\u003e) — same match, different outports.\n\nProposed direction — I\u0027d like your thoughts:\n\nOption A: Keep this SNAT patch as-is and file a separate bug for the same-subnet FIP/routing issues (broader scope, may need northd changes).\n\nOption B: In addition to this SNAT patch, add API-level validation to reject same-subnet gateways until full data plane support is implemented.\n\nI\u0027m leaning toward Option A — land this SNAT fix first since it\u0027s needed for multi-gateway in general (different subnets too), then address same-subnet gaps separately. But I\u0027d appreciate your perspective.\n\nEvidence from a live deployment (lflow dumps, OpenFlow traces, chassis bindings) is available if helpful.\n\nReferences:\n- Bug #2035281: FIP gateway_port fix (precedent for this patch)\n- Bug #1905295: [RFE] Allow multiple external gateways on a router\n- Bug #2002687: [RFE] Active-active L3 Gateway with Multihoming","accounts_in_message":[],"_revision_number":5},{"id":"959e09bd6d927a8027982dbbcabb24741bdf2ef2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-28 02:27:28.000000000","message":"Patch Set 5: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/520d37407f764f0ab2a72d5fa894ff89\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/7e6c8d2ee788457292b4e53961d157da : SUCCESS in 1h 11m 42s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/3bb59623ae604625a551a0d3bbbb59c9 : SUCCESS in 1h 02m 44s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/a6bc5919d47a43ff81a6cb0016a0db36 : SUCCESS in 1h 56m 39s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/50e1a686836c4ab9ac73c032898b365b : SUCCESS in 35m 27s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2bdf5392d4a24bfbbbb3b291f408a297 : SUCCESS in 10m 07s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/0bd26ee5474f4b2089f4cfb0dea81318 : SUCCESS in 21m 10s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/4e122a6ce83c4c1c9b0939be0010574e : SUCCESS in 23m 36s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/82a874a935934e0d9080978aa539cc82 : SUCCESS in 33m 35s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/4e68ca8f174d47ce9031e9768613f905 : SUCCESS in 13m 19s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f90b3553370d4b1a9725ea0fb21c6c02 : SUCCESS in 15m 39s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/e3bdf6eb3f384a77bac82a4a1b14d4bf : SUCCESS in 1h 06m 08s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/5313bbe780384fc188c5244cb83772a9 : SUCCESS in 37m 07s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/c4902d6b66e0426e9a3f8b4f690ec54a : SUCCESS in 53m 32s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/95eadbf74b764b01aeace938ee506f10 : TIMED_OUT in 2h 36m 16s\n- neutron-ovn-bgp-tempest-multinode https://zuul.opendev.org/t/openstack/build/a4e617d777f84ed98fad0fda913366ab : SUCCESS in 1h 25m 18s (non-voting)\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":5},{"id":"202ac7c3672a4277c260cef0831764a90753ea64","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-05-28 03:08:06.000000000","message":"Patch Set 5:\n\nrecheck","accounts_in_message":[],"_revision_number":5},{"id":"32b6a3c27f89b217155258c3bf074b5542635336","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-28 06:13:23.000000000","message":"Patch Set 5: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9e29a6dc1bcf40dfb2bc1522c55e8d1a\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/d9fa3d8aa5704501854669a22b76c07d : SUCCESS in 1h 21m 15s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/6d9fb04ddefb48588df12baa7ee14310 : SUCCESS in 1h 09m 39s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/16c66fa3b3da4e879b512212de9d72fc : SUCCESS in 2h 09m 20s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/43c7318477b64d9d837b69d8464e7090 : SUCCESS in 45m 49s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ed0e0bbc2f1d4400986a41f4a50645b3 : SUCCESS in 10m 34s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/a90d8dd8d99e4500a7cd9b6ad4c82226 : SUCCESS in 31m 54s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/7e8babda7f534c78b72d037439718dbe : SUCCESS in 21m 01s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/0fafeda990654ae4b890b60bea6540c7 : SUCCESS in 29m 59s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/95975c6dfad54b21bb9c7f079930fa55 : SUCCESS in 12m 26s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/350019ae20b94e93a73245f672a34e7e : SUCCESS in 8m 27s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/ee3fd27f5b494dea80c12eb692a40015 : SUCCESS in 1h 24m 41s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/2140eb1d365a427f89622df473bcbc90 : SUCCESS in 1h 09m 59s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/42c1f08e267d4abd848e12f2ae2a88d0 : SUCCESS in 59m 42s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/adc0682e5e0f49e699f59706ccb89a93 : SUCCESS in 1h 22m 28s\n- neutron-ovn-bgp-tempest-multinode https://zuul.opendev.org/t/openstack/build/31c7b3fb00054724b74676d94ae5fffe : SUCCESS in 3h 04m 39s (non-voting)\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":5},{"id":"70f675fabd0cfdcbf314184cb70b4d79ade0905a","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-05-28 06:34:12.000000000","message":"Patch Set 5: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/May-2026/Arista_Tempest_Testrefs/changes/32/990232/5 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":5},{"id":"8f8875f7cee8ef021b9088335e6f2e8011d82dd7","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-28 07:17:25.000000000","message":"Patch Set 5:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c59c383aaf184ad1aed89503549d8d4b\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/12d4f0e13f544f67ab3b655f9d8a3a1e : SUCCESS in 32m 23s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/23b66f4aa3aa46f180991a94179ca881 : SUCCESS in 36m 05s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/81ae34b0b74d42e4886dac1f2afdef8d : SUCCESS in 51m 15s (non-voting)","accounts_in_message":[],"_revision_number":5},{"id":"e4ebadefdb91a88dce572a0ea42700e4226f75ba","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-06-08 01:26:28.000000000","message":"Uploaded patch set 6.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":6},{"id":"78f2fbcf8cd4992b9e2097f5dd71de472693e79b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-08 03:41:39.000000000","message":"Patch Set 6: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/7f7994acdf7b4cb9b5c3aed7b9e1659f\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/7fe233c6e6394a398e73c880addb9d09 : SUCCESS in 1h 34m 18s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/3268d489612a41f4b34089a4c4f63f25 : SUCCESS in 46m 38s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/4fb478120d76432cb4fc783eb78b59ad : SUCCESS in 2h 10m 03s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/61b4877698c34c03a1da49ba9b45693d : SUCCESS in 1h 05m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/87f00e997d9349a895538d769af8f54c : SUCCESS in 10m 48s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e37da53e158e4141b6dec329138d8d0d : SUCCESS in 27m 37s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/6c2b43d8d3434dd59c7a2cc177bc258c : SUCCESS in 24m 28s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ade35bfef5f643729335b5c6b725d8ab : SUCCESS in 32m 14s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fc67a6913d694bdd88a686c897fac1cc : SUCCESS in 11m 51s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0295e7e45ea547e1add466ca4c6dfb8d : SUCCESS in 6m 57s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/3a213145cf3b4c9894be8dab7d6f48d1 : SUCCESS in 1h 09m 23s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/393a8be559464cf0b2c68986f49c4bfb : SUCCESS in 1h 18m 33s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/42084a25750b4f16bd2efd9fd25ec357 : SUCCESS in 52m 49s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/fb5f82ee5f5045c4b4cbc4e1c0903ac0 : SUCCESS in 45m 09s\n- neutron-ovn-bgp-tempest-multinode https://zuul.opendev.org/t/openstack/build/f573fdbc4c55437a8e584e57ca7c8b56 : SUCCESS in 2h 09m 48s (non-voting)\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":6},{"id":"652155e5199d9a02fbe2ed5c436d51ab806a3e02","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-06-08 04:38:36.000000000","message":"Patch Set 6: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/June-2026/Arista_Tempest_Testrefs/changes/32/990232/6 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":6},{"id":"be0906ea27c48b7e5b15fb4696e2912b7bcad3f1","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-08 05:36:32.000000000","message":"Patch Set 6:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/b7bb68ae67c44c1d93361f17f4417bef\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/6c6e21e2f3654468bd53d6ad306ba419 : SUCCESS in 20m 09s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/6f0ee38909b74358873dc23a56b95ce3 : SUCCESS in 45m 00s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/d4d8b996b5c84909a227128e03a87b7a : SUCCESS in 1h 03m 20s (non-voting)","accounts_in_message":[],"_revision_number":6},{"id":"c3a7dcb4e7038b49d1e01dddf74d3699a5d14911","author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"date":"2026-06-15 07:29:24.000000000","message":"Patch Set 6:\n\n(3 comments)","accounts_in_message":[],"_revision_number":6},{"id":"9269b1b4c7789bb26f0adda4ee04aa3169733abe","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-06-15 07:41:30.000000000","message":"Uploaded patch set 7.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":7},{"id":"4811d3bfd0f0cdd8f0dbca23e4d455fe073d9829","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-06-15 08:21:07.000000000","message":"Patch Set 7: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/June-2026/Arista_Tempest_Testrefs/changes/32/990232/7 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":7},{"id":"79773b94b7c91253446ad501452710331fe2b457","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-15 09:37:18.000000000","message":"Patch Set 7: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/df9ccd0c81f64f9a9a38f82095c17ce0\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/5ba410646cd1409f942a1d5394e8d0dc : SUCCESS in 1h 05m 40s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/af5e0cc956c243a8b037bd312ea6471c : SUCCESS in 33m 27s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/1574714eee404399b5f700a6b2caf980 : SUCCESS in 1h 52m 39s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/83e8fe282da944c78758e111ecfb8bef : SUCCESS in 46m 31s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/76e94250c6f64a0687ac1ac6d417b8bd : SUCCESS in 6m 37s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/6159b9b926074a1288588439f86131ee : SUCCESS in 22m 05s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/dac2c7efda1446eda0fada052c02aba7 : SUCCESS in 25m 23s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/1eb39c0f3ad94ecebd48f63fb24301fc : SUCCESS in 20m 26s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c7312f695df54fcc82b3b99a35eebe29 : SUCCESS in 9m 24s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/4d7d1d50eb8845e4b939504b24c8415b : SUCCESS in 22m 04s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/224d4040b6da46d591f8f0698c13b7bb : SUCCESS in 54m 12s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/65d0a447c0274a94a99bd27a51e65835 : SUCCESS in 56m 21s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/f45d58c41acd47b29a810b4687574edb : SUCCESS in 1h 10m 06s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/e1abcac9002645e781377d54d0753caf : SUCCESS in 1h 28m 41s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":7},{"id":"68b972b2175a2dd9cf40964cfe9e40f9ada7a70c","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-17 04:31:59.000000000","message":"Patch Set 7:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/332a9390813a4cc29c6a7f67f6be7244\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/9b170c128d364cc8bdeedb1f9e4d7a7b : SUCCESS in 33m 19s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/cb9160daa5b5420c8624bca04025564e : POST_FAILURE in 20m 30s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/80994a077ba44aff89fa1a677dbe1ee1 : SUCCESS in 27m 20s (non-voting)","accounts_in_message":[],"_revision_number":7},{"id":"e6c34703b1477794e1547e5afdfef13bd40d5465","author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"date":"2026-06-17 12:58:49.000000000","message":"Patch Set 7: Code-Review+2","accounts_in_message":[],"_revision_number":7},{"id":"3cfefa2cefdff2248a2e164d523faf8e1489ac45","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-07-06 07:52:51.000000000","message":"Uploaded patch set 8.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":8},{"id":"340f631a4629974c23d55efbee21a1adedc3c7b7","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-07-06 07:59:55.000000000","message":"Patch Set 8:\n\nFollowing up on the Option A / Option B question above — since there hasn\u0027t been further feedback, I\u0027ll go with Option A: keep this patch (https://review.opendev.org/c/openstack/neutron/+/990232) scoped to the SNAT gateway_port fix (needed for multi-gateway in general, not just same-subnet), and track the same-subnet FIP return-path and connected-route lflow conflicts (Findings 2 and 3 on https://bugs.launchpad.net/neutron/+bug/2154334) separately, since they look like they need northd/routing changes and are out of scope here.\n\nI\u0027ll file a follow-up bug/patch for the FIP + routing issues and link it from here once it\u0027s up.\n\n(Rebased PS8 onto current master to resolve the merge conflict with https://opendev.org/openstack/neutron/commit/782b07dc60eeaf44d46609b506adfa541934eb8f \"Change ovn_router_indirect_snat config option to True\" — no logic changes, just adjusted the affected test expectations. Code-Review/Verified votes were reset by Gerrit as a result; re-review appreciated.)","accounts_in_message":[],"_revision_number":8},{"id":"49847904dec3b20696892b3141b74e7fe111953b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 11:07:18.000000000","message":"Patch Set 8: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/947c3614a4804188b9422352e9d1eec6\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/b1e0285e4d6d420dbd5fe7278752f165 : SUCCESS in 1h 19m 52s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7327aa7a112b46fb8c8c1edad85ac1c8 : SUCCESS in 37m 03s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/ce6322d3ce6a42ceb2f8216a5d863727 : SUCCESS in 2h 31m 49s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/93d7d93a0d934fa6a7325b4f341b6307 : SUCCESS in 1h 17m 16s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a981e4d82d754cfc89d9f189153e59a9 : SUCCESS in 10m 43s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/96824b63cddf4869afb44adbf039b9a0 : SUCCESS in 19m 12s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/b94e99461f284d3d8d2f8fad04608794 : SUCCESS in 25m 09s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/7e845016fdce4c448d220ecb2406df3d : SUCCESS in 34m 05s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7fb4f0d88ce742998c1e7d769b251d54 : SUCCESS in 14m 28s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/259f9363992c4784b24f92de6da95368 : SUCCESS in 22m 49s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/63e1aade71874c8da7a670f428ab348b : FAILURE in 52m 54s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/fcf24a445da043a79cbb54a7cd078ab3 : SUCCESS in 1h 20m 45s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/83653dc464c64ae3b4d35e3ad1970f26 : SUCCESS in 1h 07m 40s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/fe8928e2403d4bf4ba98479b6a95fbaf : SUCCESS in 1h 27m 38s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":8},{"id":"de9ad021ab3f654bc9ea86c99ae42b18d2b8f807","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-06 11:09:54.000000000","message":"Patch Set 8:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c02f0b05d81b45c6878f3efc64959ed6\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/a0ca0075fee542b992c37f2bf3af2555 : SUCCESS in 42m 35s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/8401a25499784f908fd2545780cac706 : SUCCESS in 38m 10s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/cdda5eadc6c94c1b8f7176946011ec1f : SUCCESS in 57m 07s (non-voting)","accounts_in_message":[],"_revision_number":8},{"id":"ce21c2b660524f3b4974b3731364e732e1c145cc","tag":"autogenerated:gerrit:deleteReviewer","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-07-06 23:22:22.000000000","message":"Removed cc \u003cGERRIT_ACCOUNT_8313\u003e.","accounts_in_message":[{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"}],"_revision_number":8},{"id":"4432ff9f0fa6092b55ec7741061a89c7e6ff3d33","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-07-06 23:25:18.000000000","message":"Patch Set 8:\n\n(6 comments)","accounts_in_message":[],"_revision_number":8},{"id":"b9da909021acd8d1269ffb81426ab1c84739f059","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-07-06 23:27:09.000000000","message":"Patch Set 8:\n\n(1 comment)","accounts_in_message":[],"_revision_number":8},{"id":"0f3cd24c5afc022425407c5353dd0d19a90970af","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-07-06 23:51:56.000000000","message":"Patch Set 8:\n\nrecheck","accounts_in_message":[],"_revision_number":8},{"id":"da298db7637efd575f75abe65d1c141247b71ee0","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-07 01:53:23.000000000","message":"Patch Set 8: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3bdf8c585cdf4c1eb66682a64a7d9c3e\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/cdbeb59ba00748beb4a479b2d64edfb8 : SUCCESS in 1h 24m 16s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/7731ac56b50e498f8ce0f1f022ba2b24 : SUCCESS in 1h 06m 57s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/128f4403bc254d4193184064901d02c1 : SUCCESS in 2h 00m 33s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/1a15e8a4912742c2bc570425966248d1 : SUCCESS in 1h 05m 11s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4208197de3ba43acbefbcf5aa7d6666d : SUCCESS in 10m 19s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/ed04f5760f394da28622df9910a4c412 : SUCCESS in 30m 29s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0b78fdb447df403896657187e2a6b8ab : SUCCESS in 25m 23s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ae6c1e1d4cab41478ad001abd0d17508 : SUCCESS in 25m 57s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/d9d32509fff944119064dd57cd35e1e4 : SUCCESS in 12m 17s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/cef83013c44e452da57d121ab79bbaf0 : SUCCESS in 22m 13s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/66824181b32c40f7822e5e6ea794626a : SUCCESS in 1h 30m 44s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/c3fb52ea5a154c3c9042add84685429a : SUCCESS in 1h 18m 03s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/6b1c73746faa43dc9522ee6e74d11cff : SUCCESS in 53m 35s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/261c79a42893410d9c568cbd4e13cd5c : SUCCESS in 1h 24m 20s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":8},{"id":"3d35d10bb57e2ba0fcc616d8c0da05ba6f8433fc","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-07 06:04:01.000000000","message":"Patch Set 8:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2a9327184253456abeed31ca6eda3660\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/8bc6f5f6dd604e6ea08111ca1063c392 : SUCCESS in 48m 56s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/f48a76214dc04bac81a647fed44edb47 : SUCCESS in 47m 38s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/ff879a89b40b456a85cf377d14b1833f : SUCCESS in 1h 05m 37s (non-voting)","accounts_in_message":[],"_revision_number":8},{"id":"ef613e2d3dbed09a819d3bfa81fd230484bffe21","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-07-09 02:14:24.000000000","message":"Uploaded patch set 9.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":9},{"id":"1ca2410f08c822820bffb4ef981975149fd59702","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-09 04:48:39.000000000","message":"Patch Set 9: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d8ac0d5468fd4a968e63e63d34545e6b\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/1b6cea1225604548906562991935538a : SUCCESS in 1h 35m 00s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d8431b0b0199421b9bb118a66b4e4f74 : SUCCESS in 55m 06s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/29863c967a3942da9000388668f06d24 : SUCCESS in 2h 08m 53s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/051e3db1130b414a92004a8980257831 : SUCCESS in 59m 41s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/53a8fdb2be684929baea59c630ed34df : SUCCESS in 9m 55s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e89d38759da34a6c85809fbe22bce316 : SUCCESS in 24m 35s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/66c6eb18c0264f40a3e40c77740e9e2b : SUCCESS in 26m 10s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/75be98856826446ba955ff9df8bf9a20 : SUCCESS in 22m 06s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/14f19c8271154d3e8dea527a9267cc09 : SUCCESS in 12m 17s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a871e872460f488798b72956db8af000 : SUCCESS in 23m 42s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/7bfa159964b1415d8ac75882e73dcc0d : SUCCESS in 1h 03m 21s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/b082fb3a215e4af093992727b97c07c9 : SUCCESS in 1h 20m 19s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/a62184895d414a50bce0b207dfc87c27 : SUCCESS in 52m 18s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/4fdae736fda244d280c0ee604f7ee908 : SUCCESS in 1h 22m 34s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":9},{"id":"d7667b03aa59a8a469118214e9ffd63dfc0c5f5f","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-09 07:22:57.000000000","message":"Patch Set 9:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d6bc517fd6c4422c9e3f56271531d5fe\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/957b1eb007c4443db6a2cff178f342be : SUCCESS in 1h 10m 34s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/eb569f396e0b4c49b9f84c875f791904 : SUCCESS in 1h 20m 48s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/baa4ad8b86964065a5c7604577db82f1 : TIMED_OUT in 1h 21m 12s (non-voting)","accounts_in_message":[],"_revision_number":9},{"id":"d425b947969fd71ccafe641ea8d38e645d03dbcd","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-07-14 00:57:33.000000000","message":"Patch Set 9:\n\n@katonalala@gmail.com @skaplons@redhat.com it\u0027s been a while since the last review round - could you take another look when you have time? The patch set kept getting updated mostly due to rebases on top of master, not major functional changes. Thanks!","accounts_in_message":[],"_revision_number":9},{"id":"3d3befee791ded7bb4c5b567adfb1a23502b9f7f","author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"date":"2026-08-11 09:46:11.000000000","message":"Patch Set 9: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":9},{"id":"65a6f62f63d319a098eb999aa3c8a693786bb0bc","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-08-19 02:19:43.000000000","message":"Patch Set 9:\n\n(1 comment)","accounts_in_message":[],"_revision_number":9},{"id":"6cea82ad73c223ecd674e581891a5e28b8a63ba8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-08-25 04:45:27.000000000","message":"Uploaded patch set 10.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":10},{"id":"c0285fa9062c6cd33bcd2f33fd81e21b86692b0a","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-08-25 04:46:24.000000000","message":"Patch Set 10:\n\n(1 comment)\n\nPS10 addresses a gap I found while re-reading the FIP precedent, plus the missing release note. The SNAT fix itself is unchanged.\n\n1. ha_chassis_group guard.\n\nThe FIP path in master only sets gateway_port when the gateway LRP is actually scheduled on a chassis:\n\n    if lrp and lrp.ha_chassis_group:\n        columns[\u0027gateway_port\u0027] \u003d lrp.uuid\n\nThat guard comes from LP#2083527 (dnat_and_snat ignored when the logical router is pinned to a chassis) and LP#2150866. PS9 set gateway_port whenever the LRP existed, so a logical router pinned to a chassis - where the LRP is not a distributed gateway port - would have hit the same failure mode for SNAT. PS10 applies the same condition, with a new unit test (test_update_nat_rules_skips_gateway_port_without_hcg) covering it.\n\n2. Release note added.\n\nIt includes an upgrade note: SNAT rules that already exist in the NB DB are not migrated by this patch, they pick up the gateway_port reference on the next external gateway update. LP#2035281 handled the equivalent for FIPs with a one-shot maintenance periodic (update_nat_floating_ip_with_gateway_port_reference). I kept that out of this patch to keep it reviewable - happy to add the SNAT backfill here or as a follow-up, whichever you prefer.\n\n3. Rebased on current master. Unit tests pass locally (test_ovn_client.py and services/ovn_l3/test_plugin.py).\n\n@skaplons@redhat.com - you had +2\u0027d PS7 and that vote was dropped by the PS8 rebase; could you take another look? @katonalala@gmail.com - your +2 on PS9 was dropped by this push, sorry for the churn. Hibiscus RC1 is targeted for the week of Sep 7, so it would be good to land this before then.","accounts_in_message":[],"_revision_number":10},{"id":"3ed32f56078df77d1806a9bdf1532ae835c176dd","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-08-25 05:21:08.000000000","message":"Patch Set 10: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/August-2026/Arista_Tempest_Testrefs/changes/32/990232/10 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":10},{"id":"855e0437bf160e9d5141f72e62db743cfbd1893e","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 06:25:14.000000000","message":"Patch Set 10: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/60bce75a04ff46989b7af17fd2f14ed5\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/aa319f7929ce4b6d8ab9a6134541f5d2 : SUCCESS in 42m 01s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/827a724db7c84603b4b2fa984158aad0 : SUCCESS in 28m 16s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/1b522cb66cd144328469d279cfc58625 : SUCCESS in 1h 36m 11s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/8eda5cbbcd08452e95004a070ff931d8 : SUCCESS in 55m 34s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/6960df0db0cd419a80bf5bed642f0aba : SUCCESS in 6m 58s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/7cc1c0130c8c4e5f8a8651f29d021fa0 : SUCCESS in 26m 28s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/f4d192c759eb4b4cb0f0733325a5c900 : SUCCESS in 20m 42s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/a1c739fed809491d8ef828118913e211 : SUCCESS in 26m 41s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e45eafc2fade42b69efafcbd44899911 : SUCCESS in 7m 17s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/9cd43cdd0c3545a897b9c2f91b683a90 : SUCCESS in 20m 41s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/2c44f3b3594244c1a9a11a79b9ecc1e2 : SUCCESS in 1h 33m 40s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/5fdd0734afb242e98c5d161a2ba2e8a9 : SUCCESS in 43m 41s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/a80acac47ca44c69b582553b2930cc99 : FAILURE in 50m 30s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/5770e3db4069412fa01636c0d8c5c944 : SUCCESS in 34m 44s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":10},{"id":"2d9650eeb78d117de06a8526144a720121fe2abc","author":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"date":"2026-08-25 07:01:09.000000000","message":"Patch Set 10:\n\nrecheck https://bugs.launchpad.net/nova/+bug/2161769\n\nneutron-ovn-tempest-ipv6-only-ovs-release failed on a single unrelated test, tempest.api.compute.servers.test_delete_server.DeleteServersTestJSON.test_delete_server_while_in_building_state (661 passed / 53 skipped / 1 failed).\n\nnova-compute aborted the build with \"Failure prepping block device: BDMNotFound: No Block Device Mapping with id 19\" from _default_block_device_names() -\u003e root_bdm.save(), i.e. the known delete-while-building race tracked as nova bug #2161769 (In Progress). The instance ends up in ERROR instead of being deleted, so tempest\u0027s wait_for_server_termination raises DeleteErrorException.\n\nNo router, external gateway or SNAT is involved in that test - it boots on a plain geneve tenant network with no volumes attached. All neutron jobs passed, including neutron-functional, neutron-tempest-plugin-ovn, neutron-ovn-grenade-multinode and neutron-ovn-rally-task.","accounts_in_message":[],"_revision_number":10},{"id":"7fedefd729159da7e7d28df8b00b8656a697ee1c","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-08-25 07:38:14.000000000","message":"Patch Set 10:\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/August-2026/Arista_Tempest_Testrefs/changes/32/990232/10 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":10},{"id":"dce42e30d69a64bff6cee084f9134b573e8e93d9","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 08:40:05.000000000","message":"Patch Set 10: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3e6ec2de55544bc698e97c3500b147a7\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/252e484360ec449b81ddd488cd523d3b : SUCCESS in 1h 21m 43s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/ef94667b2eb9412980096d0b0627db86 : SUCCESS in 1h 03m 06s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/abd9dfebf3f04afcad69fa0afe702841 : SUCCESS in 1h 37m 48s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/687e936ef267403182cdd4ed9c9f0ae3 : SUCCESS in 1h 05m 44s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/18936fb0ceda444292ba4b8f7681251c : SUCCESS in 6m 05s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/e039a348344e41f2a1ab13388975662c : SUCCESS in 28m 57s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/219d0d5a84694e3d8228f5a3c7665c60 : SUCCESS in 20m 59s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/d78572fbc4ef4805a81457266badb317 : SUCCESS in 29m 33s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b050abc5a6fd454db33b6cdeb15857ac : SUCCESS in 12m 23s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/81407a4829e543cbb3865d09908b7ee4 : SUCCESS in 22m 17s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/8ca7b53f7502497caf558aa56a3cd3ba : SUCCESS in 57m 27s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/058cd3ef166c471b83093d642ed928c1 : SUCCESS in 1h 17m 00s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/ff493a9999794fe39ef3d27abc5754ca : SUCCESS in 1h 07m 36s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/97b7209266e5476d9e16a5e16971c5b5 : SUCCESS in 35m 28s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":10},{"id":"514304f54fdc26efece4ad97b6d0b7d594220da8","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-25 08:44:46.000000000","message":"Patch Set 10:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/6ee717997ba94bf48382331d4e67a561\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/067c3f2a134b4507976ce8d179646d3a : SUCCESS in 1h 01m 02s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/2708b7ee2b2a45499d99d6bfe0b6dd40 : SUCCESS in 48m 48s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/13affde14163489d969c1686dc8b6f1a : SUCCESS in 45m 13s (non-voting)","accounts_in_message":[],"_revision_number":10},{"id":"44db3b44a85ab5cb3d4b6bb42eabbda52bad0830","author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"date":"2026-08-28 12:58:05.000000000","message":"Patch Set 10: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":10},{"id":"d7d52a9652e89ffde98bb4bec65fe3486afe5058","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-09-26 15:42:01.000000000","message":"Patch Set 11: Published edit on patch set 10.\n\nOutdated Votes:\n* Code-Review+2 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":11},{"id":"c2873d84ac98da20ef1893dec474a9bc5b1cf6bc","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-09-26 15:42:07.000000000","message":"Patch Set 12: Patch Set 11 was rebased","accounts_in_message":[],"_revision_number":12},{"id":"fe1a2c3e2914392b240c3955d0da27a6f715caaa","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-09-26 15:46:44.000000000","message":"Patch Set 13: Published edit on patch set 12.","accounts_in_message":[],"_revision_number":13},{"id":"e9fa8cd1d4b778addb0eb8e630399ba171e506ab","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-09-26 15:48:37.000000000","message":"Patch Set 14: Published edit on patch set 13.","accounts_in_message":[],"_revision_number":14},{"id":"34fe1721e79e75dc1545e8a4add112a68c361749","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-09-26 15:48:55.000000000","message":"Patch Set 14: Code-Review+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":14},{"id":"586e8bbc4584d01031d0695271f92cf7ac77d4de","author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"date":"2026-09-26 15:49:37.000000000","message":"Patch Set 14: Code-Review+1","accounts_in_message":[],"_revision_number":14},{"id":"38477e192d9176ec7856d4882e685b323a0b8b14","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-26 15:58:52.000000000","message":"Patch Set 11:\n\nArista third party testing FAILED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/32/990232/11 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":11},{"id":"45c60fc04817ec2a7d95405daa6a00965f3abee8","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-09-26 16:08:40.000000000","message":"Patch Set 15: Published edit on patch set 14.\n\nOutdated Votes:\n* Code-Review+1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n","accounts_in_message":[],"_revision_number":15},{"id":"4dc03a3fc309887f4cb3a452aeb550985a1d684b","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-09-26 16:08:56.000000000","message":"Patch Set 15: Code-Review+1","accounts_in_message":[],"_revision_number":15},{"id":"784a71c4a78143eb925f30ff8af1956b8121cd75","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-26 16:28:44.000000000","message":"Patch Set 12: Verified+1\n\nArista third party testing PASSED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/32/990232/12 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":12},{"id":"177850dc6b2ac232f76c9f388acb42bef51d3394","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-26 16:44:56.000000000","message":"Patch Set 13:\n\nArista third party testing FAILED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/32/990232/13 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":13},{"id":"d841f3a44ddebac0a17f1173d383c9936a91f76f","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-26 16:53:30.000000000","message":"Patch Set 14:\n\nArista third party testing FAILED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/32/990232/14 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":14},{"id":"caf3d6b15313690d7d7947b36a70e3d93b26f454","author":{"_account_id":9845,"name":"Arista CI","email":"arista-openstack-test@aristanetworks.com","username":"arista-test","tags":["SERVICE_USER"]},"date":"2026-09-26 17:02:00.000000000","message":"Patch Set 15:\n\nArista third party testing FAILED [ https://arista-openstack-ci.arista.com:8000/September-2026/Arista_Tempest_Testrefs/changes/32/990232/15 ]\n\nFor testing details or any questions please check https://wiki.openstack.org/wiki/Arista-third-party-testing","accounts_in_message":[],"_revision_number":15},{"id":"fd4b0055e60d88670ab2a6c2abc634ad69d8e43b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-26 17:08:39.000000000","message":"Patch Set 15:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5acf04d0fe594e08bababc54b77cc2d6\n\n- openstack-tox-py311-arm64 https://zuul.opendev.org/t/openstack/build/034e6369fbe749abbe20e4b8ff66f990 : SUCCESS in 47m 10s (non-voting)\n- openstack-tox-py314-arm64 https://zuul.opendev.org/t/openstack/build/3773830df137460cbf7fb46430955ad1 : SUCCESS in 57m 47s (non-voting)\n- openstack-tox-py313-arm64 https://zuul.opendev.org/t/openstack/build/0b8a503643a247eea816a036b67144fb : SUCCESS in 36m 33s","accounts_in_message":[],"_revision_number":15},{"id":"8241224b64d05342dc29ea269fcc671814e09d9c","author":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"},"date":"2026-09-26 17:36:49.000000000","message":"Patch Set 15: Code-Review+1","accounts_in_message":[],"_revision_number":15},{"id":"1d174fee37d5cf422ba15938f6b6f70c0c96a7bc","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-09-26 17:57:06.000000000","message":"Patch Set 15: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/fecde031c95b4213bb2c401e8b735f2f\n\n- tempest-integrated-networking https://zuul.opendev.org/t/openstack/build/901b463ce6ad41e586eb030ed4ff6b55 : SUCCESS in 46m 53s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/53029384e7dd46c3b0770391a87440e3 : SUCCESS in 29m 35s\n- neutron-tempest-plugin-ovn https://zuul.opendev.org/t/openstack/build/696689d7003145c182cae700d7260f3f : SUCCESS in 1h 41m 31s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d2069d3c8118473bb5bc1184a71bb3ba : SUCCESS in 42m 05s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/329ee1447b3f40e7b02d0f3ddbb1fe1d : SUCCESS in 7m 47s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/6801e4633b0b4d199dbe68148474ade5 : SUCCESS in 20m 51s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/0f7d3985b0164396a10ddc4c394dc27b : SUCCESS in 23m 47s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/dfe1a057621e483988bd46f045c427b9 : SUCCESS in 24m 18s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/71d2df92c263436aaa3b21aaf5c22236 : SUCCESS in 12m 56s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/21ad476eaa8c47ec88658f264f550638 : SUCCESS in 23m 55s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/e9dbf116d8bf4c4bbbd8859491c047ce : SUCCESS in 1h 43m 08s\n- neutron-ovn-grenade-multinode https://zuul.opendev.org/t/openstack/build/dda79ebf5859427f9d463de575063e28 : SUCCESS in 39m 01s\n- neutron-ovn-tempest-ipv6-only-ovs-release https://zuul.opendev.org/t/openstack/build/35161f783a6f478ba74a966b8e0e1487 : SUCCESS in 34m 36s\n- neutron-ovn-rally-task https://zuul.opendev.org/t/openstack/build/17cc12dca84d4388a71c77f356fd1015 : SUCCESS in 1h 17m 16s\n\nWarning:\n  Comments left for invalid file neutron/agent/l3/router_info.py","accounts_in_message":[],"_revision_number":15},{"id":"05b6a680fff48b0b0c22dc6835a8135fb49bca7f","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2026-09-28 16:23:56.000000000","message":"Patch Set 15: Code-Review+2","accounts_in_message":[],"_revision_number":15}],"current_revision_number":15,"current_revision":"99e87c5a1feb2b4e70379fde1470f0409b0088fe","revisions":{"1456409688f3819bf3bfa387face52cd19325fa7":{"kind":"REWORK","_number":1,"created":"2026-05-27 04:49:05.000000000","uploader":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"ref":"refs/changes/32/990232/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/1"}}},"commit":{"parents":[{"commit":"b1a6575e5bc27d44ec5e28f796fa86e37f94538c","subject":"Merge \"Delay FRR start on leaf/spine until controller interfaces exist\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/b1a6575e5bc27d44ec5e28f796fa86e37f94538c"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:47.000000000","tz":540},"subject":"Reject duplicate gateway ports on the same subnet","message":"Reject duplicate gateway ports on the same subnet\n\n_check_for_dup_router_subnets() allowed multiple gateway ports on\nthe same external network without checking whether they share the\nsame subnet.  When two GW ports exist on the same subnet, Neutron\ncreates duplicate SNAT rules in OVN NB with the same logical_ip\nbut different external_ip values.  OVN northd then generates\nconflicting lflows at the same priority, causing non-deterministic\nSNAT and intermittent connectivity loss.\n\nTrack which subnet IDs already have a GW port fixed_ip\n(ext_subnets_in_use) and reject adding another GW port on an\nalready-occupied subnet with a BadRequest error.  Multiple GW\nports on the same network with different subnets (e.g. IPv4 + IPv6)\nremain allowed.\n\nCloses-Bug: #2154334\nAssisted-By: Claude Opus 4.6\nMade-with: Cursor\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/1456409688f3819bf3bfa387face52cd19325fa7"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/1456409688f3819bf3bfa387face52cd19325fa7"}]},"branch":"refs/heads/master"},"c6f000bfd68333045504b19c40a3cb3b9f85a63b":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-05-27 04:53:02.000000000","uploader":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"ref":"refs/changes/32/990232/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/2"}}},"commit":{"parents":[{"commit":"b1a6575e5bc27d44ec5e28f796fa86e37f94538c","subject":"Merge \"Delay FRR start on leaf/spine until controller interfaces exist\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/b1a6575e5bc27d44ec5e28f796fa86e37f94538c"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:52:47.000000000","tz":540},"subject":"Reject duplicate gateway ports on the same subnet","message":"Reject duplicate gateway ports on the same subnet\n\n_check_for_dup_router_subnets() allowed multiple gateway ports on\nthe same external network without checking whether they share the\nsame subnet.  When two GW ports exist on the same subnet, Neutron\ncreates duplicate SNAT rules in OVN NB with the same logical_ip\nbut different external_ip values.  OVN northd then generates\nconflicting lflows at the same priority, causing non-deterministic\nSNAT and intermittent connectivity loss.\n\nTrack which subnet IDs already have a GW port fixed_ip\n(ext_subnets_in_use) and reject adding another GW port on an\nalready-occupied subnet with a BadRequest error.  Multiple GW\nports on the same network with different subnets (e.g. IPv4 + IPv6)\nremain allowed.\n\nCloses-Bug: #2154334\nAssisted-By: Claude Opus 4.6\nMade-with: Cursor\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/c6f000bfd68333045504b19c40a3cb3b9f85a63b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/c6f000bfd68333045504b19c40a3cb3b9f85a63b"}]},"branch":"refs/heads/master"},"14a2540609c2a000a4e82faf646dd92ab38ef555":{"kind":"REWORK","_number":3,"created":"2026-05-27 07:01:06.000000000","uploader":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"ref":"refs/changes/32/990232/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/3"}}},"commit":{"parents":[{"commit":"be04b56ea18b7c284e3fa201e391aa6c17a26060","subject":"Merge \"Skip OVNL3 post-fork init in non-API workers\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/be04b56ea18b7c284e3fa201e391aa6c17a26060"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 07:00:51.000000000","tz":540},"subject":"Reject duplicate gateway ports on the same subnet","message":"Reject duplicate gateway ports on the same subnet\n\n_check_for_dup_router_subnets() allowed multiple gateway ports on\nthe same external network without checking whether they share the\nsame subnet.  When two GW ports exist on the same subnet, Neutron\ncreates duplicate SNAT rules in OVN NB with the same logical_ip\nbut different external_ip values.  OVN northd then generates\nconflicting lflows at the same priority, causing non-deterministic\nSNAT and intermittent connectivity loss.\n\nTrack which subnet IDs already have a GW port fixed_ip\n(ext_subnets_in_use) and reject adding another GW port on an\nalready-occupied subnet with a BadRequest error.  Multiple GW\nports on the same network with different subnets (e.g. IPv4 + IPv6)\nremain allowed.\n\nCloses-Bug: #2154334\nAssisted-By: Claude Opus 4.6\nMade-with: Cursor\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/14a2540609c2a000a4e82faf646dd92ab38ef555"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/14a2540609c2a000a4e82faf646dd92ab38ef555"}]},"branch":"refs/heads/master"},"bb4c6b778a26c5b89a4bfc4d28675a0d4e34bac2":{"kind":"REWORK","_number":4,"created":"2026-05-27 08:00:00.000000000","uploader":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"ref":"refs/changes/32/990232/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/4"}}},"commit":{"parents":[{"commit":"be04b56ea18b7c284e3fa201e391aa6c17a26060","subject":"Merge \"Skip OVNL3 post-fork init in non-API workers\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/be04b56ea18b7c284e3fa201e391aa6c17a26060"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 07:59:21.000000000","tz":540},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nCloses-Bug: #2154334\nAssisted-By: Claude Opus 4.6\nMade-with: Cursor\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/bb4c6b778a26c5b89a4bfc4d28675a0d4e34bac2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/bb4c6b778a26c5b89a4bfc4d28675a0d4e34bac2"}]},"branch":"refs/heads/master"},"db40587dca07eb53070d5d8e19fe7c413812eca9":{"kind":"REWORK","_number":5,"created":"2026-05-27 23:48:54.000000000","uploader":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"ref":"refs/changes/32/990232/5","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/5","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/5"}}},"commit":{"parents":[{"commit":"be04b56ea18b7c284e3fa201e391aa6c17a26060","subject":"Merge \"Skip OVNL3 post-fork init in non-API workers\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/be04b56ea18b7c284e3fa201e391aa6c17a26060"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 23:48:42.000000000","tz":540},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nCloses-Bug: #2154334\nAssisted-By: Claude Opus 4.6\nMade-with: Cursor\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/db40587dca07eb53070d5d8e19fe7c413812eca9"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/db40587dca07eb53070d5d8e19fe7c413812eca9"}]},"branch":"refs/heads/master"},"c9b6ee4656f992c5663dddd5ed643a807ed9b2fe":{"kind":"REWORK","_number":6,"created":"2026-06-08 01:26:28.000000000","uploader":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"ref":"refs/changes/32/990232/6","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/6","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/6"}}},"commit":{"parents":[{"commit":"02c48204331524ea0ffdcc6e53f4f1c7391f5f68","subject":"Fix functional test failure due to OVN commit","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/02c48204331524ea0ffdcc6e53f4f1c7391f5f68"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-06-08 01:26:17.000000000","tz":540},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nCloses-Bug: #2154334\nAssisted-By: Claude Opus 4.6\nMade-with: Cursor\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\nCo-authored-by: Cursor \u003ccursoragent@cursor.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/c9b6ee4656f992c5663dddd5ed643a807ed9b2fe"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/c9b6ee4656f992c5663dddd5ed643a807ed9b2fe"}]},"branch":"refs/heads/master"},"8ab3f8aa50daaf276e4f985a20311a88f2c66603":{"kind":"REWORK","_number":7,"created":"2026-06-15 07:41:30.000000000","uploader":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"ref":"refs/changes/32/990232/7","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/7","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/7 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/7 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/7 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/7"}}},"commit":{"parents":[{"commit":"de087e8f12a916d46565a360b9a350356d8ed994","subject":"Merge \"ovn: pass gateway LRPs to _check_external_ips_changed\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/de087e8f12a916d46565a360b9a350356d8ed994"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-06-15 07:41:18.000000000","tz":540},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nCloses-Bug: #2154334\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/8ab3f8aa50daaf276e4f985a20311a88f2c66603"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/8ab3f8aa50daaf276e4f985a20311a88f2c66603"}]},"branch":"refs/heads/master"},"7e35a5f16d5460a7fde298ccb0ceeada575d080a":{"kind":"REWORK","_number":8,"created":"2026-07-06 07:52:51.000000000","uploader":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"ref":"refs/changes/32/990232/8","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/8","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/8 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/8 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/8 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/8"}}},"commit":{"parents":[{"commit":"6eff8a9862fcd988e3a8bec89a4c1bc6e263b9cf","subject":"Merge \"Make ``ovs_create_tap`` True by default\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/6eff8a9862fcd988e3a8bec89a4c1bc6e263b9cf"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-07-06 07:52:44.000000000","tz":540},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nCloses-Bug: #2154334\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/7e35a5f16d5460a7fde298ccb0ceeada575d080a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/7e35a5f16d5460a7fde298ccb0ceeada575d080a"}]},"branch":"refs/heads/master"},"ed13ef1ec146aee805c8d688a2b479bc90eb0d8b":{"kind":"REWORK","_number":9,"created":"2026-07-09 02:14:24.000000000","uploader":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"ref":"refs/changes/32/990232/9","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/9","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/9 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/9 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/9 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/9"}}},"commit":{"parents":[{"commit":"e89e0a2e26850aa2d9d689f46c1df525e544ce69","subject":"Merge \"conf: Add missing ``min``/``max`` bounds to integer config options\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/e89e0a2e26850aa2d9d689f46c1df525e544ce69"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-07-09 02:14:17.000000000","tz":540},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nCloses-Bug: #2154334\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/ed13ef1ec146aee805c8d688a2b479bc90eb0d8b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/ed13ef1ec146aee805c8d688a2b479bc90eb0d8b"}]},"branch":"refs/heads/master"},"d76f6d18351a88e88e98956498ce35776bd14a77":{"kind":"REWORK","_number":10,"created":"2026-08-25 04:45:27.000000000","uploader":{"_account_id":38822,"name":"JayGue Lee","display_name":"JayGue Lee","email":"enginrect@gmail.com","username":"enginrect"},"ref":"refs/changes/32/990232/10","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/10","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/10 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/10 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/10 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/10"}}},"commit":{"parents":[{"commit":"e248fffe0945af38aada202ba519c2a1a5dde1e8","subject":"Merge \"Revert \"[CI][FT] Tempoarary skip failing tests centos 10 stream\"\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/e248fffe0945af38aada202ba519c2a1a5dde1e8"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-08-25 04:45:20.000000000","tz":540},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nAs in the floating IP path, the reference is only set when the\ngateway LRP is scheduled on a chassis, that is, when it has a\nha_chassis_group.  A logical router pinned to a chassis has no DGP\nand northd ignores NAT rules that reference its LRP, see LP#2083527\nand LP#2150866.\n\nSNAT rules that already exist in the northbound database are not\nmigrated by this patch; they get the gateway_port reference the next\ntime the router external gateway is updated.\n\nCloses-Bug: #2154334\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/d76f6d18351a88e88e98956498ce35776bd14a77"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/d76f6d18351a88e88e98956498ce35776bd14a77"}]},"branch":"refs/heads/master"},"e21ae0424b1468757aa92af0724b12d3ae084ebd":{"kind":"REWORK","_number":11,"created":"2026-09-26 15:42:01.000000000","uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/32/990232/11","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/11","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/11 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/11 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/11 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/11"}}},"commit":{"parents":[{"commit":"e248fffe0945af38aada202ba519c2a1a5dde1e8","subject":"Merge \"Revert \"[CI][FT] Tempoarary skip failing tests centos 10 stream\"\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/e248fffe0945af38aada202ba519c2a1a5dde1e8"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"Ivan Anfimov","email":"lazekteam@gmail.com","date":"2026-09-26 15:41:58.000000000","tz":0},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nAs in the floating IP path, the reference is only set when the\ngateway LRP is scheduled on a chassis, that is, when it has a\nha_chassis_group.  A logical router pinned to a chassis has no DGP\nand northd ignores NAT rules that reference its LRP, see LP#2083527\nand LP#2150866.\n\nSNAT rules that already exist in the northbound database are not\nmigrated by this patch; they get the gateway_port reference the next\ntime the router external gateway is updated.\n\nCloses-Bug: #2154334\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/e21ae0424b1468757aa92af0724b12d3ae084ebd"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/e21ae0424b1468757aa92af0724b12d3ae084ebd"}]},"branch":"refs/heads/master"},"b7e855907cfe4bf9365d130610c85e0bc5461635":{"kind":"TRIVIAL_REBASE","_number":12,"created":"2026-09-26 15:42:07.000000000","uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/32/990232/12","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/12","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/12 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/12 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/12 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/12"}}},"commit":{"parents":[{"commit":"bbb6b2d6bd0077095a88d6adc893c93893b7e081","subject":"evpn: Keep non-EVPN HA chassis groups during db sync repair","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/bbb6b2d6bd0077095a88d6adc893c93893b7e081"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"Ivan Anfimov","email":"lazekteam@gmail.com","date":"2026-09-26 15:42:07.000000000","tz":0},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nAs in the floating IP path, the reference is only set when the\ngateway LRP is scheduled on a chassis, that is, when it has a\nha_chassis_group.  A logical router pinned to a chassis has no DGP\nand northd ignores NAT rules that reference its LRP, see LP#2083527\nand LP#2150866.\n\nSNAT rules that already exist in the northbound database are not\nmigrated by this patch; they get the gateway_port reference the next\ntime the router external gateway is updated.\n\nCloses-Bug: #2154334\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/b7e855907cfe4bf9365d130610c85e0bc5461635"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/b7e855907cfe4bf9365d130610c85e0bc5461635"}]},"branch":"refs/heads/master","description":"Rebase","conflicts":{"base":"e248fffe0945af38aada202ba519c2a1a5dde1e8","ours":"e21ae0424b1468757aa92af0724b12d3ae084ebd","theirs":"bbb6b2d6bd0077095a88d6adc893c93893b7e081","merge_strategy":"recursive","contains_conflicts":false}},"4db3bc843eaf6fa573a4ec2ff58f800a39d2f1ef":{"kind":"REWORK","_number":13,"created":"2026-09-26 15:46:44.000000000","uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/32/990232/13","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/13","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/13 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/13 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/13 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/13"}}},"commit":{"parents":[{"commit":"bbb6b2d6bd0077095a88d6adc893c93893b7e081","subject":"evpn: Keep non-EVPN HA chassis groups during db sync repair","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/bbb6b2d6bd0077095a88d6adc893c93893b7e081"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"Ivan Anfimov","email":"lazekteam@gmail.com","date":"2026-09-26 15:46:44.000000000","tz":0},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nAs in the floating IP path, the reference is only set when the\ngateway LRP is scheduled on a chassis, that is, when it has a\nha_chassis_group.  A logical router pinned to a chassis has no DGP\nand northd ignores NAT rules that reference its LRP, see LP#2083527\nand LP#2150866.\n\nSNAT rules that already exist in the northbound database are not\nmigrated by this patch; they get the gateway_port reference the next\ntime the router external gateway is updated.\n\nCloses-Bug: #2154334\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/4db3bc843eaf6fa573a4ec2ff58f800a39d2f1ef"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/4db3bc843eaf6fa573a4ec2ff58f800a39d2f1ef"}]},"branch":"refs/heads/master"},"e9e7667a8502b25342a1c05c2500a2b0f453d005":{"kind":"REWORK","_number":14,"created":"2026-09-26 15:48:37.000000000","uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/32/990232/14","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/14","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/14 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/14 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/14 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/14"}}},"commit":{"parents":[{"commit":"bbb6b2d6bd0077095a88d6adc893c93893b7e081","subject":"evpn: Keep non-EVPN HA chassis groups during db sync repair","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/bbb6b2d6bd0077095a88d6adc893c93893b7e081"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"Ivan Anfimov","email":"lazekteam@gmail.com","date":"2026-09-26 15:48:37.000000000","tz":0},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nAs in the floating IP path, the reference is only set when the\ngateway LRP is scheduled on a chassis, that is, when it has a\nha_chassis_group.  A logical router pinned to a chassis has no DGP\nand northd ignores NAT rules that reference its LRP, see LP#2083527\nand LP#2150866.\n\nSNAT rules that already exist in the northbound database are not\nmigrated by this patch; they get the gateway_port reference the next\ntime the router external gateway is updated.\n\nCloses-Bug: #2154334\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/e9e7667a8502b25342a1c05c2500a2b0f453d005"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/e9e7667a8502b25342a1c05c2500a2b0f453d005"}]},"branch":"refs/heads/master"},"99e87c5a1feb2b4e70379fde1470f0409b0088fe":{"kind":"REWORK","_number":15,"created":"2026-09-26 16:08:40.000000000","uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/32/990232/15","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/32/990232/15","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/15 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/15 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/32/990232/15 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/32/990232/15"}}},"commit":{"parents":[{"commit":"bbb6b2d6bd0077095a88d6adc893c93893b7e081","subject":"evpn: Keep non-EVPN HA chassis groups during db sync repair","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/bbb6b2d6bd0077095a88d6adc893c93893b7e081"}]}],"author":{"name":"JayGue Lee","email":"enginrect@gmail.com","date":"2026-05-27 04:48:43.000000000","tz":540},"committer":{"name":"Ivan Anfimov","email":"lazekteam@gmail.com","date":"2026-09-26 16:08:40.000000000","tz":0},"subject":"Fix SNAT ambiguity for routers with multiple gateway ports","message":"Fix SNAT ambiguity for routers with multiple gateway ports\n\nWhen a router has multiple gateway ports on the same subnet,\nupdate_nat_rules() creates SNAT rules without setting the\ngateway_port column.  OVN northd then falls back to\nfind_lport_address() which uses subnet-membership matching to\nresolve the distributed gateway port (DGP).  When two LRPs share\na subnet, both SNAT rules resolve to the same DGP, producing\nconflicting lflows with identical priority and match but different\nactions (ct_snat to different IPs).  This causes non-deterministic\nSNAT and intermittent connectivity loss.\n\nSet gateway_port on each SNAT rule so that OVN northd binds each\nrule to the correct DGP.  This produces distinct outport matches\nand eliminates the flow conflict.  Active-active HA configurations\n(ECMP, BFD, gateway chassis anti-affinity) continue to work as\ndesigned in LP#2002687.\n\nAs in the floating IP path, the reference is only set when the\ngateway LRP is scheduled on a chassis, that is, when it has a\nha_chassis_group.  A logical router pinned to a chassis has no DGP\nand northd ignores NAT rules that reference its LRP, see LP#2083527\nand LP#2150866.\n\nSNAT rules that already exist in the northbound database are not\nmigrated by this patch; they get the gateway_port reference the next\ntime the router external gateway is updated.\n\nCloses-Bug: #2154334\nChange-Id: I776a9d3e9092fc062fcade8a5499b5dd0bfb1756\nSigned-off-by: JayGue Lee \u003cenginrect@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/99e87c5a1feb2b4e70379fde1470f0409b0088fe"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/99e87c5a1feb2b4e70379fde1470f0409b0088fe"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":37632,"name":"Dmitriy Chubinidze","email":"dcu995@gmail.com","username":"chubinidzedr"}},{"label":"Workflow","status":"MAY"},{"label":"Review-Priority","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Review-Priority","description":"Review priority","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"-label:Review-Priority\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":[],"failing_atoms":["label:Review-Priority\u003dMIN"],"atom_explanations":{"label:Review-Priority\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
