)]}'
{"id":"openstack%2Fnetworking-generic-switch~990510","triplet_id":"openstack%2Fnetworking-generic-switch~master~I1432ace9142feb1a405f9573d29222b03d290b4e","project":"openstack/networking-generic-switch","branch":"master","topic":"netconf","attention_set":{},"removed_from_attention_set":{"24245":{"account":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"last_update":"2026-06-09 13:45:14.000000000","reason":"\u003cGERRIT_ACCOUNT_24245\u003e replied on the change","reason_account":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"}},"10239":{"account":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"last_update":"2026-06-08 13:39:41.000000000","reason":"\u003cGERRIT_ACCOUNT_10239\u003e replied on the change","reason_account":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}}},"hashtags":[],"change_id":"I1432ace9142feb1a405f9573d29222b03d290b4e","subject":"Pass physnet VLAN segments to device drivers","status":"MERGED","created":"2026-05-28 15:15:07.000000000","updated":"2026-06-09 16:10:17.000000000","submitted":"2026-06-09 16:07:42.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":15,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"990510-netconf","meta_rev_id":"5f6244126b6fd789fd0fed655c69de9c60f8c3a2","_number":990510,"virtual_id_number":990510,"owner":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-06-09 16:07:42.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"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":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"all":[{"value":2,"date":"2026-06-09 10:40:24.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-06-08 13:39:41.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"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":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"all":[{"value":1,"date":"2026-06-09 10:40:24.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"}],"values":{"-1":"Do Not Backport"," 0":"Backport Review Needed","+1":"Should Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-05-28 17:31:36.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-06-08 12:15:27.000000000","updated_by":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"reviewer":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"state":"REVIEWER"},{"updated":"2026-06-09 10:40:24.000000000","updated_by":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"reviewer":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"state":"REVIEWER"}],"messages":[{"id":"ed55d8baa9872b40c36fe58f364fe76dcf0826b7","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"date":"2026-05-28 15:15:07.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"f1b049dee992e6ae85d0773229f481f7460c63b5","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-28 17:31:36.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/5defa442831144549612d4ea1dcd2a03\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/53e1ca18b5954a15aef6bd27455de545 : SUCCESS in 4m 22s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/d0a30c7cfd8a43209cd295c3bc759a87 : SUCCESS in 5m 08s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/42aba8ffb46940c892116c6f7897141f : SUCCESS in 7m 36s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/ff7009b6d2854f99a8c31972ec32c9e7 : SUCCESS in 9m 52s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f7da3a27f73b4d9ea4866c1a4d601b5c : SUCCESS in 9m 51s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/a758df6f85d94b77baeb5b478ccb2b92 : SUCCESS in 4m 43s\n- networking-generic-switch-tempest-dlm https://zuul.opendev.org/t/openstack/build/d3fe52f60a204d10a0a19492788e2b7f : SUCCESS in 19m 52s\n- ironic-tempest-ipa-wholedisk-direct-multinode https://zuul.opendev.org/t/openstack/build/2096eedb07ec42c69b795a21bac84c75 : SUCCESS in 1h 43m 19s\n- networking-baremetal-ovn-vxlan https://zuul.opendev.org/t/openstack/build/cde35fa74fc1400eaddc52f36a9e9dc5 : SUCCESS in 49m 01s\n- networking-generic-switch-tox-codespell https://zuul.opendev.org/t/openstack/build/49da1785137743fa9ffc0865bc3209da : SUCCESS in 5m 20s","accounts_in_message":[],"_revision_number":1},{"id":"6968dc38ebd97855fa287408266d16dab84ab5a0","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2026-06-08 12:15:27.000000000","message":"Patch Set 1: Code-Review+2\n\n(7 comments)","accounts_in_message":[],"_revision_number":1},{"id":"3ea61e0bf68dc4672b7013697a0c8dcc6d8b9a2a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"date":"2026-06-08 13:38:28.000000000","message":"Uploaded patch set 2.\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":2},{"id":"1da9dfde10364893a3c9990b9117f4da279ddea0","author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"date":"2026-06-08 13:39:41.000000000","message":"Patch Set 2: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"80bb13f8d9880fc94270e21f982b6599820c077b","author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"date":"2026-06-08 13:54:34.000000000","message":"Patch Set 2:\n\n(6 comments)","accounts_in_message":[],"_revision_number":2},{"id":"97b71ff0044c47d2bb5e2b8bd08f895b6bdb6e1c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-08 15:16:37.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/752270355a234d30a97c74589b09eb4c\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/cb9ea76187cf474ebf417c381d0a3473 : SUCCESS in 4m 19s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/b8d0d226dc574c6e987f273f74d681cb : SUCCESS in 3m 44s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/91a8911b089941659e11ec277e52144a : SUCCESS in 6m 10s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/0775b0cc454d4cea98d16a0788ca5f84 : SUCCESS in 8m 24s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/544fc75014734037a365c955a1b68bb0 : SUCCESS in 4m 49s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/26d6c63fb5c24260a32cb1c5734a3a02 : SUCCESS in 5m 26s\n- networking-generic-switch-tempest-dlm https://zuul.opendev.org/t/openstack/build/1dc159b071774f8c8f9c9c2e515eeeeb : SUCCESS in 22m 09s\n- ironic-tempest-ipa-wholedisk-direct-multinode https://zuul.opendev.org/t/openstack/build/ebab2ac1fdcb4ee5b76d561d2d8917ae : SUCCESS in 1h 30m 05s\n- networking-baremetal-ovn-vxlan https://zuul.opendev.org/t/openstack/build/947b2a3a95064359aebb506d760fae0f : SUCCESS in 56m 19s\n- networking-generic-switch-tox-codespell https://zuul.opendev.org/t/openstack/build/13fef673f5f44abaa260489d2e58c03b : SUCCESS in 3m 53s","accounts_in_message":[],"_revision_number":2},{"id":"d462aef12ce61ae1c317ea4192ce27c9758a85dc","author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"date":"2026-06-09 10:40:24.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":2},{"id":"29cedabc1414dcd02a8094e7255636bd7405e670","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-09 10:40:58.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"55d5ba1ccb8c177654ab3f926574f28a2336ba0c","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-09 12:48:36.000000000","message":"Patch Set 2: Verified-2\n\nBuild failed (gate pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\n\nhttps://zuul.opendev.org/t/openstack/buildset/b780b441fe3247868bba1d1b00bdcf9c\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5a4ae450e55b4c7a95db44685344793f : SUCCESS in 4m 30s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/7b4dc58902db4599a19aecd8e360a809 : SUCCESS in 4m 35s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/3ed42b541f8a4ef7b2c911863acc8d69 : SUCCESS in 4m 30s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/49f3cbe2a44443369db6dbb15ca11675 : SUCCESS in 8m 59s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f53a0001823a4ce29810ee3931529a5e : SUCCESS in 4m 48s\n- networking-generic-switch-tempest-dlm https://zuul.opendev.org/t/openstack/build/135e20027ffc417b8ec89b7d5f242b72 : SUCCESS in 26m 36s\n- ironic-tempest-ipa-wholedisk-direct-multinode https://zuul.opendev.org/t/openstack/build/0c4bea65fa064625a5687d0dec3c91ac : FAILURE in 2h 02m 21s\n- networking-baremetal-ovn-vxlan https://zuul.opendev.org/t/openstack/build/62b301ac550a49d987c9638853ac4485 : SUCCESS in 48m 47s","accounts_in_message":[],"_revision_number":2},{"id":"62f03727694135fd598f7974a1cb203de96eba80","author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"date":"2026-06-09 13:45:14.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"91a7b9e9adc490d2ecc402c161d34bfdc5ea9210","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-09 14:43:47.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ecdd151b0a1e41ad90254dcd649d7b7e\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7165405f36484f48b76de7edf5a03699 : SUCCESS in 4m 59s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/2d2a2d50d89549519c77521a37f02d4f : SUCCESS in 3m 01s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/298817af4b5d46be8935fc7036bc2805 : SUCCESS in 4m 56s\n- openstack-tox-py314 https://zuul.opendev.org/t/openstack/build/299e60caf7d4431686a8a4fdf2d5db9d : SUCCESS in 4m 10s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/fbb24e757af347328379d77cace11bd6 : SUCCESS in 9m 01s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/94d29ac964364dc3b2e0eccb7e2cfa87 : SUCCESS in 4m 08s\n- networking-generic-switch-tempest-dlm https://zuul.opendev.org/t/openstack/build/47814c29d6c0440ebcb24bdd150779ed : SUCCESS in 18m 09s\n- ironic-tempest-ipa-wholedisk-direct-multinode https://zuul.opendev.org/t/openstack/build/adf545fa3e8c42c793e28413a353d5ce : SUCCESS in 47m 25s\n- networking-baremetal-ovn-vxlan https://zuul.opendev.org/t/openstack/build/5c7c92cf8e284b1d9aeea488c68aaf59 : SUCCESS in 52m 43s\n- networking-generic-switch-tox-codespell https://zuul.opendev.org/t/openstack/build/c6d69f9a656145d19d039ca8909eebb9 : SUCCESS in 4m 14s","accounts_in_message":[],"_revision_number":2},{"id":"31c40649621ed2d6656dccf7c273088633bc2535","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-09 14:44:24.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"626aba56f966d71027513ab153e0b25e99d5101f","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-09 16:07:42.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/ec5555e116844920beb27954a669b328\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/9dcbfe12a7d44cc1b3d27637beab3dab : SUCCESS in 2m 33s\n- openstack-tox-py311 https://zuul.opendev.org/t/openstack/build/c0fbc37c94c74652b7cf407f869706d6 : SUCCESS in 4m 59s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/5c71b465fcd14e2697d29c7ca2b81c9a : SUCCESS in 5m 24s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/256ea5dffc93415baf89427d8e805764 : SUCCESS in 8m 11s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/dbd5810a248b4063b56871c7b12f1be0 : SUCCESS in 4m 10s\n- networking-generic-switch-tempest-dlm https://zuul.opendev.org/t/openstack/build/8ad00c0b559b4ef198b8f18efa3858be : SUCCESS in 14m 50s\n- ironic-tempest-ipa-wholedisk-direct-multinode https://zuul.opendev.org/t/openstack/build/225e3de8551c4c0189f7c23d742ff327 : SUCCESS in 1h 13m 19s\n- networking-baremetal-ovn-vxlan https://zuul.opendev.org/t/openstack/build/acf382a805b0471cb448da2efd29bd29 : SUCCESS in 36m 52s","accounts_in_message":[],"_revision_number":2},{"id":"098fc574c61d7e28f60b051d09203b99d5025064","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-09 16:07:42.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2},{"id":"5f6244126b6fd789fd0fed655c69de9c60f8c3a2","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-06-09 16:10:17.000000000","message":"Patch Set 2:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d674080ed2df4a6cbfa9e22bead93743\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/80f16e81deb746839b6cb9203e6adb60 : SUCCESS in 43s","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"d50d2b79b95603911dcd45d387536b69748ab028","revisions":{"1c311303eaf3ac9ee5fd5c35c1b1a54925edb465":{"kind":"REWORK","_number":1,"created":"2026-05-28 15:15:07.000000000","uploader":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"ref":"refs/changes/10/990510/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/networking-generic-switch","ref":"refs/changes/10/990510/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/networking-generic-switch refs/changes/10/990510/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/networking-generic-switch refs/changes/10/990510/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/networking-generic-switch refs/changes/10/990510/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/networking-generic-switch refs/changes/10/990510/1"}}},"commit":{"parents":[{"commit":"e0a49c73531b12d9c8f51d9be2398b02fe6745fc","subject":"Add pyroute2 to doc requirements","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/networking-generic-switch/commit/e0a49c73531b12d9c8f51d9be2398b02fe6745fc"}]}],"author":{"name":"Harald Jensås","email":"hjensas@redhat.com","date":"2026-05-27 22:08:44.000000000","tz":120},"committer":{"name":"Harald Jensås","email":"hjensas@redhat.com","date":"2026-05-27 22:08:44.000000000","tz":120},"subject":"Pass physnet VLAN segments to device drivers","message":"Pass physnet VLAN segments to device drivers\n\nWhen ngs_trunk_ports is configured, trunk VLANs are managed\nincrementally (one VLAN per add_network/del_network call). This\ncauses state drift on unreachable switches and breaks on devices\nthat replace the VLAN list rather than merge.\n\nAdd a trunk_vlans_converge property to GenericSwitchDevice (default\nFalse) that drivers can override. When True, the mechanism driver\nqueries Neutron for all VLAN segments on the switch\u0027s physical\nnetworks and passes the complete set via a new physnet_vlans\nkeyword argument. This turns each call into a convergence step.\n\nThe query is gated on both trunk_vlans_converge and ngs_trunk_ports,\nand results are cached per physnet-set within a single postcommit\ncall so switches with identical physnet configurations share a\nsingle DB query.\n\nPartial-Bug: #2154349\nAssisted-By: Claude (claude-sonnet-4.6x)\nChange-Id: I1432ace9142feb1a405f9573d29222b03d290b4e\nSigned-off-by: Harald Jensås \u003chjensas@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/networking-generic-switch/commit/1c311303eaf3ac9ee5fd5c35c1b1a54925edb465"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/networking-generic-switch/commit/1c311303eaf3ac9ee5fd5c35c1b1a54925edb465"}]},"branch":"refs/heads/master"},"d50d2b79b95603911dcd45d387536b69748ab028":{"kind":"REWORK","_number":2,"created":"2026-06-08 13:38:28.000000000","uploader":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"ref":"refs/changes/10/990510/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/networking-generic-switch","ref":"refs/changes/10/990510/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/networking-generic-switch refs/changes/10/990510/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/networking-generic-switch refs/changes/10/990510/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/networking-generic-switch refs/changes/10/990510/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/networking-generic-switch refs/changes/10/990510/2"}}},"commit":{"parents":[{"commit":"0f828f0297eb612ef8cd215c8f8a9e35021140f2","subject":"Merge \"Add SONiC multicast BUM configuration validation\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/networking-generic-switch/commit/0f828f0297eb612ef8cd215c8f8a9e35021140f2"}]}],"author":{"name":"Harald Jensås","email":"hjensas@redhat.com","date":"2026-05-27 22:08:44.000000000","tz":120},"committer":{"name":"Harald Jensås","email":"hjensas@redhat.com","date":"2026-06-08 13:38:11.000000000","tz":120},"subject":"Pass physnet VLAN segments to device drivers","message":"Pass physnet VLAN segments to device drivers\n\nWhen ngs_trunk_ports is configured, trunk VLANs are managed\nincrementally (one VLAN per add_network/del_network call). This\ncauses state drift on unreachable switches and breaks on devices\nthat replace the VLAN list rather than merge.\n\nAdd a trunk_vlans_converge property to GenericSwitchDevice (default\nFalse) that drivers can override. When True, the mechanism driver\nqueries Neutron for all VLAN segments on the switch\u0027s physical\nnetworks and passes the complete set via a new physnet_vlans\nkeyword argument. This turns each call into a convergence step.\n\nThe query is gated on both trunk_vlans_converge and ngs_trunk_ports,\nand results are cached per physnet-set within a single postcommit\ncall so switches with identical physnet configurations share a\nsingle DB query.\n\nRename _get_trunk_ports and _get_physical_networks to public methods\n(get_trunk_ports, get_physical_networks) since they are now called\nfrom the mechanism driver.\n\nPartial-Bug: #2154349\nAssisted-By: Claude (claude-sonnet-4.6x)\nChange-Id: I1432ace9142feb1a405f9573d29222b03d290b4e\nSigned-off-by: Harald Jensås \u003chjensas@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/networking-generic-switch/commit/d50d2b79b95603911dcd45d387536b69748ab028"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/networking-generic-switch/commit/d50d2b79b95603911dcd45d387536b69748ab028"}]},"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":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"}},{"label":"Backport-Candidate","status":"MAY"}]}],"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":"Backport-Candidate","description":"Backport candidate status","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"is:true","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}},{"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":""}}}]}
