)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"369366da85d125d346d3b85464f3b56c157ac579","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"66badf07_9bf0f336","updated":"2024-05-29 07:45:39.000000000","message":"All in all looks good to me. I\u0027m going in the opossite direction than Jakub, instead of removing the type, I would like to add the extra ones that are already (partially) added to ovn-bgp-agent","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"8d5dc2abd2e15338ab47843ce2c83f533be3f911","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b86a4782_8f00e444","updated":"2024-05-29 12:25:10.000000000","message":"Marking as WIP based on the last comments (thanks very much for them!). I will address those in a new patch-set","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"4b9810c974aafaabebfbdb5e87191607b6b1ee10","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"066390b1_5ccf24e7","updated":"2025-10-27 16:30:31.000000000","message":"I have added a discussion topic about old specs for tomorrow\u0027s\nNeutron PTG meeting, ~14:00 UTC in the Folsom room. We plan on\nbriefly discussing the status of specs that have not been\nmerged and approved. If you want to come and give a quick update,\nor just add an update here (and rebase to 2026.1 branch) please\ndo so before then.\n\nThanks, Brian\n\n[0] https://ptg.opendev.org/ptg.html\n[1] https://etherpad.opendev.org/p/oct2025-ptg-neutron#L61","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"522ce598c76391da0366d17228c1906f4b6912b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"01ed8628_90b0ffa9","updated":"2025-04-24 17:41:50.000000000","message":"If we want to continue with this spec will need to be moved to the 2025.2 directory.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7c139fe2c30ee989b7544364633015f0ba63806d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1487c31d_ac56c837","updated":"2024-05-29 16:11:02.000000000","message":"Thanks for posting this, appreciate that we can have a focused discussion around a written document.\n\nAs you probably already know, I have reservations about the approach taken here. I don\u0027t think this API should exist at all if an existing API can be - with some modifications? - used to express the information you need for your backend. Having two parallel neutron APIs for configuring BGPVPNs goes against what I consider a reasonable cloud API.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"5954c19302fe3beec1447f7e89b8e2ebbdd086e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d193428a_aecdac41","updated":"2024-05-31 21:02:52.000000000","message":"Thanks for starting the discussion, I tried to explain how I understand the projects and how they overlap. As a networking-bgpvpn noob I can be totally off so please correct me and keep me honest if I didn\u0027t get it right.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"}],"specs/2024.2/ovn-bgp-evpn-advertisement.rst":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"b994c73d339216a7ded05221dd00a4048bca85aa","unresolved":true,"context_lines":[{"line_number":15,"context_line":"Problem Description"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":"The work adding support for L3 VPN for OVN BGP Agent is now merged"},{"line_number":18,"context_line":"[0]. Currently, the only way to configure the ``VNI`` and ``Type`` on a"},{"line_number":19,"context_line":"Logical Switch (aka Neutron Network) is by using the ``ovn-nbctl`` command"},{"line_number":20,"context_line":"to write the values directly to the OVN Northbound Database, for example:"},{"line_number":21,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"afbe334c_3db609df","line":18,"range":{"start_line":18,"start_character":60,"end_line":18,"end_character":64},"updated":"2024-05-28 16:07:24.000000000","message":"I\u0027d like to open a discussion whether or not to expose the type.\n\nCurrently the OVN bgp agent contains a lot of dead code [0] around the type, so even if the driver strictly requires it in the OVN database, it\u0027s never used.\n\n1) We can hardcode setting the type in the OVN mech driver, not exposing it to the user as at this point this is YAGNI [1] and it\u0027s a good practice to not foresee the development. Not exposing the type will make the API simpler and less confusing than exposing a parameter that does nothing. Alternatively, we can make it optional.\n\n2) On the other hand, there\u0027s been some work done to support L2 type [2] which hasn\u0027t been touched for months so it\u0027s unclear if anybody is going to pick up on the initiative. But as pointed out in [1] it\u0027s better to implement only useful things. If the initiative in [2], it would require us to extend the API with the type.\n\nPlease share your opinions and arguments. :)\n\n\n[0] https://opendev.org/openstack/ovn-bgp-agent/src/branch/master/ovn_bgp_agent/drivers/openstack/utils/wire.py#L82\n[1] https://betterprogramming.pub/yagni-you-aint-gonna-need-it-f9a178cd8e1\n[2] https://review.opendev.org/c/openstack/ovn-bgp-agent/+/886090","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"369366da85d125d346d3b85464f3b56c157ac579","unresolved":true,"context_lines":[{"line_number":15,"context_line":"Problem Description"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":"The work adding support for L3 VPN for OVN BGP Agent is now merged"},{"line_number":18,"context_line":"[0]. Currently, the only way to configure the ``VNI`` and ``Type`` on a"},{"line_number":19,"context_line":"Logical Switch (aka Neutron Network) is by using the ``ovn-nbctl`` command"},{"line_number":20,"context_line":"to write the values directly to the OVN Northbound Database, for example:"},{"line_number":21,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f54dba39_13a3ea01","line":18,"range":{"start_line":18,"start_character":60,"end_line":18,"end_character":64},"in_reply_to":"afbe334c_3db609df","updated":"2024-05-29 07:45:39.000000000","message":"my concern here is the extra delay to later get the L2 type added. Perhaps by the time the work starts on adding this API, the support is there (or as you said, there are also chances it never gets there).\n\nAnyway, even if the only type for now is L3, as this gets added on the OVN DB (regardless of what the ovn-bgp-agent is doing with it), in my opinion it does not hurt to have the information on the OVN DBs that the vni is associated to an L3 VPN","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"369366da85d125d346d3b85464f3b56c157ac579","unresolved":true,"context_lines":[{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":"We propose to introduce a new extension called ``ovn-bgp-vpn``."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"This new extension will add two new attributes for networks: ``vni`` and"},{"line_number":35,"context_line":"``vpn_type``. The default policy for these attributes is ``admin_only``"},{"line_number":36,"context_line":"and their value types are integer for ``vni`` and string for ``vpn_type``."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"11f29766_8d72562d","line":34,"updated":"2024-05-29 07:45:39.000000000","message":"There is extra information to add, some of then is already merged (such as neutron_bgpvpn:as, in case you want a different AS number), and other may need slight modification to include them (such as the rt, rd, it and et), but I think we need to include all these: https://github.com/openstack/ovn-bgp-agent/blob/master/ovn_bgp_agent/constants.py#L74-L80","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"8aec2047d3f8992430145964355c02ce2de2ed31","unresolved":true,"context_lines":[{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":"We propose to introduce a new extension called ``ovn-bgp-vpn``."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"This new extension will add two new attributes for networks: ``vni`` and"},{"line_number":35,"context_line":"``vpn_type``. The default policy for these attributes is ``admin_only``"},{"line_number":36,"context_line":"and their value types are integer for ``vni`` and string for ``vpn_type``."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"da569b34_8092fca6","line":34,"in_reply_to":"11f29766_8d72562d","updated":"2024-05-29 08:43:09.000000000","message":"I see. I think in this case perhaps the ideal would be to have a map field (key/pair) instead of different fields for each value. We could propose something like vpn_settings \u003d {} for the Network object and document the mandatory and optional keys that are supported by the Agent. This gives us some flexibility if/when more are added and would also benefit the inclusion of the \"type\" field discussed as above. As we can have it as optional and \u0027l3\u0027 by default too.\n\nWhat do you think ?","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ffb12deccf55c87e6868ab4c999896919fd2e4c4","unresolved":false,"context_lines":[{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":"We propose to introduce a new extension called ``ovn-bgp-vpn``."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"This new extension will add two new attributes for networks: ``vni`` and"},{"line_number":35,"context_line":"``vpn_type``. The default policy for these attributes is ``admin_only``"},{"line_number":36,"context_line":"and their value types are integer for ``vni`` and string for ``vpn_type``."},{"line_number":37,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"f06011e4_a4d9bf82","line":34,"in_reply_to":"da569b34_8092fca6","updated":"2024-06-21 13:02:45.000000000","message":"Done","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0403047efc941ba786d12efec7159186e64014b3","unresolved":true,"context_lines":[{"line_number":36,"context_line":"and their value types are integer for ``vni`` and string for ``vpn_type``."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In the ``openstack`` CLI we propose to expose the above API feature as:"},{"line_number":39,"context_line":"::"},{"line_number":40,"context_line":"    openstack network create/set --vni \u003cVNI Number\u003e --vpn-type \u003cVPN Type\u003e \u003cNetwork ID\u003e"},{"line_number":41,"context_line":"    openstack network unset --vni --vpn-type \u003cNetwork ID\u003e"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"52590185_f1e57308","line":39,"updated":"2024-05-28 16:09:44.000000000","message":"I checked the failed docs job and it doesn\u0027t like the indentation. Maybe there must be an empty line before the `::` signature?","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"8aec2047d3f8992430145964355c02ce2de2ed31","unresolved":true,"context_lines":[{"line_number":36,"context_line":"and their value types are integer for ``vni`` and string for ``vpn_type``."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In the ``openstack`` CLI we propose to expose the above API feature as:"},{"line_number":39,"context_line":"::"},{"line_number":40,"context_line":"    openstack network create/set --vni \u003cVNI Number\u003e --vpn-type \u003cVPN Type\u003e \u003cNetwork ID\u003e"},{"line_number":41,"context_line":"    openstack network unset --vni --vpn-type \u003cNetwork ID\u003e"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7a31580d_7ddd8505","line":39,"in_reply_to":"52590185_f1e57308","updated":"2024-05-29 08:43:09.000000000","message":"Yeah I think so, I will remove it and build the docs. My bad I just submitted the patch at the end of my work day and forgot to check the syntax properly.","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ffb12deccf55c87e6868ab4c999896919fd2e4c4","unresolved":false,"context_lines":[{"line_number":36,"context_line":"and their value types are integer for ``vni`` and string for ``vpn_type``."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"In the ``openstack`` CLI we propose to expose the above API feature as:"},{"line_number":39,"context_line":"::"},{"line_number":40,"context_line":"    openstack network create/set --vni \u003cVNI Number\u003e --vpn-type \u003cVPN Type\u003e \u003cNetwork ID\u003e"},{"line_number":41,"context_line":"    openstack network unset --vni --vpn-type \u003cNetwork ID\u003e"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"b506da83_f39cdc19","line":39,"in_reply_to":"7a31580d_7ddd8505","updated":"2024-06-21 13:02:45.000000000","message":"Done","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"369366da85d125d346d3b85464f3b56c157ac579","unresolved":true,"context_lines":[{"line_number":49,"context_line":"will set or unset the ``external_ids`` column of the ``Logical_Switch``"},{"line_number":50,"context_line":"table in the OVN Northbound Database with the respective key/value pairs:"},{"line_number":51,"context_line":"::"},{"line_number":52,"context_line":"    \"neutron_bgpvpn:vni\"\u003d\u003cVNI Number\u003e"},{"line_number":53,"context_line":"    \"neutron_bgpvpn:type\"\u003d\u003cVPN Type\u003e"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"This will trigger OVN BGP Agent, which is watching for these changes,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d49c79ab_86612732","line":52,"range":{"start_line":52,"start_character":5,"end_line":52,"end_character":19},"updated":"2024-05-29 07:45:39.000000000","message":"is \"neutron_bgpvpn\" the desired tag? I know this is aligned with what the agent does today, but, we can change that to take a better name (if this one is not good enough). To me neutron_bgpvpn is good enough, I\u0027m just not sure if there my be some collisions with neutron_bgpvpn, though as that does not have ovn support I doubt it","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":35638},"change_message_id":"9b18ffe210c1237890ac9f0b38ceb306b95247a5","unresolved":true,"context_lines":[{"line_number":49,"context_line":"will set or unset the ``external_ids`` column of the ``Logical_Switch``"},{"line_number":50,"context_line":"table in the OVN Northbound Database with the respective key/value pairs:"},{"line_number":51,"context_line":"::"},{"line_number":52,"context_line":"    \"neutron_bgpvpn:vni\"\u003d\u003cVNI Number\u003e"},{"line_number":53,"context_line":"    \"neutron_bgpvpn:type\"\u003d\u003cVPN Type\u003e"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"This will trigger OVN BGP Agent, which is watching for these changes,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8a15a989_be60d175","line":52,"range":{"start_line":52,"start_character":5,"end_line":52,"end_character":19},"in_reply_to":"3f557ccf_3e041c2c","updated":"2024-07-02 20:58:55.000000000","message":"If the data is written based upon an BGPVPN object the tag should be fine.","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"8aec2047d3f8992430145964355c02ce2de2ed31","unresolved":true,"context_lines":[{"line_number":49,"context_line":"will set or unset the ``external_ids`` column of the ``Logical_Switch``"},{"line_number":50,"context_line":"table in the OVN Northbound Database with the respective key/value pairs:"},{"line_number":51,"context_line":"::"},{"line_number":52,"context_line":"    \"neutron_bgpvpn:vni\"\u003d\u003cVNI Number\u003e"},{"line_number":53,"context_line":"    \"neutron_bgpvpn:type\"\u003d\u003cVPN Type\u003e"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"This will trigger OVN BGP Agent, which is watching for these changes,"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3f557ccf_3e041c2c","line":52,"range":{"start_line":52,"start_character":5,"end_line":52,"end_character":19},"in_reply_to":"d49c79ab_86612732","updated":"2024-05-29 08:43:09.000000000","message":"Not the best name but ain\u0027t the worst either. Regardless I think in this spec we should not care much about this, this is something we can discuss with the ovn-bgp-agent group and see if we find a better name for it. The spec is just to exemplify that ML2/OVN will write these values to the OVN database (instead of having the user doing it directly).","commit_id":"f001b11ddf3349d0441e31aa2fec61304559a6f6"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7c139fe2c30ee989b7544364633015f0ba63806d","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"},{"line_number":8,"context_line":"OVN BGP Agent EVPN Advertisement API Extension"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://bugs.launchpad.net/neutron/+bug/2067401"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c7bd9faf_47f47024","line":8,"updated":"2024-05-29 16:11:02.000000000","message":"This is neutron api; not ovn (or ovn bgp agent) api. This spec should not start from the POV of ovn-bgp-agent (and current implementation that you seem to have landed already.)\n\nIt should instead lay down the *user* need (e.g. `there\u0027s no current way in neutron api to configure X and Y.`), then propose a backend agnostic api (`here is what the new field looks like`), then - maybe! - at the end have a section with implementation ideas (`here\u0027s how we think it could be implemented in a backend, specifically in OVN`).","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ffb12deccf55c87e6868ab4c999896919fd2e4c4","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"},{"line_number":8,"context_line":"OVN BGP Agent EVPN Advertisement API Extension"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://bugs.launchpad.net/neutron/+bug/2067401"}],"source_content_type":"text/x-rst","patch_set":2,"id":"19a505dd_84745e2a","line":8,"in_reply_to":"c7bd9faf_47f47024","updated":"2024-06-21 13:02:45.000000000","message":"Makes sense, I will update it.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7c139fe2c30ee989b7544364633015f0ba63806d","unresolved":true,"context_lines":[{"line_number":15,"context_line":"Problem Description"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The work adding support for L3 VPN for OVN BGP Agent is now merged"},{"line_number":19,"context_line":"[0]. Currently, the only way to set the VPN configuration on a Logical"},{"line_number":20,"context_line":"Switch (aka Neutron Network) is by using the ``ovn-nbctl`` command to"},{"line_number":21,"context_line":"write the values directly to the OVN Northbound Database, for example::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9e7825d2_7eb27933","line":18,"updated":"2024-05-29 16:11:02.000000000","message":"Problem description should not talk about ovn or the agent (or use ovn specific terminology like Logical Switches). It should talk about user needs.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ffb12deccf55c87e6868ab4c999896919fd2e4c4","unresolved":true,"context_lines":[{"line_number":15,"context_line":"Problem Description"},{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The work adding support for L3 VPN for OVN BGP Agent is now merged"},{"line_number":19,"context_line":"[0]. Currently, the only way to set the VPN configuration on a Logical"},{"line_number":20,"context_line":"Switch (aka Neutron Network) is by using the ``ovn-nbctl`` command to"},{"line_number":21,"context_line":"write the values directly to the OVN Northbound Database, for example::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7e3f7211_af544b82","line":18,"in_reply_to":"9e7825d2_7eb27933","updated":"2024-06-21 13:02:45.000000000","message":"Done","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":35638},"change_message_id":"9b18ffe210c1237890ac9f0b38ceb306b95247a5","unresolved":true,"context_lines":[{"line_number":16,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"The work adding support for L3 VPN for OVN BGP Agent is now merged"},{"line_number":19,"context_line":"[0]. Currently, the only way to set the VPN configuration on a Logical"},{"line_number":20,"context_line":"Switch (aka Neutron Network) is by using the ``ovn-nbctl`` command to"},{"line_number":21,"context_line":"write the values directly to the OVN Northbound Database, for example::"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    $ ovn-nbctl set logical-switch neutron-cd5d6fa7-3ed7-452b-8ce9-1490e2d377c8 external_ids:\"neutron_bgpvpn\\:vni\"\u003d100"},{"line_number":24,"context_line":"    $ ovn-nbctl set logical-switch neutron-cd5d6fa7-3ed7-452b-8ce9-1490e2d377c8 external_ids:\"neutron_bgpvpn\\:type\"\u003dl3"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"This is not ideal as we do not want users to be changing databases"},{"line_number":27,"context_line":"directly. Therefore we need an API extension so these values can be"},{"line_number":28,"context_line":"populated safely."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Proposed Change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"162054be_c8da3ed5","line":28,"range":{"start_line":19,"start_character":0,"end_line":28,"end_character":17},"updated":"2024-07-02 20:58:55.000000000","message":"See my comment down below.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7c139fe2c30ee989b7544364633015f0ba63806d","unresolved":true,"context_lines":[{"line_number":30,"context_line":"Proposed Change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"We propose to introduce a new extension called ``ovn-bgp-vpn``."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"This new extension will add a new attribute for networks called"},{"line_number":36,"context_line":"``vpn_config``.  The default policy for this attribute is ``admin_only``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9adae684_4e0e5066","line":33,"updated":"2024-05-29 16:11:02.000000000","message":"There is nothing ovn specific in the payload (which is good). Why should the proposed extension have `ovn` in its name?","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ffb12deccf55c87e6868ab4c999896919fd2e4c4","unresolved":true,"context_lines":[{"line_number":30,"context_line":"Proposed Change"},{"line_number":31,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"We propose to introduce a new extension called ``ovn-bgp-vpn``."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"This new extension will add a new attribute for networks called"},{"line_number":36,"context_line":"``vpn_config``.  The default policy for this attribute is ``admin_only``"}],"source_content_type":"text/x-rst","patch_set":2,"id":"da9135b6_1a2304c9","line":33,"in_reply_to":"9adae684_4e0e5066","updated":"2024-06-21 13:02:45.000000000","message":"Indeed. Will change it","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7c139fe2c30ee989b7544364633015f0ba63806d","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    {"},{"line_number":45,"context_line":"        \"network\": {"},{"line_number":46,"context_line":"            \"vpn_config\": {"},{"line_number":47,"context_line":"                \"vni\": \"1001\","},{"line_number":48,"context_line":"                \"type\": \"l3\","},{"line_number":49,"context_line":"                \"as\": \"100\","},{"line_number":50,"context_line":"                ..."}],"source_content_type":"text/x-rst","patch_set":2,"id":"d1eda3b1_6d440449","line":47,"updated":"2024-05-29 16:11:02.000000000","message":"is this an opaque blob? do you plan to enforce some constraints in api layers, e.g. to enforce VNIs as vlan tags, or ASs as integers?","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ffb12deccf55c87e6868ab4c999896919fd2e4c4","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    {"},{"line_number":45,"context_line":"        \"network\": {"},{"line_number":46,"context_line":"            \"vpn_config\": {"},{"line_number":47,"context_line":"                \"vni\": \"1001\","},{"line_number":48,"context_line":"                \"type\": \"l3\","},{"line_number":49,"context_line":"                \"as\": \"100\","},{"line_number":50,"context_line":"                ..."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9151cf06_b90ec566","line":47,"in_reply_to":"d1eda3b1_6d440449","updated":"2024-06-21 13:02:45.000000000","message":"I think we should implement some sort of validations for the types and document it properly as well.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":35638},"change_message_id":"9b18ffe210c1237890ac9f0b38ceb306b95247a5","unresolved":true,"context_lines":[{"line_number":46,"context_line":"            \"vpn_config\": {"},{"line_number":47,"context_line":"                \"vni\": \"1001\","},{"line_number":48,"context_line":"                \"type\": \"l3\","},{"line_number":49,"context_line":"                \"as\": \"100\","},{"line_number":50,"context_line":"                ..."},{"line_number":51,"context_line":"                }"},{"line_number":52,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":2,"id":"c48fa8e9_1b6b0ed0","line":49,"range":{"start_line":49,"start_character":16,"end_line":49,"end_character":28},"updated":"2024-07-02 20:58:55.000000000","message":"From my experience, the AS number is usually something that is configured on a node level (tied to the physical VTEP) and not on a VNI level.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7c139fe2c30ee989b7544364633015f0ba63806d","unresolved":true,"context_lines":[{"line_number":105,"context_line":"A potential alternative that was pointed out during the PTG was to re-use"},{"line_number":106,"context_line":"the API from the ``networking-bgpvpn`` project [2]."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Personally I think that it\u0027s overkill for the OVN BGP Agent requirements"},{"line_number":109,"context_line":"because the OVN BGP Agent and the ``networking-bgpvpn`` have different"},{"line_number":110,"context_line":"approaches over how much can be customized by the user.  The OVN BGP"},{"line_number":111,"context_line":"Agent is much more opinionated on how things operate, it supports a"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7b079704_fbd34343","line":108,"updated":"2024-05-29 16:11:02.000000000","message":"I\u0027d very much like to see here a side-by-side comparison of the two APIs that would demonstrate that they are not overlapping. And/or an explanation why ovn bgp agent cannot implement the existing api (or part of the api) to serve its users needs.\n\nHere is the example of existing bgpvpn api, for your reference:\n\n```\n{\n  \"bgpvpn\": {\n    \"tenant_id\": \"b7549121395844bea941bb92feb3fad9\",\n    \"route_targets\": \"64512:1444\",\n    \"import_targets\": \"64512:1555\",\n    \"export_targets\": \"64512:1666\",\n    \"route_distinguishers\": [\"64512:1777\", \"64512:1888\", \"64512:1999\"],\n    \"type\": \"l3\",\n    \"vni\": 1000\n  }\n}\n```\n\nI see it already has `vni` and `type`. I imagine it could be extended for other information if needed.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"934eec4f70e9fb261a4dbca80c97726a8d6da422","unresolved":true,"context_lines":[{"line_number":105,"context_line":"A potential alternative that was pointed out during the PTG was to re-use"},{"line_number":106,"context_line":"the API from the ``networking-bgpvpn`` project [2]."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Personally I think that it\u0027s overkill for the OVN BGP Agent requirements"},{"line_number":109,"context_line":"because the OVN BGP Agent and the ``networking-bgpvpn`` have different"},{"line_number":110,"context_line":"approaches over how much can be customized by the user.  The OVN BGP"},{"line_number":111,"context_line":"Agent is much more opinionated on how things operate, it supports a"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7549e7fd_7d7139ac","line":108,"in_reply_to":"13491b3b_e604405e","updated":"2024-06-11 21:51:25.000000000","message":"Yes, my alternative line of thought here implies that a (limited?) OVN driver is implemented for bgpvpn service plugin; then this driver, using ovsdbapp IDL, sets the necessary fields in NB (which are also translated to SB). Then ovn-agent can pick these fields up and pass them to whatever BGP advert solution you\u0027d like to integrate with.\n\n---\n\nA different approach would be for bgp-agent project to reimplement (part of) bgpvpn API in-tree. I don\u0027t think this is a good path though. It would be better if bgp-agent team contributes a driver to bgpvpn and integrates the agent with it.\n\n---\n\nI imagine the pushback against integration with bgpvpn project, apart from the fact that only part of the existing API is of (current) interest to bgp-agent team, would be that some deployments (e.g. RHOSO) do not, at the moment, support this service plugin. Perhaps the affected products should reconsider and integrate the service plugin into their platforms?","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ffb12deccf55c87e6868ab4c999896919fd2e4c4","unresolved":true,"context_lines":[{"line_number":105,"context_line":"A potential alternative that was pointed out during the PTG was to re-use"},{"line_number":106,"context_line":"the API from the ``networking-bgpvpn`` project [2]."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Personally I think that it\u0027s overkill for the OVN BGP Agent requirements"},{"line_number":109,"context_line":"because the OVN BGP Agent and the ``networking-bgpvpn`` have different"},{"line_number":110,"context_line":"approaches over how much can be customized by the user.  The OVN BGP"},{"line_number":111,"context_line":"Agent is much more opinionated on how things operate, it supports a"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5750831f_f58f411e","line":108,"in_reply_to":"7549e7fd_7d7139ac","updated":"2024-06-21 13:02:45.000000000","message":"There\u0027s two other points for us to consider when talking about bpgvpn as a service plugin for this:\n\n1. Having another project writing to the the OVN NB DB breaks our idea that Neutron is the only project writing to it. There\u0027s an assumption that Neutron \"owns\" that database that is true to this day. This also means that we will add more connections to the active OVSDB server (because we will write to it, so we can\u0027t connect to the backups) which already struggles with this problem in big deployments.\n\n\n2. Re-implemting the bgpvpn API in-tree means we would need to introduce an API service for ovn-bgp-agent. As of today, we do not have one. Everything is done by watching the OVSDBs events and config files.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"5954c19302fe3beec1447f7e89b8e2ebbdd086e2","unresolved":true,"context_lines":[{"line_number":105,"context_line":"A potential alternative that was pointed out during the PTG was to re-use"},{"line_number":106,"context_line":"the API from the ``networking-bgpvpn`` project [2]."},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"Personally I think that it\u0027s overkill for the OVN BGP Agent requirements"},{"line_number":109,"context_line":"because the OVN BGP Agent and the ``networking-bgpvpn`` have different"},{"line_number":110,"context_line":"approaches over how much can be customized by the user.  The OVN BGP"},{"line_number":111,"context_line":"Agent is much more opinionated on how things operate, it supports a"}],"source_content_type":"text/x-rst","patch_set":2,"id":"13491b3b_e604405e","line":108,"in_reply_to":"7b079704_fbd34343","updated":"2024-05-31 21:02:52.000000000","message":"Just to make it clear - OVN BGP agent works with OVN DBs only, it can\u0027t look at Neutron resources at this point. We still would need some code on the Neutron side to pass the data down to the OVN NB DB. So even if we use networking-bgpvpn project, there would still be missing connection between the Neutron and OVN.\n\nI\u0027m not sure if it is possible to enable just API for networking-bgpvpn without configuring it as a service plugin. To my understanding if we would need to re-use its API, we would need to write a driver for it too.\n\nTo my understanding reading this API: https://docs.openstack.org/api-ref/network/v2/#bgp-mpls-vpn-interconnection\n\nThe overlapping part would be \n/v2.0/bgpvpn/bgpvpns along with network association /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations - (the 2 API resources)\n\nWe don\u0027t treat bgpvpn separately as in this proposal there is no 1:N mapping like with networking-bgpvpn.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7c139fe2c30ee989b7544364633015f0ba63806d","unresolved":true,"context_lines":[{"line_number":109,"context_line":"because the OVN BGP Agent and the ``networking-bgpvpn`` have different"},{"line_number":110,"context_line":"approaches over how much can be customized by the user.  The OVN BGP"},{"line_number":111,"context_line":"Agent is much more opinionated on how things operate, it supports a"},{"line_number":112,"context_line":"limited number of use cases such as exposing VMs with FIPs or VMs on a"},{"line_number":113,"context_line":"provider network and the agent itself handles nearly everything in terms"},{"line_number":114,"context_line":"of configuration."},{"line_number":115,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"fbf2017f_56dbd466","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":14},"updated":"2024-05-29 16:11:02.000000000","message":"you can raise NotImplemented in your opinionated service plugin implementation for APIs you don\u0027t care about.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ffb12deccf55c87e6868ab4c999896919fd2e4c4","unresolved":true,"context_lines":[{"line_number":109,"context_line":"because the OVN BGP Agent and the ``networking-bgpvpn`` have different"},{"line_number":110,"context_line":"approaches over how much can be customized by the user.  The OVN BGP"},{"line_number":111,"context_line":"Agent is much more opinionated on how things operate, it supports a"},{"line_number":112,"context_line":"limited number of use cases such as exposing VMs with FIPs or VMs on a"},{"line_number":113,"context_line":"provider network and the agent itself handles nearly everything in terms"},{"line_number":114,"context_line":"of configuration."},{"line_number":115,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"4e238f16_3eb99f0c","line":112,"range":{"start_line":112,"start_character":0,"end_line":112,"end_character":14},"in_reply_to":"fbf2017f_56dbd466","updated":"2024-06-21 13:02:45.000000000","message":"Will mention it","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7c139fe2c30ee989b7544364633015f0ba63806d","unresolved":true,"context_lines":[{"line_number":118,"context_line":"(Networks, Ports, Routers, ...) are configured. It\u0027s a much customizable"},{"line_number":119,"context_line":"by users."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"With that in context, adding a dependency on a whole project to use very"},{"line_number":122,"context_line":"little of what it can offer just seems to add disproportionate complexity"},{"line_number":123,"context_line":"for minimal benefit."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"27d58e75_4c027999","line":121,"range":{"start_line":121,"start_character":31,"end_line":121,"end_character":41},"updated":"2024-05-29 16:11:02.000000000","message":"ovn bgp agent is free to take the existing neutron API for bgpvpn and implement it without relying on the other project. (Though it\u0027s good to consider it.)","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ffb12deccf55c87e6868ab4c999896919fd2e4c4","unresolved":true,"context_lines":[{"line_number":118,"context_line":"(Networks, Ports, Routers, ...) are configured. It\u0027s a much customizable"},{"line_number":119,"context_line":"by users."},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"With that in context, adding a dependency on a whole project to use very"},{"line_number":122,"context_line":"little of what it can offer just seems to add disproportionate complexity"},{"line_number":123,"context_line":"for minimal benefit."},{"line_number":124,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"37d302a8_0d243332","line":121,"range":{"start_line":121,"start_character":31,"end_line":121,"end_character":41},"in_reply_to":"27d58e75_4c027999","updated":"2024-06-21 13:02:45.000000000","message":"As pointed out in the comment above, we do not have an API service for ovn-bgp-agent at the moment so having to introduce a whole new API service for this sounds out of the plan for us. \n\nI would rather have a Neutron API extension in the OVN BGP Agent repository since it\u0027s pluggable and can be enabled instead.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"7c139fe2c30ee989b7544364633015f0ba63806d","unresolved":true,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"With that in context, adding a dependency on a whole project to use very"},{"line_number":122,"context_line":"little of what it can offer just seems to add disproportionate complexity"},{"line_number":123,"context_line":"for minimal benefit."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"References"},{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bc0a5003_344b14fc","line":123,"updated":"2024-05-29 16:11:02.000000000","message":"the benefit is to not add another ad-hoc api to neutron with overlapping use cases. as a neutron steward, I find it important for us to think about user confusion.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":35638},"change_message_id":"9b18ffe210c1237890ac9f0b38ceb306b95247a5","unresolved":true,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"With that in context, adding a dependency on a whole project to use very"},{"line_number":122,"context_line":"little of what it can offer just seems to add disproportionate complexity"},{"line_number":123,"context_line":"for minimal benefit."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"References"},{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b5366d71_1a924fa9","line":123,"in_reply_to":"1914822e_70142d40","updated":"2024-07-02 20:58:55.000000000","message":"If I understand this draft correctly, there are two main reasons for implementing this as a neutron plugin and not as a BGPVPN service driver:\n\n- We would need to develop the BGPVPN service driver\n- There is a lot of functionality in BGPVPN, which is not required by ovn-bgp-agent.\n\nThe first reason is only part of true, because there has already been work by the Redhat folks [1] and by me [2] to develop a service driver.\nWhile the changes are for sure not complete nor perfect and none of the changes has been merged yet, the functionality is there.\nI know some environments which are already using that code in production.\n\nRegarding the second reason, I think due to the API doc [3] something got mixed up here.\n\nThe neutron extension networking-bgpvpn covers only the concept of a BGPVPN, and associations to a network, a router or a port.\n\nFeatures like BGP speakers and peer configuration are not part of that extension, they are part of neutron-dynamic-routing.\n\nAll of the features of networking-bgpvpn seem to be useful for ovn-bgp-agent to me (even if not all of them are implemented today) and I would consider it therefore a good fit.\n\nIt was mentioned that it would confuse the user if we would disable too much features of networking-bgpvpn while using our service driver.\nI would argue that there are already BGPVPN service drivers which do not implement a good amount of BGPVPNs features [4].\nEven the bagpipe driver does not implement all of them.\n\nRegarding deployment, I can not speak for RHOSP, but there is already work in progress to integrate the ovn-bgp-agent, together with FRR and networking-bgpvpn into kolla/kolla-ansible [5] [6]\n\n[1] https://review.opendev.org/c/openstack/networking-bgpvpn/+/803161\n[2] https://review.opendev.org/c/openstack/networking-bgpvpn/+/883060\n[3] https://docs.openstack.org/api-ref/network/v2/#bgp-mpls-vpn-interconnection\n[4] https://docs.openstack.org/networking-bgpvpn/latest/user/drivers/index.html\n[5] https://review.opendev.org/c/openstack/kolla/+/891617\n[6] https://review.opendev.org/c/openstack/kolla-ansible/+/891622","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"934eec4f70e9fb261a4dbca80c97726a8d6da422","unresolved":true,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"With that in context, adding a dependency on a whole project to use very"},{"line_number":122,"context_line":"little of what it can offer just seems to add disproportionate complexity"},{"line_number":123,"context_line":"for minimal benefit."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"References"},{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1914822e_70142d40","line":123,"in_reply_to":"b16c4e84_e044c74e","updated":"2024-06-11 21:51:25.000000000","message":"Yes, there may be some confusion as to why a significant number of APIs from the service plugin return errors. This will have to be documented. On the other hand, it\u0027s great that users would be able to use an existing openstack CLI to configure VNIs etc.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"5954c19302fe3beec1447f7e89b8e2ebbdd086e2","unresolved":true,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":"With that in context, adding a dependency on a whole project to use very"},{"line_number":122,"context_line":"little of what it can offer just seems to add disproportionate complexity"},{"line_number":123,"context_line":"for minimal benefit."},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"References"},{"line_number":126,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b16c4e84_e044c74e","line":123,"in_reply_to":"bc0a5003_344b14fc","updated":"2024-05-31 21:02:52.000000000","message":"I don\u0027t think the overlap is big (tried to explain how I understand networking-bgpvpn in the previous comment). I agree with the confusion which will more likely be on the operators rather than users - assuming users being tenants, so operators will need to understand what solution chose for which use-cases.\n\nI think if we go with networking-bgpvpn as an API (if it\u0027s even possible), then the confusion will be greater to users as they will get lot of things exposed to them, such as router and ports associations, or BGP speakers and peer configurations that can be used for interconnection. With this proposal, the speakers and peers configuration is outside of the scope of ovn-bgp-agent.","commit_id":"738bc63ea55a438b4eddd4930a65d6aafacf695f"}]}
