)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"dcc28fa0_13bc8867","updated":"2022-12-21 12:38:41.000000000","message":"Some nits and missing details. But the feature and the spec look good!","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"98dfc124d3ad9faac32f373ac6a45f5e27bb1d0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d3793c4f_57e1dcd9","updated":"2022-12-26 17:04:20.000000000","message":"recheck","commit_id":"073880e9822b589297b3c111b4f400ef586537bd"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"00e5a62841727f709f67642365a03d166ea8354b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"89b08379_3e21a04e","updated":"2022-12-26 17:51:28.000000000","message":"recheck\n\nThe error \u0027docs: 378 E failed with /bin/rm (resolves to /bin/rm) is not allowed, use allowlist_externals to allow it [tox/session/cmd/run/single.py:54]\u0027 does not seem to be related...\n","commit_id":"2c491dd063d9f81ba72b1c53c32d1c1fe274b0d6"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"8d5229252b8b21740dbc2e80ec2e93440db5736c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0af2bf0f_f3fb9302","in_reply_to":"89b08379_3e21a04e","updated":"2023-01-03 11:00:58.000000000","message":"No, this error is not related to this patch. Let me send a patch to fix this project for tox4","commit_id":"2c491dd063d9f81ba72b1c53c32d1c1fe274b0d6"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b59c8f6fe7b3fbed09a9d165a3ecef91f3a80f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ba6e66cf_8724a766","updated":"2023-01-10 15:22:45.000000000","message":"I think functionally the spec looks good, most of my comments are just text nits.","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"be879275ac597799d7ab45a3a7be4bcbc086980a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8fb6cf9c_17c3656a","updated":"2023-01-16 09:11:24.000000000","message":"I think you need to rebase on top of https://review.opendev.org/c/openstack/neutron-specs/+/869858","commit_id":"dfd04d9a42079fdc13065ef34af5c25b1e53499d"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"268e66a9a5825393bcccb956e344dd8795a776ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"6eb7ea2f_1dd2c76b","updated":"2023-01-11 12:48:36.000000000","message":"Thanks for the feedback 😊","commit_id":"dfd04d9a42079fdc13065ef34af5c25b1e53499d"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94fab442d0e986c664b3c3a90dcdd4ac56278548","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f7651985_e5fe9119","updated":"2023-01-11 17:07:04.000000000","message":"This py38 problem should have been fixed with latest tox, let me push a change to make it py3.","commit_id":"dfd04d9a42079fdc13065ef34af5c25b1e53499d"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"5b5b022ea10f7f9878f906a67ba569f62bf8f3ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a0deacca_60a2f4d8","updated":"2023-01-11 18:04:34.000000000","message":"https://review.opendev.org/c/openstack/neutron-specs/+/869858","commit_id":"dfd04d9a42079fdc13065ef34af5c25b1e53499d"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"27915d456a5eb1c933a262120d2d15287f557a70","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"da49a2bf_084fd527","in_reply_to":"f7651985_e5fe9119","updated":"2023-01-11 17:30:28.000000000","message":"Thanks, I had already locally changed my tox.ini file to run the pep8 tests with \u0027envlist \u003d docs,py3\u0027","commit_id":"dfd04d9a42079fdc13065ef34af5c25b1e53499d"}],"specs/2023.1/ovn-ipv6-dvr.rst":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":11,"context_line":"RFE: https://bugs.launchpad.net/neutron/+bug/1998609"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This RFE intends to implement distributed routing support for IPv6 only or"},{"line_number":14,"context_line":"dual-stack usage scenarios. Distributed routing is already a reality for IPv4"},{"line_number":15,"context_line":"addresses and the benefits of implementing DVR for IPv6 are the same as for"},{"line_number":16,"context_line":"IPv4."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"67863efb_e72b97f8","line":15,"range":{"start_line":14,"start_character":73,"end_line":15,"end_character":9},"updated":"2022-12-21 12:38:41.000000000","message":"For IPv4 FIP addresses. We are DNATing FIP addresses, not SNATing fixed IP addresses.\n\nBut this spec, if I\u0027m not wrong, is proposing the DVR SNATing of IPv6 addresses (something expected because we don\u0027t have FIP for IPv6).\n\nEdit: actually you are mentioning IPv4 FIP in later comments.","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"RFE: https://bugs.launchpad.net/neutron/+bug/1998609"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This RFE intends to implement distributed routing support for IPv6 only or"},{"line_number":14,"context_line":"dual-stack usage scenarios. Distributed routing is already a reality for IPv4"},{"line_number":15,"context_line":"addresses and the benefits of implementing DVR for IPv6 are the same as for"},{"line_number":16,"context_line":"IPv4."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":1,"id":"ead7c15a_645c61e1","line":15,"range":{"start_line":14,"start_character":73,"end_line":15,"end_character":9},"in_reply_to":"67863efb_e72b97f8","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":26,"context_line":"This issue affects both End Users and Deployers:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* For End Users - (Network performance) Since traffic is centralized, all"},{"line_number":29,"context_line":"  network applications need to go through the gw router port chassis resident"},{"line_number":30,"context_line":"  \u003c-\u003e compute node (via tunneling - e.g. geneve) before reaching the endpoint."},{"line_number":31,"context_line":"  In case the gw router port is on the same chassis as the VM compute node,"},{"line_number":32,"context_line":"  this is not applicable."}],"source_content_type":"text/x-rst","patch_set":1,"id":"2ce6eada_1ba00fa3","line":29,"range":{"start_line":29,"start_character":46,"end_line":29,"end_character":48},"updated":"2022-12-21 12:38:41.000000000","message":"nit: in the specs, let\u0027s use the full word \"gateway\"","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"This issue affects both End Users and Deployers:"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"* For End Users - (Network performance) Since traffic is centralized, all"},{"line_number":29,"context_line":"  network applications need to go through the gw router port chassis resident"},{"line_number":30,"context_line":"  \u003c-\u003e compute node (via tunneling - e.g. geneve) before reaching the endpoint."},{"line_number":31,"context_line":"  In case the gw router port is on the same chassis as the VM compute node,"},{"line_number":32,"context_line":"  this is not applicable."}],"source_content_type":"text/x-rst","patch_set":1,"id":"34025368_117996bd","line":29,"range":{"start_line":29,"start_character":46,"end_line":29,"end_character":48},"in_reply_to":"2ce6eada_1ba00fa3","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":33,"context_line":"* For Deployers - (Additional settings for dynamic routing) As the IPv6 GUA"},{"line_number":34,"context_line":"  subnet is associated behind the router\u0027s gw port, it is necessary to"},{"line_number":35,"context_line":"  advertise this subnet dynamically to the border network element (which"},{"line_number":36,"context_line":"  routes the external/internal traffic of IPv6 prefixes). It could be "},{"line_number":37,"context_line":"  statically, but it is not feasible when we talk about large scale "},{"line_number":38,"context_line":"  deployments. So, we need to enable additional settings like BGP with the"},{"line_number":39,"context_line":"  neutron-dynamic-routing, for example."}],"source_content_type":"text/x-rst","patch_set":1,"id":"5218c353_883df644","line":36,"range":{"start_line":36,"start_character":69,"end_line":36,"end_character":70},"updated":"2022-12-21 12:38:41.000000000","message":"CI is failing because of these \"red blocks\". You need to remove the trailing spaces","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":33,"context_line":"* For Deployers - (Additional settings for dynamic routing) As the IPv6 GUA"},{"line_number":34,"context_line":"  subnet is associated behind the router\u0027s gw port, it is necessary to"},{"line_number":35,"context_line":"  advertise this subnet dynamically to the border network element (which"},{"line_number":36,"context_line":"  routes the external/internal traffic of IPv6 prefixes). It could be "},{"line_number":37,"context_line":"  statically, but it is not feasible when we talk about large scale "},{"line_number":38,"context_line":"  deployments. So, we need to enable additional settings like BGP with the"},{"line_number":39,"context_line":"  neutron-dynamic-routing, for example."}],"source_content_type":"text/x-rst","patch_set":1,"id":"9514a502_8a14eb70","line":36,"range":{"start_line":36,"start_character":69,"end_line":36,"end_character":70},"in_reply_to":"5218c353_883df644","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":55,"context_line":"  VTEP Gateway to initiate and terminate the VXLANs tunnels and use BGP EVPN"},{"line_number":56,"context_line":"  to learn and advertise the MAC Addresses from the Compute Node\u0027s provider"},{"line_number":57,"context_line":"  network."},{"line_number":58,"context_line":"  - E/W PATH:"},{"line_number":59,"context_line":"    Compute Node VM \u003c-\u003e OVS br-int \u003c-\u003e br-provider \u003c-\u003e external-bridge-mapping"},{"line_number":60,"context_line":"    \u003c-\u003e FRR \u003c-\u003e BGP EVPN type2 \u003c-\u003e E/W spine/leaf \u003c-\u003e [reverse flow to VM]"},{"line_number":61,"context_line":"  - N/S PATH:"},{"line_number":62,"context_line":"    Compute Node VM \u003c-\u003e OVS br-int \u003c-\u003e br-provider \u003c-\u003e external-bridge-mapping"},{"line_number":63,"context_line":"    \u003c-\u003e FRR \u003c-\u003e BGP EVPN type2 \u003c-\u003e N/S Border Leaf \u003c-\u003e external network"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Proposed Change"},{"line_number":66,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"689dbc70_0209a737","line":63,"range":{"start_line":58,"start_character":0,"end_line":63,"end_character":71},"updated":"2022-12-21 12:38:41.000000000","message":"super nit: maybe better to print that as code\n\n  .. code:\n\n    - E/W PATH:\n      Compute Node VM \u003c-\u003e OVS br-int \u003c-\u003e br-provider \u003c-\u003e external-bridge-mapping\n      \u003c-\u003e FRR \u003c-\u003e BGP EVPN type2 \u003c-\u003e E/W spine/leaf \u003c-\u003e [reverse flow to VM]\n    - N/S PATH:\n      Compute Node VM \u003c-\u003e OVS br-int \u003c-\u003e br-provider \u003c-\u003e external-bridge-mapping\n      \u003c-\u003e FRR \u003c-\u003e BGP EVPN type2 \u003c-\u003e N/S Border Leaf \u003c-\u003e external network","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  VTEP Gateway to initiate and terminate the VXLANs tunnels and use BGP EVPN"},{"line_number":56,"context_line":"  to learn and advertise the MAC Addresses from the Compute Node\u0027s provider"},{"line_number":57,"context_line":"  network."},{"line_number":58,"context_line":"  - E/W PATH:"},{"line_number":59,"context_line":"    Compute Node VM \u003c-\u003e OVS br-int \u003c-\u003e br-provider \u003c-\u003e external-bridge-mapping"},{"line_number":60,"context_line":"    \u003c-\u003e FRR \u003c-\u003e BGP EVPN type2 \u003c-\u003e E/W spine/leaf \u003c-\u003e [reverse flow to VM]"},{"line_number":61,"context_line":"  - N/S PATH:"},{"line_number":62,"context_line":"    Compute Node VM \u003c-\u003e OVS br-int \u003c-\u003e br-provider \u003c-\u003e external-bridge-mapping"},{"line_number":63,"context_line":"    \u003c-\u003e FRR \u003c-\u003e BGP EVPN type2 \u003c-\u003e N/S Border Leaf \u003c-\u003e external network"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Proposed Change"},{"line_number":66,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7565c414_e900208b","line":63,"range":{"start_line":58,"start_character":0,"end_line":63,"end_character":71},"in_reply_to":"689dbc70_0209a737","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":66,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"To solve the problem described above, the proposal is to introduce a new NAT"},{"line_number":69,"context_line":"rule for the IPv6 GUA addresses that are allocated to VMs (ovn/ovs understands"},{"line_number":70,"context_line":"IPv6 GUA like a FIP). Even though it is a global address, the ovn-controller"},{"line_number":71,"context_line":"running on the chassis needs this rule to start responding Neighbor"},{"line_number":72,"context_line":"Advertisements for IPv6 just like it does with GARPs for IPv4 FIP\u0027s."}],"source_content_type":"text/x-rst","patch_set":1,"id":"7033e715_22695a24","line":69,"range":{"start_line":69,"start_character":59,"end_line":69,"end_character":66},"updated":"2022-12-21 12:38:41.000000000","message":"In capital letters OVN/OVS (and I would mention OVN only, OVS is just the backend service)","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":66,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"To solve the problem described above, the proposal is to introduce a new NAT"},{"line_number":69,"context_line":"rule for the IPv6 GUA addresses that are allocated to VMs (ovn/ovs understands"},{"line_number":70,"context_line":"IPv6 GUA like a FIP). Even though it is a global address, the ovn-controller"},{"line_number":71,"context_line":"running on the chassis needs this rule to start responding Neighbor"},{"line_number":72,"context_line":"Advertisements for IPv6 just like it does with GARPs for IPv4 FIP\u0027s."}],"source_content_type":"text/x-rst","patch_set":1,"id":"18f3866d_8f006bb5","line":69,"range":{"start_line":69,"start_character":59,"end_line":69,"end_character":66},"in_reply_to":"7033e715_22695a24","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":74,"context_line":"To enable the IPv6 DVR NAT rule management, a new config option should be "},{"line_number":75,"context_line":"enabled via [ovn] section in ml2_conf.ini file."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* ``enable_distributed_ipv6 \u003d True``"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"This option is similar to a configuration option to enable DVR for FIP\u0027s:"},{"line_number":80,"context_line":"enable_distributed_floating_ip."}],"source_content_type":"text/x-rst","patch_set":1,"id":"2d343be8_effc0742","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":36},"updated":"2022-12-21 12:38:41.000000000","message":"print as code","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":74,"context_line":"To enable the IPv6 DVR NAT rule management, a new config option should be "},{"line_number":75,"context_line":"enabled via [ovn] section in ml2_conf.ini file."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* ``enable_distributed_ipv6 \u003d True``"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"This option is similar to a configuration option to enable DVR for FIP\u0027s:"},{"line_number":80,"context_line":"enable_distributed_floating_ip."}],"source_content_type":"text/x-rst","patch_set":1,"id":"e4259f26_5b55eadf","line":77,"range":{"start_line":77,"start_character":0,"end_line":77,"end_character":36},"in_reply_to":"2d343be8_effc0742","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":80,"context_line":"enable_distributed_floating_ip."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"OVN/OVS Impact"},{"line_number":83,"context_line":"-------------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  The OVN support the distributed routing for IPv6 GUA with the same idea of"},{"line_number":86,"context_line":"  the IPv4 case [1]. For the ovn controller, the external_ip and local_ip can"}],"source_content_type":"text/x-rst","patch_set":1,"id":"6186b1f5_2c1f66fa","line":83,"range":{"start_line":83,"start_character":0,"end_line":83,"end_character":19},"updated":"2022-12-21 12:38:41.000000000","message":"this should have the same lenght as the title (check the CI warnings)\n\n  OVN/OVS Impact\n  --------------","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":80,"context_line":"enable_distributed_floating_ip."},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"OVN/OVS Impact"},{"line_number":83,"context_line":"-------------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  The OVN support the distributed routing for IPv6 GUA with the same idea of"},{"line_number":86,"context_line":"  the IPv4 case [1]. For the ovn controller, the external_ip and local_ip can"}],"source_content_type":"text/x-rst","patch_set":1,"id":"33aa47c3_7a307975","line":83,"range":{"start_line":83,"start_character":0,"end_line":83,"end_character":19},"in_reply_to":"6186b1f5_2c1f66fa","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":82,"context_line":"OVN/OVS Impact"},{"line_number":83,"context_line":"-------------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  The OVN support the distributed routing for IPv6 GUA with the same idea of"},{"line_number":86,"context_line":"  the IPv4 case [1]. For the ovn controller, the external_ip and local_ip can"},{"line_number":87,"context_line":"  contain IPv4 or IPv6 addresses."},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"7b422c44_56f6e5bd","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":2},"updated":"2022-12-21 12:38:41.000000000","message":"Why this indentation? There is no need","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":82,"context_line":"OVN/OVS Impact"},{"line_number":83,"context_line":"-------------------"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  The OVN support the distributed routing for IPv6 GUA with the same idea of"},{"line_number":86,"context_line":"  the IPv4 case [1]. For the ovn controller, the external_ip and local_ip can"},{"line_number":87,"context_line":"  contain IPv4 or IPv6 addresses."},{"line_number":88,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"c79d163a_0ad78321","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":2},"in_reply_to":"7b422c44_56f6e5bd","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":89,"context_line":"  Therefore, the contract rule for creating the IPv6 NAT rule remains the same"},{"line_number":90,"context_line":"  used for FIP Ipv4 addresses:"},{"line_number":91,"context_line":"  NAT rule fields (OVN):"},{"line_number":92,"context_line":"    type        : dnat_and_snat"},{"line_number":93,"context_line":"    logical_ip  : The same VM IPv6 GUA address"},{"line_number":94,"context_line":"    external_ip : The same VM IPv6 GUA address"},{"line_number":95,"context_line":"    logical_port: VM logical port"},{"line_number":96,"context_line":"    external_ids: Managed by Neutron"},{"line_number":97,"context_line":"    external_mac: VM MAC address"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"  The external_ip and logical_ip used in the NAT rule are the same (e.g. VM"},{"line_number":100,"context_line":"  GUA). With this entry, the ovn should add logical flows to respond to IPv6"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c2f8dbd0_8dcfc31a","line":97,"range":{"start_line":92,"start_character":4,"end_line":97,"end_character":32},"updated":"2022-12-21 12:38:41.000000000","message":"same here: print that as code","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":89,"context_line":"  Therefore, the contract rule for creating the IPv6 NAT rule remains the same"},{"line_number":90,"context_line":"  used for FIP Ipv4 addresses:"},{"line_number":91,"context_line":"  NAT rule fields (OVN):"},{"line_number":92,"context_line":"    type        : dnat_and_snat"},{"line_number":93,"context_line":"    logical_ip  : The same VM IPv6 GUA address"},{"line_number":94,"context_line":"    external_ip : The same VM IPv6 GUA address"},{"line_number":95,"context_line":"    logical_port: VM logical port"},{"line_number":96,"context_line":"    external_ids: Managed by Neutron"},{"line_number":97,"context_line":"    external_mac: VM MAC address"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"  The external_ip and logical_ip used in the NAT rule are the same (e.g. VM"},{"line_number":100,"context_line":"  GUA). With this entry, the ovn should add logical flows to respond to IPv6"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5791dd90_ea148e77","line":97,"range":{"start_line":92,"start_character":4,"end_line":97,"end_character":32},"in_reply_to":"c2f8dbd0_8dcfc31a","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":105,"context_line":"  the GUA address to itself is only used to create the flows in the chassis"},{"line_number":106,"context_line":"  where the VM resides. Without this rule, the compute node does not know how"},{"line_number":107,"context_line":"  to respond to that IPv6 GUA and centralize the communication through the"},{"line_number":108,"context_line":"  router\u0027s GW port (via geveve tunnel if the router resides on another host)."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Neutron Impact"},{"line_number":111,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4d1be58e_2fc733e0","line":108,"range":{"start_line":108,"start_character":24,"end_line":108,"end_character":30},"updated":"2022-12-21 12:38:41.000000000","message":"Geneve","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":105,"context_line":"  the GUA address to itself is only used to create the flows in the chassis"},{"line_number":106,"context_line":"  where the VM resides. Without this rule, the compute node does not know how"},{"line_number":107,"context_line":"  to respond to that IPv6 GUA and centralize the communication through the"},{"line_number":108,"context_line":"  router\u0027s GW port (via geveve tunnel if the router resides on another host)."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Neutron Impact"},{"line_number":111,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"7bf78c08_65dc94d9","line":108,"range":{"start_line":108,"start_character":24,"end_line":108,"end_character":30},"in_reply_to":"4d1be58e_2fc733e0","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":108,"context_line":"  router\u0027s GW port (via geveve tunnel if the router resides on another host)."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Neutron Impact"},{"line_number":111,"context_line":"---------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  The NAT rules for FIP Ipv4 are managed by Neutron floating ips database."},{"line_number":114,"context_line":"  In the case of the NAT rule for IPv6 GUA addresses, we need to create a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"0c61fade_fd538894","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":1},"updated":"2022-12-21 12:38:41.000000000","message":"same here: the lenght","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":108,"context_line":"  router\u0027s GW port (via geveve tunnel if the router resides on another host)."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Neutron Impact"},{"line_number":111,"context_line":"---------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  The NAT rules for FIP Ipv4 are managed by Neutron floating ips database."},{"line_number":114,"context_line":"  In the case of the NAT rule for IPv6 GUA addresses, we need to create a"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b747d3e7_165f5154","line":111,"range":{"start_line":111,"start_character":0,"end_line":111,"end_character":1},"in_reply_to":"0c61fade_fd538894","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":110,"context_line":"Neutron Impact"},{"line_number":111,"context_line":"---------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  The NAT rules for FIP Ipv4 are managed by Neutron floating ips database."},{"line_number":114,"context_line":"  In the case of the NAT rule for IPv6 GUA addresses, we need to create a"},{"line_number":115,"context_line":"  \"fake translation rule\" for the address associated with a VM. IPv6 addresses"},{"line_number":116,"context_line":"  are allocated to VMs during port creation and managed via ipv6_address_mode"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3caecf2f_2175589a","line":113,"range":{"start_line":113,"start_character":24,"end_line":113,"end_character":28},"updated":"2022-12-21 12:38:41.000000000","message":"IPv4","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":110,"context_line":"Neutron Impact"},{"line_number":111,"context_line":"---------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  The NAT rules for FIP Ipv4 are managed by Neutron floating ips database."},{"line_number":114,"context_line":"  In the case of the NAT rule for IPv6 GUA addresses, we need to create a"},{"line_number":115,"context_line":"  \"fake translation rule\" for the address associated with a VM. IPv6 addresses"},{"line_number":116,"context_line":"  are allocated to VMs during port creation and managed via ipv6_address_mode"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e7a6db54_8d2bbbb5","line":113,"range":{"start_line":113,"start_character":0,"end_line":113,"end_character":2},"updated":"2022-12-21 12:38:41.000000000","message":"No indentation needed.","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Neutron Impact"},{"line_number":111,"context_line":"---------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  The NAT rules for FIP Ipv4 are managed by Neutron floating ips database."},{"line_number":114,"context_line":"  In the case of the NAT rule for IPv6 GUA addresses, we need to create a"},{"line_number":115,"context_line":"  \"fake translation rule\" for the address associated with a VM. IPv6 addresses"},{"line_number":116,"context_line":"  are allocated to VMs during port creation and managed via ipv6_address_mode"}],"source_content_type":"text/x-rst","patch_set":1,"id":"685c2ec0_5267bb79","line":113,"range":{"start_line":113,"start_character":24,"end_line":113,"end_character":28},"in_reply_to":"3caecf2f_2175589a","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Neutron Impact"},{"line_number":111,"context_line":"---------------------"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"  The NAT rules for FIP Ipv4 are managed by Neutron floating ips database."},{"line_number":114,"context_line":"  In the case of the NAT rule for IPv6 GUA addresses, we need to create a"},{"line_number":115,"context_line":"  \"fake translation rule\" for the address associated with a VM. IPv6 addresses"},{"line_number":116,"context_line":"  are allocated to VMs during port creation and managed via ipv6_address_mode"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f9e439f5_1c853fb6","line":113,"range":{"start_line":113,"start_character":0,"end_line":113,"end_character":2},"in_reply_to":"e7a6db54_8d2bbbb5","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":127,"context_line":"  associated with the port of the VM."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  IPv6 GUA NAT rule creation:"},{"line_number":130,"context_line":"  {"},{"line_number":131,"context_line":"    args \u003d {\u0027type\u0027: \u0027dnat_and_snat\u0027,"},{"line_number":132,"context_line":"            \u0027logical_ip\u0027: IPv6_ADDRESS,"},{"line_number":133,"context_line":"            \u0027external_ip\u0027: IPv6_ADDRESS,"},{"line_number":134,"context_line":"            \u0027logical_port\u0027: PORT_ID,"},{"line_number":135,"context_line":"            \u0027external_ids\u0027: EXTERNAL_IDS,"},{"line_number":136,"context_line":"            \u0027external_mac\u0027: EXTERNAL_MAC}"},{"line_number":137,"context_line":"    _nb_idl.add_nat_rule_in_lrouter(gw_lrouter_name, args)"},{"line_number":138,"context_line":"  }"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"  IPv6 GUA NAT rule deletion:"},{"line_number":141,"context_line":"  {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"10229e4f_820c4c6d","line":138,"range":{"start_line":130,"start_character":2,"end_line":138,"end_character":3},"updated":"2022-12-21 12:38:41.000000000","message":"print as code","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":127,"context_line":"  associated with the port of the VM."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  IPv6 GUA NAT rule creation:"},{"line_number":130,"context_line":"  {"},{"line_number":131,"context_line":"    args \u003d {\u0027type\u0027: \u0027dnat_and_snat\u0027,"},{"line_number":132,"context_line":"            \u0027logical_ip\u0027: IPv6_ADDRESS,"},{"line_number":133,"context_line":"            \u0027external_ip\u0027: IPv6_ADDRESS,"},{"line_number":134,"context_line":"            \u0027logical_port\u0027: PORT_ID,"},{"line_number":135,"context_line":"            \u0027external_ids\u0027: EXTERNAL_IDS,"},{"line_number":136,"context_line":"            \u0027external_mac\u0027: EXTERNAL_MAC}"},{"line_number":137,"context_line":"    _nb_idl.add_nat_rule_in_lrouter(gw_lrouter_name, args)"},{"line_number":138,"context_line":"  }"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"  IPv6 GUA NAT rule deletion:"},{"line_number":141,"context_line":"  {"}],"source_content_type":"text/x-rst","patch_set":1,"id":"cb24d243_1e5f195c","line":138,"range":{"start_line":130,"start_character":2,"end_line":138,"end_character":3},"in_reply_to":"10229e4f_820c4c6d","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":143,"context_line":"            \u0027logical_ip\u0027: IPv6_ADDRESS,"},{"line_number":144,"context_line":"            \u0027external_ip\u0027: IPv6_ADDRESS}"},{"line_number":145,"context_line":"    _nb_idl.delete_nat_rule_in_lrouter(gw_lrouter_name, args)"},{"line_number":146,"context_line":"  }"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"* external_ids"},{"line_number":149,"context_line":"  For IPV4 FIP NAT rules, the external_ids has important fields such as the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"4677cc2f_a93ea985","line":146,"range":{"start_line":146,"start_character":2,"end_line":146,"end_character":3},"updated":"2022-12-21 12:38:41.000000000","message":"1) When/where those rules are added/removed?\n2) If the port is detached from the router (the subnet), we should remove these rules too.","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":143,"context_line":"            \u0027logical_ip\u0027: IPv6_ADDRESS,"},{"line_number":144,"context_line":"            \u0027external_ip\u0027: IPv6_ADDRESS}"},{"line_number":145,"context_line":"    _nb_idl.delete_nat_rule_in_lrouter(gw_lrouter_name, args)"},{"line_number":146,"context_line":"  }"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"* external_ids"},{"line_number":149,"context_line":"  For IPV4 FIP NAT rules, the external_ids has important fields such as the"}],"source_content_type":"text/x-rst","patch_set":1,"id":"2cdd5bd1_44c977bc","line":146,"range":{"start_line":146,"start_character":2,"end_line":146,"end_character":3},"in_reply_to":"4677cc2f_a93ea985","updated":"2022-12-26 16:38:36.000000000","message":"Please see the answers in the \u0027Neutron Impact\u0027 and \u0027IPv6 DVR events\u0027. Let me know if you have any questions.","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":151,"context_line":"  relevant. So, we can set common port information in that field to keep"},{"line_number":152,"context_line":"  tracking."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"  { ext_ids \u003d OVN_PORT_EXT_ID_KEY, OVN_DEVID_EXT_ID_KEY,"},{"line_number":155,"context_line":"              OVN_NETWORK_NAME_EXT_ID_KEY, OVN_ROUTER_NAME_EXT_ID_KEY}"},{"line_number":156,"context_line":"  }"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"FIP Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"b1f91ddd_379eb430","line":155,"range":{"start_line":154,"start_character":0,"end_line":155,"end_character":70},"updated":"2022-12-21 12:38:41.000000000","message":"Where is this information stored? What OVN register?","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  relevant. So, we can set common port information in that field to keep"},{"line_number":152,"context_line":"  tracking."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"  { ext_ids \u003d OVN_PORT_EXT_ID_KEY, OVN_DEVID_EXT_ID_KEY,"},{"line_number":155,"context_line":"              OVN_NETWORK_NAME_EXT_ID_KEY, OVN_ROUTER_NAME_EXT_ID_KEY}"},{"line_number":156,"context_line":"  }"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"FIP Impact"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d2ad0457_17c8435e","line":155,"range":{"start_line":154,"start_character":0,"end_line":155,"end_character":70},"in_reply_to":"b1f91ddd_379eb430","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6fe6eabd7005d934cf817db32cf053d1861d64ad","unresolved":true,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"* Roberto Acosta \u003crbartzen@gmail.com\u003e"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"References"},{"line_number":190,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":".. [1] https://mail.openvswitch.org/pipermail/ovs-discuss/2022-December/052126.html"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3481c8ef_47adcd2a","line":189,"range":{"start_line":189,"start_character":0,"end_line":189,"end_character":1},"updated":"2022-12-21 12:38:41.000000000","message":"You also need to add the testing and documentation section.","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"5dfa3436abf32be48b2866471b452caf02b4f70b","unresolved":false,"context_lines":[{"line_number":186,"context_line":""},{"line_number":187,"context_line":"* Roberto Acosta \u003crbartzen@gmail.com\u003e"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"References"},{"line_number":190,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":".. [1] https://mail.openvswitch.org/pipermail/ovs-discuss/2022-December/052126.html"}],"source_content_type":"text/x-rst","patch_set":1,"id":"5ebef88c_940af778","line":189,"range":{"start_line":189,"start_character":0,"end_line":189,"end_character":1},"in_reply_to":"3481c8ef_47adcd2a","updated":"2022-12-26 16:38:36.000000000","message":"Done","commit_id":"bb25ea336f9eb1ba5c3970b2e502dced32094da3"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5dd8f251ebe304e14b48255beee79bc0e9913ec8","unresolved":true,"context_lines":[{"line_number":84,"context_line":"  * ``enable_distributed_ipv6 \u003d True``"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"This option is similar to a configuration option to enable DVR for FIP\u0027s:"},{"line_number":87,"context_line":"enable_distributed_floating_ip."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"OVN Impact"},{"line_number":90,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"00345365_4f3b1604","line":87,"updated":"2023-01-04 14:02:49.000000000","message":"do we need additional option for that? Can\u0027t we use existing one for both IPv4 and IPv6 traffic?","commit_id":"0dfd2b131ad39b46535715347996355ecade3039"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"7c15d540e69b9c7d8bf7dd2b436632f790df152e","unresolved":true,"context_lines":[{"line_number":84,"context_line":"  * ``enable_distributed_ipv6 \u003d True``"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"This option is similar to a configuration option to enable DVR for FIP\u0027s:"},{"line_number":87,"context_line":"enable_distributed_floating_ip."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"OVN Impact"},{"line_number":90,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"351c2e1f_b16862aa","line":87,"in_reply_to":"00345365_4f3b1604","updated":"2023-01-05 14:40:43.000000000","message":"I believe it would be non-trivial (therefore needing docs) if \"floating_ip\" referred to ipv6 addresses too. Therefore enable_distributed_ipv6 seems more self-explanatory to me.\n\nIn addition if we re-used enable_distributed_floating_ip then in some releases this will mean distributed for v4 but not for v6, but in later releases distributed for both. Which would change behavior during an upgrade.","commit_id":"0dfd2b131ad39b46535715347996355ecade3039"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"fc499d800b54783df4b0daec6457625ca7ccb3a0","unresolved":false,"context_lines":[{"line_number":84,"context_line":"  * ``enable_distributed_ipv6 \u003d True``"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"This option is similar to a configuration option to enable DVR for FIP\u0027s:"},{"line_number":87,"context_line":"enable_distributed_floating_ip."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"OVN Impact"},{"line_number":90,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fe64f6d0_4e4e1652","line":87,"in_reply_to":"00345365_4f3b1604","updated":"2023-01-05 12:29:09.000000000","message":"The way to configure one feature like this is similar to distributed floating IP. However, the dnat NAT rule for FIP IPv4 needs to be used integrated with the router the snat rule because local_ip for IPv4 needs to be masquerade. For the IPv6 world, the local_ip is a global address (don\u0027t masquerade) and the IPv6 traffic should be globally routed between the VM IPv6 GUA and the external network. For the VM\u0027s IPv6 to be accessible from the outside world, it needs to be advertised in the border equipment\u0027s routing tables (usually via BGP), and this task can be done in different ways, e.g. with FRR or using n-d-r. The IPv4 traffic does not work the same and does not need an additional backend to control the DVR.","commit_id":"0dfd2b131ad39b46535715347996355ecade3039"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"268e66a9a5825393bcccb956e344dd8795a776ad","unresolved":false,"context_lines":[{"line_number":84,"context_line":"  * ``enable_distributed_ipv6 \u003d True``"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"This option is similar to a configuration option to enable DVR for FIP\u0027s:"},{"line_number":87,"context_line":"enable_distributed_floating_ip."},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"OVN Impact"},{"line_number":90,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"d33596d1_a8e39bbd","line":87,"in_reply_to":"351c2e1f_b16862aa","updated":"2023-01-11 12:48:36.000000000","message":"I agree with this question, thanks for the comments.","commit_id":"0dfd2b131ad39b46535715347996355ecade3039"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"5dd8f251ebe304e14b48255beee79bc0e9913ec8","unresolved":true,"context_lines":[{"line_number":231,"context_line":"OVN_FIP_EXT_ID_KEY fieldset."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"The change in neutron OVN NAT lookup for FIP\u0027s may require changes in"},{"line_number":234,"context_line":"existing tests for floating ips."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"DB Impact"},{"line_number":237,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"0f750d1d_fa25c275","line":234,"updated":"2023-01-04 14:02:49.000000000","message":"I\u0027m not sure if You are aware but for IPv4 FIPs we have merged spec https://review.opendev.org/c/openstack/neutron-specs/+/846987 which proposed to add \"distributed\" attribute to FIP and let users control each FIP separatelly if it should be distributed or not.\nDo You think we can do something similar somehow for IPv6 addresses?","commit_id":"0dfd2b131ad39b46535715347996355ecade3039"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"fc499d800b54783df4b0daec6457625ca7ccb3a0","unresolved":false,"context_lines":[{"line_number":231,"context_line":"OVN_FIP_EXT_ID_KEY fieldset."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"The change in neutron OVN NAT lookup for FIP\u0027s may require changes in"},{"line_number":234,"context_line":"existing tests for floating ips."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"DB Impact"},{"line_number":237,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7c82348b_81270efb","line":234,"in_reply_to":"0f750d1d_fa25c275","updated":"2023-01-05 12:29:09.000000000","message":"I think it\u0027s possible. I understand this requirement to make it configurable for IPv4 but talking about IPv6, we need a backend to propagate global IPv6 subnet addresses. When we use n-d-r, it propagates the subnets via bgp to the border informing that the next-hop is the IP/MAC of the router\u0027s external port and this causes the traffic to be always centralized on it (with no option to choose centralized or distributed). If we use an approach like the one I\u0027m proposing without n-d-r and leaving the BGP management config to the IP fabric, possibly with FRR. It will be possible to choose between centralized or distributed, yes, just add the NAT rule or not. The FRR that runs on the chassis can forward the traffic directly to the spine/leaf/border (if you have the rule NAT on the chassis - using FRR), or forward the traffic to the chassis where the router\u0027s external port resides (via Geneve) so that this chassis forwards to the IP fabric/external world. The important point here is that this solution is not compatible with n-d-r, as n-d-r publishes the path to the border centrally.\n\nThe proposed version implemented for testing is based on a global config to enable the DVR for IPv6, to make it configurable, it would first be necessary to evaluate where to put this information since the idea here is different from the FIP as there is no specific table for IPv6. Today, the IPv6 information used for the NAT rule is linked to the VM\u0027s subnet fixed_ips. What would be the recommendation? do I keep the current implementation or do we discuss where to store this information? NOTE: I still don\u0027t understand how this will be managed in the case of FIP IPv4, from what I\u0027ve seen it\u0027s not implemented yet for reference.","commit_id":"0dfd2b131ad39b46535715347996355ecade3039"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b59c8f6fe7b3fbed09a9d165a3ecef91f3a80f2","unresolved":true,"context_lines":[{"line_number":43,"context_line":"to external networks (with the help of routing protocols configured on each"},{"line_number":44,"context_line":"compute node, e.g. using FRR), outgoing traffic may work directly to the"},{"line_number":45,"context_line":"border. However, the incoming traffic will always be forwarded to the"},{"line_number":46,"context_line":"router\u0027s gw port, as he is the only one who knows how to respond the"},{"line_number":47,"context_line":"Neighbor Solicitation to the IPv6 GUA address of the VM."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"DVR Use case:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"f71c2567_4e90bb35","line":46,"range":{"start_line":46,"start_character":21,"end_line":46,"end_character":43},"updated":"2023-01-10 15:22:45.000000000","message":"nit: s/it is the only one that\n\nsince a router isn\u0027t male/female :)","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"268e66a9a5825393bcccb956e344dd8795a776ad","unresolved":false,"context_lines":[{"line_number":43,"context_line":"to external networks (with the help of routing protocols configured on each"},{"line_number":44,"context_line":"compute node, e.g. using FRR), outgoing traffic may work directly to the"},{"line_number":45,"context_line":"border. However, the incoming traffic will always be forwarded to the"},{"line_number":46,"context_line":"router\u0027s gw port, as he is the only one who knows how to respond the"},{"line_number":47,"context_line":"Neighbor Solicitation to the IPv6 GUA address of the VM."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"DVR Use case:"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9dc521d1_a2c44a0b","line":46,"range":{"start_line":46,"start_character":21,"end_line":46,"end_character":43},"in_reply_to":"f71c2567_4e90bb35","updated":"2023-01-11 12:48:36.000000000","message":"thanks for that ;)","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b59c8f6fe7b3fbed09a9d165a3ecef91f3a80f2","unresolved":true,"context_lines":[{"line_number":53,"context_line":"  Underlay, for example, the network to be reached is for the Underlay Network"},{"line_number":54,"context_line":"  be able to stretch an L2 domain(VLAN) via VXLAN as dataplane and BGP EVPN as"},{"line_number":55,"context_line":"  Control Plane. In this solution, the Leaf switches would need to work as HW"},{"line_number":56,"context_line":"  VTEP Gateway to initiate and terminate the VXLANs tunnels and use BGP EVPN"},{"line_number":57,"context_line":"  to learn and advertise the MAC Addresses from the Compute Node\u0027s provider"},{"line_number":58,"context_line":"  network."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"e45c1a6a_10404b0b","line":56,"range":{"start_line":56,"start_character":7,"end_line":56,"end_character":14},"updated":"2023-01-10 15:22:45.000000000","message":"nit: s/Gateways","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"268e66a9a5825393bcccb956e344dd8795a776ad","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  Underlay, for example, the network to be reached is for the Underlay Network"},{"line_number":54,"context_line":"  be able to stretch an L2 domain(VLAN) via VXLAN as dataplane and BGP EVPN as"},{"line_number":55,"context_line":"  Control Plane. In this solution, the Leaf switches would need to work as HW"},{"line_number":56,"context_line":"  VTEP Gateway to initiate and terminate the VXLANs tunnels and use BGP EVPN"},{"line_number":57,"context_line":"  to learn and advertise the MAC Addresses from the Compute Node\u0027s provider"},{"line_number":58,"context_line":"  network."},{"line_number":59,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"dae4ca02_287e103a","line":56,"range":{"start_line":56,"start_character":7,"end_line":56,"end_character":14},"in_reply_to":"e45c1a6a_10404b0b","updated":"2023-01-11 12:48:36.000000000","message":"Done","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b59c8f6fe7b3fbed09a9d165a3ecef91f3a80f2","unresolved":true,"context_lines":[{"line_number":73,"context_line":"To solve the problem described above, the proposal is to introduce a new NAT"},{"line_number":74,"context_line":"rule for the IPv6 GUA addresses that are allocated to VMs (OVN understands"},{"line_number":75,"context_line":"IPv6 GUA like a FIP). Even though it is a global address, the ovn-controller"},{"line_number":76,"context_line":"running on the chassis needs this rule to start responding Neighbor"},{"line_number":77,"context_line":"Advertisements for IPv6 just like it does with GARPs for IPv4 FIP\u0027s."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"To enable the IPv6 DVR NAT rule management, a new config option should be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d8575e1a_db77dfcb","line":76,"range":{"start_line":76,"start_character":48,"end_line":76,"end_character":58},"updated":"2023-01-10 15:22:45.000000000","message":"nit: s/responding to","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"268e66a9a5825393bcccb956e344dd8795a776ad","unresolved":false,"context_lines":[{"line_number":73,"context_line":"To solve the problem described above, the proposal is to introduce a new NAT"},{"line_number":74,"context_line":"rule for the IPv6 GUA addresses that are allocated to VMs (OVN understands"},{"line_number":75,"context_line":"IPv6 GUA like a FIP). Even though it is a global address, the ovn-controller"},{"line_number":76,"context_line":"running on the chassis needs this rule to start responding Neighbor"},{"line_number":77,"context_line":"Advertisements for IPv6 just like it does with GARPs for IPv4 FIP\u0027s."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"To enable the IPv6 DVR NAT rule management, a new config option should be"}],"source_content_type":"text/x-rst","patch_set":5,"id":"6b6fc892_d19afa79","line":76,"range":{"start_line":76,"start_character":48,"end_line":76,"end_character":58},"in_reply_to":"d8575e1a_db77dfcb","updated":"2023-01-11 12:48:36.000000000","message":"Done","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b59c8f6fe7b3fbed09a9d165a3ecef91f3a80f2","unresolved":true,"context_lines":[{"line_number":89,"context_line":"OVN Impact"},{"line_number":90,"context_line":"----------"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"The OVN support the distributed routing for IPv6 GUA with the same idea of"},{"line_number":93,"context_line":"the IPv4 case [1]_. For the ovn-controller, the external_ip and local_ip can"},{"line_number":94,"context_line":"contain IPv4 or IPv6 addresses."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"03903ea2_1439dca3","line":92,"updated":"2023-01-10 15:22:45.000000000","message":"nit: the beginning of this sentence is a little hard to understand, maybe:\n\n\"OVN support of distributed routing for an IPv6 GUA follows the same idea of the IPv4 case...\"","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"268e66a9a5825393bcccb956e344dd8795a776ad","unresolved":false,"context_lines":[{"line_number":89,"context_line":"OVN Impact"},{"line_number":90,"context_line":"----------"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"The OVN support the distributed routing for IPv6 GUA with the same idea of"},{"line_number":93,"context_line":"the IPv4 case [1]_. For the ovn-controller, the external_ip and local_ip can"},{"line_number":94,"context_line":"contain IPv4 or IPv6 addresses."},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"f5ba8d8f_b57a1b01","line":92,"in_reply_to":"03903ea2_1439dca3","updated":"2023-01-11 12:48:36.000000000","message":"Done","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b59c8f6fe7b3fbed09a9d165a3ecef91f3a80f2","unresolved":true,"context_lines":[{"line_number":94,"context_line":"contain IPv4 or IPv6 addresses."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Therefore, the contract rule for creating the IPv6 NAT rule remains the same"},{"line_number":97,"context_line":"used for FIP Ipv4 addresses:"},{"line_number":98,"context_line":"NAT rule fields (OVN):"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"42e54434_96236c87","line":97,"range":{"start_line":97,"start_character":13,"end_line":97,"end_character":17},"updated":"2023-01-10 15:22:45.000000000","message":"nit: s/IPv4\n\nAnd two lines in a row ending in \u0027:\u0027 is hard for me to parse, so maybe a slight re-wording would help.","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"268e66a9a5825393bcccb956e344dd8795a776ad","unresolved":false,"context_lines":[{"line_number":94,"context_line":"contain IPv4 or IPv6 addresses."},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"Therefore, the contract rule for creating the IPv6 NAT rule remains the same"},{"line_number":97,"context_line":"used for FIP Ipv4 addresses:"},{"line_number":98,"context_line":"NAT rule fields (OVN):"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d9d88a11_fed48da8","line":97,"range":{"start_line":97,"start_character":13,"end_line":97,"end_character":17},"in_reply_to":"42e54434_96236c87","updated":"2023-01-11 12:48:36.000000000","message":"Done","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b59c8f6fe7b3fbed09a9d165a3ecef91f3a80f2","unresolved":true,"context_lines":[{"line_number":161,"context_line":"    _nb_idl.delete_nat_rule_in_lrouter(gw_lrouter_name, args)"},{"line_number":162,"context_line":"  }"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"For IPV4 FIP NAT rules, the external_ids has important fields such as the"},{"line_number":165,"context_line":"fip_key, for example, but for IPv6 the external_ids information is not"},{"line_number":166,"context_line":"relevant. So, we can set common port information in that field to keep"},{"line_number":167,"context_line":"tracking. The neutron dnat_and_snat rule is composed with the following"}],"source_content_type":"text/x-rst","patch_set":5,"id":"1c7e0804_cb19e1bd","line":164,"range":{"start_line":164,"start_character":4,"end_line":164,"end_character":8},"updated":"2023-01-10 15:22:45.000000000","message":"nit: s/IPv4","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"268e66a9a5825393bcccb956e344dd8795a776ad","unresolved":false,"context_lines":[{"line_number":161,"context_line":"    _nb_idl.delete_nat_rule_in_lrouter(gw_lrouter_name, args)"},{"line_number":162,"context_line":"  }"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"For IPV4 FIP NAT rules, the external_ids has important fields such as the"},{"line_number":165,"context_line":"fip_key, for example, but for IPv6 the external_ids information is not"},{"line_number":166,"context_line":"relevant. So, we can set common port information in that field to keep"},{"line_number":167,"context_line":"tracking. The neutron dnat_and_snat rule is composed with the following"}],"source_content_type":"text/x-rst","patch_set":5,"id":"ea17e077_08b7bb85","line":164,"range":{"start_line":164,"start_character":4,"end_line":164,"end_character":8},"in_reply_to":"1c7e0804_cb19e1bd","updated":"2023-01-11 12:48:36.000000000","message":"Done","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b59c8f6fe7b3fbed09a9d165a3ecef91f3a80f2","unresolved":true,"context_lines":[{"line_number":202,"context_line":"IPv6 DVR events"},{"line_number":203,"context_line":"---------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"The neutron will configure the NAT rule for the IPv6 distributed routing"},{"line_number":206,"context_line":"reacting to the following events:"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"* VM port creation: with this event, the neutron create a NAT rule for the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"41ace151_5e410833","line":205,"range":{"start_line":205,"start_character":0,"end_line":205,"end_character":11},"updated":"2023-01-10 15:22:45.000000000","message":"s/Neutron (remove The)","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"268e66a9a5825393bcccb956e344dd8795a776ad","unresolved":false,"context_lines":[{"line_number":202,"context_line":"IPv6 DVR events"},{"line_number":203,"context_line":"---------------"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"The neutron will configure the NAT rule for the IPv6 distributed routing"},{"line_number":206,"context_line":"reacting to the following events:"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"* VM port creation: with this event, the neutron create a NAT rule for the"}],"source_content_type":"text/x-rst","patch_set":5,"id":"e805ba6c_9cc92281","line":205,"range":{"start_line":205,"start_character":0,"end_line":205,"end_character":11},"in_reply_to":"41ace151_5e410833","updated":"2023-01-11 12:48:36.000000000","message":"Done","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b59c8f6fe7b3fbed09a9d165a3ecef91f3a80f2","unresolved":true,"context_lines":[{"line_number":205,"context_line":"The neutron will configure the NAT rule for the IPv6 distributed routing"},{"line_number":206,"context_line":"reacting to the following events:"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"* VM port creation: with this event, the neutron create a NAT rule for the"},{"line_number":209,"context_line":"  IPv6 GUA address allocated to the VM. If the VM does not have a router"},{"line_number":210,"context_line":"  associated with the VM subnet, do not create the IPv6 NAT rule."},{"line_number":211,"context_line":"* VM port deletion: same behavior as the VM port creation, this event is"}],"source_content_type":"text/x-rst","patch_set":5,"id":"e320604f_73ab31cb","line":208,"range":{"start_line":208,"start_character":37,"end_line":208,"end_character":48},"updated":"2023-01-10 15:22:45.000000000","message":"s/neutron","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"268e66a9a5825393bcccb956e344dd8795a776ad","unresolved":false,"context_lines":[{"line_number":205,"context_line":"The neutron will configure the NAT rule for the IPv6 distributed routing"},{"line_number":206,"context_line":"reacting to the following events:"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"* VM port creation: with this event, the neutron create a NAT rule for the"},{"line_number":209,"context_line":"  IPv6 GUA address allocated to the VM. If the VM does not have a router"},{"line_number":210,"context_line":"  associated with the VM subnet, do not create the IPv6 NAT rule."},{"line_number":211,"context_line":"* VM port deletion: same behavior as the VM port creation, this event is"}],"source_content_type":"text/x-rst","patch_set":5,"id":"921b2068_a3880869","line":208,"range":{"start_line":208,"start_character":37,"end_line":208,"end_character":48},"in_reply_to":"e320604f_73ab31cb","updated":"2023-01-11 12:48:36.000000000","message":"Done","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8b59c8f6fe7b3fbed09a9d165a3ecef91f3a80f2","unresolved":true,"context_lines":[{"line_number":209,"context_line":"  IPv6 GUA address allocated to the VM. If the VM does not have a router"},{"line_number":210,"context_line":"  associated with the VM subnet, do not create the IPv6 NAT rule."},{"line_number":211,"context_line":"* VM port deletion: same behavior as the VM port creation, this event is"},{"line_number":212,"context_line":"  received and neutron delete the NAT rule attached to the router. If the"},{"line_number":213,"context_line":"  VM does not have a router associated with the VM subnet, do not delete"},{"line_number":214,"context_line":"  the IPv6 NAT rule."},{"line_number":215,"context_line":"* Router port creation: if this event is received, it is necessary to check"}],"source_content_type":"text/x-rst","patch_set":5,"id":"2929e3f3_11349427","line":212,"range":{"start_line":212,"start_character":23,"end_line":212,"end_character":29},"updated":"2023-01-10 15:22:45.000000000","message":"s/deletes or \u0027must delete\u0027 ?","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":35432,"name":"Roberto Acosta","display_name":"rbartzen","email":"rbartzen@gmail.com","username":"rbartzen"},"change_message_id":"268e66a9a5825393bcccb956e344dd8795a776ad","unresolved":false,"context_lines":[{"line_number":209,"context_line":"  IPv6 GUA address allocated to the VM. If the VM does not have a router"},{"line_number":210,"context_line":"  associated with the VM subnet, do not create the IPv6 NAT rule."},{"line_number":211,"context_line":"* VM port deletion: same behavior as the VM port creation, this event is"},{"line_number":212,"context_line":"  received and neutron delete the NAT rule attached to the router. If the"},{"line_number":213,"context_line":"  VM does not have a router associated with the VM subnet, do not delete"},{"line_number":214,"context_line":"  the IPv6 NAT rule."},{"line_number":215,"context_line":"* Router port creation: if this event is received, it is necessary to check"}],"source_content_type":"text/x-rst","patch_set":5,"id":"18813cf0_3153093c","line":212,"range":{"start_line":212,"start_character":23,"end_line":212,"end_character":29},"in_reply_to":"2929e3f3_11349427","updated":"2023-01-11 12:48:36.000000000","message":"Done","commit_id":"22c5fd829373bea0e51c367826dcc63c05f41901"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"be879275ac597799d7ab45a3a7be4bcbc086980a","unresolved":true,"context_lines":[{"line_number":259,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"* Unit/functional tests."},{"line_number":262,"context_line":""},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"Documentation Impact"},{"line_number":265,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"b8304ddd_7547e85a","line":262,"updated":"2023-01-16 09:11:24.000000000","message":"Please check tempest as we already have tests for IPv4 DVR:\nhttps://opendev.org/openstack/neutron-tempest-plugin/src/branch/master/neutron_tempest_plugin/scenario/test_dvr.py","commit_id":"dfd04d9a42079fdc13065ef34af5c25b1e53499d"}]}
