neutron-specs/8ce21d40eda0f8392fb6d4cd506...

1221 lines
43 KiB
Plaintext

{
"comments": [
{
"unresolved": false,
"key": {
"uuid": "158a1547_f3e6b247",
"filename": "/PATCHSET_LEVEL",
"patchSetId": 2
},
"lineNbr": 0,
"author": {
"id": 16688
},
"writtenOn": "2023-02-14T16:20:01Z",
"side": 1,
"message": "-W just to block this feature during this release. Please propose it for 2023.2 cycle. Thanks!",
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": false,
"key": {
"uuid": "7556dca4_38af45d7",
"filename": "/PATCHSET_LEVEL",
"patchSetId": 2
},
"lineNbr": 0,
"author": {
"id": 15554
},
"writtenOn": "2023-02-21T15:12:26Z",
"side": 1,
"message": "Thanks for the proposal! Left a few questions.\n\nAlso I\u0027m happy to see that our previous plans - even if we did not get to implement them - are of some use to you.",
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": false,
"key": {
"uuid": "003281c8_5819a129",
"filename": "/PATCHSET_LEVEL",
"patchSetId": 2
},
"lineNbr": 0,
"author": {
"id": 24824
},
"writtenOn": "2023-02-22T14:13:16Z",
"side": 1,
"message": "Thanks a lot for the prior art and the review - it was really helpful.\n\nI left some answers inline and will make some changes as a result.\n\nhttps://review.opendev.org/c/openstack/neutron/+/873593 - the WIP changes (there are some others besides that one in the same topic).",
"parentUuid": "7556dca4_38af45d7",
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": false,
"key": {
"uuid": "739e1925_15d7ea60",
"filename": "/PATCHSET_LEVEL",
"patchSetId": 2
},
"lineNbr": 0,
"author": {
"id": 15554
},
"writtenOn": "2023-02-28T13:19:15Z",
"side": 1,
"message": "Sorry for the slow response.",
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": false,
"key": {
"uuid": "9876b904_1fd9901a",
"filename": "/PATCHSET_LEVEL",
"patchSetId": 2
},
"lineNbr": 0,
"author": {
"id": 16688
},
"writtenOn": "2023-03-02T09:44:12Z",
"side": 1,
"message": "Please, propose this spec on top of https://review.opendev.org/c/openstack/neutron-specs/+/876044",
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": false,
"key": {
"uuid": "986b30c1_0a31af76",
"filename": "/PATCHSET_LEVEL",
"patchSetId": 2
},
"lineNbr": 0,
"author": {
"id": 16688
},
"writtenOn": "2023-03-09T15:06:41Z",
"side": 1,
"message": "Please, move this spec to 2023.2 directory",
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "304a229b_11e5bc65",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 50,
"author": {
"id": 8313
},
"writtenOn": "2023-02-09T14:59:46Z",
"side": 1,
"message": "Perhaps easier to understand: \"ECMP routes can result in black-holing of traffic if the next hop of a route becomes unreachable\"\n(I hope I understand well what your intention is here)",
"range": {
"startLine": 49,
"startChar": 0,
"endLine": 50,
"endChar": 26
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "2924bb73_19409c94",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 50,
"author": {
"id": 24824
},
"writtenOn": "2023-02-10T14:04:48Z",
"side": 1,
"message": "Yes, you got it right - I think your version is better. I need to have less clericalism in the text :^)",
"parentUuid": "304a229b_11e5bc65",
"range": {
"startLine": 49,
"startChar": 0,
"endLine": 50,
"endChar": 26
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "63d8587c_ec4b4165",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 53,
"author": {
"id": 8313
},
"writtenOn": "2023-02-09T14:59:46Z",
"side": 1,
"message": "Perhaps a word at least should be here about the possible performance impact, I checked BFD for OVS (I suppose OVN also sets OVSdb fields finally) and OVS sends out BFD messages, so it can have performance impact finally",
"range": {
"startLine": 53,
"startChar": 0,
"endLine": 53,
"endChar": 78
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "9799e8f8_8a6688ad",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 53,
"author": {
"id": 24824
},
"writtenOn": "2023-02-10T14:04:48Z",
"side": 1,
"message": "Yes, having too many sessions is a concern.\n\nWe could approach it in various to reduce the number of sessions, e.g. use a \"shared\" router in an admin project and an intermediate virtual network through which other other routers would connect to it or something else.\n\nThis also raises an RBAC-related concern: letting random tenants configure BFD probably isn\u0027t a good idea so we may require changing BFD parameters to be a cloud admin only operation.",
"parentUuid": "63d8587c_ec4b4165",
"range": {
"startLine": 53,
"startChar": 0,
"endLine": 53,
"endChar": 78
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "eb830915_777dfe10",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 53,
"author": {
"id": 13686
},
"writtenOn": "2023-02-10T14:31:39Z",
"side": 1,
"message": "ftr; the OVN BFD implementation for routes is actually handled as packet-ins to the ovn-controller, so they do not use the OVS BFD implementation for this part. Performance impact still applies though.\n\nThe OVS BFD implementation is still used on tunnel endpoints for liveness detection between chassis.",
"parentUuid": "9799e8f8_8a6688ad",
"range": {
"startLine": 53,
"startChar": 0,
"endLine": 53,
"endChar": 78
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "2c438010_33dfda0b",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 53,
"author": {
"id": 15554
},
"writtenOn": "2023-02-21T15:12:26Z",
"side": 1,
"message": "+1 for reusing BFD sessions between tenants.",
"parentUuid": "eb830915_777dfe10",
"range": {
"startLine": 53,
"startChar": 0,
"endLine": 53,
"endChar": 78
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "d7b99645_e43d6c6c",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 92,
"author": {
"id": 8313
},
"writtenOn": "2023-02-09T14:59:46Z",
"side": 1,
"message": "+1, this still seems to be a good way to keep the old behaviour and extend it",
"range": {
"startLine": 86,
"startChar": 0,
"endLine": 92,
"endChar": 59
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": false,
"key": {
"uuid": "558e2ae7_ee1a10d1",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 92,
"author": {
"id": 24824
},
"writtenOn": "2023-02-10T14:04:48Z",
"side": 1,
"message": "Ack",
"parentUuid": "d7b99645_e43d6c6c",
"range": {
"startLine": 86,
"startChar": 0,
"endLine": 92,
"endChar": 59
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "ab75e3db_73cd523d",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 118,
"author": {
"id": 8313
},
"writtenOn": "2023-02-09T14:59:46Z",
"side": 1,
"message": "ditto, I vote for add API of cfg option for it, even as a \"merged\" option together with enable_default_route_ecmp",
"range": {
"startLine": 116,
"startChar": 0,
"endLine": 118,
"endChar": 36
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "8de66160_23084825",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 118,
"author": {
"id": 24824
},
"writtenOn": "2023-03-10T15:42:17Z",
"side": 1,
"message": "OK, that could be a way to specify a default value for newly created routers.\n\nI can look at the enable_snat_by_default option and see if it\u0027s going to be easy to adapt.",
"parentUuid": "ab75e3db_73cd523d",
"range": {
"startLine": 116,
"startChar": 0,
"endLine": 118,
"endChar": 36
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "756065c9_6f97af1c",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 122,
"author": {
"id": 16688
},
"writtenOn": "2023-03-09T15:06:41Z",
"side": 1,
"message": "Maybe I\u0027m missing something but the BFD register is associated to a port, nothing else.",
"range": {
"startLine": 122,
"startChar": 19,
"endLine": 122,
"endChar": 39
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "a61c75e1_e8fe746e",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 122,
"author": {
"id": 13686
},
"writtenOn": "2023-03-09T17:03:08Z",
"side": 1,
"message": "The BFD table itself has an index across logical port and BFD peer IP [0], and there is a reference from the `Logical_Router_Static_Route` table to the BFD table for BFD-enabled routes [1].\n\n0: https://github.com/ovn-org/ovn/blob/69692c6cb90ee88525dcbc356733c4b6d3870816/ovn-nb.ovsschema#L635\n1: https://manpages.ubuntu.com/manpages/kinetic/man5/ovn-nb.5.html#logical_router_static_route%20table",
"parentUuid": "756065c9_6f97af1c",
"range": {
"startLine": 122,
"startChar": 19,
"endLine": 122,
"endChar": 39
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "e32e247c_87286462",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 131,
"author": {
"id": 8313
},
"writtenOn": "2023-02-09T14:59:46Z",
"side": 1,
"message": "...route to use....?",
"range": {
"startLine": 131,
"startChar": 56,
"endLine": 131,
"endChar": 65
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "ba6d8854_a172fc2f",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 131,
"author": {
"id": 24824
},
"writtenOn": "2023-02-10T14:04:48Z",
"side": 1,
"message": "Thanks for spotting, I\u0027ll fix it.",
"parentUuid": "e32e247c_87286462",
"range": {
"startLine": 131,
"startChar": 56,
"endLine": 131,
"endChar": 65
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "e5562b2a_f57475f4",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 138,
"author": {
"id": 15554
},
"writtenOn": "2023-02-21T15:12:26Z",
"side": 1,
"message": "What will ovn use as the source IP? Do we need to allocate IPs for that purpose beyond what the router already has? If yes, will that be discoverable through the API?",
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "e4c826d7_281520bd",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 144,
"author": {
"id": 8313
},
"writtenOn": "2023-02-09T14:59:46Z",
"side": 1,
"message": "min_tx",
"range": {
"startLine": 144,
"startChar": 4,
"endLine": 144,
"endChar": 10
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "183f365e_7c807010",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 144,
"author": {
"id": 24824
},
"writtenOn": "2023-02-10T14:04:48Z",
"side": 1,
"message": "ty, definitely a typo.",
"parentUuid": "e4c826d7_281520bd",
"range": {
"startLine": 144,
"startChar": 4,
"endLine": 144,
"endChar": 10
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "b1acda2c_49e58f5f",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 167,
"author": {
"id": 8313
},
"writtenOn": "2023-02-09T14:59:46Z",
"side": 1,
"message": "agree, I think these things (like min_tx and min_rx) can be defaulted or in worst case we can add some cfg option for it",
"range": {
"startLine": 163,
"startChar": 0,
"endLine": 167,
"endChar": 22
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "d10aacbc_4a886ed6",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 192,
"author": {
"id": 8313
},
"writtenOn": "2023-02-09T14:59:46Z",
"side": 1,
"message": "Is this part of this spec?",
"range": {
"startLine": 192,
"startChar": 60,
"endLine": 192,
"endChar": 74
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "b7e6b7cd_d1d8d49f",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 192,
"author": {
"id": 24824
},
"writtenOn": "2023-02-10T14:04:48Z",
"side": 1,
"message": "Sorry, I took a subset of definitions from the BFD support spec for compatibility with it:\n\nhttps://specs.openstack.org/openstack/neutron-specs/specs/xena/bfd_support.html\n\nBut I missed editing this part of the description - thanks for spotting it.\n\nI\u0027ll change this part.",
"parentUuid": "d10aacbc_4a886ed6",
"range": {
"startLine": 192,
"startChar": 60,
"endLine": 192,
"endChar": 74
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "f0cd214f_30c6400e",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 215,
"author": {
"id": 13686
},
"writtenOn": "2023-02-16T14:21:46Z",
"side": 1,
"message": "This should be a list",
"range": {
"startLine": 215,
"startChar": 26,
"endLine": 215,
"endChar": 27
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": false,
"key": {
"uuid": "9a990e07_785826f2",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 215,
"author": {
"id": 13686
},
"writtenOn": "2023-02-17T07:28:34Z",
"side": 1,
"message": "ah, that is embedded in \u0027type:fixed_ips\u0027, never mind me :)",
"parentUuid": "f0cd214f_30c6400e",
"range": {
"startLine": 215,
"startChar": 26,
"endLine": 215,
"endChar": 27
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "e50d8af9_56d5a91c",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 234,
"author": {
"id": 15554
},
"writtenOn": "2023-02-21T15:12:26Z",
"side": 1,
"message": "If it\u0027s router level, then why don\u0027t we have it as a router attribute? If it\u0027s in the gw_info dict, then we can have multiple contradictory values.",
"range": {
"startLine": 234,
"startChar": 35,
"endLine": 234,
"endChar": 47
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "54d0763a_d4fce1ee",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 234,
"author": {
"id": 24824
},
"writtenOn": "2023-02-22T14:13:16Z",
"side": 1,
"message": "I was going after how it\u0027s done with `enable_snat` (which is not ideal, considering it\u0027s a router-level attribute too in reality and it cannot be set on a per-gateway basis).\n\nhttps://github.com/openstack/neutron/blob/24152f2019784fe684bb7b439b78e7265c6ffa08/neutron/db/l3_gwmode_db.py#L35-L37\n\nBut it could be modeled as an extra attribute similar to those which would make the neutron-lib change look slightly differently:\n\nhttps://github.com/openstack/neutron/blob/24152f2019784fe684bb7b439b78e7265c6ffa08/neutron/db/models/l3_attrs.py#L18-L42\n\nI think enable_snat was originally stored at the router level because of the assumption of a single gateway. However, semantically it\u0027s a per-gateway thing. Enabling SNAT on a per-gateway basis has it\u0027s own challenges with asymmetric routing but that\u0027s separate to it being a per-gateway attribute.\n\nWith the ECMP and BFD policies I thought of the same approach as there isn\u0027t a separate table for the \"gateway attachment\" entity which could store this. The `routerports` table is an interesting candidate for this if we wanted to do it at the per-gateway level.\n\nTo sum up, so far I planned for it to be at the router level to be consistent with `enable_snat` in terms of the implementation. But semantically, the granularity of ECMP and BFD options could be extended to the gateway level so they fit into the external_gateway_info.\n\nA compromise could be to keep the new options at the router level while allowing for mixed scenarios to be implemented using extra routes with per-route BFD or manually entered ECMP routes. After all, the whole point of this feature is to make it easy to enable the ECMP case with BFD and mixed options are edge cases.\n\nI can alter the spec to how what you suggest.",
"parentUuid": "e50d8af9_56d5a91c",
"range": {
"startLine": 234,
"startChar": 35,
"endLine": 234,
"endChar": 47
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": false,
"key": {
"uuid": "1ca2a382_eba820b7",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 234,
"author": {
"id": 15554
},
"writtenOn": "2023-02-28T13:19:15Z",
"side": 1,
"message": "I see your point to keep the enable_default_route_* values in the external_gw_info. I would not suggest to change it. Thanks for the explanation.",
"parentUuid": "54d0763a_d4fce1ee",
"range": {
"startLine": 234,
"startChar": 35,
"endLine": 234,
"endChar": 47
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "ce71496b_c1666b96",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 237,
"author": {
"id": 15554
},
"writtenOn": "2023-02-21T15:12:26Z",
"side": 1,
"message": "The same question here.",
"range": {
"startLine": 237,
"startChar": 34,
"endLine": 237,
"endChar": 46
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "76470ad7_063af2c0",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 237,
"author": {
"id": 24824
},
"writtenOn": "2023-02-22T14:13:16Z",
"side": 1,
"message": "Answered above.",
"parentUuid": "ce71496b_c1666b96",
"range": {
"startLine": 237,
"startChar": 34,
"endLine": 237,
"endChar": 46
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": false,
"key": {
"uuid": "844c2889_c7a43768",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 237,
"author": {
"id": 15554
},
"writtenOn": "2023-02-28T13:19:15Z",
"side": 1,
"message": "Done",
"parentUuid": "76470ad7_063af2c0",
"range": {
"startLine": 237,
"startChar": 34,
"endLine": 237,
"endChar": 46
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "ac964aee_093d09fe",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 248,
"author": {
"id": 24824
},
"writtenOn": "2023-01-25T08:24:11Z",
"side": 1,
"message": "Note that there is a bug related to default routes not being added to OVN NB if a segment_id of a subnet is not set to `None`:\n\nhttps://bugs.launchpad.net/neutron/+bug/2003842\n\nThis bug needs to be fixed to properly support the multiple gateways on a multi-segment network case but it affects Neutron as it is even without this feature.",
"range": {
"startLine": 248,
"startChar": 14,
"endLine": 248,
"endChar": 40
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "3d2e3115_907474f6",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 248,
"author": {
"id": 24824
},
"writtenOn": "2023-02-02T19:19:54Z",
"side": 1,
"message": "Discussed that further with Rodolfo\n\nhttps://meetings.opendev.org/irclogs/%23openstack-neutron/%23openstack-neutron.2023-01-27.log.html#t2023-01-27T14:30:42\n\nand the case where a gateway is created on a multi-segment network will not be supported.\n\nHowever, having gateways on different single-segment networks raises a different question: subnets on those networks may potentially overlap unless they have subnets allocated from the same subnet pool (i.e. they are in the same address scope).\n\nOverlapping subnets lead to a situation where a next hop of a default route is reachable via directly connected routes added for either of the gateways and can inadvertently create a black hole (on a different segment that next-hop IP might not be a router or may not be assigned but we\u0027d still get a logical flow for it). BFD would limit the impact of that to a degree. We could also get into a situation where next hops themselves would match in which case there would be a conflict during a route addition (while routes have a matching 0.0.0.0/0 destination and next-hop they have a different address scope/VRF).\n\nI am going to explore how to guard an operator against that.",
"parentUuid": "ac964aee_093d09fe",
"range": {
"startLine": 248,
"startChar": 14,
"endLine": 248,
"endChar": 40
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "95dda7de_447f503e",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 248,
"author": {
"id": 15554
},
"writtenOn": "2023-02-21T15:12:26Z",
"side": 1,
"message": "One option is to disallow overlapping subnets by mandating the use of an address scope. However it\u0027s already very limited how much overlap we allow on the same router:\n\nhttps://opendev.org/openstack/neutron/src/commit/8455edda46b4a465e2f184b59ad31476ce79c6c4/neutron/db/l3_db.py#L572-L587",
"parentUuid": "3d2e3115_907474f6",
"range": {
"startLine": 248,
"startChar": 14,
"endLine": 248,
"endChar": 40
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "0dfa14cc_a4753aea",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 248,
"author": {
"id": 24824
},
"writtenOn": "2023-02-22T14:13:16Z",
"side": 1,
"message": "In the WIP patches I have this:\n\nhttps://review.opendev.org/c/openstack/neutron/+/873593/16/neutron/db/l3_extra_gws_db.py#170\n\nSo there is a way to do it without mandating address scopes just by checking overlapping ranges. I am reusing some of the previously written code but the key difference here is that if multiple ports are attached to the same network (causing the overlap) then it\u0027s ok. If the overlap is there on subnets of different networks then it\u0027s definitely a problem.",
"parentUuid": "95dda7de_447f503e",
"range": {
"startLine": 248,
"startChar": 14,
"endLine": 248,
"endChar": 40
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "4cd1bb64_79fd5d0d",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 248,
"author": {
"id": 16688
},
"writtenOn": "2023-03-09T15:06:41Z",
"side": 1,
"message": "Please make clear in this section that we don\u0027t support OVN router multisegment support.\n\nAbout the GW subnets, make that clear too here, stating that overlapping subnets cannot be configured as GWs of the same router.",
"parentUuid": "0dfa14cc_a4753aea",
"range": {
"startLine": 248,
"startChar": 14,
"endLine": 248,
"endChar": 40
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "8fd1d763_02c75396",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 271,
"author": {
"id": 15554
},
"writtenOn": "2023-02-21T15:12:26Z",
"side": 1,
"message": "Maybe forgot to modify? But as I understand the comment in L255, this all still maye in flight.",
"range": {
"startLine": 270,
"startChar": 59,
"endLine": 271,
"endChar": 69
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "9435ccaa_238a83b1",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 271,
"author": {
"id": 24824
},
"writtenOn": "2023-02-22T14:13:16Z",
"side": 1,
"message": "Yes, thanks for spotting it!",
"parentUuid": "8fd1d763_02c75396",
"range": {
"startLine": 270,
"startChar": 59,
"endLine": 271,
"endChar": 69
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "6f417302_e02cb989",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 300,
"author": {
"id": 15554
},
"writtenOn": "2023-02-21T15:12:26Z",
"side": 1,
"message": "Just to see if I understand the scope: This spec does not include advertising the neutron subnets availability over multiple external gateways. Unless someone manually configures that, traffic destined to the cloud will not use ECMP and because of ecmp_symmetric_reply its response will not either. So we will use ECMP only for traffic originating from the cloud. Do I get it right?",
"range": {
"startLine": 300,
"startChar": 2,
"endLine": 300,
"endChar": 22
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "edf03f5a_df31a0a7",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 300,
"author": {
"id": 24824
},
"writtenOn": "2023-02-22T14:13:16Z",
"side": 1,
"message": "Yes, that option is just for making sure that replies go the same route as the requests by the means of utilizing conntrack.\n\nIn order for us to properly advertise things we need to make the BGP service plugin work with OVN and also make it aware of multiple external gateways.\n\nWe tried to keep the scope of this limited and be a building block for the future work in that direction.",
"parentUuid": "6f417302_e02cb989",
"range": {
"startLine": 300,
"startChar": 2,
"endLine": 300,
"endChar": 22
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": false,
"key": {
"uuid": "8d15ba8b_72473a35",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 300,
"author": {
"id": 15554
},
"writtenOn": "2023-02-28T13:19:15Z",
"side": 1,
"message": "Makes sense to me.",
"parentUuid": "edf03f5a_df31a0a7",
"range": {
"startLine": 300,
"startChar": 2,
"endLine": 300,
"endChar": 22
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "23739657_cb257ff6",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 310,
"author": {
"id": 8313
},
"writtenOn": "2023-02-09T15:03:46Z",
"side": 1,
"message": "You mentioned a status field, but that is only for the db record, am I understand well? How the user can check that on the API?",
"range": {
"startLine": 306,
"startChar": 0,
"endLine": 310,
"endChar": 70
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "12ea247b_9cc56859",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 310,
"author": {
"id": 24824
},
"writtenOn": "2023-02-10T14:04:48Z",
"side": 1,
"message": "I think we\u0027ll need an API for this that goes with this spec to have that visibility:\n\nhttps://specs.openstack.org/openstack/neutron-specs/specs/xena/bfd_support.html",
"parentUuid": "23739657_cb257ff6",
"range": {
"startLine": 306,
"startChar": 0,
"endLine": 310,
"endChar": 70
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "beec59e9_0beb32d1",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 310,
"author": {
"id": 15554
},
"writtenOn": "2023-02-21T15:12:26Z",
"side": 1,
"message": "I think we need some kind of visibility into the BFD session status, mostly for network debugging reasons. In the first step I could imagine not having that in the API, but the accessing it maybe some admin-only, ovn-specific way. As long as it\u0027s documented, that could work.",
"parentUuid": "12ea247b_9cc56859",
"range": {
"startLine": 306,
"startChar": 0,
"endLine": 310,
"endChar": 70
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "e4aabb75_1a909220",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 310,
"author": {
"id": 24824
},
"writtenOn": "2023-02-22T14:13:16Z",
"side": 1,
"message": "I agree that not having it exposed completely is a bit challenging for the operators.\n\nAlbeit they can look at the OVN NB records to see some of the state in OVN:\n\nhttps://github.com/ovn-org/ovn/blob/b027731ca445c9f2d841fcab7f791e70ee19a2ac/ovn-nb.ovsschema#L449-L458\nhttps://github.com/ovn-org/ovn/blob/main/ovn-nb.ovsschema#L612-L635",
"parentUuid": "beec59e9_0beb32d1",
"range": {
"startLine": 306,
"startChar": 0,
"endLine": 310,
"endChar": 70
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "9236a520_f9e72703",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 319,
"author": {
"id": 16688
},
"writtenOn": "2023-03-09T15:06:41Z",
"side": 1,
"message": "Sorry, can you describe better this issue? When that happens?",
"range": {
"startLine": 319,
"startChar": 2,
"endLine": 319,
"endChar": 39
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "eb631529_e61003e8",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 319,
"author": {
"id": 13686
},
"writtenOn": "2023-03-09T17:37:55Z",
"side": 1,
"message": "Let\u0027s assume a network with one router with `--enable-snat` set and a single gateway port/default route, in that network there is an instance that is located on a hypervisor which is not any of the active chassis for the LRP.\n\nWhen that instance without a FIP, originates traffic to an endpoint outside the cloud, its traffic will be tunneled to the current active GW. On the active GW the packet will be SNAT\u0027ed and committed too conntrack.\n\nThis state in conntrack is required for the return traffic to work.\n\nWhen introducing multiple gateway ports and multiple default routes, we may have a situation where the return traffic comes to a different chassis, which does not have the conntrack state and as a consequence will drop the packet on the floor.\n\nThe immediate path forward for this is to document or forcefully not allow the use of `--enable-snat` together with this feature.\n\nPossible future (out of scope for this spec) solutions could be:\n* Shard the port used for egress SNATted traffic across participating gateways, move the unSNAT operation to the chassis hosting the instance, and make the chassis receiving the traffic tunnel it to the correct chassis based on the port sharding information. This requires work in OVN.\n* Allocate an external IP per hypervisor and distribute the shared SNAT operation. This would be extremely wasteful wrt. IP space and is not desirable.\n* Perform some sort of synchronization of conntrack state between participating gateways. This approach can have scale implications and potential timing/race condition issues.",
"parentUuid": "9236a520_f9e72703",
"range": {
"startLine": 319,
"startChar": 2,
"endLine": 319,
"endChar": 39
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "637ee55d_079f4de8",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 354,
"author": {
"id": 16688
},
"writtenOn": "2023-03-09T15:06:41Z",
"side": 1,
"message": "So will this feature be limited to HA and non-DVR routers?",
"range": {
"startLine": 354,
"startChar": 0,
"endLine": 354,
"endChar": 47
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "3615ba54_b04ab58c",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 354,
"author": {
"id": 13686
},
"writtenOn": "2023-03-09T17:03:08Z",
"side": 1,
"message": "I think this is mentioned in the spec mostly for reference to possible future improvement of the feature.\n\nIn order for OpenStack Neutron OVN to make use of it, we would need to change how the router topology is laid out in OVN. Specifically we would need to use Gateway router as opposed to Logical Routers with Distributed Gateway Ports as we do today.\n\nRefer to the `chassis` option in the `Logical_Router` table for more detail [0].\n\n0: https://manpages.ubuntu.com/manpages/kinetic/man5/ovn-nb.5.html#logical_router%20table",
"parentUuid": "637ee55d_079f4de8",
"range": {
"startLine": 354,
"startChar": 0,
"endLine": 354,
"endChar": 47
},
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "cbeb5ee2_0255c76e",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 358,
"author": {
"id": 8313
},
"writtenOn": "2023-02-09T15:03:46Z",
"side": 1,
"message": "Just for formality could you please add fields with assignee(s), work items, some words about testing and documentation?",
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
},
{
"unresolved": true,
"key": {
"uuid": "bc9e5af4_01f4f533",
"filename": "specs/2023.1/active-active-l3-gateway-with-multihoming.rst",
"patchSetId": 2
},
"lineNbr": 358,
"author": {
"id": 24824
},
"writtenOn": "2023-02-10T14:04:48Z",
"side": 1,
"message": "Ack, will do.",
"parentUuid": "cbeb5ee2_0255c76e",
"revId": "8ce21d40eda0f8392fb6d4cd5068298e16f3b7ca",
"serverId": "4a232e18-c5a9-48ee-94c0-e04e7cca6543"
}
]
}