)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"16f50d39cff0b2b25f7b9210fb30f58dd8e93d37","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ce3e6d4e_412bf514","updated":"2025-11-18 21:55:45.000000000","message":"@miguel@mlavalle.com I believe this has some intersection with https://bugs.launchpad.net/neutron/+bug/2114451","commit_id":"806ab4e88a24f11224122bacf781ca747016d95d"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"fae93a0c414e6d5eec0a0ad3601ed5adab1f926c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ef621c31_032b7d20","updated":"2025-11-18 22:03:49.000000000","message":"If you change the word \"host\" in this spec to \"leaf switch\", the way you use the physical_network is identical to how the L3VNI works in the physical case with Ironic. This is what my doc at https://review.opendev.org/c/openstack/neutron/+/965415 attempts to describe. What Neutron calls routed networks with segments is akin to EVPN Type-5.","commit_id":"806ab4e88a24f11224122bacf781ca747016d95d"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"311b2b111f190548a8d7e5b233ef5eed69a1cf64","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"4326eac1_8acc0e41","updated":"2025-11-22 05:32:35.000000000","message":"Overall this makes sense. Just curiosity with my physical networks mindset, for those bridges with the agent, how do you see them being hooked to the network interface of the machine? A VLAN? how will the agent get the VLAN assignment?","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"40519bd972ce87cb6bbf65a0ac84b9c858300390","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"fa2f26e7_fe3af9f5","updated":"2025-12-03 11:49:10.000000000","message":"thanks really nice summary of where we are and what to expect","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9b099862262fb0a20a58a51d863d755953679513","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"ae5c1652_4f50f976","updated":"2026-01-14 07:15:55.000000000","message":"All good IMO, let\u0027s go for the implementation.","commit_id":"b7ced8c14feeb8849b0213b1aea35cdb1c0690a1"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9710aa923453e90fbfaa9ed04346ae2540cae811","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"6799e8a8_6f22efa3","updated":"2026-01-07 21:44:35.000000000","message":"Overall looks like a good plan, I only had one nit which you really don\u0027t need to fix unless you re-spin.\n\nDid not merge yet to give others time to add comments/vote.","commit_id":"b7ced8c14feeb8849b0213b1aea35cdb1c0690a1"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"12174afa714c9291183c936ec149eab703a5e111","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"0c5df90a_eebbae9f","updated":"2025-12-19 01:45:29.000000000","message":"Reading through the spec again and the comments I cannot help but see this as working much the same like the OVN baremetal support that I’ve demoed to the driver team and have proposed. We use br-ex and ultimately use the trunk plugin by having a trunk port for each OVN agent. We create supports as needed for each segment so that OVN tags the traffic appropriately. We use network-segment-range to restrict what VLANs can be used.","commit_id":"b7ced8c14feeb8849b0213b1aea35cdb1c0690a1"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"963aba3ee662bb52d7ae86c83fe67029cd61e4cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"bfc8bbdc_2ca9e27b","updated":"2025-12-19 00:49:53.000000000","message":"Thanks for your comments. I have addressed all of them to the best of my abilities","commit_id":"b7ced8c14feeb8849b0213b1aea35cdb1c0690a1"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"06e7a49fb4f0678a7a05f7e1ddd4222562c16ee7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":13,"id":"3132b93f_88b2d23c","in_reply_to":"0c5df90a_eebbae9f","updated":"2025-12-22 14:57:51.000000000","message":"I failed to mention in my comment that the delta here is we would create the Logical Switch per segment with its own assigned subnet. Today we are doing it per network.","commit_id":"b7ced8c14feeb8849b0213b1aea35cdb1c0690a1"}],"specs/2026.1/multiple-segments-per-host-routed-net-ovn.rst":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"40519bd972ce87cb6bbf65a0ac84b9c858300390","unresolved":true,"context_lines":[{"line_number":32,"context_line":".. figure:: ../../images/routed-networks.jpg"},{"line_number":33,"context_line":"   :target: ../../_images/routed-networks.jpg"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"In routed provider networks each segment is connected to a group of hosts, as"},{"line_number":36,"context_line":"shown in the following diagram. In the optimal situation, the network traffic"},{"line_number":37,"context_line":"generated by the workload running in the hosts doesn\u0027t exceed the capacity of"},{"line_number":38,"context_line":"the corresponding segment."}],"source_content_type":"text/x-rst","patch_set":11,"id":"0fe47f27_2415e669","line":35,"range":{"start_line":35,"start_character":59,"end_line":35,"end_character":73},"updated":"2025-12-03 11:49:10.000000000","message":"perhaps mention here aggregates to make naming consistent","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"31e735b33555ea12bc739ebcb4ca1852289012b6","unresolved":false,"context_lines":[{"line_number":32,"context_line":".. figure:: ../../images/routed-networks.jpg"},{"line_number":33,"context_line":"   :target: ../../_images/routed-networks.jpg"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"In routed provider networks each segment is connected to a group of hosts, as"},{"line_number":36,"context_line":"shown in the following diagram. In the optimal situation, the network traffic"},{"line_number":37,"context_line":"generated by the workload running in the hosts doesn\u0027t exceed the capacity of"},{"line_number":38,"context_line":"the corresponding segment."}],"source_content_type":"text/x-rst","patch_set":11,"id":"a85e654c_59f9ef16","line":35,"range":{"start_line":35,"start_character":59,"end_line":35,"end_character":73},"in_reply_to":"0fe47f27_2415e669","updated":"2025-12-10 17:20:57.000000000","message":"Done","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"40519bd972ce87cb6bbf65a0ac84b9c858300390","unresolved":true,"context_lines":[{"line_number":88,"context_line":"   configuration of the `br-ex` side of the patch ports. They can be created"},{"line_number":89,"context_line":"   automatically by Neutron or they can be created as a result of system"},{"line_number":90,"context_line":"   administration activities. To select from these two alternatives, a large"},{"line_number":91,"context_line":"   user of routed provider networks with the ML2/OVS driver was asked how"},{"line_number":92,"context_line":"   frequently they have added segments to their hosts. They responded that they"},{"line_number":93,"context_line":"   add segments every month. Based on this information, this specification"},{"line_number":94,"context_line":"   proposes to develop an agent that will create bridges and configure them."}],"source_content_type":"text/x-rst","patch_set":11,"id":"fafc1445_cf17c7d4","line":91,"range":{"start_line":91,"start_character":60,"end_line":91,"end_character":69},"updated":"2025-12-03 11:49:10.000000000","message":"good approach to ask around","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"31e735b33555ea12bc739ebcb4ca1852289012b6","unresolved":false,"context_lines":[{"line_number":88,"context_line":"   configuration of the `br-ex` side of the patch ports. They can be created"},{"line_number":89,"context_line":"   automatically by Neutron or they can be created as a result of system"},{"line_number":90,"context_line":"   administration activities. To select from these two alternatives, a large"},{"line_number":91,"context_line":"   user of routed provider networks with the ML2/OVS driver was asked how"},{"line_number":92,"context_line":"   frequently they have added segments to their hosts. They responded that they"},{"line_number":93,"context_line":"   add segments every month. Based on this information, this specification"},{"line_number":94,"context_line":"   proposes to develop an agent that will create bridges and configure them."}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a62e0ec_2a913b47","line":91,"range":{"start_line":91,"start_character":60,"end_line":91,"end_character":69},"in_reply_to":"fafc1445_cf17c7d4","updated":"2025-12-10 17:20:57.000000000","message":"Acknowledged","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"40519bd972ce87cb6bbf65a0ac84b9c858300390","unresolved":true,"context_lines":[{"line_number":90,"context_line":"   administration activities. To select from these two alternatives, a large"},{"line_number":91,"context_line":"   user of routed provider networks with the ML2/OVS driver was asked how"},{"line_number":92,"context_line":"   frequently they have added segments to their hosts. They responded that they"},{"line_number":93,"context_line":"   add segments every month. Based on this information, this specification"},{"line_number":94,"context_line":"   proposes to develop an agent that will create bridges and configure them."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"To implement the proposed new functionality, the following changes to the code"},{"line_number":97,"context_line":"are expected:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"c979ed3c_6226dbd4","line":94,"range":{"start_line":93,"start_character":56,"end_line":94,"end_character":76},"updated":"2025-12-03 11:49:10.000000000","message":"you mean the admin creates a segment and the agent will create the bridge and do the configuration in bridge-mappings?","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"082d16a0baeca318d4c1bb63c25567172aa92a69","unresolved":false,"context_lines":[{"line_number":90,"context_line":"   administration activities. To select from these two alternatives, a large"},{"line_number":91,"context_line":"   user of routed provider networks with the ML2/OVS driver was asked how"},{"line_number":92,"context_line":"   frequently they have added segments to their hosts. They responded that they"},{"line_number":93,"context_line":"   add segments every month. Based on this information, this specification"},{"line_number":94,"context_line":"   proposes to develop an agent that will create bridges and configure them."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"To implement the proposed new functionality, the following changes to the code"},{"line_number":97,"context_line":"are expected:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"f5353121_63c97124","line":94,"range":{"start_line":93,"start_character":56,"end_line":94,"end_character":76},"in_reply_to":"84a326a6_7adb1cb9","updated":"2025-12-11 22:01:51.000000000","message":"Indeed, it would be safer. However, after the PTG concluded, I had a meeting, on November 14th, with the customer who triggered the implementation of this feature. I went over an earlier version of this spec with them, and they clarified their original feedback regarding how frequently they add segments to their ML2/OVS deployment. They add segments every month, instead of only once in five years, as we originally misunderstood.  This would make too onerous the work of constantly adding OVS bridges across all the chassis in their deployment. They requested that the bridge creation be automatic.","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"963aba3ee662bb52d7ae86c83fe67029cd61e4cd","unresolved":false,"context_lines":[{"line_number":90,"context_line":"   administration activities. To select from these two alternatives, a large"},{"line_number":91,"context_line":"   user of routed provider networks with the ML2/OVS driver was asked how"},{"line_number":92,"context_line":"   frequently they have added segments to their hosts. They responded that they"},{"line_number":93,"context_line":"   add segments every month. Based on this information, this specification"},{"line_number":94,"context_line":"   proposes to develop an agent that will create bridges and configure them."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"To implement the proposed new functionality, the following changes to the code"},{"line_number":97,"context_line":"are expected:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"dd42f42b_6e98b614","line":94,"range":{"start_line":93,"start_character":56,"end_line":94,"end_character":76},"in_reply_to":"94815f3a_8ec46a00","updated":"2025-12-19 00:49:53.000000000","message":"Totally agree. I added a paragraph at the very end of this spec to reflect your feedback","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"31e735b33555ea12bc739ebcb4ca1852289012b6","unresolved":true,"context_lines":[{"line_number":90,"context_line":"   administration activities. To select from these two alternatives, a large"},{"line_number":91,"context_line":"   user of routed provider networks with the ML2/OVS driver was asked how"},{"line_number":92,"context_line":"   frequently they have added segments to their hosts. They responded that they"},{"line_number":93,"context_line":"   add segments every month. Based on this information, this specification"},{"line_number":94,"context_line":"   proposes to develop an agent that will create bridges and configure them."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"To implement the proposed new functionality, the following changes to the code"},{"line_number":97,"context_line":"are expected:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"d2aa7e4c_a1fea61d","line":94,"range":{"start_line":93,"start_character":56,"end_line":94,"end_character":76},"in_reply_to":"c979ed3c_6226dbd4","updated":"2025-12-10 17:20:57.000000000","message":"Correct","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"ff4884896c15d5ac601a657ee100777417564bf7","unresolved":true,"context_lines":[{"line_number":90,"context_line":"   administration activities. To select from these two alternatives, a large"},{"line_number":91,"context_line":"   user of routed provider networks with the ML2/OVS driver was asked how"},{"line_number":92,"context_line":"   frequently they have added segments to their hosts. They responded that they"},{"line_number":93,"context_line":"   add segments every month. Based on this information, this specification"},{"line_number":94,"context_line":"   proposes to develop an agent that will create bridges and configure them."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"To implement the proposed new functionality, the following changes to the code"},{"line_number":97,"context_line":"are expected:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"84a326a6_7adb1cb9","line":94,"range":{"start_line":93,"start_character":56,"end_line":94,"end_character":76},"in_reply_to":"d2aa7e4c_a1fea61d","updated":"2025-12-10 21:52:04.000000000","message":"When we discussed this during the last PTG, I thought we concluded that it would be safer to have the bridge mappings set statically at deployment time. I.e. an operator will have to decide how many segments they want per compute(chassis) at deployment time. Lets say they will want 3. Thus they would create e.g. `ovn-bridge-mappings\u003d\"physnet_seg_1:br-ex-1,physnet_seg_2:br-ex-2,physnet_seg_3:br-ex-3\"`. The new agent will not touch bridge-mappings or configure them dynamically. The only thing that the agent would have to do is to create patch connection between br-ex-\u003csegment\u003e bridges and the `br-ex`(main) bridge. (For visual, reference the `routed-networks-n-segments-per-host.jpg` And set `vlan_mode` attributes on br-ex as per diagran.","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"242946c9b99358d113880558500c5e2fb129cd57","unresolved":true,"context_lines":[{"line_number":90,"context_line":"   administration activities. To select from these two alternatives, a large"},{"line_number":91,"context_line":"   user of routed provider networks with the ML2/OVS driver was asked how"},{"line_number":92,"context_line":"   frequently they have added segments to their hosts. They responded that they"},{"line_number":93,"context_line":"   add segments every month. Based on this information, this specification"},{"line_number":94,"context_line":"   proposes to develop an agent that will create bridges and configure them."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"To implement the proposed new functionality, the following changes to the code"},{"line_number":97,"context_line":"are expected:"}],"source_content_type":"text/x-rst","patch_set":11,"id":"94815f3a_8ec46a00","line":94,"range":{"start_line":93,"start_character":56,"end_line":94,"end_character":76},"in_reply_to":"f5353121_63c97124","updated":"2025-12-16 19:37:49.000000000","message":"Just my proposal as I feel like this dynamic bridge configuration can be tricky to get working properly while not introducing any regression.\nI think we can split implementing multiple routed provider networks and \"ovn agent dynamic bridge configuration\" into two separate deliverables.\n\n1. Initially, I would just implement the changes on the Neutron side(one segment per network, rpc calls to ovn agent etc.). But keep the bridge mapings static configuration at deployment. I feel like operators have a good estimate how many segments they will need per chassis.\n\n2. Later, once we are more comfortable with this feature and know how it is being used, we can implement dynamic bridge mappings.\n\nThis approach will also help with delivering this feature faster to the end user.\n\nmy 2 cents.","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"40519bd972ce87cb6bbf65a0ac84b9c858300390","unresolved":true,"context_lines":[{"line_number":111,"context_line":"   in each host."},{"line_number":112,"context_line":"#. An agent will be developed that will be responsible for creating and"},{"line_number":113,"context_line":"   configuring the bridges that represent the routed provider network segments."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"References"},{"line_number":116,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"98da4bd7_4b0abf15","line":114,"updated":"2025-12-03 11:49:10.000000000","message":"please add a few lines for the planned automatic testing if possible with zuul.","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"a555ecdb71ec9fd3360a73131e81cc9ad29d1a8c","unresolved":true,"context_lines":[{"line_number":111,"context_line":"   in each host."},{"line_number":112,"context_line":"#. An agent will be developed that will be responsible for creating and"},{"line_number":113,"context_line":"   configuring the bridges that represent the routed provider network segments."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"References"},{"line_number":116,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"575bb898_35704d91","line":114,"in_reply_to":"4b490b96_49b1b1f0","updated":"2025-12-10 17:30:05.000000000","message":"Another way to ask this question is: are routed provider networks with multiple segments per host with the ML2/OVS backend being tested in zuul? How is it done? Do you know what job?","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f62c3af1eb0dfec5849d821249fd0054dfa4856d","unresolved":true,"context_lines":[{"line_number":111,"context_line":"   in each host."},{"line_number":112,"context_line":"#. An agent will be developed that will be responsible for creating and"},{"line_number":113,"context_line":"   configuring the bridges that represent the routed provider network segments."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"References"},{"line_number":116,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"bda6a357_75566435","line":114,"in_reply_to":"575bb898_35704d91","updated":"2025-12-19 08:22:32.000000000","message":"personally I think that it may be little bit too much of resources usage for the u/s job","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"31e735b33555ea12bc739ebcb4ca1852289012b6","unresolved":true,"context_lines":[{"line_number":111,"context_line":"   in each host."},{"line_number":112,"context_line":"#. An agent will be developed that will be responsible for creating and"},{"line_number":113,"context_line":"   configuring the bridges that represent the routed provider network segments."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"References"},{"line_number":116,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":117,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"4b490b96_49b1b1f0","line":114,"in_reply_to":"98da4bd7_4b0abf15","updated":"2025-12-10 17:20:57.000000000","message":"The way I am testing this is with a devstack with an OpenStack cluster with 4 machines: central (control plane and compute node) and 3 compute nodes (worker1, worker2 and worker3). central and worker1 are connected with two network segments and worker2 and worker3 are connected with two different segments. These four segments are part of one routed provider network. \n\nI have a fifth machine in the environment, iprouter, which is not part of the OpenStack cluster. It is connected to the four segments mentioned above and provides L3 routing among the segments, completing the routed provider network implementation.\n\nIn this environment:\n\n1) A VM running in central with a VIF on the first segment associated to central should be able to ping and ssh any other VM running on any of the worker nodes with a VIF in any of the associated segments, because iprouter will provide the L3 routing necessary\n\n2) However, if iprouter is removed from the environment, a VM running in central with a VIF on the first segment associated to central should be able to ping and ssh only a VM running on central or worker1 with a VIF on the same segment.\n\nAM I going to be able to create this environment in Zuul? Or can you think of a way to simplify this test so I can use Zuul to test the feature?\n\nThis is the Vagrant definition of the environment I just described: https://github.com/miguellavalle/vagrants/tree/master/ovn-routed-networks-multiple-segments. Please note that as of my writing of this response, I haven\u0027s added a second segment to each host yet","commit_id":"3fe8192f50409bbe9f279de44c7f30f3b85c7a66"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a3f0fce92b9c1b5d2bbd7cb0053314dae76abad9","unresolved":true,"context_lines":[{"line_number":83,"context_line":"   using in this specification, for the physnet identified as `physnet-43`, the"},{"line_number":84,"context_line":"   corresponding mapping is `physnet-43:br-ex-43`. It is the presence of these"},{"line_number":85,"context_line":"   mappings that triggers the `ovn-controller` to configure the patch ports on"},{"line_number":86,"context_line":"   the `br-int` side of the segment bridges."},{"line_number":87,"context_line":"#. There are two alternatives for the creation of the `br-ex*` bridges and the"},{"line_number":88,"context_line":"   configuration of the `br-ex` side of the patch ports. They can be created"},{"line_number":89,"context_line":"   automatically by Neutron or they can be created as a result of system"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3214da2e_936d0716","line":86,"updated":"2025-12-18 09:28:14.000000000","message":"according to what I see in the picture images/routed-networks-n-segments-per-host.jpg the `ovn-bridge-mappings` external_id has now mapping for each segment to the \"segment bridge\". But how you are going to express mapping all of those to the `br-ex` (what is currently done in the bridge-mappings actually and what I think is still needed)?","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"963aba3ee662bb52d7ae86c83fe67029cd61e4cd","unresolved":false,"context_lines":[{"line_number":83,"context_line":"   using in this specification, for the physnet identified as `physnet-43`, the"},{"line_number":84,"context_line":"   corresponding mapping is `physnet-43:br-ex-43`. It is the presence of these"},{"line_number":85,"context_line":"   mappings that triggers the `ovn-controller` to configure the patch ports on"},{"line_number":86,"context_line":"   the `br-int` side of the segment bridges."},{"line_number":87,"context_line":"#. There are two alternatives for the creation of the `br-ex*` bridges and the"},{"line_number":88,"context_line":"   configuration of the `br-ex` side of the patch ports. They can be created"},{"line_number":89,"context_line":"   automatically by Neutron or they can be created as a result of system"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3d5792d7_7be156c8","line":86,"in_reply_to":"3214da2e_936d0716","updated":"2025-12-19 00:49:53.000000000","message":"After seeing your question, I asked it to the OVN team over Slack:\n\nmlavalle Today at 8:52 AM\n@dceara @i.maximets I\u0027ve continued working on this functionality. I have a Neutron spec under review. Today I got a question which I am not sure how to answer, In the spec\u0027s formatted version, please look at the very last diagram. There I am saying that we will have the following bridge mappings: external_ids:ovn-bridge-mappings\u003d\"physnet-42:br-ex-42, physnet-43:br-ex-43, physnet-44:br-ex-44. But how should we express that these 3 bridges will be connected br-ex? How will ovn-controller figure that out?\n\ni.maximets Today at 8:59 AM\nIt will not.  Neutron should wire them together.  ovn-controller will not know anything about br-ex.\n(dceara expressed his agreement with an emoji that I can not copy here.\n\nSo I added a remark to this paragraph indicating that br-ex is not included in the bridge mappings","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f62c3af1eb0dfec5849d821249fd0054dfa4856d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"   using in this specification, for the physnet identified as `physnet-43`, the"},{"line_number":84,"context_line":"   corresponding mapping is `physnet-43:br-ex-43`. It is the presence of these"},{"line_number":85,"context_line":"   mappings that triggers the `ovn-controller` to configure the patch ports on"},{"line_number":86,"context_line":"   the `br-int` side of the segment bridges."},{"line_number":87,"context_line":"#. There are two alternatives for the creation of the `br-ex*` bridges and the"},{"line_number":88,"context_line":"   configuration of the `br-ex` side of the patch ports. They can be created"},{"line_number":89,"context_line":"   automatically by Neutron or they can be created as a result of system"}],"source_content_type":"text/x-rst","patch_set":12,"id":"53800a0d_3869cae5","line":86,"in_reply_to":"3d5792d7_7be156c8","updated":"2025-12-19 08:22:32.000000000","message":"ok, thx for clarification. So we will need some additional config option in the neutron-ovn-agent to tell that agent to what bridge (br-ex) those segment bridges should be connected, right?","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"4eb3f8873e95b3a1cb74e1959a181b33f428dcf1","unresolved":false,"context_lines":[{"line_number":83,"context_line":"   using in this specification, for the physnet identified as `physnet-43`, the"},{"line_number":84,"context_line":"   corresponding mapping is `physnet-43:br-ex-43`. It is the presence of these"},{"line_number":85,"context_line":"   mappings that triggers the `ovn-controller` to configure the patch ports on"},{"line_number":86,"context_line":"   the `br-int` side of the segment bridges."},{"line_number":87,"context_line":"#. There are two alternatives for the creation of the `br-ex*` bridges and the"},{"line_number":88,"context_line":"   configuration of the `br-ex` side of the patch ports. They can be created"},{"line_number":89,"context_line":"   automatically by Neutron or they can be created as a result of system"}],"source_content_type":"text/x-rst","patch_set":12,"id":"d4cd8fa0_ee3940bb","line":86,"in_reply_to":"53800a0d_3869cae5","updated":"2026-01-05 20:29:39.000000000","message":"Correct","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a3f0fce92b9c1b5d2bbd7cb0053314dae76abad9","unresolved":true,"context_lines":[{"line_number":91,"context_line":"   user of routed provider networks with the ML2/OVS driver was asked how"},{"line_number":92,"context_line":"   frequently they have added segments to their hosts. They responded that they"},{"line_number":93,"context_line":"   add segments every month. Based on this information, this specification"},{"line_number":94,"context_line":"   proposes to develop an agent that will create bridges and configure them."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"To implement the proposed new functionality, the following changes to the code"},{"line_number":97,"context_line":"are expected:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"c60dc9a7_bff6f478","line":94,"updated":"2025-12-18 09:28:14.000000000","message":"but the `br-ex` bridge which provides connectivity to the underlay network will still be created by the could operator, not automatically by neutron, right?","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"963aba3ee662bb52d7ae86c83fe67029cd61e4cd","unresolved":false,"context_lines":[{"line_number":91,"context_line":"   user of routed provider networks with the ML2/OVS driver was asked how"},{"line_number":92,"context_line":"   frequently they have added segments to their hosts. They responded that they"},{"line_number":93,"context_line":"   add segments every month. Based on this information, this specification"},{"line_number":94,"context_line":"   proposes to develop an agent that will create bridges and configure them."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"To implement the proposed new functionality, the following changes to the code"},{"line_number":97,"context_line":"are expected:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"ac048e01_faee3fbd","line":94,"in_reply_to":"c60dc9a7_bff6f478","updated":"2025-12-19 00:49:53.000000000","message":"Correct. I added a clarification remark to this paragraph","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"242946c9b99358d113880558500c5e2fb129cd57","unresolved":true,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"#. When a segment is created for a routed provider network, an associated"},{"line_number":100,"context_line":"   Logical Switch and Logical Switch Port of type `localnet` will need to be"},{"line_number":101,"context_line":"   created in the OVN NBDB. Correspondingly, these OVN resources will have to"},{"line_number":102,"context_line":"   be removed when the segment is deleted."},{"line_number":103,"context_line":"#. When a port is created for a routed provider network, the creation of the"},{"line_number":104,"context_line":"   associated Logical Switch Port will have to be deferred until the moment"},{"line_number":105,"context_line":"   when the segment to which it is bound is known. Correspondingly, when a port"}],"source_content_type":"text/x-rst","patch_set":12,"id":"77c42898_a08abe74","line":102,"range":{"start_line":101,"start_character":28,"end_line":102,"end_character":42},"updated":"2025-12-16 19:37:49.000000000","message":"I think we should add more details here. Correct me if I am misunderstanding this\n\nWhen a segment is deleted, the ovn agent will have to:\n1. Remove the segment-bridge from the OVS OpenvSwitch table `ovn-bridge-mappings\u003d` \n2. Remove patch port between the segment-bridge and the br-ex(maybe this is auto handled at OVS level)\n3. Clean up `trunks` and `tag` attribute on the OVS br-ex bridge","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"963aba3ee662bb52d7ae86c83fe67029cd61e4cd","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"#. When a segment is created for a routed provider network, an associated"},{"line_number":100,"context_line":"   Logical Switch and Logical Switch Port of type `localnet` will need to be"},{"line_number":101,"context_line":"   created in the OVN NBDB. Correspondingly, these OVN resources will have to"},{"line_number":102,"context_line":"   be removed when the segment is deleted."},{"line_number":103,"context_line":"#. When a port is created for a routed provider network, the creation of the"},{"line_number":104,"context_line":"   associated Logical Switch Port will have to be deferred until the moment"},{"line_number":105,"context_line":"   when the segment to which it is bound is known. Correspondingly, when a port"}],"source_content_type":"text/x-rst","patch_set":12,"id":"32ea8f20_00bfb1af","line":102,"range":{"start_line":101,"start_character":28,"end_line":102,"end_character":42},"in_reply_to":"77c42898_a08abe74","updated":"2025-12-19 00:49:53.000000000","message":"Yes all of these have to be done, but in this specific point I am describing what needs to be done at the NBDB level. What you are describing has to be carried out by the new agent extension running in each chassis, which is described in the last bullet below. I have updated that bullet to reflect your feedback.","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":34271,"name":"Miro Tomaska","display_name":"Miro Tomaska","email":"mtomaska@redhat.com","username":"mtomaska"},"change_message_id":"242946c9b99358d113880558500c5e2fb129cd57","unresolved":true,"context_lines":[{"line_number":107,"context_line":"   the correct Logical Switch."},{"line_number":108,"context_line":"#. The OVN maintenance and DB synchronization periodic jobs must be updated to"},{"line_number":109,"context_line":"   account for the changes described in the previous two points."},{"line_number":110,"context_line":"#. For routed provider networks, there will be one metadata agent per segment"},{"line_number":111,"context_line":"   in each host."},{"line_number":112,"context_line":"#. An agent will be developed that will be responsible for creating and"},{"line_number":113,"context_line":"   configuring the bridges that represent the routed provider network segments."},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"172baf43_38e83672","line":111,"range":{"start_line":110,"start_character":33,"end_line":111,"end_character":16},"updated":"2025-12-16 19:37:49.000000000","message":"I am concern how many open SB DB connections that will create. A network can have many segments, even a network with 10 segments that means you will have 10 agents. And if num_of_workers is not 0 or 1 then each agent will be forked N times.\n\nIt would be best to update the metadata agent to handle multisegment network, thus keeping one agent instance per chassis. It shouldnt be too much work.","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"963aba3ee662bb52d7ae86c83fe67029cd61e4cd","unresolved":false,"context_lines":[{"line_number":107,"context_line":"   the correct Logical Switch."},{"line_number":108,"context_line":"#. The OVN maintenance and DB synchronization periodic jobs must be updated to"},{"line_number":109,"context_line":"   account for the changes described in the previous two points."},{"line_number":110,"context_line":"#. For routed provider networks, there will be one metadata agent per segment"},{"line_number":111,"context_line":"   in each host."},{"line_number":112,"context_line":"#. An agent will be developed that will be responsible for creating and"},{"line_number":113,"context_line":"   configuring the bridges that represent the routed provider network segments."},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9b95368d_aeeabb31","line":111,"range":{"start_line":110,"start_character":33,"end_line":111,"end_character":16},"in_reply_to":"019f4aa0_f4b5c32b","updated":"2025-12-19 00:49:53.000000000","message":"It was an unfortunate selection of words. Yes, we will only have one metadata agent per chassis, I have updated the spec to express that the agent will be updated to provision a datapath for localports that are in logical switches associated to segments.\n\n@Slawek,\n\nPer this spec, we will have one logical switch per segment. We need a localport in each one of those segments to serve metadata to VMs. A datapath has to be provisioned for those localports in each chassis if we want to serve metadata to those VMs. The metadata agent provisions that datapath: https://github.com/openstack/neutron/blob/1a0e4115995497ac0df9ed5353fabca483a7afb1/neutron/agent/ovn/metadata/agent.py#L754","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a3f0fce92b9c1b5d2bbd7cb0053314dae76abad9","unresolved":true,"context_lines":[{"line_number":107,"context_line":"   the correct Logical Switch."},{"line_number":108,"context_line":"#. The OVN maintenance and DB synchronization periodic jobs must be updated to"},{"line_number":109,"context_line":"   account for the changes described in the previous two points."},{"line_number":110,"context_line":"#. For routed provider networks, there will be one metadata agent per segment"},{"line_number":111,"context_line":"   in each host."},{"line_number":112,"context_line":"#. An agent will be developed that will be responsible for creating and"},{"line_number":113,"context_line":"   configuring the bridges that represent the routed provider network segments."},{"line_number":114,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"019f4aa0_f4b5c32b","line":111,"range":{"start_line":110,"start_character":33,"end_line":111,"end_character":16},"in_reply_to":"172baf43_38e83672","updated":"2025-12-18 09:28:14.000000000","message":"Also we are currently using neutron-ovn-agent with metadata extension AFAIK. Do you want to run one of such for each network? Can you also explain a bit more why this is needed really?","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a3f0fce92b9c1b5d2bbd7cb0053314dae76abad9","unresolved":true,"context_lines":[{"line_number":109,"context_line":"   account for the changes described in the previous two points."},{"line_number":110,"context_line":"#. For routed provider networks, there will be one metadata agent per segment"},{"line_number":111,"context_line":"   in each host."},{"line_number":112,"context_line":"#. An agent will be developed that will be responsible for creating and"},{"line_number":113,"context_line":"   configuring the bridges that represent the routed provider network segments."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":12,"id":"19367277_d731c1ed","line":112,"updated":"2025-12-18 09:28:14.000000000","message":"you can probably do it as extension to the existing neutron-ovn-agent instead of creating completely new one","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"963aba3ee662bb52d7ae86c83fe67029cd61e4cd","unresolved":false,"context_lines":[{"line_number":109,"context_line":"   account for the changes described in the previous two points."},{"line_number":110,"context_line":"#. For routed provider networks, there will be one metadata agent per segment"},{"line_number":111,"context_line":"   in each host."},{"line_number":112,"context_line":"#. An agent will be developed that will be responsible for creating and"},{"line_number":113,"context_line":"   configuring the bridges that represent the routed provider network segments."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":12,"id":"1ba80f59_09230508","line":112,"in_reply_to":"19367277_d731c1ed","updated":"2025-12-19 00:49:53.000000000","message":"Agree, I updated the text to reflect your comment","commit_id":"f99ca9f46e4e221bd335a3d7a4890c96d380da8e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9710aa923453e90fbfaa9ed04346ae2540cae811","unresolved":true,"context_lines":[{"line_number":21,"context_line":"networks, performance degrades as traffic grows as a result of an increasing"},{"line_number":22,"context_line":"number of active VMs/ports. Routed provider networks were implemented to"},{"line_number":23,"context_line":"overcome this limitation and enable users to create \"large networks\", where a"},{"line_number":24,"context_line":"large number of VMs/ports can be connected without incuring the performance"},{"line_number":25,"context_line":"penalty of large single L2 broadcast domains. As shown in the following"},{"line_number":26,"context_line":"diagram, routed provider networks are constituted by several L2 segments"},{"line_number":27,"context_line":"(broadcast domains) stitched together by a router into one L3 \"large network\"."}],"source_content_type":"text/x-rst","patch_set":13,"id":"071e419b_167be9af","line":24,"range":{"start_line":24,"start_character":51,"end_line":24,"end_character":59},"updated":"2026-01-07 21:44:35.000000000","message":"nit: incurring","commit_id":"b7ced8c14feeb8849b0213b1aea35cdb1c0690a1"}]}
