)]}'
{"specs/train/multi-segment-per-host-support.rst":[{"author":{"_account_id":30378,"name":"Mariia Zakabluk","email":"c_mzakabluk@godaddy.com"},"change_message_id":"082b666cf3c67052b6e3bd0e939cee7c3b5658eb","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\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":"Today Neutron has support for segments within a routed network. However,"},{"line_number":12,"context_line":"there is validation that preventing multiple segments within a individual"},{"line_number":13,"context_line":"network or host [1]_. This restriction prevents natural growth of"},{"line_number":14,"context_line":"IP space within an individual network. The intent of this spec is to"},{"line_number":15,"context_line":"deliver on the promise of routed networks to allow a single network that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_513b2cea","line":12,"range":{"start_line":12,"start_character":61,"end_line":12,"end_character":62},"updated":"2019-05-07 13:42:02.000000000","message":"a-\u003ean","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"c2be83d8a67f06a4302fa9a5073050e76863c131","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\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":"Today Neutron has support for segments within a routed network. However,"},{"line_number":12,"context_line":"there is validation that preventing multiple segments within a individual"},{"line_number":13,"context_line":"network or host [1]_. This restriction prevents natural growth of"},{"line_number":14,"context_line":"IP space within an individual network. The intent of this spec is to"},{"line_number":15,"context_line":"deliver on the promise of routed networks to allow a single network that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_66c23536","line":12,"range":{"start_line":12,"start_character":25,"end_line":12,"end_character":35},"updated":"2019-05-07 11:46:45.000000000","message":"s/preventing/prevents","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","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\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":"Today Neutron has support for segments within a routed network. However,"},{"line_number":12,"context_line":"there is validation that preventing multiple segments within a individual"},{"line_number":13,"context_line":"network or host [1]_. This restriction prevents natural growth of"},{"line_number":14,"context_line":"IP space within an individual network. The intent of this spec is to"},{"line_number":15,"context_line":"deliver on the promise of routed networks to allow a single network that"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_58d3edd5","line":12,"range":{"start_line":12,"start_character":61,"end_line":12,"end_character":62},"in_reply_to":"dfbec78f_513b2cea","updated":"2019-06-05 18:06:02.000000000","message":"Done","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":30378,"name":"Mariia Zakabluk","email":"c_mzakabluk@godaddy.com"},"change_message_id":"082b666cf3c67052b6e3bd0e939cee7c3b5658eb","unresolved":false,"context_lines":[{"line_number":73,"context_line":"   The following code shows 1-1 relationship [3]_."},{"line_number":74,"context_line":"#. Ensure new 1-many relationship (network -\u003e segment) can be supported by"},{"line_number":75,"context_line":"   driver implementors."},{"line_number":76,"context_line":"#. Migration paths may be need depending on driver implementation."},{"line_number":77,"context_line":"#. Ensure all drivers that support routed networks allow for more than one"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_912be4e9","line":76,"range":{"start_line":76,"start_character":26,"end_line":76,"end_character":30},"updated":"2019-05-07 13:42:02.000000000","message":"need-\u003eneeded","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":73,"context_line":"   The following code shows 1-1 relationship [3]_."},{"line_number":74,"context_line":"#. Ensure new 1-many relationship (network -\u003e segment) can be supported by"},{"line_number":75,"context_line":"   driver implementors."},{"line_number":76,"context_line":"#. Migration paths may be need depending on driver implementation."},{"line_number":77,"context_line":"#. Ensure all drivers that support routed networks allow for more than one"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_f8dbc1e9","line":76,"range":{"start_line":76,"start_character":26,"end_line":76,"end_character":30},"in_reply_to":"dfbec78f_912be4e9","updated":"2019-06-05 18:06:02.000000000","message":"Done","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"3eb0eacaa24369be79a245499235d6f85021c023","unresolved":false,"context_lines":[{"line_number":82,"context_line":"* API and Client Changes"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"  * Unknown, but expected to be minor if so. There may be data that comes back"},{"line_number":85,"context_line":"    from an existing API the expects one item to be returned, when there may"},{"line_number":86,"context_line":"    now be many after this change. TODO: Research this."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Routing, Drivers and Agents"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_38d8901c","line":85,"range":{"start_line":85,"start_character":25,"end_line":85,"end_character":28},"updated":"2019-05-11 00:10:54.000000000","message":"that","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":82,"context_line":"* API and Client Changes"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"  * Unknown, but expected to be minor if so. There may be data that comes back"},{"line_number":85,"context_line":"    from an existing API the expects one item to be returned, when there may"},{"line_number":86,"context_line":"    now be many after this change. TODO: Research this."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Routing, Drivers and Agents"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_18d9f5f1","line":85,"range":{"start_line":85,"start_character":25,"end_line":85,"end_character":28},"in_reply_to":"dfbec78f_38d8901c","updated":"2019-06-05 18:06:02.000000000","message":"Done","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"c2be83d8a67f06a4302fa9a5073050e76863c131","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"  * LinuxBridge: There has been a migration at GoDaddy for LinuxBridge driver"},{"line_number":116,"context_line":"    located here with a plan ([5]_) and scripts ([6]_) used during"},{"line_number":117,"context_line":"    migration. This migration ran against live hypervisors and affected"},{"line_number":118,"context_line":"    showed little effect to live customers (\u003c10 seconds network blip for a"},{"line_number":119,"context_line":"    few customers."},{"line_number":120,"context_line":"  * As discussed in PTG (Denver 2019),"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_66f0f591","line":117,"range":{"start_line":117,"start_character":63,"end_line":117,"end_character":71},"updated":"2019-05-07 11:46:45.000000000","message":"remove \"affected\". sentence is ok without it.","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"  * LinuxBridge: There has been a migration at GoDaddy for LinuxBridge driver"},{"line_number":116,"context_line":"    located here with a plan ([5]_) and scripts ([6]_) used during"},{"line_number":117,"context_line":"    migration. This migration ran against live hypervisors and affected"},{"line_number":118,"context_line":"    showed little effect to live customers (\u003c10 seconds network blip for a"},{"line_number":119,"context_line":"    few customers."},{"line_number":120,"context_line":"  * As discussed in PTG (Denver 2019),"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_b8e1c99d","line":117,"range":{"start_line":117,"start_character":63,"end_line":117,"end_character":71},"in_reply_to":"dfbec78f_66f0f591","updated":"2019-06-05 18:06:02.000000000","message":"Done","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"change_message_id":"3eb0eacaa24369be79a245499235d6f85021c023","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"* Concerns and Requests"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"  * We, GoDaddy, would like to request that the solution include the part"},{"line_number":142,"context_line":"    above concerning \"Generate IDs based on segment_id rather than network_id"},{"line_number":143,"context_line":"    (i.e. bridge_name)\". We invested in finding a PoC solution and now have"},{"line_number":144,"context_line":"    live customers that have been ported with this assumption. Deviating from"},{"line_number":145,"context_line":"    this would likely require another port and potential downtime."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"References"},{"line_number":148,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_f82c3803","line":145,"range":{"start_line":141,"start_character":4,"end_line":145,"end_character":66},"updated":"2019-05-11 00:10:54.000000000","message":"Yes, we acknowledge this","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"* Concerns and Requests"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"  * We, GoDaddy, would like to request that the solution include the part"},{"line_number":142,"context_line":"    above concerning \"Generate IDs based on segment_id rather than network_id"},{"line_number":143,"context_line":"    (i.e. bridge_name)\". We invested in finding a PoC solution and now have"},{"line_number":144,"context_line":"    live customers that have been ported with this assumption. Deviating from"},{"line_number":145,"context_line":"    this would likely require another port and potential downtime."},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"References"},{"line_number":148,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_98f64563","line":145,"range":{"start_line":141,"start_character":4,"end_line":145,"end_character":66},"in_reply_to":"dfbec78f_f82c3803","updated":"2019-06-05 18:06:02.000000000","message":":-)","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"c2be83d8a67f06a4302fa9a5073050e76863c131","unresolved":false,"context_lines":[{"line_number":147,"context_line":"References"},{"line_number":148,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Please add any useful references here. You are not required to have any"},{"line_number":151,"context_line":"reference. Moreover, this specification should still make sense when your"},{"line_number":152,"context_line":"references are unavailable."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"LaunchPad bug: https://bugs.launchpad.net/neutron/+bug/1764738"},{"line_number":155,"context_line":"Proof of Concept WIP: https://review.opendev.org/#/c/623115"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_863e4927","line":152,"range":{"start_line":150,"start_character":0,"end_line":152,"end_character":27},"updated":"2019-05-07 11:46:45.000000000","message":"This template text can be removed","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":147,"context_line":"References"},{"line_number":148,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"Please add any useful references here. You are not required to have any"},{"line_number":151,"context_line":"reference. Moreover, this specification should still make sense when your"},{"line_number":152,"context_line":"references are unavailable."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"LaunchPad bug: https://bugs.launchpad.net/neutron/+bug/1764738"},{"line_number":155,"context_line":"Proof of Concept WIP: https://review.opendev.org/#/c/623115"}],"source_content_type":"text/x-rst","patch_set":2,"id":"dfbec78f_1802553e","line":152,"range":{"start_line":150,"start_character":0,"end_line":152,"end_character":27},"in_reply_to":"dfbec78f_863e4927","updated":"2019-06-05 18:06:02.000000000","message":"Done","commit_id":"158e13331216dbf111497e8c94b308733a4ecf45"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"b6a814bfd43f08dd55ed58e381f2d14dbd85b53d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"* Subnets within these segments are not able to grow without negative"},{"line_number":29,"context_line":"  effects of ever increasing broadcast domain."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The end result is when you are configured with a Routed Networks, we\u0027re"},{"line_number":32,"context_line":"restricting the growth that was part of the original promise of routed"},{"line_number":33,"context_line":"networks."},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_f8b1efe2","line":31,"range":{"start_line":31,"start_character":42,"end_line":31,"end_character":64},"updated":"2019-06-04 16:04:39.000000000","message":"\"with a routed network\" or \"with routed networks\"\nPreviously routed network was not capitalized.","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"b6a814bfd43f08dd55ed58e381f2d14dbd85b53d","unresolved":false,"context_lines":[{"line_number":28,"context_line":"* Subnets within these segments are not able to grow without negative"},{"line_number":29,"context_line":"  effects of ever increasing broadcast domain."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The end result is when you are configured with a Routed Networks, we\u0027re"},{"line_number":32,"context_line":"restricting the growth that was part of the original promise of routed"},{"line_number":33,"context_line":"networks."},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_98d793ee","line":31,"range":{"start_line":31,"start_character":18,"end_line":31,"end_character":41},"updated":"2019-06-04 16:04:39.000000000","message":"when the host is configured (?)","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":28,"context_line":"* Subnets within these segments are not able to grow without negative"},{"line_number":29,"context_line":"  effects of ever increasing broadcast domain."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The end result is when you are configured with a Routed Networks, we\u0027re"},{"line_number":32,"context_line":"restricting the growth that was part of the original promise of routed"},{"line_number":33,"context_line":"networks."},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_8e73b6b1","line":31,"range":{"start_line":31,"start_character":18,"end_line":31,"end_character":41},"in_reply_to":"9fb8cfa7_98d793ee","updated":"2019-06-05 18:06:02.000000000","message":"Rephrased:\n\n\"The end result is when a operator is configured to use routed network(s),\nwe\u0027re restricting the growth that was part of the original promise of\nrouted networks.\"","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":28,"context_line":"* Subnets within these segments are not able to grow without negative"},{"line_number":29,"context_line":"  effects of ever increasing broadcast domain."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"The end result is when you are configured with a Routed Networks, we\u0027re"},{"line_number":32,"context_line":"restricting the growth that was part of the original promise of routed"},{"line_number":33,"context_line":"networks."},{"line_number":34,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_ee6352db","line":31,"range":{"start_line":31,"start_character":42,"end_line":31,"end_character":64},"in_reply_to":"9fb8cfa7_f8b1efe2","updated":"2019-06-05 18:06:02.000000000","message":"Changed all capitalized Routed Network to routed network.","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":18051,"name":"David Shaughnessy","email":"david.shaughnessy@intel.com","username":"davidsha"},"change_message_id":"b6a814bfd43f08dd55ed58e381f2d14dbd85b53d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"restricting the growth that was part of the original promise of routed"},{"line_number":33,"context_line":"networks."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Use-case: *Operator\u0027s network hits IP space limitations.* Typical steps to get"},{"line_number":36,"context_line":"there:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Operator deploys Neutron with Routed Network configured."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_5867db4e","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":9},"updated":"2019-06-04 16:04:39.000000000","message":"This should probably be a sub header of the problem description.\n\"\nUse Case\n--------\n\"","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":32,"context_line":"restricting the growth that was part of the original promise of routed"},{"line_number":33,"context_line":"networks."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Use-case: *Operator\u0027s network hits IP space limitations.* Typical steps to get"},{"line_number":36,"context_line":"there:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Operator deploys Neutron with Routed Network configured."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_ae847a5f","line":35,"range":{"start_line":35,"start_character":0,"end_line":35,"end_character":9},"in_reply_to":"9fb8cfa7_5867db4e","updated":"2019-06-05 18:06:02.000000000","message":"Done","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"19020b25d6484718469675db8ffcef7706b75fd2","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Use-case: *Operator\u0027s network hits IP space limitations.* Typical steps to get"},{"line_number":36,"context_line":"there:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Operator deploys Neutron with Routed Network configured."},{"line_number":39,"context_line":"* Operator adds first network with one segment."},{"line_number":40,"context_line":"* Operator adds a subnet to the segment with a /22 (1024 IPs). At this point"},{"line_number":41,"context_line":"  there is a reasonable broadcast domain."},{"line_number":42,"context_line":"* The cloud deployment becomes successful enough require scaling up to 4k IP"},{"line_number":43,"context_line":"  addresses Within the same physical L2 boundary."},{"line_number":44,"context_line":"* Problem Encountered:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  * Operator cannot add the additional 3k addresses to existing segment"},{"line_number":47,"context_line":"    because broadcast domain would become too large. This causes a need for"},{"line_number":48,"context_line":"    additional VLAN(s) to be created (More Segments)"},{"line_number":49,"context_line":"  * Operator is restricted from adding new segment to network with existing"},{"line_number":50,"context_line":"    code [1]_."},{"line_number":51,"context_line":"  * Operator\u0027s work-around today is to keep adding networks until the IP needs"},{"line_number":52,"context_line":"    are met. This confuses operators and users when they have multiple"},{"line_number":53,"context_line":"    networks to choose from."},{"line_number":54,"context_line":"  * **Problem**: Restricting to one segment per host is not scalable across IP"},{"line_number":55,"context_line":"    space with large physical L2 boundaries. This also makes it more difficult"},{"line_number":56,"context_line":"    for operators to operate and explain to users."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"The goal of this feature is to remove the restriction of 1 segment per host"},{"line_number":59,"context_line":"thus allowing Operators to grow IP space within a physical L2 as needs demand."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfb3d3c7_40683df4","line":56,"range":{"start_line":38,"start_character":0,"end_line":56,"end_character":50},"updated":"2019-05-21 08:38:24.000000000","message":"I find this problem statement clear and well formulated.","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":35,"context_line":"Use-case: *Operator\u0027s network hits IP space limitations.* Typical steps to get"},{"line_number":36,"context_line":"there:"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"* Operator deploys Neutron with Routed Network configured."},{"line_number":39,"context_line":"* Operator adds first network with one segment."},{"line_number":40,"context_line":"* Operator adds a subnet to the segment with a /22 (1024 IPs). At this point"},{"line_number":41,"context_line":"  there is a reasonable broadcast domain."},{"line_number":42,"context_line":"* The cloud deployment becomes successful enough require scaling up to 4k IP"},{"line_number":43,"context_line":"  addresses Within the same physical L2 boundary."},{"line_number":44,"context_line":"* Problem Encountered:"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"  * Operator cannot add the additional 3k addresses to existing segment"},{"line_number":47,"context_line":"    because broadcast domain would become too large. This causes a need for"},{"line_number":48,"context_line":"    additional VLAN(s) to be created (More Segments)"},{"line_number":49,"context_line":"  * Operator is restricted from adding new segment to network with existing"},{"line_number":50,"context_line":"    code [1]_."},{"line_number":51,"context_line":"  * Operator\u0027s work-around today is to keep adding networks until the IP needs"},{"line_number":52,"context_line":"    are met. This confuses operators and users when they have multiple"},{"line_number":53,"context_line":"    networks to choose from."},{"line_number":54,"context_line":"  * **Problem**: Restricting to one segment per host is not scalable across IP"},{"line_number":55,"context_line":"    space with large physical L2 boundaries. This also makes it more difficult"},{"line_number":56,"context_line":"    for operators to operate and explain to users."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"The goal of this feature is to remove the restriction of 1 segment per host"},{"line_number":59,"context_line":"thus allowing Operators to grow IP space within a physical L2 as needs demand."}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_6ef3e20b","line":56,"range":{"start_line":38,"start_character":0,"end_line":56,"end_character":50},"in_reply_to":"bfb3d3c7_40683df4","updated":"2019-06-05 18:06:02.000000000","message":"Thank you :). It was pretty easy to write. We have gone through these steps many times.","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"19020b25d6484718469675db8ffcef7706b75fd2","unresolved":false,"context_lines":[{"line_number":67,"context_line":"following needs: (More needs may be discovered as this is solved)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"1. Remove the HostConnectedToMultipleSegments exception and checks for it [1]_."},{"line_number":70,"context_line":"#. Change all code that assumes a 1-1 relationship with network and segment into"},{"line_number":71,"context_line":"   a 1-many relationship [2]_."},{"line_number":72,"context_line":"#. Generate IDs based on segment_id rather than network_id (i.e. bridge_name)"},{"line_number":73,"context_line":"   The following code shows 1-1 relationship [3]_."},{"line_number":74,"context_line":"#. Ensure new 1-many relationship (network -\u003e segment) can be supported by"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfb3d3c7_c05c2d4d","line":71,"range":{"start_line":70,"start_character":0,"end_line":71,"end_character":30},"updated":"2019-05-21 08:38:24.000000000","message":"Is this neutron-only? I guess nova also has assumptions like that. Is Matt\u0027s change involved here?\n\nhttps://review.opendev.org/656885","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":67,"context_line":"following needs: (More needs may be discovered as this is solved)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"1. Remove the HostConnectedToMultipleSegments exception and checks for it [1]_."},{"line_number":70,"context_line":"#. Change all code that assumes a 1-1 relationship with network and segment into"},{"line_number":71,"context_line":"   a 1-many relationship [2]_."},{"line_number":72,"context_line":"#. Generate IDs based on segment_id rather than network_id (i.e. bridge_name)"},{"line_number":73,"context_line":"   The following code shows 1-1 relationship [3]_."},{"line_number":74,"context_line":"#. Ensure new 1-many relationship (network -\u003e segment) can be supported by"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfb3d3c7_2e0f16e2","line":71,"range":{"start_line":70,"start_character":0,"end_line":71,"end_character":30},"in_reply_to":"bfb3d3c7_c05c2d4d","updated":"2019-06-05 18:06:02.000000000","message":"Great question? I did post on that PR to also consider this spec as it is developed.","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"19020b25d6484718469675db8ffcef7706b75fd2","unresolved":false,"context_lines":[{"line_number":71,"context_line":"   a 1-many relationship [2]_."},{"line_number":72,"context_line":"#. Generate IDs based on segment_id rather than network_id (i.e. bridge_name)"},{"line_number":73,"context_line":"   The following code shows 1-1 relationship [3]_."},{"line_number":74,"context_line":"#. Ensure new 1-many relationship (network -\u003e segment) can be supported by"},{"line_number":75,"context_line":"   driver implementors."},{"line_number":76,"context_line":"#. Migration paths may be needed depending on driver implementation."},{"line_number":77,"context_line":"#. Ensure all drivers that support routed networks allow for more than one"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfb3d3c7_2031890c","line":75,"range":{"start_line":74,"start_character":0,"end_line":75,"end_character":23},"updated":"2019-05-21 08:38:24.000000000","message":"Could you please explain? This is not clear to me.","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":71,"context_line":"   a 1-many relationship [2]_."},{"line_number":72,"context_line":"#. Generate IDs based on segment_id rather than network_id (i.e. bridge_name)"},{"line_number":73,"context_line":"   The following code shows 1-1 relationship [3]_."},{"line_number":74,"context_line":"#. Ensure new 1-many relationship (network -\u003e segment) can be supported by"},{"line_number":75,"context_line":"   driver implementors."},{"line_number":76,"context_line":"#. Migration paths may be needed depending on driver implementation."},{"line_number":77,"context_line":"#. Ensure all drivers that support routed networks allow for more than one"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_2e22ca53","line":75,"range":{"start_line":74,"start_character":0,"end_line":75,"end_character":23},"in_reply_to":"bfb3d3c7_2031890c","updated":"2019-06-05 18:06:02.000000000","message":"Not sure how to make it clearer the spec. My reference #2 below, shows how a dict is created that takes a `network_id` as a parameter whose value is a single segment (Example `add_segment(\u0027net_id1\u0027, \u0027segment_1\u0027)`). If one was to attempt to add another (`segment_2`), when you call the same method with `segment_2` it overwrites segment_1 and looses segment_1 data. My 1-\u003emany assertion here is that when I call add_segment, it gets added a list or set. So, maybe add_segment would still have network_id as the key for the dict and the value would be a list or set. As we add segments, the set of segments grows. End result: now this specific call can support many segments per network_id.\n\nI\u0027d be happy to take suggestions to make this clearer. The point here is: This is only one example of potentially many cases that I found where backing code was allowed to assume 1-1 relationship.","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"19020b25d6484718469675db8ffcef7706b75fd2","unresolved":false,"context_lines":[{"line_number":73,"context_line":"   The following code shows 1-1 relationship [3]_."},{"line_number":74,"context_line":"#. Ensure new 1-many relationship (network -\u003e segment) can be supported by"},{"line_number":75,"context_line":"   driver implementors."},{"line_number":76,"context_line":"#. Migration paths may be needed depending on driver implementation."},{"line_number":77,"context_line":"#. Ensure all drivers that support routed networks allow for more than one"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfb3d3c7_c0218db6","line":76,"range":{"start_line":76,"start_character":19,"end_line":76,"end_character":25},"updated":"2019-05-21 08:38:24.000000000","message":"are\n\nThis may be painful, but I think it\u0027s a must.","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"19020b25d6484718469675db8ffcef7706b75fd2","unresolved":false,"context_lines":[{"line_number":74,"context_line":"#. Ensure new 1-many relationship (network -\u003e segment) can be supported by"},{"line_number":75,"context_line":"   driver implementors."},{"line_number":76,"context_line":"#. Migration paths may be needed depending on driver implementation."},{"line_number":77,"context_line":"#. Ensure all drivers that support routed networks allow for more than one"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"**Potential Impacts**"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfb3d3c7_b30f112d","line":77,"updated":"2019-05-21 08:38:24.000000000","message":"end of sentence missing.","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":74,"context_line":"#. Ensure new 1-many relationship (network -\u003e segment) can be supported by"},{"line_number":75,"context_line":"   driver implementors."},{"line_number":76,"context_line":"#. Migration paths may be needed depending on driver implementation."},{"line_number":77,"context_line":"#. Ensure all drivers that support routed networks allow for more than one"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"**Potential Impacts**"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_6eabe288","line":77,"in_reply_to":"bfb3d3c7_b30f112d","updated":"2019-06-05 18:06:02.000000000","message":"Done","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"12a811cdd2dc6af55771a89fbb2387de5edd0dad","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"  * Unknown, but expected to be minor if so. There may be data that comes back"},{"line_number":85,"context_line":"    from an existing API that expects one item to be returned, when there may"},{"line_number":86,"context_line":"    now be many after this change. TODO: Research this."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Routing, Drivers and Agents"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfb3d3c7_a77a6b21","line":86,"range":{"start_line":86,"start_character":34,"end_line":86,"end_character":55},"updated":"2019-05-21 11:53:02.000000000","message":"As Bence mentioned nova is one client (see https://review.opendev.org/656885)","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"  * Unknown, but expected to be minor if so. There may be data that comes back"},{"line_number":85,"context_line":"    from an existing API that expects one item to be returned, when there may"},{"line_number":86,"context_line":"    now be many after this change. TODO: Research this."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"* Routing, Drivers and Agents"},{"line_number":89,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_ae8f9a21","line":86,"range":{"start_line":86,"start_character":34,"end_line":86,"end_character":55},"in_reply_to":"bfb3d3c7_a77a6b21","updated":"2019-06-05 18:06:02.000000000","message":"Yeah. I had asked in their PR to consider this and naturally as we develop this solution we will have to tread carefully so they work together","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"12a811cdd2dc6af55771a89fbb2387de5edd0dad","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  * SRIOV"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    * (will need community support to ascertain this)"},{"line_number":106,"context_line":"  * ETC"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    * (will need community support to ascertain this)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* Out-of-tree plugins/drivers"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfb3d3c7_47c5af3b","line":108,"range":{"start_line":106,"start_character":0,"end_line":108,"end_character":53},"updated":"2019-05-21 11:53:02.000000000","message":"As I know linuxbridge, ovs, and sriov the defacto reference backend implementations for neutron.","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":103,"context_line":"  * SRIOV"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    * (will need community support to ascertain this)"},{"line_number":106,"context_line":"  * ETC"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    * (will need community support to ascertain this)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"* Out-of-tree plugins/drivers"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_6e99a26c","line":108,"range":{"start_line":106,"start_character":0,"end_line":108,"end_character":53},"in_reply_to":"bfb3d3c7_47c5af3b","updated":"2019-06-05 18:06:02.000000000","message":"Going to remove ETC.","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"12a811cdd2dc6af55771a89fbb2387de5edd0dad","unresolved":false,"context_lines":[{"line_number":123,"context_line":"      launched that detects missing bridges. The agent might iterate its"},{"line_number":124,"context_line":"      segments (should only be one) and ensure a bridge exists for each"},{"line_number":125,"context_line":"      segment it is connected to."},{"line_number":126,"context_line":"    * If agent approach is not feasible or safe, create \"how we did it,"},{"line_number":127,"context_line":"      use at your own risk\" documents for others to adopt."},{"line_number":128,"context_line":"* Documentation"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  * Add this change to features"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfb3d3c7_87272713","line":127,"range":{"start_line":126,"start_character":6,"end_line":127,"end_character":58},"updated":"2019-05-21 11:53:02.000000000","message":"Consider adding checks for neutron status upgrade check to give warning for the users before upgrade","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":10962,"name":"David Bingham","email":"dbingham@godaddy.com","username":"wwriverrat"},"change_message_id":"e2c0d2bc24a4822005c3fadae077837311ccb315","unresolved":false,"context_lines":[{"line_number":123,"context_line":"      launched that detects missing bridges. The agent might iterate its"},{"line_number":124,"context_line":"      segments (should only be one) and ensure a bridge exists for each"},{"line_number":125,"context_line":"      segment it is connected to."},{"line_number":126,"context_line":"    * If agent approach is not feasible or safe, create \"how we did it,"},{"line_number":127,"context_line":"      use at your own risk\" documents for others to adopt."},{"line_number":128,"context_line":"* Documentation"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"  * Add this change to features"}],"source_content_type":"text/x-rst","patch_set":3,"id":"9fb8cfa7_2efaca74","line":127,"range":{"start_line":126,"start_character":6,"end_line":127,"end_character":58},"in_reply_to":"bfb3d3c7_87272713","updated":"2019-06-05 18:06:02.000000000","message":"Done","commit_id":"f5b70f7dc363cb57389b92ff4d9925bac3cc76f6"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3a8cd07984caad7dc5486be31a7192e1e3a7f1e7","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  * Operator cannot add the additional 3k addresses to existing segment"},{"line_number":48,"context_line":"    because broadcast domain would become too large. This causes a need for"},{"line_number":49,"context_line":"    additional VLAN(s) to be created (More Segments)"},{"line_number":50,"context_line":"  * Operator is restricted from adding new segment to network with existing"},{"line_number":51,"context_line":"    code [1]_."},{"line_number":52,"context_line":"  * Operator\u0027s work-around today is to keep adding networks until the IP needs"},{"line_number":53,"context_line":"    are met. This confuses operators and users when they have multiple"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9fb8cfa7_2f271267","line":50,"range":{"start_line":50,"start_character":54,"end_line":50,"end_character":61},"updated":"2019-06-21 08:35:02.000000000","message":"shouldn\u0027t be \"the network\"?","commit_id":"cf0b15719036e81e3cf1cf14101dc62957cc89e4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3ec13776bdfc9dcc4ad882d0f362fca4262379ac","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    space with large physical L2 boundaries. This also makes it more difficult"},{"line_number":57,"context_line":"    for operators to operate and explain to users."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The goal of this feature is to remove the restriction of 1 segment per host"},{"line_number":60,"context_line":"thus allowing Operators to grow IP space within a physical L2 as needs demand."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9fb8cfa7_447b9f7a","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":78},"updated":"2019-07-03 04:42:17.000000000","message":"How to deal with the relationship between L3 router (floating IP and SNAT) and external network with multiple-segements?\nI\u0027ve read the POC [1] (maybe I missed something), but I did not see the related code change for L3 functionalities. Or it will support the L3 SNAT (public gateway) and floating IP (centralized for dvr_no_external nodes) naturally? And if it does, how this feature deal with such scenario:\n(1) router gateway is set to segment-1000 subnet, this means the qg-device will be set to 1000 tag on the bridge.\n(2) floating IP is created in segment-2000 subnet\nThen, how to make the floating IP NAT work?\n\n[1] https://review.opendev.org/#/c/623115/11","commit_id":"cf0b15719036e81e3cf1cf14101dc62957cc89e4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"10b79837c6e9643695b78e832d42d2b4996fb711","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    space with large physical L2 boundaries. This also makes it more difficult"},{"line_number":57,"context_line":"    for operators to operate and explain to users."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The goal of this feature is to remove the restriction of 1 segment per host"},{"line_number":60,"context_line":"thus allowing Operators to grow IP space within a physical L2 as needs demand."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_53bcb204","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":78},"in_reply_to":"7faddb67_60e6b5eb","updated":"2019-07-05 15:08:07.000000000","message":"Thanks Lajos for the information. But my question is different to that L3 spec. That is binding the floating IP to a routed network\u0027s port.\n\nMy question is based on this spec `Problem Encountered`. For external network, we may also meet such `broadcast domain` issue and `multiple external network maintaince` issue. So external network with multiple segments can also be a great significance improvement. Ryan Tidwell has give me his answer, neutron now does not support external network with multiple segments. And I test it also, it indeed can not work, the exception HostConnectedToMultipleSegments spreads all over the server side and agent side.","commit_id":"cf0b15719036e81e3cf1cf14101dc62957cc89e4"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"f66cdc98c90d4362a2b4556386bdc85588ab58d4","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    space with large physical L2 boundaries. This also makes it more difficult"},{"line_number":57,"context_line":"    for operators to operate and explain to users."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"The goal of this feature is to remove the restriction of 1 segment per host"},{"line_number":60,"context_line":"thus allowing Operators to grow IP space within a physical L2 as needs demand."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_60e6b5eb","line":60,"range":{"start_line":59,"start_character":0,"end_line":60,"end_character":78},"in_reply_to":"9fb8cfa7_447b9f7a","updated":"2019-07-05 11:39:13.000000000","message":"For L3 I this can be the spec: https://review.opendev.org/486450","commit_id":"cf0b15719036e81e3cf1cf14101dc62957cc89e4"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3a8cd07984caad7dc5486be31a7192e1e3a7f1e7","unresolved":false,"context_lines":[{"line_number":67,"context_line":"attached to the same host. With that premise, the PoC [4]_ identified the"},{"line_number":68,"context_line":"following needs: (More needs may be discovered as this is solved)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"1. Remove the HostConnectedToMultipleSegments exception and checks for it [1]_."},{"line_number":71,"context_line":"#. Change all code that assumes a 1-1 relationship with network and segment into"},{"line_number":72,"context_line":"   a 1-many relationship [2]_."},{"line_number":73,"context_line":"#. Generate IDs based on segment_id rather than network_id (i.e. bridge_name)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9fb8cfa7_6f8e6a28","line":70,"updated":"2019-06-21 08:35:02.000000000","message":"This spec and PoC patch for now is Linuxbridge oriented AFAIU. So if You will remove this exception and checks how You want to handle the case when ports are bound with driver which don\u0027t support this?\n\nAlso do we want to have some mechanism of reporting if given mechanism driver supports this or not?","commit_id":"cf0b15719036e81e3cf1cf14101dc62957cc89e4"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3a8cd07984caad7dc5486be31a7192e1e3a7f1e7","unresolved":false,"context_lines":[{"line_number":70,"context_line":"1. Remove the HostConnectedToMultipleSegments exception and checks for it [1]_."},{"line_number":71,"context_line":"#. Change all code that assumes a 1-1 relationship with network and segment into"},{"line_number":72,"context_line":"   a 1-many relationship [2]_."},{"line_number":73,"context_line":"#. Generate IDs based on segment_id rather than network_id (i.e. bridge_name)"},{"line_number":74,"context_line":"   The following code shows 1-1 relationship [3]_."},{"line_number":75,"context_line":"#. Ensure new 1-many relationship (network -\u003e segment) can be supported by"},{"line_number":76,"context_line":"   driver implementors."},{"line_number":77,"context_line":"#. Migration paths may be needed depending on driver implementation."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9fb8cfa7_efceda81","line":74,"range":{"start_line":73,"start_character":3,"end_line":74,"end_character":50},"updated":"2019-06-21 08:35:02.000000000","message":"in case of ovs driver will it require to allocate lvid based on segment instead of network? Am I understanding it correctly?","commit_id":"cf0b15719036e81e3cf1cf14101dc62957cc89e4"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"3a8cd07984caad7dc5486be31a7192e1e3a7f1e7","unresolved":false,"context_lines":[{"line_number":75,"context_line":"#. Ensure new 1-many relationship (network -\u003e segment) can be supported by"},{"line_number":76,"context_line":"   driver implementors."},{"line_number":77,"context_line":"#. Migration paths may be needed depending on driver implementation."},{"line_number":78,"context_line":"#. Ensure all drivers that support routed networks allow for more than one."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"**Potential Impacts**"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9fb8cfa7_8fa39eb1","line":78,"range":{"start_line":78,"start_character":51,"end_line":78,"end_character":74},"updated":"2019-06-21 08:35:02.000000000","message":"nit: more than one what exactly? I think it should be maybe rephrased","commit_id":"cf0b15719036e81e3cf1cf14101dc62957cc89e4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"db92278e5c1d4e437211c461e739ebef49ab9ea7","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    * Some PoC code deployed today [4]_."},{"line_number":101,"context_line":"    * Have identified other code assuming single segment per host: [7]_, [8]_."},{"line_number":102,"context_line":"    * May have other implications to stein-based changes such as *Change"},{"line_number":103,"context_line":"      provider network segmentation ID*: [10]_."},{"line_number":104,"context_line":"  * SRIOV"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    * (will need community support to ascertain this)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9fb8cfa7_d939fbd6","line":103,"range":{"start_line":103,"start_character":39,"end_line":103,"end_character":46},"updated":"2019-06-12 18:22:46.000000000","message":"You are right, but remember that this change is only accepted for single segment networks, not routed networks. This feature allows to change the segmentation ID of a network (that means, the segmentation ID of the only segment present on this network).\n\n[1] https://review.opendev.org/#/c/633165/20/neutron/plugins/ml2/plugin.py@805","commit_id":"cf0b15719036e81e3cf1cf14101dc62957cc89e4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"db92278e5c1d4e437211c461e739ebef49ab9ea7","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    * May have other implications to stein-based changes such as *Change"},{"line_number":103,"context_line":"      provider network segmentation ID*: [10]_."},{"line_number":104,"context_line":"  * SRIOV"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    * (will need community support to ascertain this)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"* Out-of-tree plugins/drivers"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9fb8cfa7_f9a95f8f","line":105,"updated":"2019-06-12 18:22:46.000000000","message":"SRIOV is a pure L2 plugin. It doesn\u0027t handle anything related to upper levels.\nIf the VNIC type is:\n- Physical (PF): no segment check is done.\n- Virtual function (VF): [1] if the segment belongs to the physical network defined in \"device_mappings\" (\u003cphysical_network\u003e:\u003cNIC_device\u003e, ...)\n\nNOTE: SRIOV only accepts VLAN (and flat) networks. Network segments can\u0027t be other than VLAN type (e.g.: VXLAN, GRE, etc).\n\nIMO, no other considerations are needed for SR-IOV.\n\n[1] https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/mech_sriov/mech_driver/mech_driver.py#L186","commit_id":"cf0b15719036e81e3cf1cf14101dc62957cc89e4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"3ec13776bdfc9dcc4ad882d0f362fca4262379ac","unresolved":false,"context_lines":[{"line_number":154,"context_line":"In-line References:"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":".. [1] Validation in `neutron/objects/subnet.py`:"},{"line_number":157,"context_line":"       https://github.com/openstack/neutron/blob/faa4438daea289af869ff12c19bd53d75ab3225e/neutron/objects/subnet.py#L319-L330"},{"line_number":158,"context_line":".. [2] AgentManagerBase.add_network (and all uses of its self.network_map):"},{"line_number":159,"context_line":"       https://github.com/openstack/neutron/blob/cbee0f9f88ff34f70ff19590471b5405e06ff2a9/neutron/plugins/ml2/drivers/agent/_agent_manager_base.py#L62-L68"},{"line_number":160,"context_line":".. [3] LinuxBridge example of creating bridge only for one network (should be"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9fb8cfa7_098f002f","line":157,"range":{"start_line":157,"start_character":49,"end_line":157,"end_character":89},"updated":"2019-07-03 04:42:17.000000000","message":"Should be replaced with \u0027master\u0027 ?","commit_id":"cf0b15719036e81e3cf1cf14101dc62957cc89e4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"40519ed3da1070631a8a18c36af801183b194f89","unresolved":false,"context_lines":[{"line_number":154,"context_line":"In-line References:"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":".. [1] Validation in `neutron/objects/subnet.py`:"},{"line_number":157,"context_line":"       https://github.com/openstack/neutron/blob/faa4438daea289af869ff12c19bd53d75ab3225e/neutron/objects/subnet.py#L319-L330"},{"line_number":158,"context_line":".. [2] AgentManagerBase.add_network (and all uses of its self.network_map):"},{"line_number":159,"context_line":"       https://github.com/openstack/neutron/blob/cbee0f9f88ff34f70ff19590471b5405e06ff2a9/neutron/plugins/ml2/drivers/agent/_agent_manager_base.py#L62-L68"},{"line_number":160,"context_line":".. [3] LinuxBridge example of creating bridge only for one network (should be"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_c8dda8e0","line":157,"range":{"start_line":157,"start_character":49,"end_line":157,"end_character":89},"in_reply_to":"9fb8cfa7_098f002f","updated":"2019-07-17 12:34:05.000000000","message":"nit: Hmmm if you choose a specific commit, the code will always be the same. But if you point to master, then some time later you can be pointing to somewhere else.","commit_id":"cf0b15719036e81e3cf1cf14101dc62957cc89e4"}]}
