)]}'
{"id":"openstack%2Freleases~997393","triplet_id":"openstack%2Freleases~master~I4d102cbb553136091b63f17a812729609f64d68b","project":"openstack/releases","branch":"master","topic":"neutron_29.0.0.0b1","attention_set":{},"removed_from_attention_set":{"16688":{"account":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"last_update":"2026-07-16 08:29:03.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I4d102cbb553136091b63f17a812729609f64d68b","subject":"Release neutron 29.0.0.0b1 for Hibiscus","status":"MERGED","created":"2026-07-15 13:09:55.000000000","updated":"2026-07-16 08:29:03.000000000","submitted":"2026-07-16 08:29:03.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"997393-neutron_29.0.0.0b1","meta_rev_id":"3a455720bd1128a4f51b616f146b3a836fa0f228","_number":997393,"virtual_id_number":997393,"owner":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":0,"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-07-16 08:29:03.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"all":[{"value":2,"date":"2026-07-16 08:21:40.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":1,"date":"2026-07-16 06:36:05.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"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":{"approved":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"all":[{"value":1,"date":"2026-07-16 08:21:40.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":0,"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"PTL-Approved":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"value":0,"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"tag":"autogenerated:zuul:release-approval","value":1,"date":"2026-07-16 06:36:55.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{" 0":"Not approved yet","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"}],"REVIEWER":[{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-07-15 13:10:30.000000000","updated_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"reviewer":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"state":"CC"},{"updated":"2026-07-15 13:10:30.000000000","updated_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"reviewer":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"state":"CC"},{"updated":"2026-07-15 13:11:09.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":"CC"},{"updated":"2026-07-15 13:22:13.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-07-16 06:36:05.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":"REVIEWER"},{"updated":"2026-07-16 08:21:40.000000000","updated_by":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"reviewer":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"state":"REVIEWER"}],"messages":[{"id":"1b5dee50996431ecb3d72d7850a5e150694b1a24","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"date":"2026-07-15 13:09:55.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"052b069701aae00fd4b7845998f998ef2dfad19b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-15 13:22:13.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/dd8350c6a6e14616a47d8a4a0eb21c7c\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/6b9159ef05da4f50a8996a2e42433b38 : SUCCESS in 9m 27s\n- releases-tox-validate https://zuul.opendev.org/t/openstack/build/559f268b3d1d4688aa05be98b2a35445 : SUCCESS in 6m 33s\n- releases-tox-list-changes https://zuul.opendev.org/t/openstack/build/f327a524c4bb46108fc054107e10f67c : SUCCESS in 6m 47s","accounts_in_message":[],"_revision_number":1},{"id":"10906123048cecb87e07ec937e2bf86da0299b82","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2026-07-16 06:36:05.000000000","message":"Patch Set 1: Code-Review+1","accounts_in_message":[],"_revision_number":1},{"id":"31123e0d813f6d5489e915d910b0d0e4600842b2","tag":"autogenerated:zuul:release-approval","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-16 06:36:55.000000000","message":"Patch Set 1: PTL-Approved+1","accounts_in_message":[],"_revision_number":1},{"id":"e1cc592e1d515af495451b576aee230f63d1dd38","author":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"},"date":"2026-07-16 08:21:40.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"2ffd0c967f0b07e84fb75657c4f7e17369c33468","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-16 08:21:51.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"bf488cd0db5944c572b07d1adf435356a3137268","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-16 08:29:03.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/89ab6526942c425fac879e7adda13b94\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/364d0fafece34a2e99d6e6854144da02 : SUCCESS in 2m 04s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/1374feee95ad42d0b004a6c5e1f2b60d : SUCCESS in 5m 44s\n- releases-tox-validate https://zuul.opendev.org/t/openstack/build/cf46fd8203164fc1886536e61a627307 : SUCCESS in 5m 24s","accounts_in_message":[],"_revision_number":1},{"id":"3a455720bd1128a4f51b616f146b3a836fa0f228","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-07-16 08:29:03.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"a5e358f8e15d9648b0b628f755e56b398c4a3bb1","revisions":{"a5e358f8e15d9648b0b628f755e56b398c4a3bb1":{"kind":"REWORK","_number":1,"created":"2026-07-15 13:09:55.000000000","uploader":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"ref":"refs/changes/93/997393/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/releases","ref":"refs/changes/93/997393/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/releases refs/changes/93/997393/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/releases refs/changes/93/997393/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/releases refs/changes/93/997393/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/releases refs/changes/93/997393/1"}}},"commit":{"parents":[{"commit":"25be835443f3659e11aaa8f5c342d87b9d35fbb1","subject":"Release python-openstackclient 10.2.1 for Hibiscus","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/releases/commit/25be835443f3659e11aaa8f5c342d87b9d35fbb1"}]}],"author":{"name":"Rodolfo Alonso Hernandez","email":"ralonsoh@redhat.com","date":"2026-07-15 13:00:32.000000000","tz":120},"committer":{"name":"Rodolfo Alonso Hernandez","email":"ralonsoh@redhat.com","date":"2026-07-15 13:06:21.000000000","tz":120},"subject":"Release neutron 29.0.0.0b1 for Hibiscus","message":"Release neutron 29.0.0.0b1 for Hibiscus\n\n$ git log --oneline --no-merges 28.0.0..32f99902dd\n9d46c12699 ovn: Remove ``BaseEvent`` and fix ``matches()`` bypassing ``base_match()``\n0a396898da [CI][FT] Tempoarary skip failing tests centos 10 stream\nc615e18da9 Fix load_db_migration_drivers\nc53d632011 OVN maintenance log ``start_message`` should be a string\n5c4316a897 Add agentic coding guidance and docs\n6ac6bb3951 db: Remove LinuxBridge monolithic plugin dead migration code\ne5b5f751fb db: Remove OVS monolithic plugin dead migration code\nf2dca91c10 db: Remove Metaplugin and BigSwitch dead migration code\n8cbb5b8e81 db: Remove NEC dead migration code\nb5b9f8417d db: Remove Nuage dead migration code\n1052416219 db: Remove Brocade dead migration code\na2aedeb52f db: Remove VMware/NSX dead migration code\nc7e9afafef ovn: Fix ChassisAgentTypeChangeEvent ignoring events attribute\nb1bc2e7fdd ovn: Fix ``UpdateLRouterCommand`` ignoring ``if_exists``\n7187c97ea9 ovn: Skip LSP host info update for router ports\n38cfc8f727 Extend timeout for getting advertised routes after restart\n216ca5ae44 db: Remove Cisco ML2 Nexus dead migration code\nee98a7f55a db: Remove ``cisco_init_ops`` dead migration code\nc0389e0a76 ovn: Fix HAChassisGroupRouterEvent setting options.chassis on physnet routers\n404ac7cd12 conf: Add missing ``min`` bounds to BGP VRF ID options\n781fbfacc5 conf: Add missing ``min`` bounds to HA conntrackd options\n76e7ea75a4 conf: Add missing ``min`` bounds to count and size options\nfe92ab3560 conf: Add missing ``min`` bounds to timeout and interval options\n4a1af9d3ca conf: Add missing ``min``/``max`` bounds to integer config options\n9eaab60c11 ovn: Handle ``PortNotFound`` in ``update_virtual_port_parent_host``\n7c38331256 doc: Remove Linux bridge mechanism driver references\n3ff8ddf67f trivial fix: Fix typo on PVLAN internals image\n77c05fc1c5 ovn: Filter provider networks at DB level in ``check_fdb_aging_settings``\n813cae47ac ovn: Advertise metadata IPv6 route via RA Route Information Option\n47c000a10b ft: Close metadata proxy server socket on garbage collection\ne6a0f5afbe rpc/ovn: Use base OVN IDL for RPC workers, disable notification events\n957e4f382b Move neutronclient to test requirements\n821362d9b3 ovn: Add ``TimedOnetimeEvent`` for auto-expiring OVSDB watchers\n5ca8c07443 Fix error handling in PVLAN\nf4061e7541 Doc: Add page for stadium API groups\n8e06b227ad Add PVLAN documentation\n2a41d493e0 Make ``ovs_create_tap`` True by default\n4459640858 Add shebang to mark bash files\n39cacb24cc Fix ugly traceback when attaching a subnet to a router\n379c7de9d2 [FT] Wait some time for lsp tag to be set\n2683e23aa9 [UT] Update base_mac config override\n70394b3df6 ovn: Fix HA_Chassis_Group race condition in port create/update\n958d734b55 tests: Fix random failure in ``test_router_update_with_too_many_routes``\n599795c1ae doc: Add supported quota resources table to ops-quotas guide\nd89b045218 evpn: Remove child_vxlan_port config option\n2856ae5e22 segments: Catch RP not found in ``_delete_nova_inventory``\n2464943d1c ovn: Handle missing ``neutron:network_name`` in sibling LRPs\n1e476b8f6d evpn: Add priority to EVPN callbacks\n454df36b20 Fix PVLAN multinode support\n3f8cc577cf Fix consider-iterating-dictionary pylint warnings\na801343fca Retry when NetlinkDumpInterrupted exception\n0b3798e821 evpn: delete EVPN HA Chassis Group on router deletion\n534c649a05 ovn_client: Reset only defined LRP.options\nf810c92d19 Remove missing ``max_routes`` option in testing\nbc55b63515 Fix consider-using-enumerate pylint warnings\n5c6cd0d750 Revert \"Skip test for vrf delete on Centos9 with frr 8.5\"\n4aabb3e8d8 Increase ``allowed_network_downtime`` to 7.0\nb999e59fec Fix too-many-nested-blocks pylint warnings\n8b5e6f19dc Replace keepalived-state-change by a dash script\n953495bb40 Delete ``FloatingIPDNS`` row on FIP disassociation\ne1799a38a7 Implement router_route quota using the Neutron quota engine\na8856b7c6f Add security-groups-default-statefulness API extension\n91abb5e720 Only set the maintenance worker lock on the worker\n425f97dc8c FrrDriver Vtysh accepts --vty_socket argument\nd70bdc9df5 [metadata] cleanup response headers\n718434b3ee Fix unnecessary-pass pylint warnings\nfa2b68d907 Add configurable HAProxy timeouts for metadata proxy\nf95e8ce312 Remove unused CI job definitions\ne528d8b715 Remove the OVN Metadata agent grenade and n-t-p CI jobs\n0b8c42474b Drop redundant validation of ha_vrrp_auth_password\nad15787bf2 Re-install extension flows lost during ovs restart\nb877e9b4bd Fix superfluous-parens pylint warnings\n07c07d9574 Skip test for vrf delete on Centos9 with frr 8.5\nb4c1144882 Call static method ``RangeAllocator._make_params``\n7e68631252 Rootwrap filters for vtysh\nfa408cd7c3 doc: fix RST formatting in ``modify_fields_to_db`` and ``modify_fields_from_db``\n92181b39e7 Guard tun_br in _restore_local_vlan_map when no br-tun\ncea1a8ab58 Frrinit.sh scripts spawns background deamons\n129e88e461 Explicitly create log directories in the FrrFixture\na8feb94e41 More tag_request fixes\n75b6c30bb6 Fix EVPN Port_Binding events\n25a7c59512 Remove UnknownNetworkType InvalidAddressRequest and IPAllocationFailed\nb2f6cb8fff l3: Remove unused ``ha_keepalived_state_change_server_threads`` config option\n5d598cf16e pecan: Optimize ``_exclude_attributes_by_policy`` on list responses\nc40909abed Bump os-ken to 4.2.1 version\n6ffe5056af policy: remove ``OwnershipValidationHook``, update ``create_port`` rule\n13b62f46b6 Add PVLAN extension policy rules\n7ebcce0b8d ovs: defer ports with invalid ofport in ``_process_port``\n8836289858 doc: Document runtime ``uwsgi`` Python module in WSGI guide\n7f986bb199 Integrate FrrDriver into OVN Agent EVPN Extension\nb252d4aa3c [functional tests] Handle frrinit.sh path for CentOS\n83f1d83056 Ensure MaintenanceWorker lock set before connect\nae7e7b5118 Switch from setting LSP.tag to LSP.tag_request\n1fc95d96bd Add RandomRangeAllocator for random VNI selection\n445966139f evpn: Remove EVPN_VRF_NAME_LEN constant\nf379dea40d evpn: Set HA chassis group on EVPN LRP\n10358060a8 BGP job: move to experimental pipeline\n8ccf3f9e79 Fix ``update_router:enable_default_route_*`` policies\n16fadc5b20 Remove the unused ``api_workers`` config knob\n8a4a4b13f5 ovs: skip OF operations for ports with invalid ofport\n06aaa4cc2d quota: Fix quota details API error with unloaded service plugins\n012c9e65b6 Frr should write running config to memory to persist reboots\n4bb1a29ddc FRR driver for a EVPN router\nd8eb719ea9 evpn: Pass VLAN ID in port binding events to FSM\n6d43aab58f Integrated SVD into OVN Agent EVPN Extension\nb54f6643a4 doc: Add missing zero quota information in subnetpools\n25c8c8fb25 evpn: Implement OVN portion\n2064a3992f Enable PVLAN service plugin in DevStack\n022c7bd18c Remove contrib module from neutron.tests\n2232cd1a75 epvn: Split Svd into generic and Evpn specific\nf0aad944fb Use policy check strings from neutron-lib\ndb196cfd91 Fix Update response after updating PVLAN properties\n233ed6af79 [CI] Bump tox cover timeout by 20 minutes\n2071ac8a7b Add compute1 node to BGP multinode tempest job\n570efdbe18 Created Single VxLAN Device management for EVPN\n342bca3a31 Add a neutron dependency change detection tool\n02c4820433 Fix functional test failure due to OVN commit\nb50aa8525d Validate [DEFAULT] setproctitle while loading config files\n7a70217d78 [OVN] Fix race condition during floating ip deletion\nc695003d10 Use idl.has_lock instead of idl.is_lock_contended for OVSDB lock checks\nd2732d3fc0 Add generic RangeAllocator and VNI/VLAN allocation\nfe7d37a018 evpn: Implement DB model for evpn_vni attribute\nbc8a55497f Fix cross-project access to router conntrack helpers\n8e74462754 Remove ssl options\n4cc0db8917 Remove remaining bind options\n637444bd1c ovn: read LSP ``up`` state from IDL cache in ``update_lsp_host_info``\n26c1405d96 ovn: avoid nested transaction in ``_delete_port`` virtual parent check\nd10035dc0c ovn: pass gateway LRPs to _check_external_ips_changed\n386781c13b bgp: Make main BGP router name not configurable\ncc2d782120 Add PVLAN OVN Driver\na198a3ce67 doc: Update OVN features.rst with all supported extensions\n7fdcc7fa28 bgp: Implement peer-to-peer flows on Interconnect Bridge\nfe3cc88a2b Fixture for FrrService\nb91fe9c6e4 Add ``l3-agent-scheduler-ha-priority`` extension for ML2/OVN\n5795318950 Add ``update_l3-router`` policy\n7bbadcb63a Fix issues in _check_router_interface_not_in_use()\n3d42164244 Add docs and typing to agent extension events\n6c7f8ae6d7 Fix duplicate ``AgentSchedulerDbMixin`` periodic worker descriptions\na756a1cefa Fix race condition in worker lifecycle probe\n8fde7d461a [OVS FW] Clean invalid conntrack entries after OF rules are applied\n51584b0ec5 ovn: Add subnet_onboard API extension support\n29492ce4b2 Remove unused function main_api_uwsgi\n0d09ce9d22 Use models_v2.Port.id in port query\nf8b833749e Use ``objects_exist(id\u003did)`` to check resources\n0ba5b93e4f Change to do a single rule lookup per-label\ndd700f6be9 Change some first() occurences to one_or_none()\n72202190ae evpn: Add port_binding events for OVN agent EVPN extension\n9557e8e56a Allow passing instantiated events to ovn agent\nd92834a035 doc: Add admin guide for Neutron server-side processes\n99261fdf59 doc: Document Neutron notification events and payloads\nf4cba92b9a doc: Fix outdated OVN DHCP/DNS statement in features.rst\nb163f00b01 doc: Fix typos and update outdated URLs\n4679ad040f ovn: batch subnet queries in _get_nets_and_ipv6_ra_confs_for_router_port\n3f950cc373 bgp: Enable arp proxy on main BGP router\n77fcf367ca bgp: Create new InterconnectBridge\n96f822bb9d ovn: remove redundant get_port() in _add_router_ext_gw\n918a59106c bgp: Do not learn routes from main BGP LRP\nd35b4b3cbd doc: Fix RST syntax errors in documentation\n0d0ff0fda6 evpn: Add common constants\n6913303509 Fix tunnel network detection to use tunnel type driver ranges\n1b58ef38b7 Revert \"tests: Handle change in hash for neutron-lib field fixes\"\n4bc5833176 Group periodic thread workers with selective wrapping\nab5836c6dd doc: Document policy scope types and default roles\nf0f77d08ab Use Neutron FIP UUID as OVN ``NAT`` row UUID\n35827a778f Use BaseChecks from neutron-lib\nd0f61db2e5 Fix port RBAC policies to require network ownership\ndc532db6d2 Fix create_agent policy operations path\ne9a9b047af doc: Add OVN BGP admin guide for spine-and-leaf fabrics\n44c565a459 [OVN] Mark agents down when Chassis is deleted but Chassis_Private remains\nf7f75e21fa Add PVLAN service plugin\naa18156e29 Add worker lifecycle DEBUG logging decorator\nb6d260e10c Skip OVNL3 post-fork init in non-API workers\n9769135199 Revert \"Group periodic thread workers together\"\ncd8f88e3ec Fix VLAN network detection to use VlanTypeDriver ranges\ndf79bcc977 Fix PF GET/PUT parent floating IP validation\nea4f4094a3 Deprecate version module\n9c7d9417f9 Revert \"remove pbr as runtime dependency\"\n99c8ab8d16 Delay FRR start on leaf/spine until controller interfaces exist\n90ee661f9e bgp: Always assume just one provider switch\n7bf18e8b66 ml2: notify mechanism drivers in reverse order during port delete\nb7a5e077ed evpn: API and service plugin implementation\n3167339a02 doc: Remove reference to dead external mechanism drivers\n3ea437e660 bgp: Don\u0027t allow VLAN networks\n4f821c6aca Read the correct trigger object class\ne7bc7ec798 cleanup plugin per TODO for inheritance\nc4658b56f6 Fix test_auth_enforced for keystonemiddleware AuthTokenPlugin removal\nbfccba85bb EVPN extension finite state machine event handler\n0b12b3a845 Created OVN Agent EVPN extension \u0026 netlink monitor\n76e1be24ee Set MTU of metadata and OVN LB HM port tap interfaces to network MTU\n740124478b Fix plural policy names in tagging controller and floatingip policy\n49f12a63ef doc: Add warning about QoS low bandwidth limits and MTU interaction\n0b92fdd731 Remove python 3.10 references\n131d985c5e OVNL3RouterPlugin register events in Neutron API workers\n9e1457f592 Group periodic thread workers together\n491a7723f2 Guard BGPWorker against missing _reconciler\nf7bb4f907a remove pbr as runtime dependency\ne8535bb92b Use is_(True) in sql queries for booleans\n703aacb180 bgp: Fix waiting for port on BGP bridge\ncba7693b52 Remove model_query from db/_utils.py\n5d653a3bdf pyproject: Update packaging configuration\nc24a0f1b61 [OVN] Fix shared admin_context in OVSDB monitor event handlers\nf3e6e79e88 Use neutron-lib quota_check_limit_default API definition\n4bb139eb24 Skip functional tests for git config update\n72e808fb0d Split L3RpcNotifierMixin to avoid RPC callbacks for OVN\n2a51229e82 Upgrade to tox 4.28.0\nfb50d33ba9 Set attempts\u003d1 in ``neutron-ovn-bgp-tempest-multinode`` job\nbe5d6f44d4 Use ``query.first() is not None`` to check resources\n144300867d Remove setting of enforce_scope in unit tests\n44d061a03d Fix deletion of floating IPs with managed DNS records\n299b0c5c88 [OVN] Only set NAT gateway_port when distributed FIP is enabled\n782b07dc60 Change ovn_router_indirect_snat config option to True\nd18cf03942 trivial: Convert add_keepalives to function\nd029ad78f4 Handle unset socket\nbf41c5493f Add dns forwarder l2 extension\nf0d2cad3d8 Add missing address_group CRUD and action policy rules\n1a0a9641d7 [service-type] Clear warnings for using ServicePluginBase\nf895d21a0d ML2: tri-state checks for vlan_transparent/qinq\n2409a03732 [CI] Move CentOS jobs to 10-stream\nf265b7ddfe bgp: Update main router policies when chassis is added\n3a83f29fd7 Fix pylint invalid-sequence-index false positive for internal_ports (2)\nff0191ba6a Replace OVN Metadata agent with OVN agent\nc25c3bcd42 Drop redundant and unused doc8\n2c09775009 Fix FIP NAT external_mac race when LSP is already UP\n4a8f562c92 Remove fip64 extension support from floating IP pools\n606ef2a5cd Populate OVN AgentCache in the db-sync tool\ncce2a2d6b3 bgp: Handle chassis scale in/out\n2e778ab371 Revert \"[eventlet-removal] Remove logger mechanism from functional tests\"\n260a63e118 Fix pylint invalid-sequence-index false positive for internal_ports\nfecac2cc88 Handle invalid MAC in metadata agent port provisioning\n6f529d902f Fix return value of empty-MAC guard in metadata agent\n70eb118ac6 Enable \"filter_validation\" extension by default\n0880e8724e Remove NEUTRON_DEPLOY_MOD_WSGI from zuul jobs\n58fdeda1b5 Reject multicast addresses in AAP\n153db8a670 Fix unbounded thread pool in OVN MaintenanceThread\n474b522f70 Pass ``external_ids`` in the ``address_set_add`` command\n9bc3699f34 tests: Handle change in hash for neutron-lib field fixes\n9cc303d11a Add missing Router ID and AZ hits in the HCG.external_ids\n9dc1a794e1 Update jobs based on testing runtime for 2026.2\n846451f14a Remove update_router_static_routes()\nfc20b17b24 Sorting, limiting and pagination support for agent list\n4e4838582e bgp: Use NIC types when obtaining peer NIC\n57bb384ca2 ovn: Touch only resources managed by Neutron\n55e1fb9739 Add Neutron mark to localnet ports\nea7126655d bgp: Redistribute local only addresses\n150faa0f37 Remove deprecated wsgi config options\nf1a6656baa Add documentation for BGP multinode tempest job\nb437cc9f51 new job tempest-multinode-with-bgp\nb3a1feee1c func: Remove testrun.txt\n24af02bf9b Use project_id in agent DB code for AZs\ned3f98160e Fix AttributeError on DeletedChassis missing other_config\na5420f5e6f [functional fips] Switch venv prep to python3.12\n5ad682fb91 [FT] Do not clean the ``OVN_HOST_ID_EXT_ID_KEY`` key\n480abb2ac3 bgp: Collect logs from Venvs\n1b0a6a7ed2 Batch SG rule ``ACL`` operations into single OVN NB transactions\nddff82b26b Use HA_Chassis_Group in the OVN L3 scheduler\n03d6a84951 [OVN] Sync network HCG from the LRP HA_Chassis_Group\neb81ac4a86 Remove ``_add_gateway_chassis`` auxiliary method\na428e5e1dd Use HA_Chassis_Group in the OVN L3 scheduler\n25129e2f6b Optimize ML2/OVN address group transactions\n1c9c38bf7d Consume DEVICE_OWNER_VPN_ROUTER_GW constant from neutron-lib\n59702a0af7 Do not update unmodified ACLs in logapi service\n8fe3efa30c Remove the check for ``ACL.label`` column\n52d10bfd4a Do not explicitly mention supported values\nc741f42a42 Use constant for ha_failover_strategy value\nc65c18a6d2 [OVN] Update the parent hostname in the virtual ports\n50b4a10c68 Use project_id in policy and miscellaneous plugin code\n54befe6c09 Use unittest.skip decorator\nf380bf866e Add --port option to remove-duplicated-port-bindings script\n682f458d73 Include request_body in port PRECOMMIT_CREATE payload\n7a4602fff0 [doc] Update contributor guide with more release steps\ne37278b32a Add logging decorator for OVN maintenance methods\n16f09e4ee9 Remove ruff E741 ignore directive\nca4ccdafd2 Change ruff lint checks to be more file-specific\n420c96c31a Create a method to retrieve IPs from ``Logical_Switch_Port``\nb197e46111 bgp: Limit lrp_mac to the chassis\n5209c27152 Use project/project_id in documentation\nd781fac878 Update OVN doc about \u0027ovn-nbctl\u0027 command usage regarding the Gateway_Chassis registers\n21c51c0f3c Check QoS keys in ``UpdateLSwitchPortQosOptionsCommand``\n1c3b4bb63e Fix memory leak in ``ExclusiveResourceProcessor.__exit__``\ndf91781be1 Fast exit ``set_port_status_up`` if port not present\nf33a38bf13 Reduce mccabe complexity in sync_routers_and_rports()\nf210d4f844 Don\u0027t process BGP events without the lock\n897da28052 Revert \"Mark OVN L3 test unstable\"\n27c98d5fc5 [OVN] Check the APP virtual MAC, RFC5798 supported format\n7d44bc2483 Enable additional ruff rules\nab26446c74 Disable skip-level jobs in check queue\n517a51bb30 Run mypy from tox\nb49ce941f8 ml2ovn_trace: replace click with argparse\n4ecd959e51 db: Remove references to ibm_db_alembic package\nee192583e8 Add a release note for tenant_id deprecation\n5b2e4a3d4c Remove ``update_qos_fip_rule_priority`` OVN maintenance method\nf90b208102 ruff: Enable preview rules\nba094466a2 Re-enable flake8-import-order\nbeb94c0d22 Re-enable flake8\n5dbdd031d3 Run pylint with -j0\nd3c216f9d2 Remove OVO compatibility with older versions\nafc7c30469 Remove remove_interface_suffix() from ip_lib\nb05b8a5d57 Remove sort_ips_by_version()\nb04ea9ccb9 All service plugins should inherit from ``ServicePluginBase``\nea65a4d83e [OVN] Fix an issue in the L3 OVN scheduler (3)\n266c5d0c7e bgp: Fix more pep8 errors\n3a902e5e57 Mark ``test_gateway_chassis_balanced_scheduling_multiple_gw_networks`` unstable\n93d5c750da Add docstrings for filter_dynamic parameter\n27945d1655 Use consistent program name\n10af3c4d8a bgp: Move lrps_to_chassis_routers under commands.py\nd4b7fd02a9 bgp: Fix pep8 errors\n6bdc9e97ac bgp: Use a constant for an LR policy\ne3d47ce4f5 [ovn] Filter out chassis not matching physnets\ndd31a9a2ea bgp: Implement BGP resources deletion\n1b5d118121 Include dynamic segments in NetworkContext\nabca41f99b Pass ovn mech driver to the AgentCache object in db-sync-util\n0c3e535ae1 ovn-db-sync tool can now apply config options required by plugins\ndfe0e89c97 [OVN] Specify required mechanism drivers for the NB and SB db sync plugins\nda6edbbd5f [OVN] Fix an issue in the L3 OVN scheduler (2)\n74104d59a7 Open the 2026.2 (Hibiscus) DB branch\na7da91957e func: Remove skipping BGP tests\n33445f74fd functional: Update compiled OVS and OVN versions\n531658e951 Remove TYPE_PHYSICAL constant from neutron\nf27d6adb6a Update master for stable/2026.1\n51e7110c7d bgp: Connect provider switch when created\n2f47b39b2d Adapt to new testtools\n827a9e8681 Workaround(WO), cast netaddr.IPRange to a string when logging\n5ded0ea785 Use ovn-db-sync-util related constants from neutron-lib\nce3206c116 Migrate coverage configuration to pyproject\nd709ada0f1 Ignore designate NotFound errors during PTR delete\ne2938ddbae Avoid subquery for object counts\n86416d2849 ip_conntrack: include allowed_address_pairs in CT_MARK_INVALID cleanup\n\nAssisted-By: Claude Opus 4.6\nSigned-off-by: Rodolfo Alonso Hernandez \u003cralonsoh@redhat.com\u003e\nChange-Id: I4d102cbb553136091b63f17a812729609f64d68b\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/releases/commit/a5e358f8e15d9648b0b628f755e56b398c4a3bb1"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/releases/commit/a5e358f8e15d9648b0b628f755e56b398c4a3bb1"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","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":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":17685,"name":"Elod Illes","email":"elod.illes@est.tech","username":"elod.illes"}},{"label":"PTL-Approved","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"PTL-Approved","description":"PTL Approval","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:PTL-Approved\u003e0","fulfilled":true,"status":"PASS","passing_atoms":["label:PTL-Approved\u003e0"],"failing_atoms":[],"atom_explanations":{"label:PTL-Approved\u003e0":""}}},{"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":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
