)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"2343828ab635e4b8fd5db6748f7f2a9918c6f593","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Rodolfo Alonso Hernandez \u003cralonsoh@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-01-04 17:32:12 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"OVN monitor and hardware offloaded QoS extension."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I3d1c17303c6aa4491fa156ebed76babe23593663"},{"line_number":10,"context_line":"Related-Bug: #1998608"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"29ec251e_8be4176a","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":11},"updated":"2023-01-05 21:11:00.000000000","message":"nit: agent","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rodolfo Alonso Hernandez \u003cralonsoh@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2023-01-04 17:32:12 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"OVN monitor and hardware offloaded QoS extension."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I3d1c17303c6aa4491fa156ebed76babe23593663"},{"line_number":10,"context_line":"Related-Bug: #1998608"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"c7b62558_5ddad1ab","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":11},"in_reply_to":"29ec251e_8be4176a","updated":"2023-01-11 17:30:14.000000000","message":"Done","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"51be0aa3abeb044e753de1ae3f6212a1e1a08c33","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"58a3bbf1_f7e40f02","updated":"2023-01-05 12:55:42.000000000","message":"The overall goal is perfectly reasonable to me. I left a few questions where I believe we could better adapt to ovn architecture (as much as I understand it).","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"017c418da8bd9f81381cef5212fb45262922c270","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"21fe3b24_f41a6ad7","updated":"2023-01-05 15:36:47.000000000","message":"Updating the spec now...","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"f774a0bec91639813636e678c5a25fcecf9c6261","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"80cd12ed_3b1cb55d","updated":"2023-01-10 09:58:25.000000000","message":"Looking close to complete.","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1a0c1de90d74737fc7d88befd86cb8279665402c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"251ea3ea_042a236e","updated":"2023-01-06 11:41:46.000000000","message":"Thanks Rodolfo, overall I think this looks good. You may want to fix a few nits in the writing before merging but the essence seems very good.\n\nThank you!","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"6ad869ab4e26ffd503014acf9566979e9fce2ede","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"540a93d7_31d0b5a7","updated":"2023-01-12 09:01:11.000000000","message":"Looking all good to me.","commit_id":"74da244a6b8357d5296382d8b826413ad9b56ef8"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"948f0f7434cc6d3b37e7ae371782d90760a312b6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"fcfe7b3b_fda618bb","updated":"2023-01-12 17:15:02.000000000","message":"Just a couple of nits if you have to re-spin a patch","commit_id":"12f45301a693e526a8a7bd8128161e41f89a8aac"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a6a6d6d03c7c0b030bbf4ab2eb61d9b40d9f6e07","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"fe8875e3_592a57a4","updated":"2023-01-12 11:23:19.000000000","message":"Thanks Rodolfo for the spec. It does looks good to me","commit_id":"12f45301a693e526a8a7bd8128161e41f89a8aac"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2dfad9aff403fd8e81d2d2fa2d9d4e152da25ec4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"76689799_4245b65b","updated":"2023-01-13 17:01:16.000000000","message":"PS8 to PS9: rename the file to ovn-neutron-agent (to match the proposed solution)","commit_id":"4a36779f30c7be1627f8d482b455c3d8250b4d77"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0659a101939b1103127f43a9e9833b3f3048a7ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"242f73c8_109a2f24","updated":"2023-01-17 11:09:49.000000000","message":"Rebased on top of master, the former parent patch was abandoned.","commit_id":"1f682caefcf2497a7b5c7c41eb54c1fdee24afbd"}],"specs/2023.1/ovn-monitor.rst":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"51be0aa3abeb044e753de1ae3f6212a1e1a08c33","unresolved":true,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\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":8,"context_line":"Strict minimum bandwidth support for tunnelled networks"},{"line_number":9,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\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":10,"context_line":""},{"line_number":11,"context_line":"Launchpad bug: https://bugs.launchpad.net/neutron/+bug/1998608"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b2790b02_f12516a7","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":55},"updated":"2023-01-05 12:55:42.000000000","message":"Probably forgot to update.","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"017c418da8bd9f81381cef5212fb45262922c270","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\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":8,"context_line":"Strict minimum bandwidth support for tunnelled networks"},{"line_number":9,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\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":10,"context_line":""},{"line_number":11,"context_line":"Launchpad bug: https://bugs.launchpad.net/neutron/+bug/1998608"}],"source_content_type":"text/x-rst","patch_set":4,"id":"48361728_0c80a947","line":8,"range":{"start_line":8,"start_character":0,"end_line":8,"end_character":55},"in_reply_to":"b2790b02_f12516a7","updated":"2023-01-05 15:36:47.000000000","message":"Ups sorry!","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f280f486c152b38a6718d0ebd75677d7690bf697","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The lack of an agent running on the local node, owned by Neutron, prevents us"},{"line_number":32,"context_line":"from implementing some functionalities currently not supported by OVN nor the"},{"line_number":33,"context_line":"drivers. For example, an this will be the first feature that the OVN monitor"},{"line_number":34,"context_line":"will implement, hardware offloaded ports cannot apply the OVS QoS rules due to"},{"line_number":35,"context_line":"limitations in the drivers."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"f36a2275_bb039d2b","line":33,"range":{"start_line":33,"start_character":22,"end_line":33,"end_character":24},"updated":"2023-01-04 13:47:00.000000000","message":"nitty nit: \"and\" I guess","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"160a40b48eb89a0fcb1b865bec8bd0ce43876158","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The lack of an agent running on the local node, owned by Neutron, prevents us"},{"line_number":32,"context_line":"from implementing some functionalities currently not supported by OVN nor the"},{"line_number":33,"context_line":"drivers. For example, an this will be the first feature that the OVN monitor"},{"line_number":34,"context_line":"will implement, hardware offloaded ports cannot apply the OVS QoS rules due to"},{"line_number":35,"context_line":"limitations in the drivers."},{"line_number":36,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"e2f50aa0_9881fff8","line":33,"range":{"start_line":33,"start_character":22,"end_line":33,"end_character":24},"in_reply_to":"f36a2275_bb039d2b","updated":"2023-01-05 16:32:28.000000000","message":"Done","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"76111183f98de80c6392d0f69e21bbccc065226b","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Proposed Change"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This RFE proposes to create a generic agent running on the compute node. This"},{"line_number":42,"context_line":"agent will be called \"OVN monitor\". The execution of this monitor is"},{"line_number":43,"context_line":"discretionary and will be needed only if the specific features implemented"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5f61d723_9eaeb605","line":40,"updated":"2023-01-04 20:41:11.000000000","message":"As discussed by emails with Rodolfo, I\u0027d like to open a discussion about making a generic Neutron-OVN agent that provides an interface for various functionality - like for example what the proposed OVN monitor does for QoS and HWOL. It can also (in the next cycles) consume the metadata agent and also for example replace current agent API implementation with rpc methods.\n\nThis suggestion is to kick-off a discussion about this approach, I think having relevant data in memory for all services can be beneficial.","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"017c418da8bd9f81381cef5212fb45262922c270","unresolved":false,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Proposed Change"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This RFE proposes to create a generic agent running on the compute node. This"},{"line_number":42,"context_line":"agent will be called \"OVN monitor\". The execution of this monitor is"},{"line_number":43,"context_line":"discretionary and will be needed only if the specific features implemented"}],"source_content_type":"text/x-rst","patch_set":4,"id":"c998edc3_5e0c5cde","line":40,"in_reply_to":"1f91cad9_2556596d","updated":"2023-01-05 15:36:47.000000000","message":"For now, I think we should stick to the ovsdb communication agent. We can implement the RPC part (even a new agent) in future releases/RFEs.\n\nSo, if I\u0027m reading you well, the idea is:\n1) To create this OVN agent (generic) with an extensible interface, same as other agents. I was thinking about using the ``agent.agent_extensions_manager.AgentExtensionsManager`` class to implement it, same as in other ML2 agents.\n2) Implement the QoS HWOL feature.\n3) In future releases, move the metadata functionality to this \"OVN agent\".\n\nI\u0027ll push a new PS to portray these ideas.","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"780cfbf75ac11976ee2e0db1d34ce191873b74e5","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Proposed Change"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This RFE proposes to create a generic agent running on the compute node. This"},{"line_number":42,"context_line":"agent will be called \"OVN monitor\". The execution of this monitor is"},{"line_number":43,"context_line":"discretionary and will be needed only if the specific features implemented"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d19efee7_889d4036","line":40,"in_reply_to":"1f91cad9_2556596d","updated":"2023-01-05 15:22:05.000000000","message":"I think it\u0027s a really good point about the rpc (mq) with the agent. I\u0027m not familiar in details about scaling issues with the mq. I know what I\u0027m gonna say is out of context of this spec, so probably this spec should not think about rpc at all and just provide the pluggable agent functionality + implementation of HWOL configuration.\n\nOT: imho the rpc may be good for things like agent API similarly to what ml2/ovs agents do - periodically calling and rpc method to update timestamps in the agent DB. Another thing where I think rpc could be good is metering - we\u0027ve talked a couple of times with operators about metering capabilities for OVN. Given that this is OpenStack specific rather than CMS (maybe OVN can provide stats too) but reporting stats back to server is something may happen in future too. Generally one-way periodic communication from agent towards server is something what I think could be good for rpc as it won\u0027t cause any side-effects. Just wanted to share my opinion on rpc with agents :)","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"51be0aa3abeb044e753de1ae3f6212a1e1a08c33","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Proposed Change"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This RFE proposes to create a generic agent running on the compute node. This"},{"line_number":42,"context_line":"agent will be called \"OVN monitor\". The execution of this monitor is"},{"line_number":43,"context_line":"discretionary and will be needed only if the specific features implemented"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1f91cad9_2556596d","line":40,"in_reply_to":"5f61d723_9eaeb605","updated":"2023-01-05 12:55:42.000000000","message":"I think it\u0027s a good idea to start with a generic agent that can be used for later features also requiring an agent.\n\nI believe the following combinations make sense:\na) a general-purpose but ml2/ovn-specific agent that uses ovsdb to communicate\nb) a general-purpose but non-ml2/ovn-specific agent that uses the mq (rpc) to communicate\n\nMy understanding was that ovn architecture preferred communication via ovsdb over rpc partially because of scaling reasons. (Though I don\u0027t remember reading an in-practice comparison of its scaling properties compared to the previous rpc approach demonstrating that it actually scales differently.) However if we add an rpc-using agent to ovn, then ovn will have both communication methods\u0027 scaling bottlenecks. For this reason I\u0027m leaning into the direction of keeping all communication inside ovsdb. Then ovn would have the scaling bottlenecks of only one communication method.","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"26c590eddda871c5aa76904362483a3b40110e36","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Proposed Change"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This RFE proposes to create a generic agent running on the compute node. This"},{"line_number":42,"context_line":"agent will be called \"OVN monitor\". The execution of this monitor is"},{"line_number":43,"context_line":"discretionary and will be needed only if the specific features implemented"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e72302e7_ef4d89eb","line":40,"in_reply_to":"5f61d723_9eaeb605","updated":"2023-01-05 11:59:48.000000000","message":"Thanks for starting this discussion.\n\nI like the idea of a single OVN agent instead of multiple ones. As long as it\u0027s engineered in a way that is easy to extend (a well defined API) in a plugin-in style where functionalities can be enabled/disabled easily.\n\nA single agent does help deployers as new functionalities no longer need another service running. It also helps with monitoring such service.\n\nAnd the main thing for me, at least with OVN in mind, is scalability because we really struggle to scale OVSDB and having multiple agents almost always translate into more connections to the OVSDB databases for each service. A single agent could benefit from a single OVSDB connection which is shared across all functionalities.","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"b15b0770b8ac58c005c8d238220e17d70cfaf84d","unresolved":true,"context_lines":[{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Proposed Change"},{"line_number":39,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"This RFE proposes to create a generic agent running on the compute node. This"},{"line_number":42,"context_line":"agent will be called \"OVN monitor\". The execution of this monitor is"},{"line_number":43,"context_line":"discretionary and will be needed only if the specific features implemented"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ecdf719c_ce5c5cf1","line":40,"in_reply_to":"e72302e7_ef4d89eb","updated":"2023-01-05 12:01:54.000000000","message":"Another PRO point for us developers is that every time a new service is introduced we need to update then deployment tool to include it, create packages, containers etc...\n\nIn TripleO for example that means adding it to Tripleo Heat Templates, as well we Puppet repositories, etc...\n\nA single agent saves us a lot of that work too.","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f280f486c152b38a6718d0ebd75677d7690bf697","unresolved":true,"context_lines":[{"line_number":197,"context_line":"------------------"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Each monitor will have a connection to the local OVS database and the remotes"},{"line_number":200,"context_line":"OVN Northbound and Southbound databases. The connection to the remove OVN"},{"line_number":201,"context_line":"databases can have a severe impact on the load of the OVN database node (that"},{"line_number":202,"context_line":"are usually the OpenStack controllers). This initial implementation will"},{"line_number":203,"context_line":"subscribe to the following tables:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"a4a4cc08_ffc155f9","line":200,"range":{"start_line":200,"start_character":63,"end_line":200,"end_character":69},"updated":"2023-01-04 13:47:00.000000000","message":"nitty nit: remote","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"160a40b48eb89a0fcb1b865bec8bd0ce43876158","unresolved":false,"context_lines":[{"line_number":197,"context_line":"------------------"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"Each monitor will have a connection to the local OVS database and the remotes"},{"line_number":200,"context_line":"OVN Northbound and Southbound databases. The connection to the remove OVN"},{"line_number":201,"context_line":"databases can have a severe impact on the load of the OVN database node (that"},{"line_number":202,"context_line":"are usually the OpenStack controllers). This initial implementation will"},{"line_number":203,"context_line":"subscribe to the following tables:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0ba902ae_62a5f337","line":200,"range":{"start_line":200,"start_character":63,"end_line":200,"end_character":69},"in_reply_to":"a4a4cc08_ffc155f9","updated":"2023-01-05 16:32:28.000000000","message":"Done","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"51be0aa3abeb044e753de1ae3f6212a1e1a08c33","unresolved":true,"context_lines":[{"line_number":202,"context_line":"are usually the OpenStack controllers). This initial implementation will"},{"line_number":203,"context_line":"subscribe to the following tables:"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"* Northbound: QoS, Logical_Switch_Port and Logical_Switch"},{"line_number":206,"context_line":"* Southbound: Chassis, Encap, Port_Binding, Datapath_Binding and SB_Global"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"cd3de78f_d3b747f0","line":205,"range":{"start_line":205,"start_character":0,"end_line":205,"end_character":57},"updated":"2023-01-05 12:55:42.000000000","message":"This is in conflict with my understanding of ovn architecture. I believed that:\n\n* NB DB has a global logical view, which changes (relatively) slowly and it has a very limited set of users (practically the cms and ovn-northd) therefore it\u0027s easy to scale\n* SB DB has an in-detail physical view, which can change quickly, therefore it may be hard to scale, but at least 1) the scaling problems are localized to the SB DB, and 2) theoretically (but AFAIU not practically today) the SB DB could be sharded, that is one SB DB instance could handle only a subset of all chassis (plural).\n\nIf this is correct (is it? I\u0027m not sure) then the agent proposed here should not directly read from the NB DB - just like ovn-controller does/should not.","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"017c418da8bd9f81381cef5212fb45262922c270","unresolved":false,"context_lines":[{"line_number":202,"context_line":"are usually the OpenStack controllers). This initial implementation will"},{"line_number":203,"context_line":"subscribe to the following tables:"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"* Northbound: QoS, Logical_Switch_Port and Logical_Switch"},{"line_number":206,"context_line":"* Southbound: Chassis, Encap, Port_Binding, Datapath_Binding and SB_Global"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"a1b265d0_d00b885b","line":205,"range":{"start_line":205,"start_character":0,"end_line":205,"end_character":57},"in_reply_to":"cd3de78f_d3b747f0","updated":"2023-01-05 15:36:47.000000000","message":"You are right on this. The QoS information should be translated to the corresponding logical flows with their own matches and actions. But in this case this is not happening due to limitations in the driver. In order to read the min-bw values (that are not applied on the VF), we need to retrieve the Logical_Switch_Port register","commit_id":"aee09a8a2d8420dce54c76692e8e17d7568bbe40"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"f774a0bec91639813636e678c5a25fcecf9c6261","unresolved":true,"context_lines":[{"line_number":23,"context_line":"driver exposes two agent types: the OVN controller agent and the metadata"},{"line_number":24,"context_line":"agent. The OVN controller agent is a representation of the status of the"},{"line_number":25,"context_line":"ovn-controller service on the node; the metadata agent is the service that"},{"line_number":26,"context_line":"provides the metadata to the virtual machines."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"However the ML2/OVN mechanism driver does not have an agent to perform the"},{"line_number":29,"context_line":"local Open vSwitch service configuration as in ML2/OVS, with extension drivers"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1e4c5aa2_deeb2725","line":26,"updated":"2023-01-10 09:58:25.000000000","message":"Do we need any information in the neutron agent API about which agent is a real agent and which one is an agent-like representation of something else? I hope not. Just thinking out loud...","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"driver exposes two agent types: the OVN controller agent and the metadata"},{"line_number":24,"context_line":"agent. The OVN controller agent is a representation of the status of the"},{"line_number":25,"context_line":"ovn-controller service on the node; the metadata agent is the service that"},{"line_number":26,"context_line":"provides the metadata to the virtual machines."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"However the ML2/OVN mechanism driver does not have an agent to perform the"},{"line_number":29,"context_line":"local Open vSwitch service configuration as in ML2/OVS, with extension drivers"}],"source_content_type":"text/x-rst","patch_set":5,"id":"6d47ab21_b877dacd","line":26,"in_reply_to":"1e4c5aa2_deeb2725","updated":"2023-01-11 17:30:14.000000000","message":"You are right on this. I need to include a reference to the OVN agent tracking method.","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1a0c1de90d74737fc7d88befd86cb8279665402c","unresolved":true,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The lack of an agent running on the local node, owned by Neutron, prevents us"},{"line_number":34,"context_line":"from implementing some functionalities currently not supported by OVN nor the"},{"line_number":35,"context_line":"drivers. For example, and this will be the first feature that the OVN monitor"},{"line_number":36,"context_line":"will implement, hardware offloaded ports cannot apply the OVS QoS rules due to"},{"line_number":37,"context_line":"limitations in the drivers."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"1a3e75c7_e5bcc188","line":35,"range":{"start_line":35,"start_character":66,"end_line":35,"end_character":77},"updated":"2023-01-06 11:41:46.000000000","message":"OVN Agent ?","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"The lack of an agent running on the local node, owned by Neutron, prevents us"},{"line_number":34,"context_line":"from implementing some functionalities currently not supported by OVN nor the"},{"line_number":35,"context_line":"drivers. For example, and this will be the first feature that the OVN monitor"},{"line_number":36,"context_line":"will implement, hardware offloaded ports cannot apply the OVS QoS rules due to"},{"line_number":37,"context_line":"limitations in the drivers."},{"line_number":38,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"0119245d_82e67e27","line":35,"range":{"start_line":35,"start_character":66,"end_line":35,"end_character":77},"in_reply_to":"1a3e75c7_e5bcc188","updated":"2023-01-11 17:30:14.000000000","message":"Done","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"f774a0bec91639813636e678c5a25fcecf9c6261","unresolved":true,"context_lines":[{"line_number":34,"context_line":"from implementing some functionalities currently not supported by OVN nor the"},{"line_number":35,"context_line":"drivers. For example, and this will be the first feature that the OVN monitor"},{"line_number":36,"context_line":"will implement, hardware offloaded ports cannot apply the OVS QoS rules due to"},{"line_number":37,"context_line":"limitations in the drivers."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"e2920da0_6471cc51","line":37,"updated":"2023-01-10 09:58:25.000000000","message":"For future reference a sentence (or a link) about what these limitations are would be helpful, I think. After all if and when those limitations will be overcome may affect this new agent.","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":34,"context_line":"from implementing some functionalities currently not supported by OVN nor the"},{"line_number":35,"context_line":"drivers. For example, and this will be the first feature that the OVN monitor"},{"line_number":36,"context_line":"will implement, hardware offloaded ports cannot apply the OVS QoS rules due to"},{"line_number":37,"context_line":"limitations in the drivers."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9c19c937_a5823131","line":37,"in_reply_to":"e2920da0_6471cc51","updated":"2023-01-11 17:30:14.000000000","message":"Done","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"3cd6ff470906f7be4f48af6258dc99b79a300c65","unresolved":true,"context_lines":[{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"This RFE proposes to create a generic agent running on the compute node. This"},{"line_number":44,"context_line":"agent will be called \"OVN agent\". The execution of this agent is"},{"line_number":45,"context_line":"discretionary and will be needed only if the specific features implemented"},{"line_number":46,"context_line":"on it are requested in a particular compute node. In other words, initially"},{"line_number":47,"context_line":"this service will be needed if a compute node has hardware offloaded ports"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a7e36104_aa487288","line":44,"range":{"start_line":44,"start_character":22,"end_line":44,"end_character":31},"updated":"2023-01-05 18:20:26.000000000","message":"nit: I would call it \"Neutron-OVN agent\" or \"OVN-Neutron agent\" to avoid ambiguity that it might belong to the OVN project.","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"This RFE proposes to create a generic agent running on the compute node. This"},{"line_number":44,"context_line":"agent will be called \"OVN agent\". The execution of this agent is"},{"line_number":45,"context_line":"discretionary and will be needed only if the specific features implemented"},{"line_number":46,"context_line":"on it are requested in a particular compute node. In other words, initially"},{"line_number":47,"context_line":"this service will be needed if a compute node has hardware offloaded ports"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1365ac9d_308758a1","line":44,"range":{"start_line":44,"start_character":22,"end_line":44,"end_character":31},"in_reply_to":"a5d9e87e_03c70d5d","updated":"2023-01-11 17:30:14.000000000","message":"Done","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"f774a0bec91639813636e678c5a25fcecf9c6261","unresolved":true,"context_lines":[{"line_number":41,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"This RFE proposes to create a generic agent running on the compute node. This"},{"line_number":44,"context_line":"agent will be called \"OVN agent\". The execution of this agent is"},{"line_number":45,"context_line":"discretionary and will be needed only if the specific features implemented"},{"line_number":46,"context_line":"on it are requested in a particular compute node. In other words, initially"},{"line_number":47,"context_line":"this service will be needed if a compute node has hardware offloaded ports"}],"source_content_type":"text/x-rst","patch_set":5,"id":"a5d9e87e_03c70d5d","line":44,"range":{"start_line":44,"start_character":22,"end_line":44,"end_character":31},"in_reply_to":"a7e36104_aa487288","updated":"2023-01-10 09:58:25.000000000","message":"+1","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"3cd6ff470906f7be4f48af6258dc99b79a300c65","unresolved":true,"context_lines":[{"line_number":47,"context_line":"this service will be needed if a compute node has hardware offloaded ports"},{"line_number":48,"context_line":"and QoS is needed (new features could be implemented in the future)."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Unless other mechanism driver agents (like in ML2/OVS or ML2/SRIOV), this"},{"line_number":51,"context_line":"agent does not implement an RPC client. The information required to work"},{"line_number":52,"context_line":"will be retrieved from the local OVS database, the OVN Northbound database"},{"line_number":53,"context_line":"and the OVN Southbound database. It will be discussed in a future RFE to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fa86175c_16ca447b","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":6},"updated":"2023-01-05 18:20:26.000000000","message":"nit: Unlike ?","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"this service will be needed if a compute node has hardware offloaded ports"},{"line_number":48,"context_line":"and QoS is needed (new features could be implemented in the future)."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Unless other mechanism driver agents (like in ML2/OVS or ML2/SRIOV), this"},{"line_number":51,"context_line":"agent does not implement an RPC client. The information required to work"},{"line_number":52,"context_line":"will be retrieved from the local OVS database, the OVN Northbound database"},{"line_number":53,"context_line":"and the OVN Southbound database. It will be discussed in a future RFE to"}],"source_content_type":"text/x-rst","patch_set":5,"id":"24abe975_4a2425df","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":6},"in_reply_to":"fa86175c_16ca447b","updated":"2023-01-11 17:30:14.000000000","message":"(I\u0027m still making these mistakes...)","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"f774a0bec91639813636e678c5a25fcecf9c6261","unresolved":true,"context_lines":[{"line_number":50,"context_line":"Unless other mechanism driver agents (like in ML2/OVS or ML2/SRIOV), this"},{"line_number":51,"context_line":"agent does not implement an RPC client. The information required to work"},{"line_number":52,"context_line":"will be retrieved from the local OVS database, the OVN Northbound database"},{"line_number":53,"context_line":"and the OVN Southbound database. It will be discussed in a future RFE to"},{"line_number":54,"context_line":"include RPC capabilities to have a direct connection to the Neutron"},{"line_number":55,"context_line":"server and the Neutron database."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Extensible functionalities"}],"source_content_type":"text/x-rst","patch_set":5,"id":"41ace1ee_2593a161","line":54,"range":{"start_line":53,"start_character":59,"end_line":54,"end_character":24},"updated":"2023-01-10 09:58:25.000000000","message":"I agree with previous comments, that we don\u0027t need to prohibit rpc altogether. For example unidirectional cast()-like messaging is usually not a concern for scale. If that makes sense for report_state(), let it be. As long as we keep the scale-sensitive communication inside ovsdb, that\u0027s okay.","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":50,"context_line":"Unless other mechanism driver agents (like in ML2/OVS or ML2/SRIOV), this"},{"line_number":51,"context_line":"agent does not implement an RPC client. The information required to work"},{"line_number":52,"context_line":"will be retrieved from the local OVS database, the OVN Northbound database"},{"line_number":53,"context_line":"and the OVN Southbound database. It will be discussed in a future RFE to"},{"line_number":54,"context_line":"include RPC capabilities to have a direct connection to the Neutron"},{"line_number":55,"context_line":"server and the Neutron database."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"Extensible functionalities"}],"source_content_type":"text/x-rst","patch_set":5,"id":"0a3a10c0_92fe2e67","line":54,"range":{"start_line":53,"start_character":59,"end_line":54,"end_character":24},"in_reply_to":"41ace1ee_2593a161","updated":"2023-01-11 17:30:14.000000000","message":"Done","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"3cd6ff470906f7be4f48af6258dc99b79a300c65","unresolved":true,"context_lines":[{"line_number":65,"context_line":"``neutron_lib.agent.extensions.AgentExtension`` and will be loaded during the"},{"line_number":66,"context_line":"agent startup by the agent extension manager."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"As commented before, the OVN agent will have active OVN Northbound, OVN"},{"line_number":69,"context_line":"Southbound and local OVS database connections, using the corresponding IDL"},{"line_number":70,"context_line":"classes. These classes will monitor a certain set of tables and will"},{"line_number":71,"context_line":"register a set of events. Each extension must report what tables and events"}],"source_content_type":"text/x-rst","patch_set":5,"id":"070d498e_cab18295","line":68,"range":{"start_line":68,"start_character":52,"end_line":68,"end_character":66},"updated":"2023-01-05 18:20:26.000000000","message":"A note unrelated to this proposal to get feedback from knowledgable people: This is gonna change the number of connections at scale drastically. I\u0027m not familiar much with Telco edge sites but I assume they can have hundreds of HWOL enabled nodes to host VNFs. Maybe someone with better edge knowledge than mine can chime in to discuss what numbers do we plan to work with. We will need to document this architectural change for scale environments.","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"``neutron_lib.agent.extensions.AgentExtension`` and will be loaded during the"},{"line_number":66,"context_line":"agent startup by the agent extension manager."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"As commented before, the OVN agent will have active OVN Northbound, OVN"},{"line_number":69,"context_line":"Southbound and local OVS database connections, using the corresponding IDL"},{"line_number":70,"context_line":"classes. These classes will monitor a certain set of tables and will"},{"line_number":71,"context_line":"register a set of events. Each extension must report what tables and events"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ed3231a5_6a2f337d","line":68,"range":{"start_line":68,"start_character":52,"end_line":68,"end_character":66},"in_reply_to":"070d498e_cab18295","updated":"2023-01-11 17:30:14.000000000","message":"There is always a balance between the new functionality and the scale. If they want to have QoS with HWOL, then they will need to use this new agent, increasing the DB connections.\n\nI\u0027ll say that since [1], we can reduce to 1 the number of SB connections per OVN metadata agent. When moving the metadata functionality to this monitor, we\u0027ll have just one single NB and one SB connections to the database.\n\n[1]https://review.opendev.org/c/openstack/neutron/+/861751","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"3cd6ff470906f7be4f48af6258dc99b79a300c65","unresolved":true,"context_lines":[{"line_number":131,"context_line":"The OVN QoS information is stored in two different places (due to how QoS"},{"line_number":132,"context_line":"is currently implemented in ML2/OVN and core OVN):"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"* The maximum bandwidth and maximum burst limits are stored in the \"Qos:rate\""},{"line_number":135,"context_line":"  dictionary:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"09857d57_0d60fe48","line":134,"range":{"start_line":134,"start_character":72,"end_line":134,"end_character":76},"updated":"2023-01-05 18:20:26.000000000","message":"bandwidth ? Or rather \"stored in QoS table in bandwidth:rate column key\"","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":131,"context_line":"The OVN QoS information is stored in two different places (due to how QoS"},{"line_number":132,"context_line":"is currently implemented in ML2/OVN and core OVN):"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"* The maximum bandwidth and maximum burst limits are stored in the \"Qos:rate\""},{"line_number":135,"context_line":"  dictionary:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"13a20e78_81ae4351","line":134,"range":{"start_line":134,"start_character":72,"end_line":134,"end_character":76},"in_reply_to":"09857d57_0d60fe48","updated":"2023-01-11 17:30:14.000000000","message":"Right, QoS:bandwidth","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"3cd6ff470906f7be4f48af6258dc99b79a300c65","unresolved":true,"context_lines":[{"line_number":146,"context_line":"     priority            : 2002"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"* The minimum bandwidth rate is stored in the \"Logical_Switch_Port:options\""},{"line_number":150,"context_line":"  dictionary:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"66323590_ef4a32c2","line":149,"range":{"start_line":149,"start_character":47,"end_line":149,"end_character":74},"updated":"2023-01-05 18:20:26.000000000","message":"Idea: The QoS table is a lot smaller than LSP table. I\u0027m wondering if it\u0027s worth to monitor LSP table just to obtain the qos_min_rate value as this table can be in a number of tens of thousand of entries. If we, by the ovn mech driver, store this value as an external id in the QoS table along with LSP options then perhaps we can avoid having to monitor the LSP table completel?","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"5344bab9c1992d9371cfedd45326b1f8aae0a650","unresolved":true,"context_lines":[{"line_number":146,"context_line":"     priority            : 2002"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"* The minimum bandwidth rate is stored in the \"Logical_Switch_Port:options\""},{"line_number":150,"context_line":"  dictionary:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"8b5311af_caef2835","line":149,"range":{"start_line":149,"start_character":47,"end_line":149,"end_character":74},"in_reply_to":"1e21687f_b85a611f","updated":"2023-01-06 14:03:06.000000000","message":"I meant to write it to both places, LSP options for OVN and to QoS as a data storage, so we can pick the data without having to monitor LSP table, because of it\u0027s assumed size. Thanks to transactions we will have the rate set either in both places or nowhere.","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1a0c1de90d74737fc7d88befd86cb8279665402c","unresolved":true,"context_lines":[{"line_number":146,"context_line":"     priority            : 2002"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"* The minimum bandwidth rate is stored in the \"Logical_Switch_Port:options\""},{"line_number":150,"context_line":"  dictionary:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1e21687f_b85a611f","line":149,"range":{"start_line":149,"start_character":47,"end_line":149,"end_character":74},"in_reply_to":"66323590_ef4a32c2","updated":"2023-01-06 11:41:46.000000000","message":"From what I understoond, we need to set this \"qos_min_rate\" option in the LSP table for this to work. And, if we are writing that option we need to include the LSP table when we create the connection.\n\nhttps://man7.org/linux/man-pages/man5/ovn-nb.5.html","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":146,"context_line":"     priority            : 2002"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"* The minimum bandwidth rate is stored in the \"Logical_Switch_Port:options\""},{"line_number":150,"context_line":"  dictionary:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"f941978e_354ac1c4","line":149,"range":{"start_line":149,"start_character":47,"end_line":149,"end_character":74},"in_reply_to":"8b5311af_caef2835","updated":"2023-01-11 17:30:14.000000000","message":"In OVN we have two types of QoS BW enforcement: using the kernel classes (linux \"tc\") or metering (NOTE1):\n* max and burst use metering\n* min uses linux traffic control (see [1])\n\nQoS registers are translated into meter rules; LSP.options are used to set the interface TC settings. We can\u0027t use the QoS registers for the min-bw rules.\n\nFor now I\u0027ll keep using the LSP registers but it will be necessary to investigate a future improvement not to use them.\n\nAs Lucas suggested, I\u0027ll add this information to the \"Performance Impact\" section too.\n\nNOTE1: if you check link [0], you\u0027ll see the metering feature has been implemented for mlnx cards. This is for connectx6 NICs, not connect5. But this is not solving the issue of the minimum BW feature, that is not implemented using metering (max and burst are) but using the linux traffic control implementation (HTB classful algorithm).\n\n[0]https://bugzilla.redhat.com/show_bug.cgi?id\u003d2002406\n[1]https://github.com/ovn-org/ovn/commit/dbf12e5fe1f7ab2acef4152854c239b999b70188#diff-538df8a7fc4aa894586caf2191217e5d8a50bf245ee88faf90516a1c229cf42aR6347","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"9258b880ca14daa0f6f2fcb0c0f01f9186f38474","unresolved":false,"context_lines":[{"line_number":146,"context_line":"     priority            : 2002"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"* The minimum bandwidth rate is stored in the \"Logical_Switch_Port:options\""},{"line_number":150,"context_line":"  dictionary:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1658fa24_e82780b0","line":149,"range":{"start_line":149,"start_character":47,"end_line":149,"end_character":74},"in_reply_to":"de601b90_75fe275a","updated":"2023-01-13 16:58:12.000000000","message":"Rodolfo explained to me that the QoS entry doesn\u0027t exist in case we set just min-bw, therefore it can\u0027t be used. Sorry for the noise.","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"609d8d318ce04caf93019d6e957a6b2d0508da9a","unresolved":true,"context_lines":[{"line_number":146,"context_line":"     priority            : 2002"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"* The minimum bandwidth rate is stored in the \"Logical_Switch_Port:options\""},{"line_number":150,"context_line":"  dictionary:"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"de601b90_75fe275a","line":149,"range":{"start_line":149,"start_character":47,"end_line":149,"end_character":74},"in_reply_to":"f941978e_354ac1c4","updated":"2023-01-13 16:47:41.000000000","message":"\u003e In OVN we have two types of QoS BW enforcement: using the kernel classes (linux \"tc\") or metering (NOTE1):\n\u003e * max and burst use metering\n\u003e * min uses linux traffic control (see [1])\n\u003e \n\u003e QoS registers are translated into meter rules; LSP.options are used to set the interface TC settings. We can\u0027t use the QoS registers for the min-bw rules.\n\nWhy can\u0027t we? The external_ids column can hold any arbitrary key/value pair. As long as we keep both QoS table and the external_ids under same transaction whenever we create/update/delete then you can use it for your purposes and will have a big impact on the data downloaded from the BD.","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"f774a0bec91639813636e678c5a25fcecf9c6261","unresolved":true,"context_lines":[{"line_number":195,"context_line":"  bandwidth of a locally bound LSP changes, this event triggers the QoS"},{"line_number":196,"context_line":"  update."},{"line_number":197,"context_line":"* The OVN Northbound \"QoS\" register change: similar to the previous one"},{"line_number":198,"context_line":"  but affecting the maximum bandwidth limit."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"d6a652d6_b4277b11","line":198,"updated":"2023-01-10 09:58:25.000000000","message":"When an agent is down while one of these events happen, does it need to do anything special at the next start to re-sync with what changed? Or is it enough if the next start is just a regular start?","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":195,"context_line":"  bandwidth of a locally bound LSP changes, this event triggers the QoS"},{"line_number":196,"context_line":"  update."},{"line_number":197,"context_line":"* The OVN Northbound \"QoS\" register change: similar to the previous one"},{"line_number":198,"context_line":"  but affecting the maximum bandwidth limit."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"cbbe7620_df91f8d4","line":198,"in_reply_to":"d6a652d6_b4277b11","updated":"2023-01-11 17:30:14.000000000","message":"You are right. Please check [1]. When the agent is restarted and the DB retrieved, the IDL connection will issue a \"create\" event for each \"Interface\" in the DB. The QoS for these ports will be set in L49.\n\n[1]https://review.opendev.org/c/openstack/neutron/+/866480/11/neutron/agent/ovn/monitor/agent.py#48","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1a0c1de90d74737fc7d88befd86cb8279665402c","unresolved":true,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"* Northbound: QoS, Logical_Switch_Port and Logical_Switch"},{"line_number":230,"context_line":"* Southbound: Chassis, Encap, Port_Binding, Datapath_Binding and SB_Global"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Other Impact"},{"line_number":234,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"84165855_19af6471","line":231,"updated":"2023-01-06 11:41:46.000000000","message":"Maybe u can mention that in the future, as we port the metadata functionality to this new agent this issue could potentially be mitigated because all functionalities will share the same connections.","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5f99dcabdd3b470029fcbb6dd3802116a73b487a","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"* Northbound: QoS, Logical_Switch_Port and Logical_Switch"},{"line_number":230,"context_line":"* Southbound: Chassis, Encap, Port_Binding, Datapath_Binding and SB_Global"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"Other Impact"},{"line_number":234,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3b71c61c_95c70009","line":231,"in_reply_to":"84165855_19af6471","updated":"2023-01-11 17:30:14.000000000","message":"Exactly.","commit_id":"835b07c55eb3738d12966437cb445d8dd0e024fc"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"948f0f7434cc6d3b37e7ae371782d90760a312b6","unresolved":true,"context_lines":[{"line_number":63,"context_line":"to load the configured OVN Neutron Agent extensions. It will use the same"},{"line_number":64,"context_line":"configuration variable \"agent.extensions\" used by other ML2 agents. The OVN"},{"line_number":65,"context_line":"Neutron Agent extensions will inherit from"},{"line_number":66,"context_line":"``neutron_lib.agent.extensions.AgentExtension`` and will be loaded during the"},{"line_number":67,"context_line":"agent startup by the agent extension manager."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"As commented before, the OVN agent will have active OVN Northbound, OVN"}],"source_content_type":"text/x-rst","patch_set":8,"id":"84754165_cd884bcc","line":66,"range":{"start_line":66,"start_character":20,"end_line":66,"end_character":30},"updated":"2023-01-12 17:15:02.000000000","message":"Nit: extension (https://github.com/openstack/neutron-lib/blob/master/neutron_lib/agent/extension.py)","commit_id":"12f45301a693e526a8a7bd8128161e41f89a8aac"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"948f0f7434cc6d3b37e7ae371782d90760a312b6","unresolved":true,"context_lines":[{"line_number":256,"context_line":"* Reducing the number of agents on the node. The next step to be implemented"},{"line_number":257,"context_line":"  (out of scope in this RFE) is to move the OVN metadata agent functionality"},{"line_number":258,"context_line":"  to this new OVN Neutron agent. That will reduce the Southbound database"},{"line_number":259,"context_line":"  connections to one single agent."},{"line_number":260,"context_line":"* Find a way to store the minimum bandwidth information outside the Logical"},{"line_number":261,"context_line":"  Switch Port. By not subscribing to this table, the Northbound connection"},{"line_number":262,"context_line":"  will reduce the load notably. The Logical Switch Port is one of the most"}],"source_content_type":"text/x-rst","patch_set":8,"id":"f0771542_236e583a","line":259,"range":{"start_line":259,"start_character":21,"end_line":259,"end_character":27},"updated":"2023-01-12 17:15:02.000000000","message":"redundant IMO","commit_id":"12f45301a693e526a8a7bd8128161e41f89a8aac"}],"specs/2023.1/ovn-neutron-agent.rst":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"34aac7f2036d15f323022881ee98aed29e4d9849","unresolved":true,"context_lines":[{"line_number":293,"context_line":""},{"line_number":294,"context_line":".. NOTE::"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"   The hardware offloaded QoS extension requires specific hardware to"},{"line_number":297,"context_line":"   test this feature. Currently is not possible to implement any"},{"line_number":298,"context_line":"   tempest test on the CI."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"5d66e8bc_97cb62e6","line":298,"range":{"start_line":296,"start_character":3,"end_line":298,"end_character":26},"updated":"2023-01-16 08:56:24.000000000","message":"Yeah, perhaps fullstack is viable to see if the basic functionality of the agent is ok, like status and such.","commit_id":"4a36779f30c7be1627f8d482b455c3d8250b4d77"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"60a45b78e1db8840a0c425047d641c82631e185c","unresolved":true,"context_lines":[{"line_number":293,"context_line":""},{"line_number":294,"context_line":".. NOTE::"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"   The hardware offloaded QoS extension requires specific hardware to"},{"line_number":297,"context_line":"   test this feature. Currently is not possible to implement any"},{"line_number":298,"context_line":"   tempest test on the CI."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"7758c510_fe925391","line":298,"range":{"start_line":296,"start_character":3,"end_line":298,"end_character":26},"in_reply_to":"5d66e8bc_97cb62e6","updated":"2023-01-16 11:36:40.000000000","message":"Fullstack framework don\u0027t support OVN backend at all","commit_id":"4a36779f30c7be1627f8d482b455c3d8250b4d77"}]}
