)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"783145a7a8bc409cc82e3f50dcdbc5103c78288f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f319efc2_deae5ef7","updated":"2025-11-11 06:08:33.000000000","message":"This is quite the beefy chain of changes,tks Allain :D. \n\n- releasenote and (corresponding ?client support) missing.\n- nit: Reference the spec in the base change for easy reference to the big picture","commit_id":"77b55291fe19a4607ab50c1f507078bcf6a985a1"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"c5bf216c994a6b99ec6684f9354a319a455ec5a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bf2c89ae_c39ebbd1","updated":"2025-11-14 20:30:14.000000000","message":"Comments addressed","commit_id":"20d69306ecb7722859ba1c15dec3daeacd86c94f"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"888e37151ebd179b75ea8bec721a3d9f6fe40576","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"601ef36c_070c79af","updated":"2025-12-01 12:29:26.000000000","message":"recheck","commit_id":"5d3b312b4196b2945cc4043bfdd75499bbf88600"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"570b2e23c0cc33849e3581557400d0dd0b5142be","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"c851e60a_809a7ba5","updated":"2025-12-17 12:18:40.000000000","message":"recheck","commit_id":"a920fafc49db5609a63f6b33c3f8547ea5b41199"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f4fc7f2b82c4982c87d390230bf52eede235c2c7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ae3f5702_ce2d9a74","updated":"2026-01-20 23:47:36.000000000","message":"A few things I was looking for that weren\u0027t in this doc; just general thoughts you don\u0027t have to check them all off or even put it in this change:\n- Upgrade process -- what\u0027s the uptime/downtime semantics of a service restart to update code or switch configs?\n- High availability -- can I run \"N\" of these services?\n- Required access -- ironic-networking will need direct ssh network access to switches, yes?\n\n\nNo -1 because what is here is good, but we should follow-up with improvements.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"8011624fea9d5de1991d2f32e25349dcd5d5672d","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"c7fcc19b_30f16f96","updated":"2026-01-26 19:32:27.000000000","message":"Trusting you to follow-up comments.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a631a431_e9341cf7","updated":"2026-01-28 14:44:10.000000000","message":"comments addressed. PTAL.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"138c3039_a7a45589","in_reply_to":"ae3f5702_ce2d9a74","updated":"2026-01-28 14:44:10.000000000","message":"The access control requirements are mentioned at the bottom of the file in security considerations. \n\nThe high-availability limitation is mentioned at the bottom of the file in the limitation section.\n\nThe ironic-networking service is stateless therefore downtime should be minimal if restarting to reload switch configuration file or updating code.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"edeea48d_fdc36f48","in_reply_to":"c7fcc19b_30f16f96","updated":"2026-01-28 14:44:10.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"395f572a076d7d202d2483585c989b16c5f7caad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"05eb7c3d_45913fa8","updated":"2026-01-28 19:58:36.000000000","message":"Great work, Allain. I genuinely look forward to trying this.\n\nTwo comments in-line. Once these are answered +1 from me (would be +2 if I were a reviewer :) ).","commit_id":"84ed5f2eceb8521d153c278983e99725359b5823"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"d28f8b620811ba8a41acc1c818d57d96b7c039da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"f87e9e3f_3b112206","updated":"2026-01-28 21:44:54.000000000","message":"Great, let\u0027s check that link in https://review.opendev.org/c/openstack/ironic/+/966471/comment/b630c867_2776414f/ and if all good +1 from me.","commit_id":"84ed5f2eceb8521d153c278983e99725359b5823"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"b07ca122c1a1e91f3a952899757e3e5e28f4e2df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"a9cd229d_a47a5633","updated":"2026-01-30 19:31:35.000000000","message":"comments addressed.  PTAL.","commit_id":"c98fcc6652630e5dc61f90a49f37ad85d0984ab7"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"304ff91fa78b33e214b09050a3fd820671381ad6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"abb94c94_4c279fd5","updated":"2026-02-03 19:00:58.000000000","message":"This is fine, but needs some improvements. Particularly everything is \"hardcoded\" to assume basic auth; but our users will assume auth_strategy will support the full gamut of options; including Keystone. If this isn\u0027t true, it should be listed prominently in the limitations. If it is true, we should use it in an example (maybe an example with oslo-messaging rpc?)","commit_id":"ff6de088d5c72f5bfa2e1e0bccba5d7c1378b960"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"3df4413501e89084064b7aa336c41a33ed877b3b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"56476f0d_0c7815a5","updated":"2026-02-03 15:41:57.000000000","message":"comments addressed.  PTAL.","commit_id":"ff6de088d5c72f5bfa2e1e0bccba5d7c1378b960"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"201144beed1477e9d552b6dd6c54dbe177614500","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"294982e8_b873966d","updated":"2026-02-05 12:51:09.000000000","message":"comments addressed. PTAL.","commit_id":"ff6de088d5c72f5bfa2e1e0bccba5d7c1378b960"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"e8774a9892af7ddcfdd94d060d0bffd6eb12ca8b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"e17ae023_99e94a97","in_reply_to":"abb94c94_4c279fd5","updated":"2026-02-03 19:17:15.000000000","message":"The service is build using the same underlying libraries as the other Ironic RPC API(s) therefore, yes, it will support the other modes as well.","commit_id":"ff6de088d5c72f5bfa2e1e0bccba5d7c1378b960"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"201144beed1477e9d552b6dd6c54dbe177614500","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"0cc46cc6_690c12fb","in_reply_to":"ce505aa2_986fcc99","updated":"2026-02-05 12:51:09.000000000","message":"discussed on IRC... will update the doc with more info regarding auth/rpc.","commit_id":"ff6de088d5c72f5bfa2e1e0bccba5d7c1378b960"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"f777bb0a1772092b213b245c3fe1efb2215d22b7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"ce505aa2_986fcc99","in_reply_to":"e17ae023_99e94a97","updated":"2026-02-04 19:42:00.000000000","message":"As I said in my other response about this, the service does technically support the other rpc methods and other auth methods, but are any of those realistic in a standalone configuration where this feature is likely to be used?  If so, we can certainly change the examples, but it was my understanding that standalone meant no Keystone and no RabbitMQ, etc, etc... \n\ncc: @juliaashleykreger@gmail.com","commit_id":"ff6de088d5c72f5bfa2e1e0bccba5d7c1378b960"}],"doc/source/admin/networking.rst":[{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"ff8f8ec4a14f8728941e366199a7c4bf3f6d44f2","unresolved":true,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"Use of the ``neutron`` or ``ironic-networking`` network-interfaces_ requires"},{"line_number":308,"context_line":"the Ironic port ``local_link_connection`` information to be populated for each"},{"line_number":309,"context_line":"Ironic port on a node in Ironic. This information is provided to the Neutron"},{"line_number":310,"context_line":"networking service\u0027s ML2 driver when a Virtual Interface (VIF) is attached. The"},{"line_number":311,"context_line":"ML2 driver uses the information to plug the specified port to the tenant"},{"line_number":312,"context_line":"network."},{"line_number":313,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"058bf702_e7edfa0e","line":310,"range":{"start_line":309,"start_character":33,"end_line":310,"end_character":75},"updated":"2026-02-03 13:24:43.000000000","message":"Is this true for `ironic-networking` that neither requires the Neutron networking service nor follows the VIF attachment flow, as you described above. Or do you need to restructure it?","commit_id":"c98fcc6652630e5dc61f90a49f37ad85d0984ab7"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"3df4413501e89084064b7aa336c41a33ed877b3b","unresolved":false,"context_lines":[{"line_number":306,"context_line":""},{"line_number":307,"context_line":"Use of the ``neutron`` or ``ironic-networking`` network-interfaces_ requires"},{"line_number":308,"context_line":"the Ironic port ``local_link_connection`` information to be populated for each"},{"line_number":309,"context_line":"Ironic port on a node in Ironic. This information is provided to the Neutron"},{"line_number":310,"context_line":"networking service\u0027s ML2 driver when a Virtual Interface (VIF) is attached. The"},{"line_number":311,"context_line":"ML2 driver uses the information to plug the specified port to the tenant"},{"line_number":312,"context_line":"network."},{"line_number":313,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"8a833a68_3c76e52f","line":310,"range":{"start_line":309,"start_character":33,"end_line":310,"end_character":75},"in_reply_to":"058bf702_e7edfa0e","updated":"2026-02-03 15:41:57.000000000","message":"Done","commit_id":"c98fcc6652630e5dc61f90a49f37ad85d0984ab7"}],"doc/source/install/standalone/networking.rst":[{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"783145a7a8bc409cc82e3f50dcdbc5103c78288f","unresolved":true,"context_lines":[{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"},{"line_number":16,"context_line":"          switch ports are configured onto the \"idle\" VLAN.  The \"idle\" can be"},{"line_number":17,"context_line":"          considered as the default VLAN for a port.  The networking service"},{"line_number":18,"context_line":"          will always set the switch port back to this VLAN whenever no"},{"line_number":19,"context_line":"          specific VLAN is required based on the state of the node.  It is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6bed4d52_d8e88f69","line":16,"range":{"start_line":15,"start_character":10,"end_line":16,"end_character":58},"updated":"2025-11-11 06:08:33.000000000","message":"Should we mention what happens if ports aren\u0027t pre-configured to idle VLAN(?)","commit_id":"77b55291fe19a4607ab50c1f507078bcf6a985a1"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"c5bf216c994a6b99ec6684f9354a319a455ec5a4","unresolved":false,"context_lines":[{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"},{"line_number":16,"context_line":"          switch ports are configured onto the \"idle\" VLAN.  The \"idle\" can be"},{"line_number":17,"context_line":"          considered as the default VLAN for a port.  The networking service"},{"line_number":18,"context_line":"          will always set the switch port back to this VLAN whenever no"},{"line_number":19,"context_line":"          specific VLAN is required based on the state of the node.  It is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"560848a1_a2e54e0c","line":16,"range":{"start_line":15,"start_character":10,"end_line":16,"end_character":58},"in_reply_to":"6bed4d52_d8e88f69","updated":"2025-11-14 20:30:14.000000000","message":"Done","commit_id":"77b55291fe19a4607ab50c1f507078bcf6a985a1"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"fa384ba632a74b09087c0efede126c1521c8d455","unresolved":true,"context_lines":[{"line_number":7,"context_line":"metal provisioning in environments where Neutron is not available or not"},{"line_number":8,"context_line":"desired. This service manages switch port configurations through a dedicated"},{"line_number":9,"context_line":"``ironic-networking`` process that communicates with the Ironic conductor via"},{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."}],"source_content_type":"text/x-rst","patch_set":10,"id":"a666a4f1_8f07218a","line":10,"updated":"2026-01-26 18:39:16.000000000","message":"I\u0027d iterate on this a little bit more to explicitly state this is centered around the use of VLANs only. That could also just be a separate note. I think the issue is some folks might see this, and assume they can merge this in somehow with neutron, and furthemore we have VXLAN work going on as well.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[{"line_number":7,"context_line":"metal provisioning in environments where Neutron is not available or not"},{"line_number":8,"context_line":"desired. This service manages switch port configurations through a dedicated"},{"line_number":9,"context_line":"``ironic-networking`` process that communicates with the Ironic conductor via"},{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."}],"source_content_type":"text/x-rst","patch_set":10,"id":"04a6f900_de4ab11c","line":10,"in_reply_to":"a666a4f1_8f07218a","updated":"2026-01-28 14:44:10.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"fa384ba632a74b09087c0efede126c1521c8d455","unresolved":true,"context_lines":[{"line_number":9,"context_line":"``ironic-networking`` process that communicates with the Ironic conductor via"},{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"}],"source_content_type":"text/x-rst","patch_set":10,"id":"98c6e46c_526da280","line":12,"range":{"start_line":12,"start_character":3,"end_line":12,"end_character":7},"updated":"2026-01-26 18:39:16.000000000","message":"I\u0027d make this a warning, fwiw.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[{"line_number":9,"context_line":"``ironic-networking`` process that communicates with the Ironic conductor via"},{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"}],"source_content_type":"text/x-rst","patch_set":10,"id":"93c8c4d0_41862434","line":12,"range":{"start_line":12,"start_character":3,"end_line":12,"end_character":7},"in_reply_to":"3caf4457_47c7da64","updated":"2026-01-28 14:44:10.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"8011624fea9d5de1991d2f32e25349dcd5d5672d","unresolved":true,"context_lines":[{"line_number":9,"context_line":"``ironic-networking`` process that communicates with the Ironic conductor via"},{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3caf4457_47c7da64","line":12,"range":{"start_line":12,"start_character":3,"end_line":12,"end_character":7},"in_reply_to":"98c6e46c_526da280","updated":"2026-01-26 19:32:27.000000000","message":"Maybe specifically mention we expect a better method for switchport configuration (not port.extra) in the coming releases.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f4fc7f2b82c4982c87d390230bf52eede235c2c7","unresolved":true,"context_lines":[{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"},{"line_number":16,"context_line":"          switch ports are configured onto the \"idle\" VLAN.  The \"idle\" VLAN"}],"source_content_type":"text/x-rst","patch_set":10,"id":"45154c17_0346f5b2","line":13,"updated":"2026-01-20 23:47:36.000000000","message":"To be explicit: it\u0027s only OK if it changes and the previous microversions keep working. We shouldn\u0027t be OK with breaking people cross-microversion in the future.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"b07ca122c1a1e91f3a952899757e3e5e28f4e2df","unresolved":false,"context_lines":[{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"},{"line_number":16,"context_line":"          switch ports are configured onto the \"idle\" VLAN.  The \"idle\" VLAN"}],"source_content_type":"text/x-rst","patch_set":10,"id":"907ab4c6_cf9ab732","line":13,"in_reply_to":"24c3bfc4_7992d3e0","updated":"2026-01-30 19:31:35.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d35599234a35aa78e43fb615cc1895f2e4ce3a8e","unresolved":true,"context_lines":[{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"},{"line_number":16,"context_line":"          switch ports are configured onto the \"idle\" VLAN.  The \"idle\" VLAN"}],"source_content_type":"text/x-rst","patch_set":10,"id":"398e419a_64f853c7","line":13,"in_reply_to":"2935dcd5_0841ba39","updated":"2026-01-28 22:01:53.000000000","message":"To be clear, there is no microversioning the extra field out of this. A formal API is the preferred way eventually, but we have to get there. Which means the code pattern ends up being for a very long time in the code base.\n\nIf new.way.present():\n    data_for_binding \u003d new.way\nelif extra.get(\u0027old_way\u0027):\n    data_for_binding \u003d extra.get(\u0027old_way\u0027)\n\nNow, will there be a microversion with the new version where that future to be determiend controller enforces, absolutely. But it can\u0027t nor should ever attempt to block the extra field usage as it relates, because eventually operators will want to migrate, and you\u0027ll need to update the extra field values as you go.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"85750a16aa137e00504687b60c3c23b5316b5b64","unresolved":true,"context_lines":[{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"},{"line_number":16,"context_line":"          switch ports are configured onto the \"idle\" VLAN.  The \"idle\" VLAN"}],"source_content_type":"text/x-rst","patch_set":10,"id":"24c3bfc4_7992d3e0","line":13,"in_reply_to":"398e419a_64f853c7","updated":"2026-01-28 22:05:33.000000000","message":"Yeah my main concern here is that we don\u0027t ask operators to do any kind of manual data migration that\u0027d involve \"N\" calls for \"N\" port.extra updates. I suspect we, when the time comes, could use online_data_migrations + an API shim similar to what we used with instance_info[instance_name] (an update to instance_info[instance_name] also applies an update to node.instance_name) to make the experience more seamless.\n\nI\u0027m just looking for a committment to operators that if they deploy this today, they won\u0027t be staring at a major, manual migration of metadata to do it. I think based on conversations in IRC, comments here, and decade+ of working together we have general consensus on that as a goal.\n\nSo for now, flipping my vote back to +2. I will, in the future, block changes to this feature which would lead operators to have to do metadata migrations manually -- but I trust we can properly migrate and hide any nasty details from operators.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":true,"context_lines":[{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"},{"line_number":16,"context_line":"          switch ports are configured onto the \"idle\" VLAN.  The \"idle\" VLAN"}],"source_content_type":"text/x-rst","patch_set":10,"id":"88358ba9_d370a180","line":13,"in_reply_to":"45154c17_0346f5b2","updated":"2026-01-28 14:44:10.000000000","message":"I can add that note if that\u0027s the consensus, but it was my understanding that by labeling this experimental and using ``port.extra`` that it would not force us to support this initial implementation indefinitely.  It was my understanding that we\u0027d implement this, learn about the use cases, and once the community was comfortable with a formal API definition then we\u0027d proceed with that implementation as part of the normal versioned API strategy.  \n\n@juliaashleykreger@gmail.com did I misunderstand the objective from the initial conversations about this?","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"69fe92d772eee613906ea45b10528d3e7e7a24b0","unresolved":true,"context_lines":[{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"},{"line_number":16,"context_line":"          switch ports are configured onto the \"idle\" VLAN.  The \"idle\" VLAN"}],"source_content_type":"text/x-rst","patch_set":10,"id":"c1cf42aa_685c6dd3","line":13,"in_reply_to":"88358ba9_d370a180","updated":"2026-01-28 21:47:13.000000000","message":"I am -1 to any plan that involves us planning to break our own API ahead of time. We\u0027ve managed to not do it except for really exceptional cases, and I don\u0027t wanna start now.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c5eb76f8cdfa8376cdc83704398bc254e262aad0","unresolved":true,"context_lines":[{"line_number":10,"context_line":"RPC."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. Note:: The standalone networking feature is experimental and the API may"},{"line_number":13,"context_line":"          change in future releases."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":".. Note:: The expected starting condition before a node is enrolled is that its"},{"line_number":16,"context_line":"          switch ports are configured onto the \"idle\" VLAN.  The \"idle\" VLAN"}],"source_content_type":"text/x-rst","patch_set":10,"id":"2935dcd5_0841ba39","line":13,"in_reply_to":"c1cf42aa_685c6dd3","updated":"2026-01-28 21:51:02.000000000","message":"So this was always the plan. Use extra just like we did with vifs, and eventually move away from extra field usage. I don\u0027t think there is a disagreement or issue as much as an assumption that we may change this later is now viewed as breaking in advanced, which is not a true statement. The note, itself, likely says \"This is experimental, we anticipate introducing a better API for this in the future.\"","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f4fc7f2b82c4982c87d390230bf52eede235c2c7","unresolved":true,"context_lines":[{"line_number":21,"context_line":"          inspection can complete.  Nodes that are not configured onto the"},{"line_number":22,"context_line":"          \"idle\" VLAN will fail the initial inspection; therefore, no LLDP"},{"line_number":23,"context_line":"          information will be available to identify which switch ports need to"},{"line_number":24,"context_line":"          be configured for that node."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Overview"}],"source_content_type":"text/x-rst","patch_set":10,"id":"e2fce37e_ba006dd0","line":24,"updated":"2026-01-20 23:47:36.000000000","message":"This is written assuming Inspection is in use. You may want to include the \"else\" case in this note.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[{"line_number":21,"context_line":"          inspection can complete.  Nodes that are not configured onto the"},{"line_number":22,"context_line":"          \"idle\" VLAN will fail the initial inspection; therefore, no LLDP"},{"line_number":23,"context_line":"          information will be available to identify which switch ports need to"},{"line_number":24,"context_line":"          be configured for that node."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Overview"}],"source_content_type":"text/x-rst","patch_set":10,"id":"e49b93e4_0d53f205","line":24,"in_reply_to":"e2fce37e_ba006dd0","updated":"2026-01-28 14:44:10.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f4fc7f2b82c4982c87d390230bf52eede235c2c7","unresolved":true,"context_lines":[{"line_number":36,"context_line":"* **ironic-networking Network Interface**: An Ironic network interface"},{"line_number":37,"context_line":"  that integrates with the standalone networking service"},{"line_number":38,"context_line":"* **RPC Communication**: Communication between conductor and networking service"},{"line_number":39,"context_line":"  using JSON-RPC or Oslo Messaging"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Benefits over Neutron integration:"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"5472322c_07e6b3c1","line":39,"updated":"2026-01-20 23:47:36.000000000","message":"nit: \"or oslo-messaging supported backends like rabbitmq\"","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* **ironic-networking Network Interface**: An Ironic network interface"},{"line_number":37,"context_line":"  that integrates with the standalone networking service"},{"line_number":38,"context_line":"* **RPC Communication**: Communication between conductor and networking service"},{"line_number":39,"context_line":"  using JSON-RPC or Oslo Messaging"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Benefits over Neutron integration:"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"30cc9927_a853f912","line":39,"in_reply_to":"5472322c_07e6b3c1","updated":"2026-01-28 14:44:10.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f4fc7f2b82c4982c87d390230bf52eede235c2c7","unresolved":true,"context_lines":[{"line_number":38,"context_line":"* **RPC Communication**: Communication between conductor and networking service"},{"line_number":39,"context_line":"  using JSON-RPC or Oslo Messaging"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Benefits over Neutron integration:"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* Simpler deployment without requiring a full Neutron installation"},{"line_number":44,"context_line":"* Direct switch management without ML2 dependencies"}],"source_content_type":"text/x-rst","patch_set":10,"id":"2427dfbc_24ad385a","line":41,"updated":"2026-01-20 23:47:36.000000000","message":"This is not actionable feedback unless you wanna create this doc in a follow-up :) \n\n\nI know neutron integration offers features that this doesn\u0027t. Probably not specifically for this doc, but we\u0027re going to need a \"network interfaces and their capabilities\" doc.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[{"line_number":38,"context_line":"* **RPC Communication**: Communication between conductor and networking service"},{"line_number":39,"context_line":"  using JSON-RPC or Oslo Messaging"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Benefits over Neutron integration:"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"* Simpler deployment without requiring a full Neutron installation"},{"line_number":44,"context_line":"* Direct switch management without ML2 dependencies"}],"source_content_type":"text/x-rst","patch_set":10,"id":"55ef7106_424fb56b","line":41,"in_reply_to":"2427dfbc_24ad385a","updated":"2026-01-28 14:44:10.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f4fc7f2b82c4982c87d390230bf52eede235c2c7","unresolved":true,"context_lines":[{"line_number":46,"context_line":"* Reduced operational complexity for bare metal-only environments"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Architecture Components"},{"line_number":49,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Networking Manager"},{"line_number":52,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"e8ab65a2_e3c9f7c7","line":49,"updated":"2026-01-20 23:47:36.000000000","message":"Might be value in putting architecture information somewhere other than install/user docs.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[{"line_number":46,"context_line":"* Reduced operational complexity for bare metal-only environments"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"Architecture Components"},{"line_number":49,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Networking Manager"},{"line_number":52,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":10,"id":"0d574384_3a443070","line":49,"in_reply_to":"e8ab65a2_e3c9f7c7","updated":"2026-01-28 14:44:10.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f4fc7f2b82c4982c87d390230bf52eede235c2c7","unresolved":true,"context_lines":[{"line_number":71,"context_line":"  formats"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"ironic-networking Network Interface"},{"line_number":74,"context_line":"------------------------------------------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"The ``ironic-networking`` network interface (enabled per-node) provides:"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"31553b65_bd920c0d","line":74,"updated":"2026-01-20 23:47:36.000000000","message":"nit (throughout): we generally make these the same length as the words above","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[{"line_number":71,"context_line":"  formats"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"ironic-networking Network Interface"},{"line_number":74,"context_line":"------------------------------------------"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"The ``ironic-networking`` network interface (enabled per-node) provides:"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"d2a83a58_e8a7caec","line":74,"in_reply_to":"31553b65_bd920c0d","updated":"2026-01-28 14:44:10.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f4fc7f2b82c4982c87d390230bf52eede235c2c7","unresolved":true,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    $ pip install networking-generic-switch"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"This is the only additional dependency beyond Ironic\u0027s base requirements."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Configuration"},{"line_number":94,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":10,"id":"b5975509_70140a8e","line":91,"updated":"2026-01-20 23:47:36.000000000","message":"Should we have a ironic-networking-requirements.txt or similar, I wonder. Might be worth asking zigo which is easier.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"b07ca122c1a1e91f3a952899757e3e5e28f4e2df","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    $ pip install networking-generic-switch"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"This is the only additional dependency beyond Ironic\u0027s base requirements."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Configuration"},{"line_number":94,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":10,"id":"41540a67_bc792c7d","line":91,"in_reply_to":"41f582c0_75d8fa6c","updated":"2026-01-30 19:31:35.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":true,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    $ pip install networking-generic-switch"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"This is the only additional dependency beyond Ironic\u0027s base requirements."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"Configuration"},{"line_number":94,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":10,"id":"41f582c0_75d8fa6c","line":91,"in_reply_to":"b5975509_70140a8e","updated":"2026-01-28 14:44:10.000000000","message":"I\u0027ll keep this in mind for when the dependency list grows.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"f4fc7f2b82c4982c87d390230bf52eede235c2c7","unresolved":true,"context_lines":[{"line_number":565,"context_line":"* Regularly rotate switch credentials"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"Migration from Neutron"},{"line_number":568,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"If migrating from Neutron-based networking to standalone networking:"},{"line_number":571,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"30fc6830_c1c1c72e","line":568,"updated":"2026-01-20 23:47:36.000000000","message":"Can we use this in concert with neutron, if nodes are properly configured with some on neutron, some on ironic-networking interface? What about managing both network interfaces on a single conductor?\n\nWe should be very explicit about what\u0027s supported at the intersection of these -- my hunch is \"it all just works\" but saying that has value.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[{"line_number":565,"context_line":"* Regularly rotate switch credentials"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"Migration from Neutron"},{"line_number":568,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":569,"context_line":""},{"line_number":570,"context_line":"If migrating from Neutron-based networking to standalone networking:"},{"line_number":571,"context_line":""}],"source_content_type":"text/x-rst","patch_set":10,"id":"a57ff920_d2b504f4","line":568,"in_reply_to":"30fc6830_c1c1c72e","updated":"2026-01-28 14:44:10.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"8011624fea9d5de1991d2f32e25349dcd5d5672d","unresolved":true,"context_lines":[{"line_number":587,"context_line":""},{"line_number":588,"context_line":"* LAG operations are not yet implemented"},{"line_number":589,"context_line":"* Limited to switches supported by networking-generic-switch"},{"line_number":590,"context_line":"* No runtime reload of switch configurations (requires service restart)"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"References"},{"line_number":593,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":10,"id":"06258be3_24d4f313","line":590,"updated":"2026-01-26 19:32:27.000000000","message":"This sounds like you\u0027re rebooting switches all day long. You might wanna reword it.","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"398549e046fc573d8068014094f375e2c198e780","unresolved":false,"context_lines":[{"line_number":587,"context_line":""},{"line_number":588,"context_line":"* LAG operations are not yet implemented"},{"line_number":589,"context_line":"* Limited to switches supported by networking-generic-switch"},{"line_number":590,"context_line":"* No runtime reload of switch configurations (requires service restart)"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"References"},{"line_number":593,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":10,"id":"076a72d2_cc861f76","line":590,"in_reply_to":"06258be3_24d4f313","updated":"2026-01-28 14:44:10.000000000","message":"Done","commit_id":"ab44fc21b05c8e9cc7daccacf5c03f76bfd30685"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"395f572a076d7d202d2483585c989b16c5f7caad","unresolved":true,"context_lines":[{"line_number":400,"context_line":"* Check credentials in ``[oslo_messaging_rabbit]`` section"},{"line_number":401,"context_line":"* Ensure conductor and networking service use the same transport URL"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"Debugging"},{"line_number":404,"context_line":"---------"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"Enable debug logging in ``ironic.conf``:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"da3efb99_304c4f43","line":403,"range":{"start_line":403,"start_character":0,"end_line":403,"end_character":9},"updated":"2026-01-28 19:58:36.000000000","message":"is it worth considering those two scenarios:\n\n* recovering from switch failure (hardware fault, failed flash)\n* reconciling a split-brain scenario (switch config not reflecting what Ironic \"thinks)","commit_id":"84ed5f2eceb8521d153c278983e99725359b5823"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"1cf044bbfabcde02fa861019ec471301308bddb4","unresolved":true,"context_lines":[{"line_number":400,"context_line":"* Check credentials in ``[oslo_messaging_rabbit]`` section"},{"line_number":401,"context_line":"* Ensure conductor and networking service use the same transport URL"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"Debugging"},{"line_number":404,"context_line":"---------"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"Enable debug logging in ``ironic.conf``:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"97954f8a_43438a85","line":403,"range":{"start_line":403,"start_character":0,"end_line":403,"end_character":9},"in_reply_to":"78304140_aacd6127","updated":"2026-01-28 20:41:37.000000000","message":"Ok, will add a note in limitations.\n\nYes, that could be possible (re: script to restore).","commit_id":"84ed5f2eceb8521d153c278983e99725359b5823"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"d28f8b620811ba8a41acc1c818d57d96b7c039da","unresolved":false,"context_lines":[{"line_number":400,"context_line":"* Check credentials in ``[oslo_messaging_rabbit]`` section"},{"line_number":401,"context_line":"* Ensure conductor and networking service use the same transport URL"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"Debugging"},{"line_number":404,"context_line":"---------"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"Enable debug logging in ``ironic.conf``:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"d4cfceeb_1066fad0","line":403,"range":{"start_line":403,"start_character":0,"end_line":403,"end_character":9},"in_reply_to":"97954f8a_43438a85","updated":"2026-01-28 21:44:54.000000000","message":"Great, thank you.","commit_id":"84ed5f2eceb8521d153c278983e99725359b5823"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"87bb7b0a22eab906bed3e63dc0c7ef46e39bec29","unresolved":true,"context_lines":[{"line_number":400,"context_line":"* Check credentials in ``[oslo_messaging_rabbit]`` section"},{"line_number":401,"context_line":"* Ensure conductor and networking service use the same transport URL"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"Debugging"},{"line_number":404,"context_line":"---------"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"Enable debug logging in ``ironic.conf``:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"78304140_aacd6127","line":403,"range":{"start_line":403,"start_character":0,"end_line":403,"end_character":9},"in_reply_to":"bedd21a0_bf7bf849","updated":"2026-01-28 20:27:46.000000000","message":"Thanks, Allain. \n\nTotally optional suggestion: is it worth listing this as a known limitation and perhaps suggest periodic switch config backups and/or backing up the config prior to performing maintenance on the switch? \n\nSecond part is just for my own understanding as a future user of this feature: Worst comes I suppose desired state of the switch config could be derived from Ironic DB and then restored with a script right?","commit_id":"84ed5f2eceb8521d153c278983e99725359b5823"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"b70cd7ebcb11aacea60aafed68caeb891305692e","unresolved":true,"context_lines":[{"line_number":400,"context_line":"* Check credentials in ``[oslo_messaging_rabbit]`` section"},{"line_number":401,"context_line":"* Ensure conductor and networking service use the same transport URL"},{"line_number":402,"context_line":""},{"line_number":403,"context_line":"Debugging"},{"line_number":404,"context_line":"---------"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"Enable debug logging in ``ironic.conf``:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"bedd21a0_bf7bf849","line":403,"range":{"start_line":403,"start_character":0,"end_line":403,"end_character":9},"in_reply_to":"da3efb99_304c4f43","updated":"2026-01-28 20:21:24.000000000","message":"Good points.  Yes, none of the drivers do any of this type handling today.  Having the service take on more of an \"audit\" type role where it remembers how each port is supposed to be set and then go offs and periodically audits it would be a wider scope than what we have considered, but I do agree that it would be an area of concern/value.  \n\nWe\u0027ll have to revisit this.","commit_id":"84ed5f2eceb8521d153c278983e99725359b5823"},{"author":{"_account_id":32177,"name":"Jacob Anders","email":"jacob-anders-dev@proton.me","username":"janders"},"change_message_id":"395f572a076d7d202d2483585c989b16c5f7caad","unresolved":true,"context_lines":[{"line_number":591,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"* :doc:`/admin/dhcp-less`"},{"line_number":594,"context_line":"* :doc:`/admin/interfaces/network-interface`"},{"line_number":595,"context_line":"* :ref:`configure-networking`"},{"line_number":596,"context_line":"* `networking-generic-switch documentation \u003chttps://networking-generic-switch.readthedocs.io/\u003e`_"}],"source_content_type":"text/x-rst","patch_set":11,"id":"b630c867_2776414f","line":594,"range":{"start_line":594,"start_character":0,"end_line":594,"end_character":44},"updated":"2026-01-28 19:58:36.000000000","message":"is this a valid link?\n\n~/git/ironic/doc/source$ ls admin/interfaces/\nboot.rst  deploy.rst","commit_id":"84ed5f2eceb8521d153c278983e99725359b5823"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"b07ca122c1a1e91f3a952899757e3e5e28f4e2df","unresolved":false,"context_lines":[{"line_number":591,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"* :doc:`/admin/dhcp-less`"},{"line_number":594,"context_line":"* :doc:`/admin/interfaces/network-interface`"},{"line_number":595,"context_line":"* :ref:`configure-networking`"},{"line_number":596,"context_line":"* `networking-generic-switch documentation \u003chttps://networking-generic-switch.readthedocs.io/\u003e`_"}],"source_content_type":"text/x-rst","patch_set":11,"id":"fb262348_6e96e944","line":594,"range":{"start_line":594,"start_character":0,"end_line":594,"end_character":44},"in_reply_to":"b630c867_2776414f","updated":"2026-01-30 19:31:35.000000000","message":"Done","commit_id":"84ed5f2eceb8521d153c278983e99725359b5823"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"ff8f8ec4a14f8728941e366199a7c4bf3f6d44f2","unresolved":true,"context_lines":[{"line_number":525,"context_line":""},{"line_number":526,"context_line":".. note::"},{"line_number":527,"context_line":"   The ``idle_network`` represents the default VLAN configuration that ports"},{"line_number":528,"context_line":"   should be configured to when no specific network is required for the node\u0027s"},{"line_number":529,"context_line":"   current state. This network is used whenever a node transitions to a state"},{"line_number":530,"context_line":"   that doesn\u0027t have an explicit network configuration defined (e.g.,"},{"line_number":531,"context_line":"   ``available``, ``enroll``, ``manageable``). It\u0027s also used when exiting"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3c8bd06d_120f4ec0","line":528,"range":{"start_line":528,"start_character":13,"end_line":528,"end_character":23},"updated":"2026-02-03 13:24:43.000000000","message":"nit: set","commit_id":"c98fcc6652630e5dc61f90a49f37ad85d0984ab7"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"3df4413501e89084064b7aa336c41a33ed877b3b","unresolved":false,"context_lines":[{"line_number":525,"context_line":""},{"line_number":526,"context_line":".. note::"},{"line_number":527,"context_line":"   The ``idle_network`` represents the default VLAN configuration that ports"},{"line_number":528,"context_line":"   should be configured to when no specific network is required for the node\u0027s"},{"line_number":529,"context_line":"   current state. This network is used whenever a node transitions to a state"},{"line_number":530,"context_line":"   that doesn\u0027t have an explicit network configuration defined (e.g.,"},{"line_number":531,"context_line":"   ``available``, ``enroll``, ``manageable``). It\u0027s also used when exiting"}],"source_content_type":"text/x-rst","patch_set":12,"id":"b1f5e3fa_10518bab","line":528,"range":{"start_line":528,"start_character":13,"end_line":528,"end_character":23},"in_reply_to":"3c8bd06d_120f4ec0","updated":"2026-02-03 15:41:57.000000000","message":"Done","commit_id":"c98fcc6652630e5dc61f90a49f37ad85d0984ab7"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"304ff91fa78b33e214b09050a3fd820671381ad6","unresolved":true,"context_lines":[{"line_number":76,"context_line":"The standalone networking service requires the ``networking-generic-switch``"},{"line_number":77,"context_line":"library for the generic-switch driver::"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    $ pip install networking-generic-switch"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"This is the only additional dependency beyond Ironic\u0027s base requirements."},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"e9f57f7e_36cc1039","line":79,"updated":"2026-02-03 19:00:58.000000000","message":"Reiterating that I think downstream packagers will want this -- even if just a single package -- in some kinda actual python dependency format (pyproject.toml optional deps; networking-requirements.txt, etc).","commit_id":"ff6de088d5c72f5bfa2e1e0bccba5d7c1378b960"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"199a5aa0829053f1974ba3acfeff8e2d5490147c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"The standalone networking service requires the ``networking-generic-switch``"},{"line_number":77,"context_line":"library for the generic-switch driver::"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    $ pip install networking-generic-switch"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"This is the only additional dependency beyond Ironic\u0027s base requirements."},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"04ae806d_1ef1ad6d","line":79,"in_reply_to":"5329313f_dc6d0605","updated":"2026-02-03 19:46:20.000000000","message":"Awesome","commit_id":"ff6de088d5c72f5bfa2e1e0bccba5d7c1378b960"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"e8774a9892af7ddcfdd94d060d0bffd6eb12ca8b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"The standalone networking service requires the ``networking-generic-switch``"},{"line_number":77,"context_line":"library for the generic-switch driver::"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    $ pip install networking-generic-switch"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"This is the only additional dependency beyond Ironic\u0027s base requirements."},{"line_number":82,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"5329313f_dc6d0605","line":79,"in_reply_to":"e9f57f7e_36cc1039","updated":"2026-02-03 19:17:15.000000000","message":"Actually, this is actually in `driver-requirements.txt` in the Ironic repo.  I had forgotten about that.","commit_id":"ff6de088d5c72f5bfa2e1e0bccba5d7c1378b960"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"304ff91fa78b33e214b09050a3fd820671381ad6","unresolved":true,"context_lines":[{"line_number":94,"context_line":"   enabled_network_interfaces \u003d noop,ironic-networking"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"   [ironic_networking_json_rpc]"},{"line_number":97,"context_line":"   auth_strategy \u003d http_basic"},{"line_number":98,"context_line":"   http_basic_auth_user_file \u003d /etc/ironic/htpasswd-rpc"},{"line_number":99,"context_line":"   host_ip \u003d localhost"},{"line_number":100,"context_line":"   port \u003d 6190"}],"source_content_type":"text/x-rst","patch_set":13,"id":"72bbbdd4_a9ed4b02","line":97,"updated":"2026-02-03 19:00:58.000000000","message":"Do these services support other auth_strategies? Like keystone?","commit_id":"ff6de088d5c72f5bfa2e1e0bccba5d7c1378b960"},{"author":{"_account_id":25437,"name":"Allain Legacy","email":"alegacy@redhat.com","username":"alegacy"},"change_message_id":"e8774a9892af7ddcfdd94d060d0bffd6eb12ca8b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"   enabled_network_interfaces \u003d noop,ironic-networking"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"   [ironic_networking_json_rpc]"},{"line_number":97,"context_line":"   auth_strategy \u003d http_basic"},{"line_number":98,"context_line":"   http_basic_auth_user_file \u003d /etc/ironic/htpasswd-rpc"},{"line_number":99,"context_line":"   host_ip \u003d localhost"},{"line_number":100,"context_line":"   port \u003d 6190"}],"source_content_type":"text/x-rst","patch_set":13,"id":"a6e054e9_458bb4c2","line":97,"in_reply_to":"72bbbdd4_a9ed4b02","updated":"2026-02-03 19:17:15.000000000","message":"The service is build using the same underlying libraries as the other Ironic RPC API(s) therefore, yes, it will support the other modes as well.","commit_id":"ff6de088d5c72f5bfa2e1e0bccba5d7c1378b960"}]}
