)]}'
{"specs/wallaby/triplo-bgp-frrouter.rst":[{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"dc9afe55b139216949cf649f94cce75ffb0f88f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1f621f24_a86fbf90","updated":"2020-10-28 14:23:09.000000000","message":"nit, typo in filename. s/triplo/tripleo/","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"b9639cb329bc8c1e297c3dbc11003e55968cc8aa","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Install and Configure FRRouter"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The goal of this spec is to define the requirements for adding support to"},{"line_number":12,"context_line":"TripleO to install and provide a basic configuration of FRRouter on overcloud"},{"line_number":13,"context_line":"nodes in order to support dynamic routing. There are multiple reasons why an"},{"line_number":14,"context_line":"administrator might want to run FRR, including to obtain multiple routes on"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_9bc44161","line":11,"range":{"start_line":11,"start_character":28,"end_line":11,"end_character":51},"updated":"2020-11-09 12:27:56.000000000","message":", design and implementation plan ;)","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"30168c848de2e6ce53c56017a78137e3eb361c72","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Install and Configure FRRouter"},{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The goal of this spec is to define the requirements for adding support to"},{"line_number":12,"context_line":"TripleO to install and provide a basic configuration of FRRouter on overcloud"},{"line_number":13,"context_line":"nodes in order to support dynamic routing. There are multiple reasons why an"},{"line_number":14,"context_line":"administrator might want to run FRR, including to obtain multiple routes on"}],"source_content_type":"text/x-rst","patch_set":1,"id":"98fd8393_4172cbea","line":11,"range":{"start_line":11,"start_character":28,"end_line":11,"end_character":51},"in_reply_to":"1f621f24_9bc44161","updated":"2020-12-01 12:26:22.000000000","message":"Done","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"b9639cb329bc8c1e297c3dbc11003e55968cc8aa","unresolved":false,"context_lines":[{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The goal of this spec is to define the requirements for adding support to"},{"line_number":12,"context_line":"TripleO to install and provide a basic configuration of FRRouter on overcloud"},{"line_number":13,"context_line":"nodes in order to support dynamic routing. There are multiple reasons why an"},{"line_number":14,"context_line":"administrator might want to run FRR, including to obtain multiple routes on"},{"line_number":15,"context_line":"multiple uplinks to northbound switches, or to advertise routes to networks"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_bbee5dea","line":12,"range":{"start_line":12,"start_character":56,"end_line":12,"end_character":64},"updated":"2020-11-09 12:27:56.000000000","message":"since this is the first instance of FRRouter after the title, can you please expand it? First hit for me on google/ddg is https://frrouting.org/ which doesn\u0027t tell me but wikipedia has it as free range? https://en.wikipedia.org/wiki/FRRouting","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"30168c848de2e6ce53c56017a78137e3eb361c72","unresolved":false,"context_lines":[{"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"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The goal of this spec is to define the requirements for adding support to"},{"line_number":12,"context_line":"TripleO to install and provide a basic configuration of FRRouter on overcloud"},{"line_number":13,"context_line":"nodes in order to support dynamic routing. There are multiple reasons why an"},{"line_number":14,"context_line":"administrator might want to run FRR, including to obtain multiple routes on"},{"line_number":15,"context_line":"multiple uplinks to northbound switches, or to advertise routes to networks"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5c13d53c_99f34ba9","line":12,"range":{"start_line":12,"start_character":56,"end_line":12,"end_character":64},"in_reply_to":"1f621f24_bbee5dea","updated":"2020-12-01 12:26:22.000000000","message":"Done","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"b9639cb329bc8c1e297c3dbc11003e55968cc8aa","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The goal of this spec is to define the requirements for adding support to"},{"line_number":12,"context_line":"TripleO to install and provide a basic configuration of FRRouter on overcloud"},{"line_number":13,"context_line":"nodes in order to support dynamic routing. There are multiple reasons why an"},{"line_number":14,"context_line":"administrator might want to run FRR, including to obtain multiple routes on"},{"line_number":15,"context_line":"multiple uplinks to northbound switches, or to advertise routes to networks"},{"line_number":16,"context_line":"or IP addresses via dynamic routing protocols."}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_3bb40df2","line":13,"range":{"start_line":13,"start_character":6,"end_line":13,"end_character":8},"updated":"2020-11-09 12:27:56.000000000","message":"if i understand correctly, you\u0027re specifically looking to add bgp - from the list of things that frrouting supports/provides right? might be good to be specific in this intro paragraph.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"30168c848de2e6ce53c56017a78137e3eb361c72","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"The goal of this spec is to define the requirements for adding support to"},{"line_number":12,"context_line":"TripleO to install and provide a basic configuration of FRRouter on overcloud"},{"line_number":13,"context_line":"nodes in order to support dynamic routing. There are multiple reasons why an"},{"line_number":14,"context_line":"administrator might want to run FRR, including to obtain multiple routes on"},{"line_number":15,"context_line":"multiple uplinks to northbound switches, or to advertise routes to networks"},{"line_number":16,"context_line":"or IP addresses via dynamic routing protocols."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9e18d995_a41711ff","line":13,"range":{"start_line":13,"start_character":6,"end_line":13,"end_character":8},"in_reply_to":"1f621f24_3bb40df2","updated":"2020-12-01 12:26:22.000000000","message":"I added this clarification.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"b9639cb329bc8c1e297c3dbc11003e55968cc8aa","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"There are several use cases for using BGP, and in fact there are separate"},{"line_number":22,"context_line":"efforts underway to utilize BGP for the control plane and data plane."},{"line_number":23,"context_line":"There is also a use case where a node is attached to multiple routing"},{"line_number":24,"context_line":"switches with multiple equal cost outbound paths. Dynamic routing allows"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_5b93c95b","line":21,"range":{"start_line":21,"start_character":38,"end_line":21,"end_character":41},"updated":"2020-11-09 12:27:56.000000000","message":"as noted in my last comment, might be good to mention that BGP is what you\u0027re specifically interested in (at this first stage perhaps) before this point.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"30168c848de2e6ce53c56017a78137e3eb361c72","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"There are several use cases for using BGP, and in fact there are separate"},{"line_number":22,"context_line":"efforts underway to utilize BGP for the control plane and data plane."},{"line_number":23,"context_line":"There is also a use case where a node is attached to multiple routing"},{"line_number":24,"context_line":"switches with multiple equal cost outbound paths. Dynamic routing allows"}],"source_content_type":"text/x-rst","patch_set":1,"id":"797a4583_cfada20e","line":21,"range":{"start_line":21,"start_character":38,"end_line":21,"end_character":41},"in_reply_to":"1f621f24_5b93c95b","updated":"2020-12-01 12:26:22.000000000","message":"Yes, good suggestion, I updated the doc to clarify this.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"b9639cb329bc8c1e297c3dbc11003e55968cc8aa","unresolved":false,"context_lines":[{"line_number":23,"context_line":"There is also a use case where a node is attached to multiple routing"},{"line_number":24,"context_line":"switches with multiple equal cost outbound paths. Dynamic routing allows"},{"line_number":25,"context_line":"for equal-cost multipath (ECMP) load balancing of outbound links, and also"},{"line_number":26,"context_line":"bi-directional forwarding detection (BFD) for resiliency to ensure that a"},{"line_number":27,"context_line":"path provides connectivity."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_3b824d01","line":26,"range":{"start_line":26,"start_character":26,"end_line":26,"end_character":35},"updated":"2020-11-09 12:27:56.000000000","message":"ah i see... so it is not just about BGP. Well, perhaps it is, i mean in this first pass you\u0027re looking to add bgp, so that we might also add these other things later. ?","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"08fa1013cf097e0dadb4dd85a13459210ed1fc67","unresolved":false,"context_lines":[{"line_number":23,"context_line":"There is also a use case where a node is attached to multiple routing"},{"line_number":24,"context_line":"switches with multiple equal cost outbound paths. Dynamic routing allows"},{"line_number":25,"context_line":"for equal-cost multipath (ECMP) load balancing of outbound links, and also"},{"line_number":26,"context_line":"bi-directional forwarding detection (BFD) for resiliency to ensure that a"},{"line_number":27,"context_line":"path provides connectivity."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fffc6b78_7d3292a9","line":26,"range":{"start_line":26,"start_character":26,"end_line":26,"end_character":35},"in_reply_to":"1f621f24_3b824d01","updated":"2020-11-20 11:14:59.000000000","message":"In addition to the bgpd daemon, I believe other FRR daemons will also be needed such as watchfrr and bfdd.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"30168c848de2e6ce53c56017a78137e3eb361c72","unresolved":false,"context_lines":[{"line_number":23,"context_line":"There is also a use case where a node is attached to multiple routing"},{"line_number":24,"context_line":"switches with multiple equal cost outbound paths. Dynamic routing allows"},{"line_number":25,"context_line":"for equal-cost multipath (ECMP) load balancing of outbound links, and also"},{"line_number":26,"context_line":"bi-directional forwarding detection (BFD) for resiliency to ensure that a"},{"line_number":27,"context_line":"path provides connectivity."},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"a2101a62_a8d3702e","line":26,"range":{"start_line":26,"start_character":26,"end_line":26,"end_character":35},"in_reply_to":"fffc6b78_7d3292a9","updated":"2020-12-01 12:26:22.000000000","message":"I added text to mention BFD, but I didn\u0027t mention watchfrr or bfdd intentionally. I feel that watchfrr is an internal detail to FRR (it watches the daemons to make sure they are running IIUC). We need to validate that we will be using bfdd rather than an external daemon, but if\nwe settle on bfdd I may specify it more explicitly. Currently the bfdd daemon can be seen in the proposed changes, which I have linked to. Let me know if you disagree with my decisions and I will reconsider.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"4a43164615e7f051a210d3f6cad6894dcf7986de","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Overview"},{"line_number":33,"context_line":"--------"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Ensure that the FRRouter packages are installed, along with any dependencies."},{"line_number":36,"context_line":"Provide a basic configuration that would allow BGP peering with multiple peers."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"User Experience"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_ff8d9331","line":35,"range":{"start_line":35,"start_character":25,"end_line":35,"end_character":47},"updated":"2020-11-04 10:07:03.000000000","message":"Can FRR run on a container? \"packages are installed\" specifies that it has to be installed on the overcloud image. Any specific reasons?","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":20172,"name":"Michele Baldessari","email":"michele@acksyn.org","username":"michele"},"change_message_id":"7eae4b597766dcdf4c7ba251cf8cd68e16ac584e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Overview"},{"line_number":33,"context_line":"--------"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Ensure that the FRRouter packages are installed, along with any dependencies."},{"line_number":36,"context_line":"Provide a basic configuration that would allow BGP peering with multiple peers."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"User Experience"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fffc6b78_1ddc2673","line":35,"range":{"start_line":35,"start_character":25,"end_line":35,"end_character":47},"in_reply_to":"1f621f24_ff8d9331","updated":"2020-11-20 10:52:17.000000000","message":"Yes frr can run in a container. Carlos and I got it working. We were kind of assuming that it had to be in a container given the general tripleo direction. Not sure if BGP (due to its low level nature) should be considered differently? I would guess not, but maybe there are other POVs about this?","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"30168c848de2e6ce53c56017a78137e3eb361c72","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Overview"},{"line_number":33,"context_line":"--------"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Ensure that the FRRouter packages are installed, along with any dependencies."},{"line_number":36,"context_line":"Provide a basic configuration that would allow BGP peering with multiple peers."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"User Experience"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_3990c343","line":35,"range":{"start_line":35,"start_character":25,"end_line":35,"end_character":47},"in_reply_to":"1f621f24_ff8d9331","updated":"2020-12-01 12:26:22.000000000","message":"Yes, I will clarify that the packages will be installed in the base OS but a sidecar container will be created to host the FRR daemons (Zebra, bgpd, and bfd daemons).","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"4a43164615e7f051a210d3f6cad6894dcf7986de","unresolved":false,"context_lines":[{"line_number":33,"context_line":"--------"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Ensure that the FRRouter packages are installed, along with any dependencies."},{"line_number":36,"context_line":"Provide a basic configuration that would allow BGP peering with multiple peers."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"User Experience"},{"line_number":39,"context_line":"^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_7f9ea354","line":36,"updated":"2020-11-04 10:07:03.000000000","message":"It is understood that FFR is going to run BGP daemon. Can it have additional details about the sources that we plan to configure to FRR? Are we planning to add a new source? It is also not clear about the routing information of what IPs, does it add routing info of all the overcloud IPs and VM IPs (local or fip or additional provider network)?","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"30168c848de2e6ce53c56017a78137e3eb361c72","unresolved":false,"context_lines":[{"line_number":33,"context_line":"--------"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Ensure that the FRRouter packages are installed, along with any dependencies."},{"line_number":36,"context_line":"Provide a basic configuration that would allow BGP peering with multiple peers."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"User Experience"},{"line_number":39,"context_line":"^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1cf1cc94_cd099476","line":36,"in_reply_to":"1f621f24_7f9ea354","updated":"2020-12-01 12:26:22.000000000","message":"I have added links to the proposed upstream changes, as well as some description of the choices made for the default configuration in patchset #2, please comment on that version if you feel I need to add more.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"b9639cb329bc8c1e297c3dbc11003e55968cc8aa","unresolved":false,"context_lines":[{"line_number":38,"context_line":"User Experience"},{"line_number":39,"context_line":"^^^^^^^^^^^^^^^"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* TBD"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":".. note:: Complete this section"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_bbaadd6d","line":41,"range":{"start_line":41,"start_character":2,"end_line":41,"end_character":5},"updated":"2020-11-09 12:27:56.000000000","message":"would be good to consider/expand this a bit. as we discussed briefly at ptg it\u0027s going to be tripleo-heat-templates with parameters and then invoking tripleo-ansible role perhaps or whatever it is we can use to configure frrouter and friends on the nodes. ?","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"30168c848de2e6ce53c56017a78137e3eb361c72","unresolved":false,"context_lines":[{"line_number":38,"context_line":"User Experience"},{"line_number":39,"context_line":"^^^^^^^^^^^^^^^"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"* TBD"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":".. note:: Complete this section"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"021f1ea0_ba50c6d0","line":41,"range":{"start_line":41,"start_character":2,"end_line":41,"end_character":5},"in_reply_to":"1f621f24_bbaadd6d","updated":"2020-12-01 12:26:22.000000000","message":"I expanded this section a bit, please have a look at the next revision and let me know if I should add more.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":7353,"name":"Kevin Carter","email":"kevin@cloudnull.com","username":"cloudnull"},"change_message_id":"a6a83d7ec0a202347c973f089d941743c5eebf17","unresolved":false,"context_lines":[{"line_number":70,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"When (if) we remove the capability to manage network resources in the"},{"line_number":73,"context_line":"overcloud heat stack, "},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_c1461e7d","line":73,"range":{"start_line":73,"start_character":22,"end_line":73,"end_character":22},"updated":"2020-11-02 14:50:53.000000000","message":"whitespace.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"30168c848de2e6ce53c56017a78137e3eb361c72","unresolved":false,"context_lines":[{"line_number":70,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"When (if) we remove the capability to manage network resources in the"},{"line_number":73,"context_line":"overcloud heat stack, "},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"1f621f24_59881f1e","line":73,"range":{"start_line":73,"start_character":22,"end_line":73,"end_character":22},"in_reply_to":"1f621f24_c1461e7d","updated":"2020-12-01 12:26:22.000000000","message":"Will fix in the next revision, thanks.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"08fa1013cf097e0dadb4dd85a13459210ed1fc67","unresolved":false,"context_lines":[{"line_number":96,"context_line":"Work Items"},{"line_number":97,"context_line":"----------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"* Deploy FRR packages"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fffc6b78_1dcf0680","line":99,"range":{"start_line":99,"start_character":2,"end_line":99,"end_character":21},"updated":"2020-11-20 11:14:59.000000000","message":"Going the container way instead, FRR would be a THT deployment service so there are likely more work items to consider here.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"30168c848de2e6ce53c56017a78137e3eb361c72","unresolved":false,"context_lines":[{"line_number":96,"context_line":"Work Items"},{"line_number":97,"context_line":"----------"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"* Deploy FRR packages"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8a41dab2_7b5634a0","line":99,"range":{"start_line":99,"start_character":2,"end_line":99,"end_character":21},"in_reply_to":"fffc6b78_1dcf0680","updated":"2020-12-01 12:26:22.000000000","message":"I made this change and added links to the proposed changes including the container definition.","commit_id":"737bb1db10bb1e19b4834c735ffd4a4d285d7b84"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"1aba4bc68a566e959efb2b280de659764963a880","unresolved":true,"context_lines":[{"line_number":49,"context_line":"Overview"},{"line_number":50,"context_line":"--------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Create a sidecar container with FRR. The container will run the BGP daemon, BFD"},{"line_number":53,"context_line":"daemon, and Zebra daemon (which copies routes to/from the kernel). Provide a"},{"line_number":54,"context_line":"basic configuration that would allow BGP peering with multiple peers. The"},{"line_number":55,"context_line":"container is defined in a change proposed here: [1]_"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3574742d_a346fdbb","line":52,"range":{"start_line":52,"start_character":9,"end_line":52,"end_character":35},"updated":"2020-12-03 09:16:13.000000000","message":"FRR is added as a container and there will be another sidecar container to FRR with required daemons?","commit_id":"8c46f5def6849a5cc206cf67433f68449f10c037"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"ef598868dc34364ad096a3eee596230e3e668b2f","unresolved":true,"context_lines":[{"line_number":49,"context_line":"Overview"},{"line_number":50,"context_line":"--------"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"Create a sidecar container with FRR. The container will run the BGP daemon, BFD"},{"line_number":53,"context_line":"daemon, and Zebra daemon (which copies routes to/from the kernel). Provide a"},{"line_number":54,"context_line":"basic configuration that would allow BGP peering with multiple peers. The"},{"line_number":55,"context_line":"container is defined in a change proposed here: [1]_"}],"source_content_type":"text/x-rst","patch_set":4,"id":"e06128a3_b7b163fc","line":52,"range":{"start_line":52,"start_character":9,"end_line":52,"end_character":35},"in_reply_to":"3574742d_a346fdbb","updated":"2020-12-15 15:39:56.000000000","message":"FRR is added as a top-level container for HA, but in the case of Neutron data plane the FRR container would be a sidecar to the Neutron OVN service. I may need to clarify.","commit_id":"8c46f5def6849a5cc206cf67433f68449f10c037"},{"author":{"_account_id":18575,"name":"Saravanan KR","email":"krsacme@gmail.com","username":"saravanankr"},"change_message_id":"1aba4bc68a566e959efb2b280de659764963a880","unresolved":true,"context_lines":[{"line_number":69,"context_line":"can provide the configuration data needed for FRR (see User Experience below)."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"OVN will need to be modified to enable the Compute node to assign VM provider"},{"line_number":72,"context_line":"network IPs to a loopback interface inside a namespace. These IP address will"},{"line_number":73,"context_line":"not be used for sending or receiving traffic, only for redistributing routes"},{"line_number":74,"context_line":"to the IPs to BGP peers. Traffic which is sent to those IP addresses will be"},{"line_number":75,"context_line":"forwarded to the VM using OVS flows on the hypervisor.  An example agent for"}],"source_content_type":"text/x-rst","patch_set":4,"id":"b95f4653_a6d4e6d3","line":72,"updated":"2020-12-03 09:16:13.000000000","message":"In case of DHCP managed by neutron/ovn, the information will be available. For external DHCP servers  (SR-IOV or OvS-DPDK provider networks), does OVN will have access to those IPs?","commit_id":"8c46f5def6849a5cc206cf67433f68449f10c037"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"ef598868dc34364ad096a3eee596230e3e668b2f","unresolved":true,"context_lines":[{"line_number":69,"context_line":"can provide the configuration data needed for FRR (see User Experience below)."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"OVN will need to be modified to enable the Compute node to assign VM provider"},{"line_number":72,"context_line":"network IPs to a loopback interface inside a namespace. These IP address will"},{"line_number":73,"context_line":"not be used for sending or receiving traffic, only for redistributing routes"},{"line_number":74,"context_line":"to the IPs to BGP peers. Traffic which is sent to those IP addresses will be"},{"line_number":75,"context_line":"forwarded to the VM using OVS flows on the hypervisor.  An example agent for"}],"source_content_type":"text/x-rst","patch_set":4,"id":"ac85fc5b_cc12ad20","line":72,"in_reply_to":"b95f4653_a6d4e6d3","updated":"2020-12-15 15:39:56.000000000","message":"I am not sure if we can support BGP routing with external DHCP. The compute node would have to know which IP address(es) to advertise, so if the IP is in the OVN SB DB then I think it could work, but I\u0027m not sure.","commit_id":"8c46f5def6849a5cc206cf67433f68449f10c037"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"d0093c7ef148a2207f225572ec647be22d23f767","unresolved":true,"context_lines":[{"line_number":162,"context_line":"overcloud heat stack, we will need to evaluate whether we want to continue"},{"line_number":163,"context_line":"to provide BGP configuration as a part of the overcloud configuration."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"If an installer wishes to begin using BGP routing at the same time as"},{"line_number":166,"context_line":"upgrading the version of OpenStack used they will need to provide the"},{"line_number":167,"context_line":"required configuration parameters if they differ from the defaults provided"},{"line_number":168,"context_line":"in the TripleO deployment service."}],"source_content_type":"text/x-rst","patch_set":4,"id":"c89c41d2_4892d95c","line":165,"range":{"start_line":165,"start_character":6,"end_line":165,"end_character":15},"updated":"2020-12-02 08:49:21.000000000","message":"operator","commit_id":"8c46f5def6849a5cc206cf67433f68449f10c037"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"ca9bda629e40b3fa392fe7a56af1e2f9e0819d9f","unresolved":true,"context_lines":[{"line_number":236,"context_line":"References"},{"line_number":237,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":".. [1] `https://review.opendev.org/c/openstack/tripleo-common/+/763087`_."},{"line_number":240,"context_line":".. [2] `https://review.opendev.org/c/openstack/tripleo-ansible/+/763572`_."},{"line_number":241,"context_line":".. [3] `https://review.opendev.org/c/openstack/tripleo-heat-templates/+/763657`_."},{"line_number":242,"context_line":".. [4] `https://gist.github.com/luis5tb/93cc01ebfea5d44abf07c0303e7d1514`_."}],"source_content_type":"text/x-rst","patch_set":4,"id":"52bce0c1_2d392bc4","line":239,"range":{"start_line":239,"start_character":67,"end_line":239,"end_character":73},"updated":"2020-12-02 15:50:19.000000000","message":"it is failing the tox job for this syntax:\n\nshould be like:\n\n.. _[1]: https://review.opendev.org/c/openstack/tripleo-common/+/763087","commit_id":"8c46f5def6849a5cc206cf67433f68449f10c037"},{"author":{"_account_id":12398,"name":"Dan Sneddon","email":"dsneddon@redhat.com","username":"dsneddon"},"change_message_id":"ef598868dc34364ad096a3eee596230e3e668b2f","unresolved":false,"context_lines":[{"line_number":236,"context_line":"References"},{"line_number":237,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":".. [1] `https://review.opendev.org/c/openstack/tripleo-common/+/763087`_."},{"line_number":240,"context_line":".. [2] `https://review.opendev.org/c/openstack/tripleo-ansible/+/763572`_."},{"line_number":241,"context_line":".. [3] `https://review.opendev.org/c/openstack/tripleo-heat-templates/+/763657`_."},{"line_number":242,"context_line":".. [4] `https://gist.github.com/luis5tb/93cc01ebfea5d44abf07c0303e7d1514`_."}],"source_content_type":"text/x-rst","patch_set":4,"id":"dd105706_a869b5ff","line":239,"range":{"start_line":239,"start_character":67,"end_line":239,"end_character":73},"in_reply_to":"269017bb_225a2dcd","updated":"2020-12-15 15:39:56.000000000","message":"\u003e so apparently this syntax is OK (I didn\u0027t know about it) but you need the \u003c\u003e ?\n\u003e \n\u003e like .. [1] `some name for the link \u003chttps://review.opendev.org/c/openstack/tripleo-common/+/763087\u003e`_\n\u003e \n\u003e i.e. as harald has it in https://review.opendev.org/c/openstack/tripleo-specs/+/760536/14/specs/wallaby/triplo-network-data-v2-node-ports.rst#652\n\nThanks.","commit_id":"8c46f5def6849a5cc206cf67433f68449f10c037"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"e3c9c0d733685e2ed1842a3317ca9b1ba2151ece","unresolved":true,"context_lines":[{"line_number":236,"context_line":"References"},{"line_number":237,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":".. [1] `https://review.opendev.org/c/openstack/tripleo-common/+/763087`_."},{"line_number":240,"context_line":".. [2] `https://review.opendev.org/c/openstack/tripleo-ansible/+/763572`_."},{"line_number":241,"context_line":".. [3] `https://review.opendev.org/c/openstack/tripleo-heat-templates/+/763657`_."},{"line_number":242,"context_line":".. [4] `https://gist.github.com/luis5tb/93cc01ebfea5d44abf07c0303e7d1514`_."}],"source_content_type":"text/x-rst","patch_set":4,"id":"d15108d6_fd124d36","line":239,"range":{"start_line":239,"start_character":67,"end_line":239,"end_character":73},"in_reply_to":"52bce0c1_2d392bc4","updated":"2020-12-02 15:51:22.000000000","message":"there\n\nhttps://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_396/758249/4/check/openstack-tox-docs/396d2ab/job-output.txt\n\n\n\n2020-12-01 17:02:57.376490 | ubuntu-focal | Warning, treated as error:\n2020-12-01 17:02:57.376494 | ubuntu-focal | /home/zuul/src/opendev.org/openstack/tripleo-specs/doc/source/specs/wallaby/triplo-bgp-frrouter.rst:239:Unknown target name: \"https://review.opendev.org/c/openstack/tripleo-common/+/763087\".\n2020-12-01 17:02:57.558852 | ubuntu-focal | ERROR: InvocationError for command /home/zuul/src/opendev.org/openstack/tripleo-specs/.tox/docs/bin/sphinx-build -W -b html doc/source doc/build/html (exited with code 2)\n2020-12-01 17:02:57.558903 | ubuntu-focal | docs finish: run-test  after 6.44 seconds\n2020-12-01 17:02:57.559287 | ubuntu-focal | docs start: run-test-post\n2020-12-01 17:02:57.559321 | ubuntu-focal | docs finish: run-test-post  after 0.00 seconds\n2020-12-01 17:02:57.559599 | ubuntu-focal | ___________________________________ summary ____________________________________\n2020-12-01 17:02:57.559636 | ubuntu-focal | ERROR:   docs: commands failed\n2020-12-01 17:02:57.559764 | ubuntu-focal | /home/zuul/.local/tox/lib/python3.8/site-packages/tox/config/__init__.py:642: UserWarning: conflicting basepython version (set 3.8, should be 3.6) for env \u0027py36\u0027;resolve conflict or set ignore_basepython_conflict\n2020-12-01 17:02:57.559768 | ubuntu-focal |   warnings.warn(\n2020-12-01 17:02:58.044995 | ubuntu-focal | ERROR\n2020-12-01 17:02:58.045324 | ubuntu-focal | {\n2020-12-01 17:02:58.045426 | ubuntu-focal |   \"delta\": \"0:00:07.224760\",\n2020-12-01 17:02:58.045519 | ubuntu-focal |   \"end\": \"2020-12-01 17:02:57.577325\",\n2020-12-01 17:02:58.045610 | ubuntu-focal |   \"msg\": \"non-zero return code\",\n2020-12-01 17:02:58.045726 | ubuntu-focal |   \"rc\": 1,\n2020-12-01 17:02:58.045819 | ubuntu-focal |   \"start\": \"2020-12-01 17:02:50.352565\"\n2020-12-01 17:02:58.045907 | ubuntu-focal | }","commit_id":"8c46f5def6849a5cc206cf67433f68449f10c037"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"0850cd13561ffd9a03f312da8a6b0008677f8225","unresolved":true,"context_lines":[{"line_number":236,"context_line":"References"},{"line_number":237,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":".. [1] `https://review.opendev.org/c/openstack/tripleo-common/+/763087`_."},{"line_number":240,"context_line":".. [2] `https://review.opendev.org/c/openstack/tripleo-ansible/+/763572`_."},{"line_number":241,"context_line":".. [3] `https://review.opendev.org/c/openstack/tripleo-heat-templates/+/763657`_."},{"line_number":242,"context_line":".. [4] `https://gist.github.com/luis5tb/93cc01ebfea5d44abf07c0303e7d1514`_."}],"source_content_type":"text/x-rst","patch_set":4,"id":"269017bb_225a2dcd","line":239,"range":{"start_line":239,"start_character":67,"end_line":239,"end_character":73},"in_reply_to":"d15108d6_fd124d36","updated":"2020-12-08 07:48:47.000000000","message":"so apparently this syntax is OK (I didn\u0027t know about it) but you need the \u003c\u003e ?\n\nlike .. [1] `some name for the link \u003chttps://review.opendev.org/c/openstack/tripleo-common/+/763087\u003e`_\n\ni.e. as harald has it in https://review.opendev.org/c/openstack/tripleo-specs/+/760536/14/specs/wallaby/triplo-network-data-v2-node-ports.rst#652","commit_id":"8c46f5def6849a5cc206cf67433f68449f10c037"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"49e61f6e9c77d9a7662658b6d72c8b87c311b06e","unresolved":true,"context_lines":[{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"There are several use cases for using BGP, and in fact there are separate"},{"line_number":22,"context_line":"efforts underway to utilize BGP for the control plane and data plane."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"BGP may be used for equal-cost multipath (ECMP) load balancing of outbound"},{"line_number":25,"context_line":"links, and bi-directional forwarding detection (BFD) for resiliency to ensure"}],"source_content_type":"text/x-rst","patch_set":5,"id":"93a2fb19_bd92dc0c","line":22,"range":{"start_line":21,"start_character":65,"end_line":22,"end_character":31},"updated":"2021-01-04 07:54:18.000000000","message":"would be nice to add a reference to these","commit_id":"f548f0acff3b4ebe31c5bfa84de17641a09e0ecd"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"d7c1e6f6ff39ce91964b72c189704cbcda9c3798","unresolved":true,"context_lines":[{"line_number":18,"context_line":"Problem description"},{"line_number":19,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"There are several use cases for using BGP, and in fact there are separate"},{"line_number":22,"context_line":"efforts underway to utilize BGP for the control plane and data plane."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"BGP may be used for equal-cost multipath (ECMP) load balancing of outbound"},{"line_number":25,"context_line":"links, and bi-directional forwarding detection (BFD) for resiliency to ensure"}],"source_content_type":"text/x-rst","patch_set":5,"id":"e6723974_47ec5eff","line":22,"range":{"start_line":21,"start_character":65,"end_line":22,"end_character":31},"in_reply_to":"93a2fb19_bd92dc0c","updated":"2021-01-05 14:29:14.000000000","message":"Subsection \"Overview\" under section \"Proposed Change\" has 4 references.","commit_id":"f548f0acff3b4ebe31c5bfa84de17641a09e0ecd"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"b1f5847f972cfb0e54902b4f9c6543eae11000bf","unresolved":true,"context_lines":[{"line_number":40,"context_line":"statement in the FRR configuration will cause local IP addresses on the host"},{"line_number":41,"context_line":"to be advertised via BGP. Floating IP addresses are attached to a loopback"},{"line_number":42,"context_line":"interface in a namespace, so they will be redistributed using this method."},{"line_number":43,"context_line":"Changes to OVN will be required to ensure provider network IPs assigned to VMs"},{"line_number":44,"context_line":"will be assigned to a loopback interface in a namespace in a similar fashion."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Proposed Change"},{"line_number":47,"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":5,"id":"e363d62c_6f324280","line":44,"range":{"start_line":43,"start_character":0,"end_line":44,"end_character":77},"updated":"2021-01-07 10:27:31.000000000","message":"not sure if this needs to be changed in OVN. It can also be done by an extra agent reading from OVN DB(s).","commit_id":"f548f0acff3b4ebe31c5bfa84de17641a09e0ecd"},{"author":{"_account_id":6469,"name":"Carlos Gonçalves","display_name":"Carlos Goncalves","email":"cgoncalves@redhat.com","username":"cgoncalves"},"change_message_id":"ab1c0335de847597756745d4a32ee69834572012","unresolved":true,"context_lines":[{"line_number":40,"context_line":"statement in the FRR configuration will cause local IP addresses on the host"},{"line_number":41,"context_line":"to be advertised via BGP. Floating IP addresses are attached to a loopback"},{"line_number":42,"context_line":"interface in a namespace, so they will be redistributed using this method."},{"line_number":43,"context_line":"Changes to OVN will be required to ensure provider network IPs assigned to VMs"},{"line_number":44,"context_line":"will be assigned to a loopback interface in a namespace in a similar fashion."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Proposed Change"},{"line_number":47,"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":5,"id":"548ffb4b_22b14fd1","line":44,"range":{"start_line":43,"start_character":0,"end_line":44,"end_character":77},"in_reply_to":"e363d62c_6f324280","updated":"2021-01-27 13:04:08.000000000","message":"I believe by \"changes to OVN\" Dan meant to hint at such extra agent that is being developed and is OVN-specific thus changes/extensions to OVN being required.\n\nI am just not sure the spec needs to detail how IPs are configured -- seems to be out of scope to this TripleO spec, and in fact the BGP OVN agent is no longer using network namespaces.","commit_id":"f548f0acff3b4ebe31c5bfa84de17641a09e0ecd"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"be639392468b5bc04fff84448c19c691ba7987f1","unresolved":true,"context_lines":[{"line_number":242,"context_line":".. [1] `Review: DNR/DNM Frr support \u003chttps://review.opendev.org/c/openstack/tripleo-common/+/763087\u003e`_."},{"line_number":243,"context_line":".. [2] `Review: Add tripleo_frr role \u003chttps://review.opendev.org/c/openstack/tripleo-ansible/+/763572\u003e`_."},{"line_number":244,"context_line":".. [3] `Review: WIP/DNR/DNM FRR service \u003chttps://review.opendev.org/c/openstack/tripleo-heat-templates/+/763657\u003e`_."},{"line_number":245,"context_line":".. [4] `OVN BGP Agent \u003chttps://gist.github.com/luis5tb/93cc01ebfea5d44abf07c0303e7d1514\u003e`_."}],"source_content_type":"text/x-rst","patch_set":5,"id":"29da3d5c_2d9314d3","line":245,"range":{"start_line":245,"start_character":8,"end_line":245,"end_character":87},"updated":"2021-01-07 10:51:53.000000000","message":"update the link with: https://github.com/luis5tb/bgp-agent","commit_id":"f548f0acff3b4ebe31c5bfa84de17641a09e0ecd"}]}
