)]}'
{"specs/ussuri/l3-router-support-ndp-proxy.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s"},{"line_number":15,"context_line":"ARP (Address Resolution Protocol) in functional, but The NDP work at L3. The"},{"line_number":16,"context_line":"NDP proxy [1]_ is also similar to ARP proxy [2]_. The NDP proxy be set at"},{"line_number":17,"context_line":"router\u0027s gateway commonly, then the router\u0027s gateway can response the NS from"},{"line_number":18,"context_line":"other nodes which direct connection the router, and the NS\u0027s destination"},{"line_number":19,"context_line":"address isn\u0027t locate in the gateway. The linux kernal already implement NDP"},{"line_number":20,"context_line":"proxy, and the linux can configure a specify address to proxy, With this"},{"line_number":21,"context_line":"character, We can implement some APIs in neutron, like below:"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_4e219e9f","line":19,"range":{"start_line":16,"start_character":50,"end_line":19,"end_character":36},"updated":"2020-06-07 20:09:02.000000000","message":"sorry, maybe it\u0027s only me but I don\u0027t understand this sentence. Can You maybe rephrase it?","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b2e59cab7eb2b2854de596ce6a18cd588f1ccf81","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s"},{"line_number":15,"context_line":"ARP (Address Resolution Protocol) in functional, but The NDP work at L3. The"},{"line_number":16,"context_line":"NDP proxy [1]_ is also similar to ARP proxy [2]_. The NDP proxy be set at"},{"line_number":17,"context_line":"router\u0027s gateway commonly, then the router\u0027s gateway can response the NS from"},{"line_number":18,"context_line":"other nodes which direct connection the router, and the NS\u0027s destination"},{"line_number":19,"context_line":"address isn\u0027t locate in the gateway. The linux kernal already implement NDP"},{"line_number":20,"context_line":"proxy, and the linux can configure a specify address to proxy, With this"},{"line_number":21,"context_line":"character, We can implement some APIs in neutron, like below:"},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_fd6a237f","line":19,"range":{"start_line":16,"start_character":50,"end_line":19,"end_character":36},"in_reply_to":"ff570b3c_4e219e9f","updated":"2020-06-08 02:16:41.000000000","message":"I am sorry for my poor english","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":18,"context_line":"other nodes which direct connection the router, and the NS\u0027s destination"},{"line_number":19,"context_line":"address isn\u0027t locate in the gateway. The linux kernal already implement NDP"},{"line_number":20,"context_line":"proxy, and the linux can configure a specify address to proxy, With this"},{"line_number":21,"context_line":"character, We can implement some APIs in neutron, like below:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"::"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_ce348ee1","line":21,"range":{"start_line":21,"start_character":41,"end_line":21,"end_character":48},"updated":"2020-06-07 20:09:02.000000000","message":"nit: IMO should be \"Neutron\"","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b2e59cab7eb2b2854de596ce6a18cd588f1ccf81","unresolved":false,"context_lines":[{"line_number":18,"context_line":"other nodes which direct connection the router, and the NS\u0027s destination"},{"line_number":19,"context_line":"address isn\u0027t locate in the gateway. The linux kernal already implement NDP"},{"line_number":20,"context_line":"proxy, and the linux can configure a specify address to proxy, With this"},{"line_number":21,"context_line":"character, We can implement some APIs in neutron, like below:"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"::"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_dd675fb7","line":21,"range":{"start_line":21,"start_character":41,"end_line":21,"end_character":48},"in_reply_to":"ff570b3c_ce348ee1","updated":"2020-06-08 02:16:41.000000000","message":"Done","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"::"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    openstack router add ndp proxy \u003crouter_id\u003e --address \u003cipv6_address\u003e"},{"line_number":26,"context_line":"    openstack router remove ndp proxy \u003crouter_id\u003e --address \u003cipv6_address\u003e"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The `ipv6_address` should be routed by the upsteam router. Bey these methods,"},{"line_number":29,"context_line":"users/tenants can advertise specify IPv6 addresses to external. It looks a little"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_4e56be08","line":26,"updated":"2020-06-07 20:09:02.000000000","message":"I think that such details should be moved to the proposed solution section","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b2e59cab7eb2b2854de596ce6a18cd588f1ccf81","unresolved":false,"context_lines":[{"line_number":23,"context_line":"::"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    openstack router add ndp proxy \u003crouter_id\u003e --address \u003cipv6_address\u003e"},{"line_number":26,"context_line":"    openstack router remove ndp proxy \u003crouter_id\u003e --address \u003cipv6_address\u003e"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The `ipv6_address` should be routed by the upsteam router. Bey these methods,"},{"line_number":29,"context_line":"users/tenants can advertise specify IPv6 addresses to external. It looks a little"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_1d0717cc","line":26,"in_reply_to":"ff570b3c_4e56be08","updated":"2020-06-08 02:16:41.000000000","message":"OK","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    openstack router add ndp proxy \u003crouter_id\u003e --address \u003cipv6_address\u003e"},{"line_number":26,"context_line":"    openstack router remove ndp proxy \u003crouter_id\u003e --address \u003cipv6_address\u003e"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The `ipv6_address` should be routed by the upsteam router. Bey these methods,"},{"line_number":29,"context_line":"users/tenants can advertise specify IPv6 addresses to external. It looks a little"},{"line_number":30,"context_line":"like IPv4\u0027s floating ip, but don\u0027t any NAT action."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_8e3f36b4","line":28,"range":{"start_line":28,"start_character":59,"end_line":28,"end_character":62},"updated":"2020-06-07 20:09:02.000000000","message":"\"by\"?","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b2e59cab7eb2b2854de596ce6a18cd588f1ccf81","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    openstack router add ndp proxy \u003crouter_id\u003e --address \u003cipv6_address\u003e"},{"line_number":26,"context_line":"    openstack router remove ndp proxy \u003crouter_id\u003e --address \u003cipv6_address\u003e"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"The `ipv6_address` should be routed by the upsteam router. Bey these methods,"},{"line_number":29,"context_line":"users/tenants can advertise specify IPv6 addresses to external. It looks a little"},{"line_number":30,"context_line":"like IPv4\u0027s floating ip, but don\u0027t any NAT action."},{"line_number":31,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_7d0c53ec","line":28,"range":{"start_line":28,"start_character":59,"end_line":28,"end_character":62},"in_reply_to":"ff570b3c_8e3f36b4","updated":"2020-06-08 02:16:41.000000000","message":"Done","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"Problem Description"},{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"As the ipv6 device more and more popularize, we should provide a simple method"},{"line_number":37,"context_line":"to make the ipv6 VMs more easily and flexiblly connect to external network."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* In some user cases, such as a web site which have some DB services, MQ"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_0e75e698","line":36,"range":{"start_line":36,"start_character":7,"end_line":36,"end_character":11},"updated":"2020-06-07 20:09:02.000000000","message":"IPv6 ?","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"Problem Description"},{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"As the ipv6 device more and more popularize, we should provide a simple method"},{"line_number":37,"context_line":"to make the ipv6 VMs more easily and flexiblly connect to external network."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* In some user cases, such as a web site which have some DB services, MQ"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_ce62ced8","line":36,"range":{"start_line":36,"start_character":12,"end_line":36,"end_character":18},"updated":"2020-06-07 20:09:02.000000000","message":"device? maybe protocol? or just \"IPv6\"?","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"As the ipv6 device more and more popularize, we should provide a simple method"},{"line_number":37,"context_line":"to make the ipv6 VMs more easily and flexiblly connect to external network."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"* In some user cases, such as a web site which have some DB services, MQ"},{"line_number":40,"context_line":"  services and portal services etc, and they work on IPv6 VMs with same subnet."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_ee799293","line":37,"range":{"start_line":37,"start_character":12,"end_line":37,"end_character":16},"updated":"2020-06-07 20:09:02.000000000","message":"same here","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Implement a service plugin named ``ndp_proxy`` to support the feature of this"},{"line_number":63,"context_line":"  spec description. Administrator can enable the feature by append the plugin"},{"line_number":64,"context_line":"  to ``service_plugins`` in neutron configuretion file."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Implement a API extension, In the extenstion we should defined a named"},{"line_number":67,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. The"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_ee87d260","line":64,"range":{"start_line":64,"start_character":36,"end_line":64,"end_character":49},"updated":"2020-06-07 20:09:02.000000000","message":"s","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Implement a service plugin named ``ndp_proxy`` to support the feature of this"},{"line_number":63,"context_line":"  spec description. Administrator can enable the feature by append the plugin"},{"line_number":64,"context_line":"  to ``service_plugins`` in neutron configuretion file."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Implement a API extension, In the extenstion we should defined a named"},{"line_number":67,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. The"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_8e961694","line":64,"range":{"start_line":64,"start_character":36,"end_line":64,"end_character":49},"updated":"2020-06-07 20:09:02.000000000","message":"s/configuration","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b2e59cab7eb2b2854de596ce6a18cd588f1ccf81","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"* Implement a service plugin named ``ndp_proxy`` to support the feature of this"},{"line_number":63,"context_line":"  spec description. Administrator can enable the feature by append the plugin"},{"line_number":64,"context_line":"  to ``service_plugins`` in neutron configuretion file."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Implement a API extension, In the extenstion we should defined a named"},{"line_number":67,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. The"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_5d2a2f2c","line":64,"range":{"start_line":64,"start_character":36,"end_line":64,"end_character":49},"in_reply_to":"ff570b3c_8e961694","updated":"2020-06-08 02:16:41.000000000","message":"Done","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Implement a API extension, In the extenstion we should defined a named"},{"line_number":67,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. The"},{"line_number":68,"context_line":"  extension should be support by ``service_plugins``."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* Implement a API extension to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":71,"context_line":"  ``router`` resource. If the parameter set as True,  the router\u0027s external"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_ae8dda7c","line":68,"range":{"start_line":68,"start_character":35,"end_line":68,"end_character":50},"updated":"2020-06-07 20:09:02.000000000","message":"service_plugin","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b2e59cab7eb2b2854de596ce6a18cd588f1ccf81","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Implement a API extension, In the extenstion we should defined a named"},{"line_number":67,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. The"},{"line_number":68,"context_line":"  extension should be support by ``service_plugins``."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* Implement a API extension to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":71,"context_line":"  ``router`` resource. If the parameter set as True,  the router\u0027s external"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_1d30b79e","line":68,"range":{"start_line":68,"start_character":35,"end_line":68,"end_character":50},"in_reply_to":"ff570b3c_ae8dda7c","updated":"2020-06-08 02:16:41.000000000","message":"Done","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  spec description. Administrator can enable the feature by append the plugin"},{"line_number":64,"context_line":"  to ``service_plugins`` in neutron configuretion file."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Implement a API extension, In the extenstion we should defined a named"},{"line_number":67,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. The"},{"line_number":68,"context_line":"  extension should be support by ``service_plugins``."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* Implement a API extension to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":71,"context_line":"  ``router`` resource. If the parameter set as True,  the router\u0027s external"},{"line_number":72,"context_line":"  gateway must have a IPv6 address, and the address must be allocated for a"},{"line_number":73,"context_line":"  Address Scope [5]_. And only when ``enable_ndp_proxy`` set to True can the"},{"line_number":74,"context_line":"  ndp proxy be created in the router. The extension should be support by"},{"line_number":75,"context_line":"  ``service_plugins``."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"In Agent SIde"},{"line_number":78,"context_line":"~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_eed51245","line":75,"range":{"start_line":66,"start_character":0,"end_line":75,"end_character":22},"updated":"2020-06-07 20:09:02.000000000","message":"can\u0027t those both things be in one API extensions?","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":72,"context_line":"  gateway must have a IPv6 address, and the address must be allocated for a"},{"line_number":73,"context_line":"  Address Scope [5]_. And only when ``enable_ndp_proxy`` set to True can the"},{"line_number":74,"context_line":"  ndp proxy be created in the router. The extension should be support by"},{"line_number":75,"context_line":"  ``service_plugins``."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"In Agent SIde"},{"line_number":78,"context_line":"~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_6ed8e27e","line":75,"range":{"start_line":75,"start_character":4,"end_line":75,"end_character":19},"updated":"2020-06-07 20:09:02.000000000","message":"service_plugin","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b2e59cab7eb2b2854de596ce6a18cd588f1ccf81","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  spec description. Administrator can enable the feature by append the plugin"},{"line_number":64,"context_line":"  to ``service_plugins`` in neutron configuretion file."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"* Implement a API extension, In the extenstion we should defined a named"},{"line_number":67,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. The"},{"line_number":68,"context_line":"  extension should be support by ``service_plugins``."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"* Implement a API extension to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":71,"context_line":"  ``router`` resource. If the parameter set as True,  the router\u0027s external"},{"line_number":72,"context_line":"  gateway must have a IPv6 address, and the address must be allocated for a"},{"line_number":73,"context_line":"  Address Scope [5]_. And only when ``enable_ndp_proxy`` set to True can the"},{"line_number":74,"context_line":"  ndp proxy be created in the router. The extension should be support by"},{"line_number":75,"context_line":"  ``service_plugins``."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"In Agent SIde"},{"line_number":78,"context_line":"~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_bd1eeb0a","line":75,"range":{"start_line":66,"start_character":0,"end_line":75,"end_character":22},"in_reply_to":"ff570b3c_eed51245","updated":"2020-06-08 02:16:41.000000000","message":"Done","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  ndp proxy be created in the router. The extension should be support by"},{"line_number":75,"context_line":"  ``service_plugins``."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"In Agent SIde"},{"line_number":78,"context_line":"~~~~~~~~~~~~~"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Implement a extension of ``neutron-l3-agent`` to set relational rules for ndp"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_2ed0aa50","line":77,"range":{"start_line":77,"start_character":9,"end_line":77,"end_character":13},"updated":"2020-06-07 20:09:02.000000000","message":"nit: s/SIde/Side","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b2e59cab7eb2b2854de596ce6a18cd588f1ccf81","unresolved":false,"context_lines":[{"line_number":74,"context_line":"  ndp proxy be created in the router. The extension should be support by"},{"line_number":75,"context_line":"  ``service_plugins``."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"In Agent SIde"},{"line_number":78,"context_line":"~~~~~~~~~~~~~"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"Implement a extension of ``neutron-l3-agent`` to set relational rules for ndp"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_5d118f04","line":77,"range":{"start_line":77,"start_character":9,"end_line":77,"end_character":13},"in_reply_to":"ff570b3c_2ed0aa50","updated":"2020-06-08 02:16:41.000000000","message":"Done","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Implement a extension of ``neutron-l3-agent`` to set relational rules for ndp"},{"line_number":81,"context_line":"proxy. The extension behavior like below:"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"* If the router\u0027s ``enable_ndp_proxy`` filed is true, the router\u0027s namepsace"},{"line_number":84,"context_line":"  should have a default iptables rule to drop all packets input from the"},{"line_number":85,"context_line":"  router\u0027s external gateway device. By this way, we can eliminate affection"},{"line_number":86,"context_line":"  of extra route and neighbor in upstream router."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_4e407e08","line":83,"range":{"start_line":83,"start_character":67,"end_line":83,"end_character":76},"updated":"2020-06-07 20:09:02.000000000","message":"s/namespace","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b2e59cab7eb2b2854de596ce6a18cd588f1ccf81","unresolved":false,"context_lines":[{"line_number":80,"context_line":"Implement a extension of ``neutron-l3-agent`` to set relational rules for ndp"},{"line_number":81,"context_line":"proxy. The extension behavior like below:"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"* If the router\u0027s ``enable_ndp_proxy`` filed is true, the router\u0027s namepsace"},{"line_number":84,"context_line":"  should have a default iptables rule to drop all packets input from the"},{"line_number":85,"context_line":"  router\u0027s external gateway device. By this way, we can eliminate affection"},{"line_number":86,"context_line":"  of extra route and neighbor in upstream router."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_ddfc7fb7","line":83,"range":{"start_line":83,"start_character":67,"end_line":83,"end_character":76},"in_reply_to":"ff570b3c_4e407e08","updated":"2020-06-08 02:16:41.000000000","message":"Done","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  of extra route and neighbor in upstream router."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":".. note:: If a router\u0027s enable_ndp_proxy set as True, the Prefix Delegation"},{"line_number":89,"context_line":"          [4]_ and BGP Dynamic Routing [3]_ solution will become no effect."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":92,"context_line":"  at the router\u0027s externl gateway device and set a iptables rule to permit the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_8e20d64b","line":89,"range":{"start_line":89,"start_character":53,"end_line":89,"end_character":64},"updated":"2020-06-07 20:09:02.000000000","message":"I\u0027m not english native speaker but is this correct? I would personally say \"will have no effect\"","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b2e59cab7eb2b2854de596ce6a18cd588f1ccf81","unresolved":false,"context_lines":[{"line_number":86,"context_line":"  of extra route and neighbor in upstream router."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":".. note:: If a router\u0027s enable_ndp_proxy set as True, the Prefix Delegation"},{"line_number":89,"context_line":"          [4]_ and BGP Dynamic Routing [3]_ solution will become no effect."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":92,"context_line":"  at the router\u0027s externl gateway device and set a iptables rule to permit the"}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_9df207e3","line":89,"range":{"start_line":89,"start_character":53,"end_line":89,"end_character":64},"in_reply_to":"ff570b3c_8e20d64b","updated":"2020-06-08 02:16:41.000000000","message":"Thanks Slawek\u0027s suggestion.","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e9dc0c30b022f233b74469147054bad8816bf22e","unresolved":false,"context_lines":[{"line_number":89,"context_line":"          [4]_ and BGP Dynamic Routing [3]_ solution will become no effect."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":92,"context_line":"  at the router\u0027s externl gateway device and set a iptables rule to permit the"},{"line_number":93,"context_line":"  relational packets through. The router only permit that the IPv6 addresses"},{"line_number":94,"context_line":"  wihich be added to proxy to communication with external network. This make"},{"line_number":95,"context_line":"  the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_4edcfe45","line":92,"range":{"start_line":92,"start_character":18,"end_line":92,"end_character":25},"updated":"2020-06-07 20:09:02.000000000","message":"external","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b2e59cab7eb2b2854de596ce6a18cd588f1ccf81","unresolved":false,"context_lines":[{"line_number":89,"context_line":"          [4]_ and BGP Dynamic Routing [3]_ solution will become no effect."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":92,"context_line":"  at the router\u0027s externl gateway device and set a iptables rule to permit the"},{"line_number":93,"context_line":"  relational packets through. The router only permit that the IPv6 addresses"},{"line_number":94,"context_line":"  wihich be added to proxy to communication with external network. This make"},{"line_number":95,"context_line":"  the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."}],"source_content_type":"text/x-rst","patch_set":9,"id":"ff570b3c_3d02dbbb","line":92,"range":{"start_line":92,"start_character":18,"end_line":92,"end_character":25},"in_reply_to":"ff570b3c_4edcfe45","updated":"2020-06-08 02:16:41.000000000","message":"Done","commit_id":"39f4bdfb782b82628b3d5f1f74c16a583ee77bd9"}],"specs/victoria/l3-router-support-ndp-proxy.rst":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"87ce4f547e94fbdd17c899a2f688ebb7b1a9322a","unresolved":false,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":"  In fip-* namespace::"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    ip -6 neigh add proxy 2001::1:8 dev fg-84920cf6-5e"},{"line_number":518,"context_line":"    ip route add 2001::1:8 via fe80::a0a7:c5ff:fe2c:bade dev fpr-ea902fe0-9"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"  In qrouter-* namespace::"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ff570b3c_7683decb","line":517,"updated":"2020-06-05 19:18:06.000000000","message":"I haven\u0027t reviewed this spec fully, but just had a question on this part.  Do we also need to send a Neighbour Advertisement? I know with IPv4 when we add a floating IP we typically will call arping, but there isn\u0027t an IPv6 equivalent of that utility from what I can see. But Michael Johnson has done some work in Octavia that can send proxy requests for both address families - see https://review.opendev.org/#/c/705317/40/octavia/amphorae/backends/utils/ip_advertisement.py\n\nI just wanted to make sure we didn\u0027t re-invent things when we get to implementing this.","commit_id":"adc20a9eabc5ce03261670841caeb7b413de0694"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"0fb04a5a066a98209038898aa48a300d46a327ee","unresolved":false,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":"  In fip-* namespace::"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    ip -6 neigh add proxy 2001::1:8 dev fg-84920cf6-5e"},{"line_number":518,"context_line":"    ip route add 2001::1:8 via fe80::a0a7:c5ff:fe2c:bade dev fpr-ea902fe0-9"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"  In qrouter-* namespace::"}],"source_content_type":"text/x-rst","patch_set":11,"id":"ff570b3c_390676cf","line":517,"in_reply_to":"ff570b3c_7683decb","updated":"2020-06-06 06:05:15.000000000","message":"I am not sure if we need to send a Neighbour Advertisement. I didn\u0027t send Neighbour Advertisement when I did PoC, but it work fine also. But, I dont\u0027 know if that cause other potential problem.","commit_id":"adc20a9eabc5ce03261670841caeb7b413de0694"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which from the upstream router. The linux kernal"},{"line_number":19,"context_line":"already implement NDP proxy. With these characters, we can implement some APIs"},{"line_number":20,"context_line":"so that users/tenants can advertise specify IPv6 addresses to external. It"},{"line_number":21,"context_line":"looks a little like IPv4\u0027s floating ip, but this solution don\u0027t any NAT action."}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_9b8819c7","line":18,"range":{"start_line":18,"start_character":69,"end_line":18,"end_character":75},"updated":"2020-06-17 11:43:47.000000000","message":"nit: kernel","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which from the upstream router. The linux kernal"},{"line_number":19,"context_line":"already implement NDP proxy. With these characters, we can implement some APIs"},{"line_number":20,"context_line":"so that users/tenants can advertise specify IPv6 addresses to external. It"},{"line_number":21,"context_line":"looks a little like IPv4\u0027s floating ip, but this solution don\u0027t any NAT action."}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_3ba46d57","line":18,"range":{"start_line":18,"start_character":27,"end_line":18,"end_character":37},"updated":"2020-06-17 11:43:47.000000000","message":"which comes from","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which from the upstream router. The linux kernal"},{"line_number":19,"context_line":"already implement NDP proxy. With these characters, we can implement some APIs"},{"line_number":20,"context_line":"so that users/tenants can advertise specify IPv6 addresses to external. It"},{"line_number":21,"context_line":"looks a little like IPv4\u0027s floating ip, but this solution don\u0027t any NAT action."}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_4fde6e6d","line":18,"range":{"start_line":18,"start_character":27,"end_line":18,"end_character":37},"in_reply_to":"bf51134e_3ba46d57","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which from the upstream router. The linux kernal"},{"line_number":19,"context_line":"already implement NDP proxy. With these characters, we can implement some APIs"},{"line_number":20,"context_line":"so that users/tenants can advertise specify IPv6 addresses to external. It"},{"line_number":21,"context_line":"looks a little like IPv4\u0027s floating ip, but this solution don\u0027t any NAT action."}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_2fdb3a7c","line":18,"range":{"start_line":18,"start_character":69,"end_line":18,"end_character":75},"in_reply_to":"bf51134e_9b8819c7","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which from the upstream router. The linux kernal"},{"line_number":19,"context_line":"already implement NDP proxy. With these characters, we can implement some APIs"},{"line_number":20,"context_line":"so that users/tenants can advertise specify IPv6 addresses to external. It"},{"line_number":21,"context_line":"looks a little like IPv4\u0027s floating ip, but this solution don\u0027t any NAT action."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_3bbd8d65","line":20,"range":{"start_line":20,"start_character":26,"end_line":20,"end_character":70},"updated":"2020-06-17 11:43:47.000000000","message":"advertise specific IPv6 adresses.","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which from the upstream router. The linux kernal"},{"line_number":19,"context_line":"already implement NDP proxy. With these characters, we can implement some APIs"},{"line_number":20,"context_line":"so that users/tenants can advertise specify IPv6 addresses to external. It"},{"line_number":21,"context_line":"looks a little like IPv4\u0027s floating ip, but this solution don\u0027t any NAT action."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_6fe1b22a","line":20,"range":{"start_line":20,"start_character":26,"end_line":20,"end_character":70},"in_reply_to":"bf51134e_3bbd8d65","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":18,"context_line":"NS (Neighbor Solicitation) which from the upstream router. The linux kernal"},{"line_number":19,"context_line":"already implement NDP proxy. With these characters, we can implement some APIs"},{"line_number":20,"context_line":"so that users/tenants can advertise specify IPv6 addresses to external. It"},{"line_number":21,"context_line":"looks a little like IPv4\u0027s floating ip, but this solution don\u0027t any NAT action."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_1b63691c","line":21,"range":{"start_line":21,"start_character":49,"end_line":21,"end_character":71},"updated":"2020-06-17 11:43:47.000000000","message":"...solution doesn\u0027t do any NAT...","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":18,"context_line":"NS (Neighbor Solicitation) which from the upstream router. The linux kernal"},{"line_number":19,"context_line":"already implement NDP proxy. With these characters, we can implement some APIs"},{"line_number":20,"context_line":"so that users/tenants can advertise specify IPv6 addresses to external. It"},{"line_number":21,"context_line":"looks a little like IPv4\u0027s floating ip, but this solution don\u0027t any NAT action."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_0fcab69f","line":21,"range":{"start_line":21,"start_character":49,"end_line":21,"end_character":71},"in_reply_to":"bf51134e_1b63691c","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":27,"context_line":"As the IPv6 more and more popularize, we should provide a simple method to make"},{"line_number":28,"context_line":"the IPv6 VMs more easily and flexiblly connect to external network."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* In some user cases, such as a web site which have some DB services, MQ"},{"line_number":31,"context_line":"  services and portal services etc, and they work on IPv6 VMs with same subnet."},{"line_number":32,"context_line":"  The administrator of the web site just would like to publish portal services"},{"line_number":33,"context_line":"  to external. So the administrator need some methods to just advertise a part"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_5b6de102","line":30,"range":{"start_line":30,"start_character":10,"end_line":30,"end_character":20},"updated":"2020-06-17 11:43:47.000000000","message":"use cases","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":27,"context_line":"As the IPv6 more and more popularize, we should provide a simple method to make"},{"line_number":28,"context_line":"the IPv6 VMs more easily and flexiblly connect to external network."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* In some user cases, such as a web site which have some DB services, MQ"},{"line_number":31,"context_line":"  services and portal services etc, and they work on IPv6 VMs with same subnet."},{"line_number":32,"context_line":"  The administrator of the web site just would like to publish portal services"},{"line_number":33,"context_line":"  to external. So the administrator need some methods to just advertise a part"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_4fc78e97","line":30,"range":{"start_line":30,"start_character":10,"end_line":30,"end_character":20},"in_reply_to":"bf51134e_5b6de102","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":33,"context_line":"  to external. So the administrator need some methods to just advertise a part"},{"line_number":34,"context_line":"  of address to external."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* The currently solution of publishing IPv6 address which the Neutron support,"},{"line_number":37,"context_line":"  such as BGP (Border Gateway Protocol) [3]_, PD (Prefix delegation) [4]_, is"},{"line_number":38,"context_line":"  more complex, they require do some complex configurations in upstream router."},{"line_number":39,"context_line":"  This maybe not suit some company their bare metal hosted in thrid-party IDC,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_9b7659d8","line":36,"range":{"start_line":36,"start_character":6,"end_line":36,"end_character":15},"updated":"2020-06-17 11:43:47.000000000","message":"current","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":33,"context_line":"  to external. So the administrator need some methods to just advertise a part"},{"line_number":34,"context_line":"  of address to external."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* The currently solution of publishing IPv6 address which the Neutron support,"},{"line_number":37,"context_line":"  such as BGP (Border Gateway Protocol) [3]_, PD (Prefix delegation) [4]_, is"},{"line_number":38,"context_line":"  more complex, they require do some complex configurations in upstream router."},{"line_number":39,"context_line":"  This maybe not suit some company their bare metal hosted in thrid-party IDC,"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_2fc4da90","line":36,"range":{"start_line":36,"start_character":6,"end_line":36,"end_character":15},"in_reply_to":"bf51134e_9b7659d8","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* The currently solution of publishing IPv6 address which the Neutron support,"},{"line_number":37,"context_line":"  such as BGP (Border Gateway Protocol) [3]_, PD (Prefix delegation) [4]_, is"},{"line_number":38,"context_line":"  more complex, they require do some complex configurations in upstream router."},{"line_number":39,"context_line":"  This maybe not suit some company their bare metal hosted in thrid-party IDC,"},{"line_number":40,"context_line":"  they haven\u0027t the privilege of the upstream router. So we should provide a"},{"line_number":41,"context_line":"  solution which not depth cooperation of upstream router."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_bb7d1db3","line":39,"range":{"start_line":39,"start_character":27,"end_line":39,"end_character":40},"updated":"2020-06-17 11:43:47.000000000","message":"company as their","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":36,"context_line":"* The currently solution of publishing IPv6 address which the Neutron support,"},{"line_number":37,"context_line":"  such as BGP (Border Gateway Protocol) [3]_, PD (Prefix delegation) [4]_, is"},{"line_number":38,"context_line":"  more complex, they require do some complex configurations in upstream router."},{"line_number":39,"context_line":"  This maybe not suit some company their bare metal hosted in thrid-party IDC,"},{"line_number":40,"context_line":"  they haven\u0027t the privilege of the upstream router. So we should provide a"},{"line_number":41,"context_line":"  solution which not depth cooperation of upstream router."},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_8fbd2604","line":39,"range":{"start_line":39,"start_character":27,"end_line":39,"end_character":40},"in_reply_to":"bf51134e_bb7d1db3","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  such as BGP (Border Gateway Protocol) [3]_, PD (Prefix delegation) [4]_, is"},{"line_number":38,"context_line":"  more complex, they require do some complex configurations in upstream router."},{"line_number":39,"context_line":"  This maybe not suit some company their bare metal hosted in thrid-party IDC,"},{"line_number":40,"context_line":"  they haven\u0027t the privilege of the upstream router. So we should provide a"},{"line_number":41,"context_line":"  solution which not depth cooperation of upstream router."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_5b46817e","line":40,"range":{"start_line":40,"start_character":7,"end_line":40,"end_character":28},"updated":"2020-06-17 11:43:47.000000000","message":"they don\u0027t have the privilege","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  such as BGP (Border Gateway Protocol) [3]_, PD (Prefix delegation) [4]_, is"},{"line_number":38,"context_line":"  more complex, they require do some complex configurations in upstream router."},{"line_number":39,"context_line":"  This maybe not suit some company their bare metal hosted in thrid-party IDC,"},{"line_number":40,"context_line":"  they haven\u0027t the privilege of the upstream router. So we should provide a"},{"line_number":41,"context_line":"  solution which not depth cooperation of upstream router."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_cf38bea1","line":40,"range":{"start_line":40,"start_character":7,"end_line":40,"end_character":28},"in_reply_to":"bf51134e_5b46817e","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  spec description. Administrator can enable the feature by append the plugin"},{"line_number":55,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Implement a API extension, In the extension we should defined a named"},{"line_number":58,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":59,"context_line":"  extension we also need to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":60,"context_line":"  ``router`` resource, if the parameter set as True, the router\u0027s external"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_7b5c254b","line":57,"range":{"start_line":57,"start_character":56,"end_line":57,"end_character":63},"updated":"2020-06-17 11:43:47.000000000","message":"define","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  spec description. Administrator can enable the feature by append the plugin"},{"line_number":55,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Implement a API extension, In the extension we should defined a named"},{"line_number":58,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":59,"context_line":"  extension we also need to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":60,"context_line":"  ``router`` resource, if the parameter set as True, the router\u0027s external"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_af3d8a90","line":57,"range":{"start_line":57,"start_character":56,"end_line":57,"end_character":63},"in_reply_to":"bf51134e_7b5c254b","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":60,"context_line":"  ``router`` resource, if the parameter set as True, the router\u0027s external"},{"line_number":61,"context_line":"  gateway must have a IPv6 address, and the address must be allocated for a"},{"line_number":62,"context_line":"  Address Scope [5]_. And only when ``enable_ndp_proxy`` set to True, the ndp"},{"line_number":63,"context_line":"  proxy can be created in the router. The extension should be support by"},{"line_number":64,"context_line":"  ``ndp_proxy`` service plugin."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"In Agent Side"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_fb35d5f8","line":63,"range":{"start_line":63,"start_character":62,"end_line":63,"end_character":69},"updated":"2020-06-17 11:43:47.000000000","message":"supported by","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":60,"context_line":"  ``router`` resource, if the parameter set as True, the router\u0027s external"},{"line_number":61,"context_line":"  gateway must have a IPv6 address, and the address must be allocated for a"},{"line_number":62,"context_line":"  Address Scope [5]_. And only when ``enable_ndp_proxy`` set to True, the ndp"},{"line_number":63,"context_line":"  proxy can be created in the router. The extension should be support by"},{"line_number":64,"context_line":"  ``ndp_proxy`` service plugin."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"In Agent Side"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_0f3f5687","line":63,"range":{"start_line":63,"start_character":62,"end_line":63,"end_character":69},"in_reply_to":"bf51134e_fb35d5f8","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"In Agent Side"},{"line_number":67,"context_line":"~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Implement a extension of ``neutron-l3-agent`` to set relational rules for ndp"},{"line_number":70,"context_line":"proxy. The extension behavior like below:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* If the router\u0027s ``enable_ndp_proxy`` filed is true, the router\u0027s namespace"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_5b3b21ea","line":69,"range":{"start_line":69,"start_character":10,"end_line":69,"end_character":11},"updated":"2020-06-17 11:43:47.000000000","message":"an","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":66,"context_line":"In Agent Side"},{"line_number":67,"context_line":"~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Implement a extension of ``neutron-l3-agent`` to set relational rules for ndp"},{"line_number":70,"context_line":"proxy. The extension behavior like below:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* If the router\u0027s ``enable_ndp_proxy`` filed is true, the router\u0027s namespace"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_4f4cae41","line":69,"range":{"start_line":69,"start_character":10,"end_line":69,"end_character":11},"in_reply_to":"bf51134e_5b3b21ea","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Implement a extension of ``neutron-l3-agent`` to set relational rules for ndp"},{"line_number":70,"context_line":"proxy. The extension behavior like below:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* If the router\u0027s ``enable_ndp_proxy`` filed is true, the router\u0027s namespace"},{"line_number":73,"context_line":"  should have a default iptables rule to drop all packets input from the"},{"line_number":74,"context_line":"  router\u0027s external gateway device. By this way, we can eliminate affection"},{"line_number":75,"context_line":"  of extra route and neighbor in upstream router."}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_9b2499c8","line":72,"range":{"start_line":72,"start_character":39,"end_line":72,"end_character":44},"updated":"2020-06-17 11:43:47.000000000","message":"field","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":69,"context_line":"Implement a extension of ``neutron-l3-agent`` to set relational rules for ndp"},{"line_number":70,"context_line":"proxy. The extension behavior like below:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* If the router\u0027s ``enable_ndp_proxy`` filed is true, the router\u0027s namespace"},{"line_number":73,"context_line":"  should have a default iptables rule to drop all packets input from the"},{"line_number":74,"context_line":"  router\u0027s external gateway device. By this way, we can eliminate affection"},{"line_number":75,"context_line":"  of extra route and neighbor in upstream router."}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_2f497a30","line":72,"range":{"start_line":72,"start_character":39,"end_line":72,"end_character":44},"in_reply_to":"bf51134e_9b2499c8","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    );"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":".. note:: This ndpproxies table lacks ``project_id``, as the owner of this"},{"line_number":102,"context_line":"          ``ndp_proxy`` must be the owner of associated ``router``. So there"},{"line_number":103,"context_line":"          is a project_id check for preventing association of ``router`` to"},{"line_number":104,"context_line":"          neutron Port if their ``project_id`` are different. Also, allow the"},{"line_number":105,"context_line":"          association that router/neutron Port exists on a shared network for"},{"line_number":106,"context_line":"          admin users in different project_id cases, such as ``router`` from a"},{"line_number":107,"context_line":"          shared public network created by a admin user and a Neutron Port from"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_1b1a497c","line":104,"range":{"start_line":102,"start_character":68,"end_line":104,"end_character":61},"updated":"2020-06-17 11:43:47.000000000","message":"Isn\u0027t that something that is handled by policies?","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    );"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":".. note:: This ndpproxies table lacks ``project_id``, as the owner of this"},{"line_number":102,"context_line":"          ``ndp_proxy`` must be the owner of associated ``router``. So there"},{"line_number":103,"context_line":"          is a project_id check for preventing association of ``router`` to"},{"line_number":104,"context_line":"          neutron Port if their ``project_id`` are different. Also, allow the"},{"line_number":105,"context_line":"          association that router/neutron Port exists on a shared network for"},{"line_number":106,"context_line":"          admin users in different project_id cases, such as ``router`` from a"},{"line_number":107,"context_line":"          shared public network created by a admin user and a Neutron Port from"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_8f6b6683","line":104,"range":{"start_line":102,"start_character":68,"end_line":104,"end_character":61},"in_reply_to":"bf51134e_1b1a497c","updated":"2020-06-22 06:22:46.000000000","message":"Yep, The constraint of policies is enough, we needn\u0027t to do more constraints here.","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":131,"context_line":"* \u0027delete_router_ndp_proxy()\u0027"},{"line_number":132,"context_line":"* \u0027get_router_ndp_proxy()\u0027"},{"line_number":133,"context_line":"* \u0027get_router_ndp_proxies()\u0027"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"So the attributes map of new sub resource would be like:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_9b0db940","line":134,"updated":"2020-06-17 11:43:47.000000000","message":"Am I understand it well that no update is possible with ndp_proxies?","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":131,"context_line":"* \u0027delete_router_ndp_proxy()\u0027"},{"line_number":132,"context_line":"* \u0027get_router_ndp_proxy()\u0027"},{"line_number":133,"context_line":"* \u0027get_router_ndp_proxies()\u0027"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"So the attributes map of new sub resource would be like:"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":".. code-block:: python"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_cf06fece","line":134,"in_reply_to":"bf51134e_9b0db940","updated":"2020-06-22 06:22:46.000000000","message":"Sorry, this my careless. We should support updata action so that user can update the description of ndp proxy.","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"  * - Attribute Name"},{"line_number":178,"context_line":"    - Type"},{"line_number":179,"context_line":"    - CRUD"},{"line_number":180,"context_line":"    - Default Value"},{"line_number":181,"context_line":"    - Description"},{"line_number":182,"context_line":"  * - ndp_proxies"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_ad7de4b2","line":179,"range":{"start_line":179,"start_character":6,"end_line":179,"end_character":10},"updated":"2020-06-17 11:43:47.000000000","message":"This line contradicts with the method names above.","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":176,"context_line":""},{"line_number":177,"context_line":"  * - Attribute Name"},{"line_number":178,"context_line":"    - Type"},{"line_number":179,"context_line":"    - CRUD"},{"line_number":180,"context_line":"    - Default Value"},{"line_number":181,"context_line":"    - Description"},{"line_number":182,"context_line":"  * - ndp_proxies"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_3d99b3c3","line":179,"range":{"start_line":179,"start_character":6,"end_line":179,"end_character":10},"in_reply_to":"bf51134e_ad7de4b2","updated":"2020-06-22 06:22:46.000000000","message":"This just is the table\u0027s title.","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    - Description"},{"line_number":182,"context_line":"  * - ndp_proxies"},{"line_number":183,"context_line":"    - List"},{"line_number":184,"context_line":"    - R"},{"line_number":185,"context_line":"    - None"},{"line_number":186,"context_line":"    - The associated \u0027ndp-proxy\u0027 sub resource with the particular \u0027router\u0027"},{"line_number":187,"context_line":"      resource."}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_8d5f4040","line":184,"range":{"start_line":184,"start_character":4,"end_line":184,"end_character":7},"updated":"2020-06-17 11:43:47.000000000","message":"Is this accidental?","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":181,"context_line":"    - Description"},{"line_number":182,"context_line":"  * - ndp_proxies"},{"line_number":183,"context_line":"    - List"},{"line_number":184,"context_line":"    - R"},{"line_number":185,"context_line":"    - None"},{"line_number":186,"context_line":"    - The associated \u0027ndp-proxy\u0027 sub resource with the particular \u0027router\u0027"},{"line_number":187,"context_line":"      resource."}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_1d966f94","line":184,"range":{"start_line":184,"start_character":4,"end_line":184,"end_character":7},"in_reply_to":"bf51134e_8d5f4040","updated":"2020-06-22 06:22:46.000000000","message":"This means that the extension just support read action.","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"0e6bbf47e4173c0bfb3814fdb6436f819e0fd017","unresolved":false,"context_lines":[{"line_number":245,"context_line":"                    \"nexthop\": \"172.24.3.99\""},{"line_number":246,"context_line":"                }"},{"line_number":247,"context_line":"            ],"},{"line_number":248,"context_line":"            \"ndp_proxyies\": ["},{"line_number":249,"context_line":"                {"},{"line_number":250,"context_line":"                    \"id\": \"fdb14dfa-d0df-4fbe-b414-a4f4370a66e4\","},{"line_number":251,"context_line":"                    \"port\": \"add14d6a-d0df-4fbe-b414-a4f4370a66e4\","},{"line_number":252,"context_line":"                    \"ip_address\": \"2001:217::19\","},{"line_number":253,"context_line":"                    \"description\": \"Some descriptions\""},{"line_number":254,"context_line":"                }"},{"line_number":255,"context_line":"            ],"},{"line_number":256,"context_line":"            \"status\": \"ACTIVE\","},{"line_number":257,"context_line":"            \"updated_at\": \"2018-03-19T19:17:22Z\","},{"line_number":258,"context_line":"            \"project_id\": \"0bd18306d801447bb457a46252d82d13\","}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_b08ff7ca","line":255,"range":{"start_line":248,"start_character":12,"end_line":255,"end_character":14},"updated":"2020-06-17 12:15:59.000000000","message":"I think something like this would be more like other APIs:\nndp_proxies: [id_of_ndp_proxy1, id_of_ndp_proxy2...],","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":245,"context_line":"                    \"nexthop\": \"172.24.3.99\""},{"line_number":246,"context_line":"                }"},{"line_number":247,"context_line":"            ],"},{"line_number":248,"context_line":"            \"ndp_proxyies\": ["},{"line_number":249,"context_line":"                {"},{"line_number":250,"context_line":"                    \"id\": \"fdb14dfa-d0df-4fbe-b414-a4f4370a66e4\","},{"line_number":251,"context_line":"                    \"port\": \"add14d6a-d0df-4fbe-b414-a4f4370a66e4\","},{"line_number":252,"context_line":"                    \"ip_address\": \"2001:217::19\","},{"line_number":253,"context_line":"                    \"description\": \"Some descriptions\""},{"line_number":254,"context_line":"                }"},{"line_number":255,"context_line":"            ],"},{"line_number":256,"context_line":"            \"status\": \"ACTIVE\","},{"line_number":257,"context_line":"            \"updated_at\": \"2018-03-19T19:17:22Z\","},{"line_number":258,"context_line":"            \"project_id\": \"0bd18306d801447bb457a46252d82d13\","}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_cf2f1e3d","line":255,"range":{"start_line":248,"start_character":12,"end_line":255,"end_character":14},"in_reply_to":"bf51134e_b08ff7ca","updated":"2020-06-22 06:22:46.000000000","message":"I think that the related resources just show `id` is reasonable. But the ndp proxy is the router\u0027s subresource. So,I prefer to show the ndp proxy\u0027s information in detail.","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            \"service_type_id\": null,"},{"line_number":261,"context_line":"            \"tags\": [\"tag1,tag2\"],"},{"line_number":262,"context_line":"            \"conntrack_helpers\": []"},{"line_number":263,"context_line":"        }"},{"line_number":264,"context_line":"    }"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"For the new sub resource \u0027ndp_proxy\u0027, some new URLs will be introduced:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_d04a6b53","line":263,"updated":"2020-06-17 11:43:47.000000000","message":"Here I can\u0027t see enable_ndp_proxy field.","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":260,"context_line":"            \"service_type_id\": null,"},{"line_number":261,"context_line":"            \"tags\": [\"tag1,tag2\"],"},{"line_number":262,"context_line":"            \"conntrack_helpers\": []"},{"line_number":263,"context_line":"        }"},{"line_number":264,"context_line":"    }"},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"For the new sub resource \u0027ndp_proxy\u0027, some new URLs will be introduced:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_af0bcad3","line":263,"in_reply_to":"bf51134e_d04a6b53","updated":"2020-06-22 06:22:46.000000000","message":"Done","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":326,"context_line":"unique and can be routed by upstream router. So there are some constraints"},{"line_number":327,"context_line":"here:"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"* The router must be set external gateway and the gateway port must have a IPv6"},{"line_number":330,"context_line":"  address which allocate from a Address Scope."},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"* The ``ip_address`` belong to subnet must be added to the router"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_ed1ebc6e","line":330,"range":{"start_line":329,"start_character":2,"end_line":330,"end_character":46},"updated":"2020-06-17 11:43:47.000000000","message":"A better wording should be perhaps: The router\u0027s external_gateway must be set and the gateway port must have an IPv6 address which is allocated from an Address Scope","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":326,"context_line":"unique and can be routed by upstream router. So there are some constraints"},{"line_number":327,"context_line":"here:"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"* The router must be set external gateway and the gateway port must have a IPv6"},{"line_number":330,"context_line":"  address which allocate from a Address Scope."},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"* The ``ip_address`` belong to subnet must be added to the router"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_cfd43e23","line":330,"range":{"start_line":329,"start_character":2,"end_line":330,"end_character":46},"in_reply_to":"bf51134e_ed1ebc6e","updated":"2020-06-22 06:22:46.000000000","message":"Thanks very much.","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":329,"context_line":"* The router must be set external gateway and the gateway port must have a IPv6"},{"line_number":330,"context_line":"  address which allocate from a Address Scope."},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"* The ``ip_address`` belong to subnet must be added to the router"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"* The ``ip_address`` must be allocated from an Address Scope which same with"},{"line_number":335,"context_line":"  router\u0027s IPv6 gateway address\u0027s Address Scope"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_4d14084f","line":332,"range":{"start_line":332,"start_character":21,"end_line":332,"end_character":27},"updated":"2020-06-17 11:43:47.000000000","message":"The ``ip_address` that belongs to the subnet?","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"044177efc4208f16ff635db5a1c061511555f069","unresolved":false,"context_lines":[{"line_number":329,"context_line":"* The router must be set external gateway and the gateway port must have a IPv6"},{"line_number":330,"context_line":"  address which allocate from a Address Scope."},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"* The ``ip_address`` belong to subnet must be added to the router"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"* The ``ip_address`` must be allocated from an Address Scope which same with"},{"line_number":335,"context_line":"  router\u0027s IPv6 gateway address\u0027s Address Scope"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_9dd8bf7b","line":332,"range":{"start_line":332,"start_character":21,"end_line":332,"end_character":27},"in_reply_to":"bf51134e_4d14084f","updated":"2020-06-22 06:22:46.000000000","message":"Sorry, I didn\u0027t make it clear. I will rephrase it.","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3c52a29f341edc8f3a474781bc83a00569fc4bb6","unresolved":false,"context_lines":[{"line_number":387,"context_line":"* If the router have any ndp proxy, it\u0027s external gateway mustn\u0027t be unset."},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"* The subnet mustn\u0027t be removed while the router have the ndp proxy of which"},{"line_number":390,"context_line":"  ``ip_address`` is belong the subnet."},{"line_number":391,"context_line":""},{"line_number":392,"context_line":"* For new parameter ``enable_ndp_proxy``, The ``router`` extension definition"},{"line_number":393,"context_line":"  would be expanded as:"}],"source_content_type":"text/x-rst","patch_set":12,"id":"bf51134e_2d19d484","line":390,"range":{"start_line":390,"start_character":20,"end_line":390,"end_character":26},"updated":"2020-06-17 11:43:47.000000000","message":"``ip_address`` belongs to the subnet ?","commit_id":"a3f2983ec7e8b8555aeedef69aaf4e4f21c99e6e"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":12,"context_line":"https://bugs.launchpad.net/neutron/+bug/1877301"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_52d29101","line":15,"range":{"start_line":15,"start_character":40,"end_line":15,"end_character":43},"updated":"2020-06-22 08:57:25.000000000","message":"s/the","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":12,"context_line":"https://bugs.launchpad.net/neutron/+bug/1877301"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_32cf1d57","line":15,"range":{"start_line":15,"start_character":48,"end_line":15,"end_character":52},"updated":"2020-06-22 08:57:25.000000000","message":"s/works","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":12,"context_line":"https://bugs.launchpad.net/neutron/+bug/1877301"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_1c23e757","line":15,"range":{"start_line":15,"start_character":48,"end_line":15,"end_character":52},"in_reply_to":"bf51134e_32cf1d57","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":12,"context_line":"https://bugs.launchpad.net/neutron/+bug/1877301"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_fc1f1305","line":15,"range":{"start_line":15,"start_character":40,"end_line":15,"end_character":43},"in_reply_to":"bf51134e_52d29101","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":12,"context_line":"https://bugs.launchpad.net/neutron/+bug/1877301"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_72d515e5","line":16,"range":{"start_line":15,"start_character":60,"end_line":16,"end_character":33},"updated":"2020-06-22 08:57:25.000000000","message":"This is duplicated to the first sentence.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_8605f948","line":16,"range":{"start_line":16,"start_character":59,"end_line":16,"end_character":63},"updated":"2020-06-23 09:34:24.000000000","message":"works","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":12,"context_line":"https://bugs.launchpad.net/neutron/+bug/1877301"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_dcda0f49","line":16,"range":{"start_line":15,"start_character":60,"end_line":16,"end_character":33},"in_reply_to":"bf51134e_72d515e5","updated":"2020-06-24 02:06:48.000000000","message":"No duplication, this sentence explain NDP proxy, the first sentence explain NDP.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_5c19df1f","line":16,"range":{"start_line":16,"start_character":59,"end_line":16,"end_character":63},"in_reply_to":"bf51134e_8605f948","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"},{"line_number":20,"context_line":"some APIs so that users/tenants can advertise specify IPv6 addresses. It looks"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_52fbb177","line":17,"range":{"start_line":17,"start_character":6,"end_line":17,"end_character":13},"updated":"2020-06-22 08:57:25.000000000","message":"specific","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"},{"line_number":20,"context_line":"some APIs so that users/tenants can advertise specify IPv6 addresses. It looks"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_bcdf5b38","line":17,"range":{"start_line":17,"start_character":6,"end_line":17,"end_character":13},"in_reply_to":"bf51134e_52fbb177","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"},{"line_number":20,"context_line":"some APIs so that users/tenants can advertise specify IPv6 addresses. It looks"},{"line_number":21,"context_line":"a little like IPv4\u0027s floating ip, but this solution doesn\u0027t do any NAT action."}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_6602653f","line":18,"range":{"start_line":18,"start_character":69,"end_line":18,"end_character":74},"updated":"2020-06-23 09:34:24.000000000","message":"IMO should be \"Linux\" (with uppercase)","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Resolution Protocol) in functional, but The NDP work at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"},{"line_number":20,"context_line":"some APIs so that users/tenants can advertise specify IPv6 addresses. It looks"},{"line_number":21,"context_line":"a little like IPv4\u0027s floating ip, but this solution doesn\u0027t do any NAT action."}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_1ce807e0","line":18,"range":{"start_line":18,"start_character":69,"end_line":18,"end_character":74},"in_reply_to":"bf51134e_6602653f","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"},{"line_number":20,"context_line":"some APIs so that users/tenants can advertise specify IPv6 addresses. It looks"},{"line_number":21,"context_line":"a little like IPv4\u0027s floating ip, but this solution doesn\u0027t do any NAT action."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_12fe596a","line":19,"range":{"start_line":19,"start_character":47,"end_line":19,"end_character":57},"updated":"2020-06-22 08:57:25.000000000","message":"functionalities","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only work on IPv6, it can"},{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"},{"line_number":20,"context_line":"some APIs so that users/tenants can advertise specify IPv6 addresses. It looks"},{"line_number":21,"context_line":"a little like IPv4\u0027s floating ip, but this solution doesn\u0027t do any NAT action."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_fce4330f","line":19,"range":{"start_line":19,"start_character":47,"end_line":19,"end_character":57},"in_reply_to":"bf51134e_12fe596a","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"},{"line_number":20,"context_line":"some APIs so that users/tenants can advertise specify IPv6 addresses. It looks"},{"line_number":21,"context_line":"a little like IPv4\u0027s floating ip, but this solution doesn\u0027t do any NAT action."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_a6f8fd48","line":20,"range":{"start_line":20,"start_character":46,"end_line":20,"end_character":53},"updated":"2020-06-23 09:34:24.000000000","message":"specific","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":17,"context_line":"proxy specify IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"},{"line_number":20,"context_line":"some APIs so that users/tenants can advertise specify IPv6 addresses. It looks"},{"line_number":21,"context_line":"a little like IPv4\u0027s floating ip, but this solution doesn\u0027t do any NAT action."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_5ceeffec","line":20,"range":{"start_line":20,"start_character":46,"end_line":20,"end_character":53},"in_reply_to":"bf51134e_a6f8fd48","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"},{"line_number":20,"context_line":"some APIs so that users/tenants can advertise specify IPv6 addresses. It looks"},{"line_number":21,"context_line":"a little like IPv4\u0027s floating ip, but this solution doesn\u0027t do any NAT action."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_1233f963","line":21,"range":{"start_line":21,"start_character":30,"end_line":21,"end_character":32},"updated":"2020-06-22 08:57:25.000000000","message":"s/IP","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The linux"},{"line_number":19,"context_line":"kernel already implement NDP proxy. With these characters, we can implement"},{"line_number":20,"context_line":"some APIs so that users/tenants can advertise specify IPv6 addresses. It looks"},{"line_number":21,"context_line":"a little like IPv4\u0027s floating ip, but this solution doesn\u0027t do any NAT action."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Problem Description"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_3ceb4bdc","line":21,"range":{"start_line":21,"start_character":30,"end_line":21,"end_character":32},"in_reply_to":"bf51134e_1233f963","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"As the IPv6 more and more popularize, we should provide a simple method to make"},{"line_number":28,"context_line":"the IPv6 VMs more easily and flexiblly connect to external network."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* In some use cases, such as a web site which have some DB services, MQ"},{"line_number":31,"context_line":"  services and portal services etc, and they work on IPv6 VMs with same subnet."}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_f237654c","line":28,"range":{"start_line":28,"start_character":29,"end_line":28,"end_character":38},"updated":"2020-06-22 08:57:25.000000000","message":"s/flexibly","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":25,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"As the IPv6 more and more popularize, we should provide a simple method to make"},{"line_number":28,"context_line":"the IPv6 VMs more easily and flexiblly connect to external network."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* In some use cases, such as a web site which have some DB services, MQ"},{"line_number":31,"context_line":"  services and portal services etc, and they work on IPv6 VMs with same subnet."}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_9cbd37da","line":28,"range":{"start_line":28,"start_character":29,"end_line":28,"end_character":38},"in_reply_to":"bf51134e_f237654c","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":27,"context_line":"As the IPv6 more and more popularize, we should provide a simple method to make"},{"line_number":28,"context_line":"the IPv6 VMs more easily and flexiblly connect to external network."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* In some use cases, such as a web site which have some DB services, MQ"},{"line_number":31,"context_line":"  services and portal services etc, and they work on IPv6 VMs with same subnet."},{"line_number":32,"context_line":"  The administrator of the web site just would like to publish portal services"},{"line_number":33,"context_line":"  to external. So the administrator need some methods to just advertise a part"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_721cf5c0","line":30,"range":{"start_line":30,"start_character":46,"end_line":30,"end_character":50},"updated":"2020-06-22 08:57:25.000000000","message":"has","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":27,"context_line":"As the IPv6 more and more popularize, we should provide a simple method to make"},{"line_number":28,"context_line":"the IPv6 VMs more easily and flexiblly connect to external network."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"* In some use cases, such as a web site which have some DB services, MQ"},{"line_number":31,"context_line":"  services and portal services etc, and they work on IPv6 VMs with same subnet."},{"line_number":32,"context_line":"  The administrator of the web site just would like to publish portal services"},{"line_number":33,"context_line":"  to external. So the administrator need some methods to just advertise a part"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_7cc2e35a","line":30,"range":{"start_line":30,"start_character":46,"end_line":30,"end_character":50},"in_reply_to":"bf51134e_721cf5c0","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":30,"context_line":"* In some use cases, such as a web site which have some DB services, MQ"},{"line_number":31,"context_line":"  services and portal services etc, and they work on IPv6 VMs with same subnet."},{"line_number":32,"context_line":"  The administrator of the web site just would like to publish portal services"},{"line_number":33,"context_line":"  to external. So the administrator need some methods to just advertise a part"},{"line_number":34,"context_line":"  of address to external."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* The current solution of publishing IPv6 address which the Neutron support,"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_f285a5d0","line":33,"range":{"start_line":33,"start_character":36,"end_line":33,"end_character":40},"updated":"2020-06-22 08:57:25.000000000","message":"needs","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":30,"context_line":"* In some use cases, such as a web site which have some DB services, MQ"},{"line_number":31,"context_line":"  services and portal services etc, and they work on IPv6 VMs with same subnet."},{"line_number":32,"context_line":"  The administrator of the web site just would like to publish portal services"},{"line_number":33,"context_line":"  to external. So the administrator need some methods to just advertise a part"},{"line_number":34,"context_line":"  of address to external."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"* The current solution of publishing IPv6 address which the Neutron support,"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_dcb32f09","line":33,"range":{"start_line":33,"start_character":36,"end_line":33,"end_character":40},"in_reply_to":"bf51134e_f285a5d0","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  more complex, they require do some complex configurations in upstream router."},{"line_number":39,"context_line":"  This maybe not suit some company as their bare metal hosted in thrid-party"},{"line_number":40,"context_line":"  IDC, they don\u0027t have the privilege of the upstream router. So we should"},{"line_number":41,"context_line":"  provide a solution which not depth cooperation of upstream router."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_469da108","line":41,"range":{"start_line":41,"start_character":21,"end_line":41,"end_character":26},"updated":"2020-06-23 09:34:24.000000000","message":"\"with\" maybe?","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":38,"context_line":"  more complex, they require do some complex configurations in upstream router."},{"line_number":39,"context_line":"  This maybe not suit some company as their bare metal hosted in thrid-party"},{"line_number":40,"context_line":"  IDC, they don\u0027t have the privilege of the upstream router. So we should"},{"line_number":41,"context_line":"  provide a solution which not depth cooperation of upstream router."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_bcb8fbe4","line":41,"range":{"start_line":41,"start_character":21,"end_line":41,"end_character":26},"in_reply_to":"bf51134e_469da108","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Overview"},{"line_number":48,"context_line":"--------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"In Server Side"},{"line_number":51,"context_line":"~~~~~~~~~~~~~~"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Implement a service plugin named ``ndp_proxy`` to support the feature of this"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_868a19bc","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":2},"updated":"2020-06-23 09:34:24.000000000","message":"I don\u0027t think this is needed here","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":47,"context_line":"Overview"},{"line_number":48,"context_line":"--------"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"In Server Side"},{"line_number":51,"context_line":"~~~~~~~~~~~~~~"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"* Implement a service plugin named ``ndp_proxy`` to support the feature of this"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_5cc71f65","line":50,"range":{"start_line":50,"start_character":0,"end_line":50,"end_character":2},"in_reply_to":"bf51134e_868a19bc","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":58,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":59,"context_line":"  extension we also need to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":60,"context_line":"  ``router`` resource, if the parameter set as True, the router\u0027s external"},{"line_number":61,"context_line":"  gateway must have a IPv6 address, and the address must be allocated for a"},{"line_number":62,"context_line":"  Address Scope [5]_. And only when ``enable_ndp_proxy`` set to True, the ndp"},{"line_number":63,"context_line":"  proxy can be created in the router. The extension should be supported by"},{"line_number":64,"context_line":"  ``ndp_proxy`` service plugin."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"In Agent Side"},{"line_number":67,"context_line":"~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_520f3136","line":64,"range":{"start_line":58,"start_character":68,"end_line":64,"end_character":31},"updated":"2020-06-22 08:57:25.000000000","message":"This `enable_ndp_proxy` looks a bit duplicated to the list of \"ndp_proxy\". I did not see too much impact of this flag in agent side. So why not directly use the list of \"ndp_proxy\" to decide whether enable the NDP proxy in agent side?","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8ef43affd2e0977d892682be881870d4026a4e6b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":58,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":59,"context_line":"  extension we also need to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":60,"context_line":"  ``router`` resource, if the parameter set as True, the router\u0027s external"},{"line_number":61,"context_line":"  gateway must have a IPv6 address, and the address must be allocated for a"},{"line_number":62,"context_line":"  Address Scope [5]_. And only when ``enable_ndp_proxy`` set to True, the ndp"},{"line_number":63,"context_line":"  proxy can be created in the router. The extension should be supported by"},{"line_number":64,"context_line":"  ``ndp_proxy`` service plugin."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"In Agent Side"},{"line_number":67,"context_line":"~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_7a3ddc29","line":64,"range":{"start_line":58,"start_character":68,"end_line":64,"end_character":31},"in_reply_to":"bf51134e_520f3136","updated":"2020-06-23 02:12:59.000000000","message":"Yep, use the list of \"ndp proxy\" is enough in functional. But, I introuduce the parameter in order to make the feature easier for the user to understand. The feature that the spec introduced confict with other route advertisement ways (such as BGP, Prefix Delegation), and the router need to met multiple conditions (as I described below) before create ndp proxy. I wish user sufficiently understand the influence and make the router ready before create ndp proxy.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b1f9c68b33b01223e8969b2044c3eaa10e27d517","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":58,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":59,"context_line":"  extension we also need to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":60,"context_line":"  ``router`` resource, if the parameter set as True, the router\u0027s external"},{"line_number":61,"context_line":"  gateway must have a IPv6 address, and the address must be allocated for a"},{"line_number":62,"context_line":"  Address Scope [5]_. And only when ``enable_ndp_proxy`` set to True, the ndp"},{"line_number":63,"context_line":"  proxy can be created in the router. The extension should be supported by"},{"line_number":64,"context_line":"  ``ndp_proxy`` service plugin."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"In Agent Side"},{"line_number":67,"context_line":"~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_5bcfd7af","line":64,"range":{"start_line":58,"start_character":68,"end_line":64,"end_character":31},"in_reply_to":"bf51134e_7a3ddc29","updated":"2020-06-30 02:20:10.000000000","message":"This is a marker. If it is set to true, means the router only support publishing ipv6 address by ndp proxy (We should explain this in user document).","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  proxy can be created in the router. The extension should be supported by"},{"line_number":64,"context_line":"  ``ndp_proxy`` service plugin."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"In Agent Side"},{"line_number":67,"context_line":"~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Implement an extension of ``neutron-l3-agent`` to set relational rules for ndp"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_a68d9dd4","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":2},"updated":"2020-06-23 09:34:24.000000000","message":"same here","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":63,"context_line":"  proxy can be created in the router. The extension should be supported by"},{"line_number":64,"context_line":"  ``ndp_proxy`` service plugin."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"In Agent Side"},{"line_number":67,"context_line":"~~~~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Implement an extension of ``neutron-l3-agent`` to set relational rules for ndp"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_3cc4eb5e","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":2},"in_reply_to":"bf51134e_a68d9dd4","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Data Model Impact"},{"line_number":87,"context_line":"-----------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The following new tables are added as part of the ndp proxy feature."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"For ndp proxy resource::"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_12449973","line":89,"range":{"start_line":89,"start_character":18,"end_line":89,"end_character":24},"updated":"2020-06-22 08:57:25.000000000","message":"Please elaborate the details of the table attributes.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":86,"context_line":"Data Model Impact"},{"line_number":87,"context_line":"-----------------"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"The following new tables are added as part of the ndp proxy feature."},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"For ndp proxy resource::"},{"line_number":92,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_dca84f8d","line":89,"range":{"start_line":89,"start_character":18,"end_line":89,"end_character":24},"in_reply_to":"bf51134e_12449973","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    CREATE TABLE ndpproxies ("},{"line_number":94,"context_line":"        id CHAR(36) NOT NULL PRI KEY,"},{"line_number":95,"context_line":"        router VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":96,"context_line":"        port VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":97,"context_line":"        ip_address VARCHAR(64) NOT NULL,"},{"line_number":98,"context_line":"        description VARCHAR(255)"},{"line_number":99,"context_line":"    );"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_7254f521","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":12},"updated":"2020-06-22 08:57:25.000000000","message":"Please add some detail about this port, this port is created in the router connected subnet? What\u0027s the relationship between this `port` and the `ip_address` next line?","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    CREATE TABLE ndpproxies ("},{"line_number":94,"context_line":"        id CHAR(36) NOT NULL PRI KEY,"},{"line_number":95,"context_line":"        router VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":96,"context_line":"        port VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":97,"context_line":"        ip_address VARCHAR(64) NOT NULL,"},{"line_number":98,"context_line":"        description VARCHAR(255)"},{"line_number":99,"context_line":"    );"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_9c8b771d","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":12},"in_reply_to":"bf51134e_7254f521","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            \"ndp_proxies\": ["},{"line_number":254,"context_line":"                {"},{"line_number":255,"context_line":"                    \"id\": \"fdb14dfa-d0df-4fbe-b414-a4f4370a66e4\","},{"line_number":256,"context_line":"                    \"port\": \"add14d6a-d0df-4fbe-b414-a4f4370a66e4\","},{"line_number":257,"context_line":"                    \"ip_address\": \"2001:217::19\","},{"line_number":258,"context_line":"                    \"description\": \"Some descriptions\""},{"line_number":259,"context_line":"                }"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_662385be","line":256,"range":{"start_line":256,"start_character":29,"end_line":256,"end_character":65},"updated":"2020-06-23 09:34:24.000000000","message":"what is this port_id and why it\u0027s needed here?","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":253,"context_line":"            \"ndp_proxies\": ["},{"line_number":254,"context_line":"                {"},{"line_number":255,"context_line":"                    \"id\": \"fdb14dfa-d0df-4fbe-b414-a4f4370a66e4\","},{"line_number":256,"context_line":"                    \"port\": \"add14d6a-d0df-4fbe-b414-a4f4370a66e4\","},{"line_number":257,"context_line":"                    \"ip_address\": \"2001:217::19\","},{"line_number":258,"context_line":"                    \"description\": \"Some descriptions\""},{"line_number":259,"context_line":"                }"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_fccef357","line":256,"range":{"start_line":256,"start_character":29,"end_line":256,"end_character":65},"in_reply_to":"bf51134e_662385be","updated":"2020-06-24 02:06:48.000000000","message":"The \"port_id\" is the id of port which the \"ip_address\" local in. I intruduce the parameter due to that I want provide a operation similar as \"floating ip bind to port\", User just need to specify a port (aka VM\u0027s nic), Neutron can select a fixed ip automatically to create ndp proxy object.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":268,"context_line":"        }"},{"line_number":269,"context_line":"    }"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"Set a router\u0027s ``enable_ndp_proxy`` parameter to True:"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"Post /v2.0/routers/\u003crouter-uuid\u003e"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"Request body::"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    {"},{"line_number":278,"context_line":"        \"router\": {"},{"line_number":279,"context_line":"            \"enable_ndp_proxy\": True"},{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":"    }"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":".. note:: The router\u0027s external_gateway must be set and the gateway port must"},{"line_number":284,"context_line":"          have an IPv6 address which is allocated from an Address Scope. Before"},{"line_number":285,"context_line":"          set ``enable_ndp_proxy`` from True to False, Neutron need to check"},{"line_number":286,"context_line":"          the router if has any ndp proxy, if the router have one or more ndp"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_a505a913","line":283,"range":{"start_line":271,"start_character":0,"end_line":283,"end_character":10},"updated":"2020-06-22 08:57:25.000000000","message":"Again, what\u0027s the real use of this flag?","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":"    }"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":".. note:: The router\u0027s external_gateway must be set and the gateway port must"},{"line_number":284,"context_line":"          have an IPv6 address which is allocated from an Address Scope. Before"},{"line_number":285,"context_line":"          set ``enable_ndp_proxy`` from True to False, Neutron need to check"},{"line_number":286,"context_line":"          the router if has any ndp proxy, if the router have one or more ndp"},{"line_number":287,"context_line":"          proxies, the ``enable_ndp_proxy`` parameter mustn\u0027t set as False."}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_25119953","line":284,"range":{"start_line":283,"start_character":55,"end_line":284,"end_character":73},"updated":"2020-06-22 08:57:25.000000000","message":"How to ensure this \"must\" ?","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":"    }"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":".. note:: The router\u0027s external_gateway must be set and the gateway port must"},{"line_number":284,"context_line":"          have an IPv6 address which is allocated from an Address Scope. Before"},{"line_number":285,"context_line":"          set ``enable_ndp_proxy`` from True to False, Neutron need to check"},{"line_number":286,"context_line":"          the router if has any ndp proxy, if the router have one or more ndp"},{"line_number":287,"context_line":"          proxies, the ``enable_ndp_proxy`` parameter mustn\u0027t set as False."}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_5cd8bf1c","line":284,"range":{"start_line":283,"start_character":55,"end_line":284,"end_character":73},"in_reply_to":"bf51134e_1a7b00f5","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8ef43affd2e0977d892682be881870d4026a4e6b","unresolved":false,"context_lines":[{"line_number":280,"context_line":"        }"},{"line_number":281,"context_line":"    }"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":".. note:: The router\u0027s external_gateway must be set and the gateway port must"},{"line_number":284,"context_line":"          have an IPv6 address which is allocated from an Address Scope. Before"},{"line_number":285,"context_line":"          set ``enable_ndp_proxy`` from True to False, Neutron need to check"},{"line_number":286,"context_line":"          the router if has any ndp proxy, if the router have one or more ndp"},{"line_number":287,"context_line":"          proxies, the ``enable_ndp_proxy`` parameter mustn\u0027t set as False."}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_1a7b00f5","line":284,"range":{"start_line":283,"start_character":55,"end_line":284,"end_character":73},"in_reply_to":"bf51134e_25119953","updated":"2020-06-23 02:12:59.000000000","message":"Sorry, maybe I don\u0027t make it clear. This need user to \"ensure\", we just need to add check code.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":284,"context_line":"          have an IPv6 address which is allocated from an Address Scope. Before"},{"line_number":285,"context_line":"          set ``enable_ndp_proxy`` from True to False, Neutron need to check"},{"line_number":286,"context_line":"          the router if has any ndp proxy, if the router have one or more ndp"},{"line_number":287,"context_line":"          proxies, the ``enable_ndp_proxy`` parameter mustn\u0027t set as False."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"For the new sub resource \u0027ndp_proxy\u0027, some new URLs will be introduced:"},{"line_number":290,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_24050612","line":287,"range":{"start_line":287,"start_character":54,"end_line":287,"end_character":61},"updated":"2020-06-23 09:34:24.000000000","message":"can\u0027t be","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":284,"context_line":"          have an IPv6 address which is allocated from an Address Scope. Before"},{"line_number":285,"context_line":"          set ``enable_ndp_proxy`` from True to False, Neutron need to check"},{"line_number":286,"context_line":"          the router if has any ndp proxy, if the router have one or more ndp"},{"line_number":287,"context_line":"          proxies, the ``enable_ndp_proxy`` parameter mustn\u0027t set as False."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"For the new sub resource \u0027ndp_proxy\u0027, some new URLs will be introduced:"},{"line_number":290,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_640b7e23","line":287,"range":{"start_line":287,"start_character":66,"end_line":287,"end_character":68},"updated":"2020-06-23 09:34:24.000000000","message":"to","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":284,"context_line":"          have an IPv6 address which is allocated from an Address Scope. Before"},{"line_number":285,"context_line":"          set ``enable_ndp_proxy`` from True to False, Neutron need to check"},{"line_number":286,"context_line":"          the router if has any ndp proxy, if the router have one or more ndp"},{"line_number":287,"context_line":"          proxies, the ``enable_ndp_proxy`` parameter mustn\u0027t set as False."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"For the new sub resource \u0027ndp_proxy\u0027, some new URLs will be introduced:"},{"line_number":290,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_3cd50be6","line":287,"range":{"start_line":287,"start_character":54,"end_line":287,"end_character":61},"in_reply_to":"bf51134e_24050612","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":284,"context_line":"          have an IPv6 address which is allocated from an Address Scope. Before"},{"line_number":285,"context_line":"          set ``enable_ndp_proxy`` from True to False, Neutron need to check"},{"line_number":286,"context_line":"          the router if has any ndp proxy, if the router have one or more ndp"},{"line_number":287,"context_line":"          proxies, the ``enable_ndp_proxy`` parameter mustn\u0027t set as False."},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"For the new sub resource \u0027ndp_proxy\u0027, some new URLs will be introduced:"},{"line_number":290,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_9c07f782","line":287,"range":{"start_line":287,"start_character":66,"end_line":287,"end_character":68},"in_reply_to":"bf51134e_640b7e23","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                \"id\": \"ae34051f-aa6c-4c75-abf5-50dc9ac99ef3\","},{"line_number":302,"context_line":"                \"port\": \"fa450s1f-aa6c-4c75-abf5-50dc9ac9df67\","},{"line_number":303,"context_line":"                \"ip_address\": \"2001:217::19\","},{"line_number":304,"context_line":"                \"description\": \"\""},{"line_number":305,"context_line":"            },"},{"line_number":306,"context_line":"            {"},{"line_number":307,"context_line":"                \"id\": \"915a14a6-867b-4af7-83d1-70efceb146f9\","}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_a410f64f","line":304,"range":{"start_line":304,"start_character":17,"end_line":304,"end_character":28},"updated":"2020-06-23 09:34:24.000000000","message":"do we really need this description field for ndp_entry?","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":301,"context_line":"                \"id\": \"ae34051f-aa6c-4c75-abf5-50dc9ac99ef3\","},{"line_number":302,"context_line":"                \"port\": \"fa450s1f-aa6c-4c75-abf5-50dc9ac9df67\","},{"line_number":303,"context_line":"                \"ip_address\": \"2001:217::19\","},{"line_number":304,"context_line":"                \"description\": \"\""},{"line_number":305,"context_line":"            },"},{"line_number":306,"context_line":"            {"},{"line_number":307,"context_line":"                \"id\": \"915a14a6-867b-4af7-83d1-70efceb146f9\","}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_9c15379f","line":304,"range":{"start_line":304,"start_character":17,"end_line":304,"end_character":28},"in_reply_to":"bf51134e_a410f64f","updated":"2020-06-24 02:06:48.000000000","message":"I just want provid more functions to user. But I don\u0027t insist on it. I want to know other people\u0027s opinions about if we need this parameter.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        }"},{"line_number":345,"context_line":"   }"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"Because the IPv6 addreess communicate with external network by route forward,"},{"line_number":348,"context_line":"So the Address Scopes [5]_ need to be used to ensure the ``ip_address`` is"},{"line_number":349,"context_line":"unique and can be routed by upstream router. So there are some constraints"},{"line_number":350,"context_line":"here:"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_44291a88","line":347,"range":{"start_line":347,"start_character":17,"end_line":347,"end_character":25},"updated":"2020-06-23 09:34:24.000000000","message":"address","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":344,"context_line":"        }"},{"line_number":345,"context_line":"   }"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"Because the IPv6 addreess communicate with external network by route forward,"},{"line_number":348,"context_line":"So the Address Scopes [5]_ need to be used to ensure the ``ip_address`` is"},{"line_number":349,"context_line":"unique and can be routed by upstream router. So there are some constraints"},{"line_number":350,"context_line":"here:"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_7c1ae3cb","line":347,"range":{"start_line":347,"start_character":17,"end_line":347,"end_character":25},"in_reply_to":"bf51134e_44291a88","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":354,"context_line":"* The subnet that the ``ip_address`` allocated from must be added to the"},{"line_number":355,"context_line":"  router."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"* The ``ip_address`` must be allocated from an Address Scope which same with"},{"line_number":358,"context_line":"  router\u0027s IPv6 gateway address\u0027s Address Scope"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"The response body::"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_32b0bd8a","line":357,"range":{"start_line":357,"start_character":67,"end_line":357,"end_character":71},"updated":"2020-06-22 08:57:25.000000000","message":"is consistent","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":354,"context_line":"* The subnet that the ``ip_address`` allocated from must be added to the"},{"line_number":355,"context_line":"  router."},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"* The ``ip_address`` must be allocated from an Address Scope which same with"},{"line_number":358,"context_line":"  router\u0027s IPv6 gateway address\u0027s Address Scope"},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"The response body::"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_dc0b2f7a","line":357,"range":{"start_line":357,"start_character":67,"end_line":357,"end_character":71},"in_reply_to":"bf51134e_32b0bd8a","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":401,"context_line":"This operation does not accept a request body and does not return a response"},{"line_number":402,"context_line":"body."},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"Addtional, if router or port be deleted, the ndp proxies which relational with"},{"line_number":405,"context_line":"them will be delete cascade."},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"Effects on Existing Router IP APIs"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_72a7d5a8","line":404,"range":{"start_line":404,"start_character":11,"end_line":404,"end_character":39},"updated":"2020-06-22 08:57:25.000000000","message":"if a router or port will be deleted","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":401,"context_line":"This operation does not accept a request body and does not return a response"},{"line_number":402,"context_line":"body."},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"Addtional, if router or port be deleted, the ndp proxies which relational with"},{"line_number":405,"context_line":"them will be delete cascade."},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"Effects on Existing Router IP APIs"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_32a1dd95","line":404,"range":{"start_line":404,"start_character":0,"end_line":404,"end_character":9},"updated":"2020-06-22 08:57:25.000000000","message":"s/Addtionally","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":401,"context_line":"This operation does not accept a request body and does not return a response"},{"line_number":402,"context_line":"body."},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"Addtional, if router or port be deleted, the ndp proxies which relational with"},{"line_number":405,"context_line":"them will be delete cascade."},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"Effects on Existing Router IP APIs"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_bc10fba9","line":404,"range":{"start_line":404,"start_character":0,"end_line":404,"end_character":9},"in_reply_to":"bf51134e_32a1dd95","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":401,"context_line":"This operation does not accept a request body and does not return a response"},{"line_number":402,"context_line":"body."},{"line_number":403,"context_line":""},{"line_number":404,"context_line":"Addtional, if router or port be deleted, the ndp proxies which relational with"},{"line_number":405,"context_line":"them will be delete cascade."},{"line_number":406,"context_line":""},{"line_number":407,"context_line":"Effects on Existing Router IP APIs"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_1c2927e5","line":404,"range":{"start_line":404,"start_character":11,"end_line":404,"end_character":39},"in_reply_to":"bf51134e_72a7d5a8","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":407,"context_line":"Effects on Existing Router IP APIs"},{"line_number":408,"context_line":"----------------------------------"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"* If the router\u0027s ``enable_ndp_proxy`` is True, it\u0027s external gateway mustn\u0027t"},{"line_number":411,"context_line":"  be unset."},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* Before remove the subnet from a router, neutron should check whether has any"},{"line_number":414,"context_line":"  ndp proxy relate to the subnet (whether the ndp proxy\u0027s ``ip_address`` was"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_92c38938","line":411,"range":{"start_line":410,"start_character":0,"end_line":411,"end_character":11},"updated":"2020-06-22 08:57:25.000000000","message":"What about \"if router has no external gateway, the  ``enable_ndp_proxy`` can be set to True\"？","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":407,"context_line":"Effects on Existing Router IP APIs"},{"line_number":408,"context_line":"----------------------------------"},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"* If the router\u0027s ``enable_ndp_proxy`` is True, it\u0027s external gateway mustn\u0027t"},{"line_number":411,"context_line":"  be unset."},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* Before remove the subnet from a router, neutron should check whether has any"},{"line_number":414,"context_line":"  ndp proxy relate to the subnet (whether the ndp proxy\u0027s ``ip_address`` was"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_7c68231c","line":411,"range":{"start_line":410,"start_character":0,"end_line":411,"end_character":11},"in_reply_to":"bf51134e_92c38938","updated":"2020-06-24 02:06:48.000000000","message":"Nope, this section describes that the effects on router APIs.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":411,"context_line":"  be unset."},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* Before remove the subnet from a router, neutron should check whether has any"},{"line_number":414,"context_line":"  ndp proxy relate to the subnet (whether the ndp proxy\u0027s ``ip_address`` was"},{"line_number":415,"context_line":"  allocated from the subnet)."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"L3 Agent Impact"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_b2e32dd9","line":414,"range":{"start_line":414,"start_character":12,"end_line":414,"end_character":18},"updated":"2020-06-22 08:57:25.000000000","message":"s/related","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":411,"context_line":"  be unset."},{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* Before remove the subnet from a router, neutron should check whether has any"},{"line_number":414,"context_line":"  ndp proxy relate to the subnet (whether the ndp proxy\u0027s ``ip_address`` was"},{"line_number":415,"context_line":"  allocated from the subnet)."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"L3 Agent Impact"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_dc596f8e","line":414,"range":{"start_line":414,"start_character":12,"end_line":414,"end_character":18},"in_reply_to":"bf51134e_b2e32dd9","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* Before remove the subnet from a router, neutron should check whether has any"},{"line_number":414,"context_line":"  ndp proxy relate to the subnet (whether the ndp proxy\u0027s ``ip_address`` was"},{"line_number":415,"context_line":"  allocated from the subnet)."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"L3 Agent Impact"},{"line_number":418,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_12e5b9dc","line":415,"range":{"start_line":415,"start_character":28,"end_line":415,"end_character":29},"updated":"2020-06-22 08:57:25.000000000","message":"Then what? The subnet will still be allowed to remove from the router?","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":412,"context_line":""},{"line_number":413,"context_line":"* Before remove the subnet from a router, neutron should check whether has any"},{"line_number":414,"context_line":"  ndp proxy relate to the subnet (whether the ndp proxy\u0027s ``ip_address`` was"},{"line_number":415,"context_line":"  allocated from the subnet)."},{"line_number":416,"context_line":""},{"line_number":417,"context_line":"L3 Agent Impact"},{"line_number":418,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_fc539369","line":415,"range":{"start_line":415,"start_character":28,"end_line":415,"end_character":29},"in_reply_to":"bf51134e_12e5b9dc","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":440,"context_line":"Assume the router\u0027s external gateway device is ``qg-733bd76b-62``:"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"* If the router\u0027s parameter ``enable_ndp_proxy`` is true, the `l3-agent` need"},{"line_number":443,"context_line":"  to set the kernal parameter ``proxy_ndp`` as ``1`` in the router\u0027s qrouter-*"},{"line_number":444,"context_line":"  namespace, create a custom chain named ``neutron-l3-agent-NDP`` and set a"},{"line_number":445,"context_line":"  default iptables rule in it to drop all packets input from the router\u0027s"},{"line_number":446,"context_line":"  external gateway device. The executed commands like below::"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_e42f8e85","line":443,"range":{"start_line":443,"start_character":13,"end_line":443,"end_character":19},"updated":"2020-06-23 09:34:24.000000000","message":"kernel","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":440,"context_line":"Assume the router\u0027s external gateway device is ``qg-733bd76b-62``:"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"* If the router\u0027s parameter ``enable_ndp_proxy`` is true, the `l3-agent` need"},{"line_number":443,"context_line":"  to set the kernal parameter ``proxy_ndp`` as ``1`` in the router\u0027s qrouter-*"},{"line_number":444,"context_line":"  namespace, create a custom chain named ``neutron-l3-agent-NDP`` and set a"},{"line_number":445,"context_line":"  default iptables rule in it to drop all packets input from the router\u0027s"},{"line_number":446,"context_line":"  external gateway device. The executed commands like below::"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_5c4d5fc2","line":443,"range":{"start_line":443,"start_character":13,"end_line":443,"end_character":19},"in_reply_to":"bf51134e_e42f8e85","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":441,"context_line":""},{"line_number":442,"context_line":"* If the router\u0027s parameter ``enable_ndp_proxy`` is true, the `l3-agent` need"},{"line_number":443,"context_line":"  to set the kernal parameter ``proxy_ndp`` as ``1`` in the router\u0027s qrouter-*"},{"line_number":444,"context_line":"  namespace, create a custom chain named ``neutron-l3-agent-NDP`` and set a"},{"line_number":445,"context_line":"  default iptables rule in it to drop all packets input from the router\u0027s"},{"line_number":446,"context_line":"  external gateway device. The executed commands like below::"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    sysctl -w net.ipv6.conf.qg-733bd76b-62.proxy_ndp\u003d1"},{"line_number":449,"context_line":"    ip6tables -N neutron-l3-agent-NDP"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_728d15d2","line":446,"range":{"start_line":444,"start_character":70,"end_line":446,"end_character":25},"updated":"2020-06-22 08:57:25.000000000","message":"Because of what?","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8ef43affd2e0977d892682be881870d4026a4e6b","unresolved":false,"context_lines":[{"line_number":441,"context_line":""},{"line_number":442,"context_line":"* If the router\u0027s parameter ``enable_ndp_proxy`` is true, the `l3-agent` need"},{"line_number":443,"context_line":"  to set the kernal parameter ``proxy_ndp`` as ``1`` in the router\u0027s qrouter-*"},{"line_number":444,"context_line":"  namespace, create a custom chain named ``neutron-l3-agent-NDP`` and set a"},{"line_number":445,"context_line":"  default iptables rule in it to drop all packets input from the router\u0027s"},{"line_number":446,"context_line":"  external gateway device. The executed commands like below::"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    sysctl -w net.ipv6.conf.qg-733bd76b-62.proxy_ndp\u003d1"},{"line_number":449,"context_line":"    ip6tables -N neutron-l3-agent-NDP"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_ba71340f","line":446,"range":{"start_line":444,"start_character":70,"end_line":446,"end_character":25},"in_reply_to":"bf51134e_728d15d2","updated":"2020-06-23 02:12:59.000000000","message":"I described the reason in line 72-75.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    sysctl -w net.ipv6.conf.qg-733bd76b-62.proxy_ndp\u003d1"},{"line_number":449,"context_line":"    ip6tables -N neutron-l3-agent-NDP"},{"line_number":450,"context_line":"    ip6tables -A neutron-l3-agent-NDP -i qg-733bd76b-62 -j DROP"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"* When add the IPv6 subnet to the router (the router\u0027s ``enable_ndp_proxy``"},{"line_number":453,"context_line":"  already set as true), Before user advertise the subnet\u0027s address with ndp"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_929c296b","line":450,"range":{"start_line":450,"start_character":4,"end_line":450,"end_character":63},"updated":"2020-06-22 08:57:25.000000000","message":"What about the egress, aka traffic from the VM to the outside world?","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8ef43affd2e0977d892682be881870d4026a4e6b","unresolved":false,"context_lines":[{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    sysctl -w net.ipv6.conf.qg-733bd76b-62.proxy_ndp\u003d1"},{"line_number":449,"context_line":"    ip6tables -N neutron-l3-agent-NDP"},{"line_number":450,"context_line":"    ip6tables -A neutron-l3-agent-NDP -i qg-733bd76b-62 -j DROP"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"* When add the IPv6 subnet to the router (the router\u0027s ``enable_ndp_proxy``"},{"line_number":453,"context_line":"  already set as true), Before user advertise the subnet\u0027s address with ndp"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_5ab6188c","line":450,"range":{"start_line":450,"start_character":4,"end_line":450,"end_character":63},"in_reply_to":"bf51134e_929c296b","updated":"2020-06-23 02:12:59.000000000","message":"We needn\u0027t care the egress traffic. The feature\u0027s goal is that controll the traffic of outside world access VM.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":454,"context_line":"  proxy, the subnet shoud drop all external traffic. So, the following cmd"},{"line_number":455,"context_line":"  should be executed::"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    ip6tables -I neutron-l3-agent-FORWARD -i qg-733bd76b-62 --destination 2001::1:0/112 -j neutron-l3-agent-NDP"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"  By this, we can eliminate the effect of extra route and neighbor entries in"},{"line_number":460,"context_line":"  upstream router."}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_32cefd81","line":457,"range":{"start_line":457,"start_character":91,"end_line":457,"end_character":111},"updated":"2020-06-22 08:57:25.000000000","message":"Why not directly drop?","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8ef43affd2e0977d892682be881870d4026a4e6b","unresolved":false,"context_lines":[{"line_number":454,"context_line":"  proxy, the subnet shoud drop all external traffic. So, the following cmd"},{"line_number":455,"context_line":"  should be executed::"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    ip6tables -I neutron-l3-agent-FORWARD -i qg-733bd76b-62 --destination 2001::1:0/112 -j neutron-l3-agent-NDP"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"  By this, we can eliminate the effect of extra route and neighbor entries in"},{"line_number":460,"context_line":"  upstream router."}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_3a3ec4d9","line":457,"range":{"start_line":457,"start_character":91,"end_line":457,"end_character":111},"in_reply_to":"bf51134e_32cefd81","updated":"2020-06-23 02:12:59.000000000","message":"In order to achieve this function, more rules are needed to add subsequently. And I wish all rules about ndp proxy local in one chain.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"f68019628cef616620094eee4298d65dc637e7a5","unresolved":false,"context_lines":[{"line_number":472,"context_line":"For DVR [6]_ router, it\u0027s a little different from legacy and HA router. Because"},{"line_number":473,"context_line":"of the IPv6 don\u0027t support any NAT action, the network node is dispensable. Due"},{"line_number":474,"context_line":"to the traffic need to be processed in local compute node so the `agent_mode`"},{"line_number":475,"context_line":"just support `dvr`, mustn\u0027t be set as `dvr_no_external`. So, the all following"},{"line_number":476,"context_line":"actions of ndp proxy was executed at compute nodes."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"Assume the fip-* namespace\u0027s fg-* port is ``fg-84920cf6-5e``; the port connect"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_0448c259","line":475,"range":{"start_line":475,"start_character":20,"end_line":475,"end_character":27},"updated":"2020-06-23 09:34:24.000000000","message":"can\u0027t IMO","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":472,"context_line":"For DVR [6]_ router, it\u0027s a little different from legacy and HA router. Because"},{"line_number":473,"context_line":"of the IPv6 don\u0027t support any NAT action, the network node is dispensable. Due"},{"line_number":474,"context_line":"to the traffic need to be processed in local compute node so the `agent_mode`"},{"line_number":475,"context_line":"just support `dvr`, mustn\u0027t be set as `dvr_no_external`. So, the all following"},{"line_number":476,"context_line":"actions of ndp proxy was executed at compute nodes."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"Assume the fip-* namespace\u0027s fg-* port is ``fg-84920cf6-5e``; the port connect"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_1cdc87e2","line":475,"range":{"start_line":475,"start_character":20,"end_line":475,"end_character":27},"in_reply_to":"bf51134e_0448c259","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":475,"context_line":"just support `dvr`, mustn\u0027t be set as `dvr_no_external`. So, the all following"},{"line_number":476,"context_line":"actions of ndp proxy was executed at compute nodes."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"Assume the fip-* namespace\u0027s fg-* port is ``fg-84920cf6-5e``; the port connect"},{"line_number":479,"context_line":"fip-* namespace to router-* namespace is ``fpr-ea902fe0-9`` and it\u0027s IPv6"},{"line_number":480,"context_line":"address is ``fe80::8493:5bff:fe9b:8d93``; the port connect router-* namespace"},{"line_number":481,"context_line":"to fip-* namespace is ``rfp-ea902fe0-9`` and it\u0027s IPv6 address is"},{"line_number":482,"context_line":"``fe80::a0a7:c5ff:fe2c:bade``."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"* Due to the current Neutron don\u0027t support dvr with IPv6, the qrouter-* have no"},{"line_number":485,"context_line":"  default route about IPv6. We should add the default route firstly if the"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_f2592535","line":482,"range":{"start_line":478,"start_character":0,"end_line":482,"end_character":30},"updated":"2020-06-22 08:57:25.000000000","message":"Try this web site to add some figure for the topology \nhttp://asciiflow.com/\n\nThis should be a good example:\nhttps://review.opendev.org/#/c/531074/4/specs/rocky/vpn-services-support-qos.rst@40","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":475,"context_line":"just support `dvr`, mustn\u0027t be set as `dvr_no_external`. So, the all following"},{"line_number":476,"context_line":"actions of ndp proxy was executed at compute nodes."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"Assume the fip-* namespace\u0027s fg-* port is ``fg-84920cf6-5e``; the port connect"},{"line_number":479,"context_line":"fip-* namespace to router-* namespace is ``fpr-ea902fe0-9`` and it\u0027s IPv6"},{"line_number":480,"context_line":"address is ``fe80::8493:5bff:fe9b:8d93``; the port connect router-* namespace"},{"line_number":481,"context_line":"to fip-* namespace is ``rfp-ea902fe0-9`` and it\u0027s IPv6 address is"},{"line_number":482,"context_line":"``fe80::a0a7:c5ff:fe2c:bade``."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"* Due to the current Neutron don\u0027t support dvr with IPv6, the qrouter-* have no"},{"line_number":485,"context_line":"  default route about IPv6. We should add the default route firstly if the"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_fcd8b3ef","line":482,"range":{"start_line":478,"start_character":0,"end_line":482,"end_character":30},"in_reply_to":"bf51134e_f2592535","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8ef43affd2e0977d892682be881870d4026a4e6b","unresolved":false,"context_lines":[{"line_number":475,"context_line":"just support `dvr`, mustn\u0027t be set as `dvr_no_external`. So, the all following"},{"line_number":476,"context_line":"actions of ndp proxy was executed at compute nodes."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"Assume the fip-* namespace\u0027s fg-* port is ``fg-84920cf6-5e``; the port connect"},{"line_number":479,"context_line":"fip-* namespace to router-* namespace is ``fpr-ea902fe0-9`` and it\u0027s IPv6"},{"line_number":480,"context_line":"address is ``fe80::8493:5bff:fe9b:8d93``; the port connect router-* namespace"},{"line_number":481,"context_line":"to fip-* namespace is ``rfp-ea902fe0-9`` and it\u0027s IPv6 address is"},{"line_number":482,"context_line":"``fe80::a0a7:c5ff:fe2c:bade``."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"* Due to the current Neutron don\u0027t support dvr with IPv6, the qrouter-* have no"},{"line_number":485,"context_line":"  default route about IPv6. We should add the default route firstly if the"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_7a231cbe","line":482,"range":{"start_line":478,"start_character":0,"end_line":482,"end_character":30},"in_reply_to":"bf51134e_f2592535","updated":"2020-06-23 02:12:59.000000000","message":"Thinks, I will try to draw the topology.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":481,"context_line":"to fip-* namespace is ``rfp-ea902fe0-9`` and it\u0027s IPv6 address is"},{"line_number":482,"context_line":"``fe80::a0a7:c5ff:fe2c:bade``."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"* Due to the current Neutron don\u0027t support dvr with IPv6, the qrouter-* have no"},{"line_number":485,"context_line":"  default route about IPv6. We should add the default route firstly if the"},{"line_number":486,"context_line":"  router set external gateway, the default route\u0027s next-hope shoule be the"},{"line_number":487,"context_line":"  fpr-* device\u0027s IPv6 address, The executed command like this::"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_d277c19f","line":484,"range":{"start_line":484,"start_character":62,"end_line":484,"end_character":71},"updated":"2020-06-22 08:57:25.000000000","message":"I suggest do not use such \"xxx-*\" for the entire main content, you may change these to:\n\"qrouter-namespace\"\n\"fip-namespace\"\n\"fp-dev\"\n\"rfp-dev\"","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":481,"context_line":"to fip-* namespace is ``rfp-ea902fe0-9`` and it\u0027s IPv6 address is"},{"line_number":482,"context_line":"``fe80::a0a7:c5ff:fe2c:bade``."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"* Due to the current Neutron don\u0027t support dvr with IPv6, the qrouter-* have no"},{"line_number":485,"context_line":"  default route about IPv6. We should add the default route firstly if the"},{"line_number":486,"context_line":"  router set external gateway, the default route\u0027s next-hope shoule be the"},{"line_number":487,"context_line":"  fpr-* device\u0027s IPv6 address, The executed command like this::"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_9cf1b76e","line":484,"range":{"start_line":484,"start_character":62,"end_line":484,"end_character":71},"in_reply_to":"bf51134e_d277c19f","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8ef43affd2e0977d892682be881870d4026a4e6b","unresolved":false,"context_lines":[{"line_number":481,"context_line":"to fip-* namespace is ``rfp-ea902fe0-9`` and it\u0027s IPv6 address is"},{"line_number":482,"context_line":"``fe80::a0a7:c5ff:fe2c:bade``."},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"* Due to the current Neutron don\u0027t support dvr with IPv6, the qrouter-* have no"},{"line_number":485,"context_line":"  default route about IPv6. We should add the default route firstly if the"},{"line_number":486,"context_line":"  router set external gateway, the default route\u0027s next-hope shoule be the"},{"line_number":487,"context_line":"  fpr-* device\u0027s IPv6 address, The executed command like this::"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_ba29349c","line":484,"range":{"start_line":484,"start_character":62,"end_line":484,"end_character":71},"in_reply_to":"bf51134e_d277c19f","updated":"2020-06-23 02:12:59.000000000","message":"OK","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":483,"context_line":""},{"line_number":484,"context_line":"* Due to the current Neutron don\u0027t support dvr with IPv6, the qrouter-* have no"},{"line_number":485,"context_line":"  default route about IPv6. We should add the default route firstly if the"},{"line_number":486,"context_line":"  router set external gateway, the default route\u0027s next-hope shoule be the"},{"line_number":487,"context_line":"  fpr-* device\u0027s IPv6 address, The executed command like this::"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"    ip route add default via fe80::8493:5bff:fe9b:8d93 dev rfp-ea902fe0-9"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_5242913f","line":486,"range":{"start_line":486,"start_character":56,"end_line":486,"end_character":60},"updated":"2020-06-22 08:57:25.000000000","message":"hop","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":483,"context_line":""},{"line_number":484,"context_line":"* Due to the current Neutron don\u0027t support dvr with IPv6, the qrouter-* have no"},{"line_number":485,"context_line":"  default route about IPv6. We should add the default route firstly if the"},{"line_number":486,"context_line":"  router set external gateway, the default route\u0027s next-hope shoule be the"},{"line_number":487,"context_line":"  fpr-* device\u0027s IPv6 address, The executed command like this::"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"    ip route add default via fe80::8493:5bff:fe9b:8d93 dev rfp-ea902fe0-9"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_3cdfcbd6","line":486,"range":{"start_line":486,"start_character":56,"end_line":486,"end_character":60},"in_reply_to":"bf51134e_5242913f","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    sysctl -w net.ipv6.conf.fg-84920cf6-5e.proxy_ndp\u003d1"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"* If a router\u0027s parameter ``enable_ndp_proxy`` is true, the ``l3-agent`` just"},{"line_number":498,"context_line":"  need to add some iptable rules to qrouter-* namespace of all nodes::"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"    ip6tables -N neutron-l3-agent-NDP"},{"line_number":501,"context_line":"    ip6tables -A neutron-l3-agent-NDP -i rfp-ea902fe0-9 -j DROP"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"* When add a IPv6 subnet to the router, the following cmd should be executed in"},{"line_number":504,"context_line":"  all qrouter-* namespace::"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"    ip6tables -I neutron-l3-agent-FORWARD -i rfp-ea902fe0-9 --destination 2001::1:0/112 -j neutron-l3-agent-NDP"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"* For each ndp proxies the extension add a proxy entry to the fg-* in fip-*"},{"line_number":509,"context_line":"  namespace, the proxy entry just add to one namespace which hosted in the node"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_32db9d7c","line":506,"range":{"start_line":497,"start_character":0,"end_line":506,"end_character":111},"updated":"2020-06-22 08:57:25.000000000","message":"Why these ip6tables rules are needed for dvr in compute node? IMO adding or removing the route in fip-namespace can be the switch for enable/disable the IPv6 traffic, aka the work of line 518.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8ef43affd2e0977d892682be881870d4026a4e6b","unresolved":false,"context_lines":[{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    sysctl -w net.ipv6.conf.fg-84920cf6-5e.proxy_ndp\u003d1"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"* If a router\u0027s parameter ``enable_ndp_proxy`` is true, the ``l3-agent`` just"},{"line_number":498,"context_line":"  need to add some iptable rules to qrouter-* namespace of all nodes::"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"    ip6tables -N neutron-l3-agent-NDP"},{"line_number":501,"context_line":"    ip6tables -A neutron-l3-agent-NDP -i rfp-ea902fe0-9 -j DROP"},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"* When add a IPv6 subnet to the router, the following cmd should be executed in"},{"line_number":504,"context_line":"  all qrouter-* namespace::"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"    ip6tables -I neutron-l3-agent-FORWARD -i rfp-ea902fe0-9 --destination 2001::1:0/112 -j neutron-l3-agent-NDP"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"* For each ndp proxies the extension add a proxy entry to the fg-* in fip-*"},{"line_number":509,"context_line":"  namespace, the proxy entry just add to one namespace which hosted in the node"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_d51af96c","line":506,"range":{"start_line":497,"start_character":0,"end_line":506,"end_character":111},"in_reply_to":"bf51134e_32db9d7c","updated":"2020-06-23 02:12:59.000000000","message":"Yep, you are right.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":517,"context_line":"    ip -6 neigh add proxy 2001::1:8 dev fg-84920cf6-5e"},{"line_number":518,"context_line":"    ip route add 2001::1:8 via fe80::a0a7:c5ff:fe2c:bade dev fpr-ea902fe0-9"},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"  In qrouter-* namespace::"},{"line_number":521,"context_line":""},{"line_number":522,"context_line":"    ip6tables -I neutron-l3-agent-NDP -i rfp-ea902fe0-9 --destination 2001::1:8 -j ACCEPT"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_d2d3415f","line":522,"range":{"start_line":520,"start_character":0,"end_line":522,"end_character":89},"updated":"2020-06-22 08:57:25.000000000","message":"ditto","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":521,"context_line":""},{"line_number":522,"context_line":"    ip6tables -I neutron-l3-agent-NDP -i rfp-ea902fe0-9 --destination 2001::1:8 -j ACCEPT"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"Implementation"},{"line_number":526,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":527,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_853345f6","line":524,"updated":"2020-06-22 08:57:25.000000000","message":"Please add a section to describe the workflow of the user to enable/disable/add/remove such fuction in their own router.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"b3cdd78fbea39cf319765604b464f2eefedc2945","unresolved":false,"context_lines":[{"line_number":521,"context_line":""},{"line_number":522,"context_line":"    ip6tables -I neutron-l3-agent-NDP -i rfp-ea902fe0-9 --destination 2001::1:8 -j ACCEPT"},{"line_number":523,"context_line":""},{"line_number":524,"context_line":""},{"line_number":525,"context_line":"Implementation"},{"line_number":526,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":527,"context_line":""}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_7cf66365","line":524,"in_reply_to":"bf51134e_853345f6","updated":"2020-06-24 02:06:48.000000000","message":"Done","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"be15b62ecf98450779e6bea044c50e0e3f46b1e7","unresolved":false,"context_lines":[{"line_number":570,"context_line":"Needs devref documentation"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":""},{"line_number":573,"context_line":"References"},{"line_number":574,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":".. [1] https://tools.ietf.org/html/rfc4389"},{"line_number":577,"context_line":".. [2] https://tools.ietf.org/html/rfc1027"}],"source_content_type":"text/x-rst","patch_set":13,"id":"bf51134e_e5596135","line":574,"range":{"start_line":573,"start_character":0,"end_line":574,"end_character":10},"updated":"2020-06-22 08:57:25.000000000","message":"If you have any POC commits, it\u0027s better to submit earlier and add some refs to here.","commit_id":"2d8c85f64ad6916e9cf1e7ea8fd5621d9000f88c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"84d4711c0d72c52a902b2850d577108fe703e959","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  spec description. Administrator can enable the feature by append the plugin"},{"line_number":56,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":60,"context_line":"  extension we also needs to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":61,"context_line":"  ``router external gateway``, the parameter is a mark, if it is set to true,"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9f560f44_24a692ac","line":58,"range":{"start_line":58,"start_character":12,"end_line":58,"end_character":13},"updated":"2020-08-24 10:46:12.000000000","message":"nitty nit: \"an\"","commit_id":"ccff60fa255a2caeafa34368ccc3cebc72d14093"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"cc89e32ea081a62a26818f68fa40c4c8c28a466d","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  spec description. Administrator can enable the feature by append the plugin"},{"line_number":56,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":60,"context_line":"  extension we also needs to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":61,"context_line":"  ``router external gateway``, the parameter is a mark, if it is set to true,"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9f560f44_9bdec66a","line":58,"range":{"start_line":58,"start_character":12,"end_line":58,"end_character":13},"in_reply_to":"9f560f44_24a692ac","updated":"2020-08-25 11:25:10.000000000","message":"Done","commit_id":"ccff60fa255a2caeafa34368ccc3cebc72d14093"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"af16b70d45f5ee2025cd65fe8f543176038e0f19","unresolved":false,"context_lines":[{"line_number":55,"context_line":"  spec description. Administrator can enable the feature by append the plugin"},{"line_number":56,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":60,"context_line":"  extension we also needs to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":61,"context_line":"  ``router external gateway``, the parameter is a mark, if it is set to true,"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9f560f44_6f306357","line":58,"range":{"start_line":58,"start_character":12,"end_line":58,"end_character":13},"in_reply_to":"9f560f44_24a692ac","updated":"2020-08-24 11:54:56.000000000","message":"Thinks.","commit_id":"ccff60fa255a2caeafa34368ccc3cebc72d14093"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"84d4711c0d72c52a902b2850d577108fe703e959","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":60,"context_line":"  extension we also needs to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":61,"context_line":"  ``router external gateway``, the parameter is a mark, if it is set to true,"},{"line_number":62,"context_line":"  means the router only support publishing ipv6 address by ndp proxy. And only"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9f560f44_e4c81a56","line":59,"range":{"start_line":59,"start_character":25,"end_line":59,"end_character":66},"updated":"2020-08-24 10:46:12.000000000","message":"I would say \"as the sub-resource of the ``router``\"","commit_id":"ccff60fa255a2caeafa34368ccc3cebc72d14093"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"cc89e32ea081a62a26818f68fa40c4c8c28a466d","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":60,"context_line":"  extension we also needs to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":61,"context_line":"  ``router external gateway``, the parameter is a mark, if it is set to true,"},{"line_number":62,"context_line":"  means the router only support publishing ipv6 address by ndp proxy. And only"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9f560f44_7bd93281","line":59,"range":{"start_line":59,"start_character":25,"end_line":59,"end_character":66},"in_reply_to":"9f560f44_e4c81a56","updated":"2020-08-25 11:25:10.000000000","message":"Done","commit_id":"ccff60fa255a2caeafa34368ccc3cebc72d14093"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"af16b70d45f5ee2025cd65fe8f543176038e0f19","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":60,"context_line":"  extension we also needs to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":61,"context_line":"  ``router external gateway``, the parameter is a mark, if it is set to true,"},{"line_number":62,"context_line":"  means the router only support publishing ipv6 address by ndp proxy. And only"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9f560f44_4f1e3fbb","line":59,"range":{"start_line":59,"start_character":25,"end_line":59,"end_character":66},"in_reply_to":"9f560f44_e4c81a56","updated":"2020-08-24 11:54:56.000000000","message":"Thinks","commit_id":"ccff60fa255a2caeafa34368ccc3cebc72d14093"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"84d4711c0d72c52a902b2850d577108fe703e959","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":60,"context_line":"  extension we also needs to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":61,"context_line":"  ``router external gateway``, the parameter is a mark, if it is set to true,"},{"line_number":62,"context_line":"  means the router only support publishing ipv6 address by ndp proxy. And only"},{"line_number":63,"context_line":"  when ``enable_ndp_proxy`` set to True, the ndp proxy can be created in the"},{"line_number":64,"context_line":"  router. Additionally, the ``router external gateway``\u0027s network should be"},{"line_number":65,"context_line":"  associated a IPv6 address scope [5]_, we need ensure the IPv6 address\u0027s"},{"line_number":66,"context_line":"  uniqueness by address scope."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Agent Side"},{"line_number":69,"context_line":"~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9f560f44_84ddde15","line":66,"range":{"start_line":59,"start_character":68,"end_line":66,"end_character":30},"updated":"2020-08-24 10:46:12.000000000","message":"I\u0027m not sure if I understand that part. Can You try to maybe rephrase it?","commit_id":"ccff60fa255a2caeafa34368ccc3cebc72d14093"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"cc89e32ea081a62a26818f68fa40c4c8c28a466d","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":60,"context_line":"  extension we also needs to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":61,"context_line":"  ``router external gateway``, the parameter is a mark, if it is set to true,"},{"line_number":62,"context_line":"  means the router only support publishing ipv6 address by ndp proxy. And only"},{"line_number":63,"context_line":"  when ``enable_ndp_proxy`` set to True, the ndp proxy can be created in the"},{"line_number":64,"context_line":"  router. Additionally, the ``router external gateway``\u0027s network should be"},{"line_number":65,"context_line":"  associated a IPv6 address scope [5]_, we need ensure the IPv6 address\u0027s"},{"line_number":66,"context_line":"  uniqueness by address scope."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Agent Side"},{"line_number":69,"context_line":"~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9f560f44_dbe4be3e","line":66,"range":{"start_line":59,"start_character":68,"end_line":66,"end_character":30},"in_reply_to":"9f560f44_84ddde15","updated":"2020-08-25 11:25:10.000000000","message":"Done","commit_id":"ccff60fa255a2caeafa34368ccc3cebc72d14093"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"af16b70d45f5ee2025cd65fe8f543176038e0f19","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Implement a API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource as the ``router`` resource\u0027s sub resource. And In the"},{"line_number":60,"context_line":"  extension we also needs to extend a parameter named ``enable_ndp_proxy`` to"},{"line_number":61,"context_line":"  ``router external gateway``, the parameter is a mark, if it is set to true,"},{"line_number":62,"context_line":"  means the router only support publishing ipv6 address by ndp proxy. And only"},{"line_number":63,"context_line":"  when ``enable_ndp_proxy`` set to True, the ndp proxy can be created in the"},{"line_number":64,"context_line":"  router. Additionally, the ``router external gateway``\u0027s network should be"},{"line_number":65,"context_line":"  associated a IPv6 address scope [5]_, we need ensure the IPv6 address\u0027s"},{"line_number":66,"context_line":"  uniqueness by address scope."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"Agent Side"},{"line_number":69,"context_line":"~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":17,"id":"9f560f44_0f56075d","line":66,"range":{"start_line":59,"start_character":68,"end_line":66,"end_character":30},"in_reply_to":"9f560f44_84ddde15","updated":"2020-08-24 11:54:56.000000000","message":"I am so sorry for my poor english. I will try to rephrase it.","commit_id":"ccff60fa255a2caeafa34368ccc3cebc72d14093"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"84d4711c0d72c52a902b2850d577108fe703e959","unresolved":false,"context_lines":[{"line_number":479,"context_line":"  address with ndp proxy, the subnet shoud drop all external traffic. So, the"},{"line_number":480,"context_line":"  following cmd should be executed::"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"    ip6tables -I neutron-l3-agent-FORWARD -i qg-733bd76b-62 --destination 2001::1:0/112 -j neutron-l3-agent-NDP"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"  By this, we can eliminate the effect of extra route and neighbor entries in"},{"line_number":485,"context_line":"  upstream router."}],"source_content_type":"text/x-rst","patch_set":17,"id":"9f560f44_a45d827a","line":482,"range":{"start_line":482,"start_character":74,"end_line":482,"end_character":87},"updated":"2020-08-24 10:46:12.000000000","message":"what is this IP exactly?","commit_id":"ccff60fa255a2caeafa34368ccc3cebc72d14093"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"af16b70d45f5ee2025cd65fe8f543176038e0f19","unresolved":false,"context_lines":[{"line_number":479,"context_line":"  address with ndp proxy, the subnet shoud drop all external traffic. So, the"},{"line_number":480,"context_line":"  following cmd should be executed::"},{"line_number":481,"context_line":""},{"line_number":482,"context_line":"    ip6tables -I neutron-l3-agent-FORWARD -i qg-733bd76b-62 --destination 2001::1:0/112 -j neutron-l3-agent-NDP"},{"line_number":483,"context_line":""},{"line_number":484,"context_line":"  By this, we can eliminate the effect of extra route and neighbor entries in"},{"line_number":485,"context_line":"  upstream router."}],"source_content_type":"text/x-rst","patch_set":17,"id":"9f560f44_4ff0ff91","line":482,"range":{"start_line":482,"start_character":74,"end_line":482,"end_character":87},"in_reply_to":"9f560f44_a45d827a","updated":"2020-08-24 11:54:56.000000000","message":"It refers to L451, it is the subnet\u0027s cidr.","commit_id":"ccff60fa255a2caeafa34368ccc3cebc72d14093"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"01a7f885559cf7bfe5ddbd75ff324c9e7e9a5dc5","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  to ``service_plugin`` in Neutron configuration file."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"* Implement an API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource as the sub-resource of the ``router``."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Add a parameter to ``external_gateway_info`` of ``router``, we can named it"},{"line_number":62,"context_line":"  as ``enable_ndp_proxy``. Only the parameter set as ``True``, the ndp proxy"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_80fbe5bb","line":59,"range":{"start_line":59,"start_character":2,"end_line":59,"end_character":44},"updated":"2020-08-28 04:44:29.000000000","message":"This is going to become more and more like the concept of \"floating IPv6\".","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"01a7f885559cf7bfe5ddbd75ff324c9e7e9a5dc5","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  user document."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_801485ea","line":81,"range":{"start_line":81,"start_character":50,"end_line":81,"end_character":51},"updated":"2020-08-28 04:44:29.000000000","message":"an","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"472be7a26c7787e50afaf684ce867fcbb5c96ad8","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  user document."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_581b477f","line":81,"range":{"start_line":81,"start_character":50,"end_line":81,"end_character":51},"in_reply_to":"9f560f44_801485ea","updated":"2020-09-15 02:29:27.000000000","message":"Done","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"851fc48f133c5ad69fd7c34c24ec542ed2ec141a","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  user document."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_c2ebd80f","line":81,"range":{"start_line":81,"start_character":50,"end_line":81,"end_character":51},"in_reply_to":"9f560f44_801485ea","updated":"2020-08-31 11:54:51.000000000","message":"Thanks","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"01a7f885559cf7bfe5ddbd75ff324c9e7e9a5dc5","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_c0d79d22","line":82,"range":{"start_line":82,"start_character":55,"end_line":82,"end_character":61},"updated":"2020-08-28 04:44:29.000000000","message":"permits","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"01a7f885559cf7bfe5ddbd75ff324c9e7e9a5dc5","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_20dbf94e","line":82,"range":{"start_line":82,"start_character":62,"end_line":82,"end_character":70},"updated":"2020-08-28 04:44:29.000000000","message":"those","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"472be7a26c7787e50afaf684ce867fcbb5c96ad8","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_9815df4c","line":82,"range":{"start_line":82,"start_character":62,"end_line":82,"end_character":70},"in_reply_to":"9f560f44_20dbf94e","updated":"2020-09-15 02:29:27.000000000","message":"Done","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"851fc48f133c5ad69fd7c34c24ec542ed2ec141a","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_22f1f402","line":82,"range":{"start_line":82,"start_character":62,"end_line":82,"end_character":70},"in_reply_to":"9f560f44_20dbf94e","updated":"2020-08-31 11:54:51.000000000","message":"thanks","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"472be7a26c7787e50afaf684ce867fcbb5c96ad8","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_b810a35b","line":82,"range":{"start_line":82,"start_character":55,"end_line":82,"end_character":61},"in_reply_to":"9f560f44_c0d79d22","updated":"2020-09-15 02:29:27.000000000","message":"Done","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"851fc48f133c5ad69fd7c34c24ec542ed2ec141a","unresolved":false,"context_lines":[{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."},{"line_number":85,"context_line":""}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_42d7c850","line":82,"range":{"start_line":82,"start_character":55,"end_line":82,"end_character":61},"in_reply_to":"9f560f44_c0d79d22","updated":"2020-08-31 11:54:51.000000000","message":"thanks","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"01a7f885559cf7bfe5ddbd75ff324c9e7e9a5dc5","unresolved":false,"context_lines":[{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data Model Impact"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_00deb53c","line":83,"range":{"start_line":83,"start_character":12,"end_line":83,"end_character":35},"updated":"2020-08-28 04:44:29.000000000","message":"which enabled the ndp_proxy","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"472be7a26c7787e50afaf684ce867fcbb5c96ad8","unresolved":false,"context_lines":[{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data Model Impact"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_f8097b32","line":83,"range":{"start_line":83,"start_character":12,"end_line":83,"end_character":35},"in_reply_to":"9f560f44_00deb53c","updated":"2020-09-15 02:29:27.000000000","message":"Done","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"851fc48f133c5ad69fd7c34c24ec542ed2ec141a","unresolved":false,"context_lines":[{"line_number":80,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data Model Impact"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_a2e4e43d","line":83,"range":{"start_line":83,"start_character":12,"end_line":83,"end_character":35},"in_reply_to":"9f560f44_00deb53c","updated":"2020-08-31 11:54:51.000000000","message":"thanks","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"01a7f885559cf7bfe5ddbd75ff324c9e7e9a5dc5","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data Model Impact"},{"line_number":87,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_e0bd81d8","line":84,"range":{"start_line":84,"start_character":37,"end_line":84,"end_character":75},"updated":"2020-08-28 04:44:29.000000000","message":"bingo~","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"01a7f885559cf7bfe5ddbd75ff324c9e7e9a5dc5","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  at the router\u0027s external gateway device and set a iptables rule to permit the"},{"line_number":82,"context_line":"  relational packets through. By this, the router only permit that the IPv6"},{"line_number":83,"context_line":"  addresses which be added to proxy to communication with external network."},{"line_number":84,"context_line":"  This make the ndp proxy\u0027s behavior is more similar to IPv4\u0027s floating ip."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Data Model Impact"},{"line_number":87,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_40e38d05","line":84,"range":{"start_line":84,"start_character":7,"end_line":84,"end_character":11},"updated":"2020-08-28 04:44:29.000000000","message":"makes","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"01a7f885559cf7bfe5ddbd75ff324c9e7e9a5dc5","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    - List"},{"line_number":184,"context_line":"    - R"},{"line_number":185,"context_line":"    - None"},{"line_number":186,"context_line":"    - The associated \u0027ndp_proxy\u0027 sub-resource with the particular \u0027router\u0027"},{"line_number":187,"context_line":"      resource."},{"line_number":188,"context_line":"  * - enable_ndp_proxy"},{"line_number":189,"context_line":"    - Boolean"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_20265969","line":186,"range":{"start_line":186,"start_character":20,"end_line":186,"end_character":45},"updated":"2020-08-28 04:44:29.000000000","message":"IMO, this can be a top-level resource, something like floating IP...","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"851fc48f133c5ad69fd7c34c24ec542ed2ec141a","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    - List"},{"line_number":184,"context_line":"    - R"},{"line_number":185,"context_line":"    - None"},{"line_number":186,"context_line":"    - The associated \u0027ndp_proxy\u0027 sub-resource with the particular \u0027router\u0027"},{"line_number":187,"context_line":"      resource."},{"line_number":188,"context_line":"  * - enable_ndp_proxy"},{"line_number":189,"context_line":"    - Boolean"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_62cdac85","line":186,"range":{"start_line":186,"start_character":20,"end_line":186,"end_character":45},"in_reply_to":"9f560f44_20265969","updated":"2020-08-31 11:54:51.000000000","message":"I don\u0027t think so, the \"floating ip\" can exist independently, it can be bound to different ports yet. But the \"ndp proxy\" must be bound to a specify router, I can\u0027t image that it\u0027s form if it separated from router (Just retain ID and description?)","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"01a7f885559cf7bfe5ddbd75ff324c9e7e9a5dc5","unresolved":false,"context_lines":[{"line_number":453,"context_line":""},{"line_number":454,"context_line":".. note:: For HA router, the implementation of the feature is same as Legacy"},{"line_number":455,"context_line":"          router, I don\u0027t describe it separately. During failover, the traffic"},{"line_number":456,"context_line":"          will be breaked, but it will recover soon if the failover"},{"line_number":457,"context_line":"          accomplished. So, we needn\u0027t extra process for HA router."},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"Legacy router"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_e085815b","line":456,"range":{"start_line":456,"start_character":39,"end_line":456,"end_character":51},"updated":"2020-08-28 04:44:29.000000000","message":"How could the recovery will be accomplished soon? How the physical world clould know the MAC was moved from one switch-port to another？ So, as this spec saying, NDP is someting like IPv4 ARP. So, IPv4 has GARP, the IPv4 traffic can be recovered soon. The NDP for IPv6 should do the same thing based on the NDP related protocol. The ``GARP`` work of router ndp_proxies should be handled during HA router state changing and VM migration related router processing.","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"34750b9d2b3912e9af25883777836e99a9cb9728","unresolved":false,"context_lines":[{"line_number":453,"context_line":""},{"line_number":454,"context_line":".. note:: For HA router, the implementation of the feature is same as Legacy"},{"line_number":455,"context_line":"          router, I don\u0027t describe it separately. During failover, the traffic"},{"line_number":456,"context_line":"          will be breaked, but it will recover soon if the failover"},{"line_number":457,"context_line":"          accomplished. So, we needn\u0027t extra process for HA router."},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"Legacy router"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_98367f51","line":456,"range":{"start_line":456,"start_character":39,"end_line":456,"end_character":51},"in_reply_to":"9f560f44_0f6c4734","updated":"2020-09-15 01:57:14.000000000","message":"Sounds reasonable. I read the related codes [1], The annotation explain that this in order to resolve a keepalived\u0027s bug. I think we can call a \"send_na\" method here.\n\n[1] https://opendev.org/openstack/neutron/src/branch/master/neutron/agent/l3/keepalived_state_change.py#L93-L101","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"4d6936038e60d415695e78081a2728030f3b0f39","unresolved":false,"context_lines":[{"line_number":453,"context_line":""},{"line_number":454,"context_line":".. note:: For HA router, the implementation of the feature is same as Legacy"},{"line_number":455,"context_line":"          router, I don\u0027t describe it separately. During failover, the traffic"},{"line_number":456,"context_line":"          will be breaked, but it will recover soon if the failover"},{"line_number":457,"context_line":"          accomplished. So, we needn\u0027t extra process for HA router."},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"Legacy router"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_0f6c4734","line":456,"range":{"start_line":456,"start_character":39,"end_line":456,"end_character":51},"in_reply_to":"9f560f44_10249a0c","updated":"2020-09-09 13:57:48.000000000","message":"For HA router, the physical world (switch) should learn the MAC output port, the GARP is the way to refresh the forward table of the switch immediately.","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"13aa0ced5950f1492617efc4d6995ad1e10d0f55","unresolved":false,"context_lines":[{"line_number":453,"context_line":""},{"line_number":454,"context_line":".. note:: For HA router, the implementation of the feature is same as Legacy"},{"line_number":455,"context_line":"          router, I don\u0027t describe it separately. During failover, the traffic"},{"line_number":456,"context_line":"          will be breaked, but it will recover soon if the failover"},{"line_number":457,"context_line":"          accomplished. So, we needn\u0027t extra process for HA router."},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"Legacy router"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_10249a0c","line":456,"range":{"start_line":456,"start_character":39,"end_line":456,"end_character":51},"in_reply_to":"9f560f44_429d0856","updated":"2020-09-05 07:56:40.000000000","message":"Hi, Yulong: I studied the mechanism. For HA router, the ndp proxy rules set at qrouter-namespace\u0027s external gateway, and no matter master or backup router their external gateway\u0027s MAC is same, so the failover don\u0027t influence the neighbor entry of upstream router, so we needn\u0027t send neighbor advertisements, but the ndp proxy rules will be lost after multiple failover, so we need refresh ndp proxy\u0027s rule after failover. For, DVR router, the ndp proxy rules set at fip-namespace\u0027s external gateway port, the gateway ports\u0027 MAC is different at different fip-namespace, so we need send  neighbor advertisements to modify the upstream router\u0027s neighbor entry after instance migration. I will modify the spec as soon as possible.","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"851fc48f133c5ad69fd7c34c24ec542ed2ec141a","unresolved":false,"context_lines":[{"line_number":453,"context_line":""},{"line_number":454,"context_line":".. note:: For HA router, the implementation of the feature is same as Legacy"},{"line_number":455,"context_line":"          router, I don\u0027t describe it separately. During failover, the traffic"},{"line_number":456,"context_line":"          will be breaked, but it will recover soon if the failover"},{"line_number":457,"context_line":"          accomplished. So, we needn\u0027t extra process for HA router."},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"Legacy router"}],"source_content_type":"text/x-rst","patch_set":18,"id":"9f560f44_429d0856","line":456,"range":{"start_line":456,"start_character":39,"end_line":456,"end_character":51},"in_reply_to":"9f560f44_e085815b","updated":"2020-08-31 11:54:51.000000000","message":"Sorry, I don\u0027t study the mechanism, I just did a test simplely. I will to study the mechanism deeply and then come back to respond this question.","commit_id":"78ef5b123adf9f1ef50bdbfe620177aed87b5342"}],"specs/wallaby/l3-router-support-ndp-proxy.rst":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"400ebbc579d603b59304a3974770de5ec8aa19a0","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        \u0027routers\u0027: {"},{"line_number":203,"context_line":"            \u0027ndp_proxies\u0027: {\u0027allow_post\u0027: False,"},{"line_number":204,"context_line":"                            \u0027allow_put\u0027: False,"},{"line_number":205,"context_line":"                            \u0027is_visible\u0027: True, \u0027default\u0027: None},"},{"line_number":206,"context_line":"            \u0027external_gateway_info\u0027: {"},{"line_number":207,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":208,"context_line":"                \u0027allow_put\u0027: True,"}],"source_content_type":"text/x-rst","patch_set":21,"id":"fffc6b78_6ac92677","line":205,"updated":"2020-11-20 09:55:03.000000000","message":"I think You missed validator here, no?","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe1c60106cd69cf2cad5a2b99b368dff40aae637","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        \u0027routers\u0027: {"},{"line_number":203,"context_line":"            \u0027ndp_proxies\u0027: {\u0027allow_post\u0027: False,"},{"line_number":204,"context_line":"                            \u0027allow_put\u0027: False,"},{"line_number":205,"context_line":"                            \u0027is_visible\u0027: True, \u0027default\u0027: None},"},{"line_number":206,"context_line":"            \u0027external_gateway_info\u0027: {"},{"line_number":207,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":208,"context_line":"                \u0027allow_put\u0027: True,"}],"source_content_type":"text/x-rst","patch_set":21,"id":"cac0f0a2_923fd5e9","line":205,"in_reply_to":"fffc6b78_6ac92677","updated":"2020-11-22 09:48:52.000000000","message":"The parameter is read only, I don\u0027t think it need validator.","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"400ebbc579d603b59304a3974770de5ec8aa19a0","unresolved":false,"context_lines":[{"line_number":430,"context_line":"Effects on Existing Router APIs"},{"line_number":431,"context_line":"-------------------------------"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"* If a router has any ndp proxy entry, it\u0027s external gateway mustn\u0027t be unset."},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"* Before remove the subnet from a router, neutron should check whether has any"},{"line_number":436,"context_line":"  ndp proxy related to the subnet (whether the ndp proxy\u0027s ``ip_address`` was"}],"source_content_type":"text/x-rst","patch_set":21,"id":"fffc6b78_4aa9c279","line":433,"range":{"start_line":433,"start_character":61,"end_line":433,"end_character":77},"updated":"2020-11-20 09:55:03.000000000","message":"I\u0027m not english speaker but shouldn\u0027t here be \"can\u0027t be unset\"?","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe1c60106cd69cf2cad5a2b99b368dff40aae637","unresolved":false,"context_lines":[{"line_number":430,"context_line":"Effects on Existing Router APIs"},{"line_number":431,"context_line":"-------------------------------"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"* If a router has any ndp proxy entry, it\u0027s external gateway mustn\u0027t be unset."},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"* Before remove the subnet from a router, neutron should check whether has any"},{"line_number":436,"context_line":"  ndp proxy related to the subnet (whether the ndp proxy\u0027s ``ip_address`` was"}],"source_content_type":"text/x-rst","patch_set":21,"id":"f767d305_8ab68cdc","line":433,"range":{"start_line":433,"start_character":61,"end_line":433,"end_character":77},"in_reply_to":"fffc6b78_4aa9c279","updated":"2020-11-22 09:48:52.000000000","message":"thx","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"400ebbc579d603b59304a3974770de5ec8aa19a0","unresolved":false,"context_lines":[{"line_number":455,"context_line":".. note:: For HA router, the implementation of the feature is same as Legacy"},{"line_number":456,"context_line":"          router, I don\u0027t describe it separately. During failover, the traffic"},{"line_number":457,"context_line":"          will be breaked, but it will recover soon if the failover"},{"line_number":458,"context_line":"          accomplished. So, we needn\u0027t extra process for HA router."},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"Legacy router Impact"},{"line_number":461,"context_line":"~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":21,"id":"fffc6b78_2acb9e53","line":458,"range":{"start_line":458,"start_character":31,"end_line":458,"end_character":38},"updated":"2020-11-20 09:55:03.000000000","message":"don\u0027t need","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe1c60106cd69cf2cad5a2b99b368dff40aae637","unresolved":false,"context_lines":[{"line_number":455,"context_line":".. note:: For HA router, the implementation of the feature is same as Legacy"},{"line_number":456,"context_line":"          router, I don\u0027t describe it separately. During failover, the traffic"},{"line_number":457,"context_line":"          will be breaked, but it will recover soon if the failover"},{"line_number":458,"context_line":"          accomplished. So, we needn\u0027t extra process for HA router."},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"Legacy router Impact"},{"line_number":461,"context_line":"~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":21,"id":"d3501370_30b5ba8e","line":458,"range":{"start_line":458,"start_character":31,"end_line":458,"end_character":38},"in_reply_to":"fffc6b78_2acb9e53","updated":"2020-11-22 09:48:52.000000000","message":"thx","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"400ebbc579d603b59304a3974770de5ec8aa19a0","unresolved":false,"context_lines":[{"line_number":511,"context_line":""},{"line_number":512,"context_line":"The implementation of the feature for HA router is same as Legacy router,"},{"line_number":513,"context_line":"except failover. When HA router\u0027s state has changed, the extension should"},{"line_number":514,"context_line":"refrsh the ndp proxy rules, because the ndp proxy rules may be lost after"},{"line_number":515,"context_line":"multible failover. Additionally, the ``neutron-keepalived-state-change`` will"},{"line_number":516,"context_line":"send GARP when any ip address has changed, we should improve it\u0027s codes: if the"},{"line_number":517,"context_line":"ip address\u0027s version is 4 send GARP, if the version is 6 send NA."}],"source_content_type":"text/x-rst","patch_set":21,"id":"fffc6b78_4af0a291","line":514,"range":{"start_line":514,"start_character":0,"end_line":514,"end_character":6},"updated":"2020-11-20 09:55:03.000000000","message":"nit: refresh","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe1c60106cd69cf2cad5a2b99b368dff40aae637","unresolved":false,"context_lines":[{"line_number":511,"context_line":""},{"line_number":512,"context_line":"The implementation of the feature for HA router is same as Legacy router,"},{"line_number":513,"context_line":"except failover. When HA router\u0027s state has changed, the extension should"},{"line_number":514,"context_line":"refrsh the ndp proxy rules, because the ndp proxy rules may be lost after"},{"line_number":515,"context_line":"multible failover. Additionally, the ``neutron-keepalived-state-change`` will"},{"line_number":516,"context_line":"send GARP when any ip address has changed, we should improve it\u0027s codes: if the"},{"line_number":517,"context_line":"ip address\u0027s version is 4 send GARP, if the version is 6 send NA."}],"source_content_type":"text/x-rst","patch_set":21,"id":"37cab20e_37759b35","line":514,"range":{"start_line":514,"start_character":0,"end_line":514,"end_character":6},"in_reply_to":"fffc6b78_4af0a291","updated":"2020-11-22 09:48:52.000000000","message":"thx","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"400ebbc579d603b59304a3974770de5ec8aa19a0","unresolved":false,"context_lines":[{"line_number":512,"context_line":"The implementation of the feature for HA router is same as Legacy router,"},{"line_number":513,"context_line":"except failover. When HA router\u0027s state has changed, the extension should"},{"line_number":514,"context_line":"refrsh the ndp proxy rules, because the ndp proxy rules may be lost after"},{"line_number":515,"context_line":"multible failover. Additionally, the ``neutron-keepalived-state-change`` will"},{"line_number":516,"context_line":"send GARP when any ip address has changed, we should improve it\u0027s codes: if the"},{"line_number":517,"context_line":"ip address\u0027s version is 4 send GARP, if the version is 6 send NA."},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"DVR Router Impact"},{"line_number":520,"context_line":"~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":21,"id":"fffc6b78_4a4542b3","line":517,"range":{"start_line":515,"start_character":19,"end_line":517,"end_character":65},"updated":"2020-11-20 09:55:03.000000000","message":"that\u0027s not true anymore, we removed that in https://review.opendev.org/#/c/752360/","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"39de49abf6b1110cd50223c81e1b0212423a2905","unresolved":false,"context_lines":[{"line_number":512,"context_line":"The implementation of the feature for HA router is same as Legacy router,"},{"line_number":513,"context_line":"except failover. When HA router\u0027s state has changed, the extension should"},{"line_number":514,"context_line":"refrsh the ndp proxy rules, because the ndp proxy rules may be lost after"},{"line_number":515,"context_line":"multible failover. Additionally, the ``neutron-keepalived-state-change`` will"},{"line_number":516,"context_line":"send GARP when any ip address has changed, we should improve it\u0027s codes: if the"},{"line_number":517,"context_line":"ip address\u0027s version is 4 send GARP, if the version is 6 send NA."},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"DVR Router Impact"},{"line_number":520,"context_line":"~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":21,"id":"e403af14_a26ab982","line":517,"range":{"start_line":515,"start_character":19,"end_line":517,"end_character":65},"in_reply_to":"99e554bc_18644505","updated":"2020-12-01 14:18:24.000000000","message":"I don\u0027t think keepalived will send NA. The NA packets should be send like GARP of IPv4 after HA router state change. So maybe you can add those logical back for NA packets only.","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"143a7816a3d74d1be35915161656b8cb368490a3","unresolved":false,"context_lines":[{"line_number":512,"context_line":"The implementation of the feature for HA router is same as Legacy router,"},{"line_number":513,"context_line":"except failover. When HA router\u0027s state has changed, the extension should"},{"line_number":514,"context_line":"refrsh the ndp proxy rules, because the ndp proxy rules may be lost after"},{"line_number":515,"context_line":"multible failover. Additionally, the ``neutron-keepalived-state-change`` will"},{"line_number":516,"context_line":"send GARP when any ip address has changed, we should improve it\u0027s codes: if the"},{"line_number":517,"context_line":"ip address\u0027s version is 4 send GARP, if the version is 6 send NA."},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"DVR Router Impact"},{"line_number":520,"context_line":"~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":21,"id":"4fb5f8dc_a43f3972","line":517,"range":{"start_line":515,"start_character":19,"end_line":517,"end_character":65},"in_reply_to":"e403af14_a26ab982","updated":"2020-12-04 11:25:24.000000000","message":"Although I don\u0027t found the directly introduction web page, below links are suffice to prove the `keepalived` will auto send NA when the `master`  has changed. So, the `MAC output port` table in hardware switch can be refresh automatically.\n\nhttps://github.com/acassen/keepalived/issues/1330\nhttps://github.com/acassen/keepalived/commit/524d34aadd5f874a02664a9730dbe9309c0d346a\nhttps://bugs.launchpad.net/neutron/+bug/1520517\nhttps://github.com/acassen/keepalived/pull/200\nhttps://github.com/acassen/keepalived/commit/be69d87151325b7d906ade988b519ca35fbb25cf\nhttps://review.opendev.org/c/openstack/neutron/+/268348","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe1c60106cd69cf2cad5a2b99b368dff40aae637","unresolved":false,"context_lines":[{"line_number":512,"context_line":"The implementation of the feature for HA router is same as Legacy router,"},{"line_number":513,"context_line":"except failover. When HA router\u0027s state has changed, the extension should"},{"line_number":514,"context_line":"refrsh the ndp proxy rules, because the ndp proxy rules may be lost after"},{"line_number":515,"context_line":"multible failover. Additionally, the ``neutron-keepalived-state-change`` will"},{"line_number":516,"context_line":"send GARP when any ip address has changed, we should improve it\u0027s codes: if the"},{"line_number":517,"context_line":"ip address\u0027s version is 4 send GARP, if the version is 6 send NA."},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"DVR Router Impact"},{"line_number":520,"context_line":"~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":21,"id":"99e554bc_18644505","line":517,"range":{"start_line":515,"start_character":19,"end_line":517,"end_character":65},"in_reply_to":"fffc6b78_4a4542b3","updated":"2020-11-22 09:48:52.000000000","message":"Thanks for your information. In other words， Keepalived will send GRAP and NA automatically, We don\u0027t have to write code to deal with it. right?","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"400ebbc579d603b59304a3974770de5ec8aa19a0","unresolved":false,"context_lines":[{"line_number":558,"context_line":"                |                              |"},{"line_number":559,"context_line":"                +------------------------------+"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":".. note:: We needn\u0027t set ip6tables rules for dvr router. Because just by adding"},{"line_number":562,"context_line":"          or removing the related route in fip-namespace (as description below)"},{"line_number":563,"context_line":"          can be the switch to enable/disable the IPv6 traffic."},{"line_number":564,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"fffc6b78_6a2126fc","line":561,"range":{"start_line":561,"start_character":13,"end_line":561,"end_character":20},"updated":"2020-11-20 09:55:03.000000000","message":"don\u0027t need to","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe1c60106cd69cf2cad5a2b99b368dff40aae637","unresolved":false,"context_lines":[{"line_number":558,"context_line":"                |                              |"},{"line_number":559,"context_line":"                +------------------------------+"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":".. note:: We needn\u0027t set ip6tables rules for dvr router. Because just by adding"},{"line_number":562,"context_line":"          or removing the related route in fip-namespace (as description below)"},{"line_number":563,"context_line":"          can be the switch to enable/disable the IPv6 traffic."},{"line_number":564,"context_line":""}],"source_content_type":"text/x-rst","patch_set":21,"id":"dd43ba9a_f4c14e9c","line":561,"range":{"start_line":561,"start_character":13,"end_line":561,"end_character":20},"in_reply_to":"fffc6b78_6a2126fc","updated":"2020-11-22 09:48:52.000000000","message":"thx","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"400ebbc579d603b59304a3974770de5ec8aa19a0","unresolved":false,"context_lines":[{"line_number":593,"context_line":"    ip -6 neigh del proxy 2001::1:8 dev fg-84920cf6-5e"},{"line_number":594,"context_line":"    ip route del 2001::1:8 via fe80::a0a7:c5ff:fe2c:bade dev fpr-ea902fe0-9"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"* Because of needn\u0027t set ip6tables rules, so for the change of"},{"line_number":597,"context_line":"  ``enable_ndp_proxy``, the agent extension needn\u0027t do any thing."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"* If a instance was migrated and it\u0027s port was related to a ndp proxy entry."}],"source_content_type":"text/x-rst","patch_set":21,"id":"fffc6b78_ea8236c8","line":596,"range":{"start_line":596,"start_character":2,"end_line":596,"end_character":34},"updated":"2020-11-20 09:55:03.000000000","message":"I would say something like \"Because setting of ip6tables rules is not required, ...\"","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe1c60106cd69cf2cad5a2b99b368dff40aae637","unresolved":false,"context_lines":[{"line_number":593,"context_line":"    ip -6 neigh del proxy 2001::1:8 dev fg-84920cf6-5e"},{"line_number":594,"context_line":"    ip route del 2001::1:8 via fe80::a0a7:c5ff:fe2c:bade dev fpr-ea902fe0-9"},{"line_number":595,"context_line":""},{"line_number":596,"context_line":"* Because of needn\u0027t set ip6tables rules, so for the change of"},{"line_number":597,"context_line":"  ``enable_ndp_proxy``, the agent extension needn\u0027t do any thing."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"* If a instance was migrated and it\u0027s port was related to a ndp proxy entry."}],"source_content_type":"text/x-rst","patch_set":21,"id":"a7695263_a57d552c","line":596,"range":{"start_line":596,"start_character":2,"end_line":596,"end_character":34},"in_reply_to":"fffc6b78_ea8236c8","updated":"2020-11-22 09:48:52.000000000","message":"thx","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"400ebbc579d603b59304a3974770de5ec8aa19a0","unresolved":false,"context_lines":[{"line_number":601,"context_line":"  host. Additionally, the extension should send a NA (Neighbour Advertisement)"},{"line_number":602,"context_line":"  to fresh the upsteam router\u0027s neighbor entry so that the external traffic can"},{"line_number":603,"context_line":"  forward to new host\u0027s fip-namespace immediately."},{"line_number":604,"context_line":""},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"Implementation"},{"line_number":607,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":21,"id":"fffc6b78_6a764609","line":604,"updated":"2020-11-20 09:55:03.000000000","message":"How about OVN backend? Do You plan to implement the same? Do You know what/how should be done there?","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"39de49abf6b1110cd50223c81e1b0212423a2905","unresolved":false,"context_lines":[{"line_number":601,"context_line":"  host. Additionally, the extension should send a NA (Neighbour Advertisement)"},{"line_number":602,"context_line":"  to fresh the upsteam router\u0027s neighbor entry so that the external traffic can"},{"line_number":603,"context_line":"  forward to new host\u0027s fip-namespace immediately."},{"line_number":604,"context_line":""},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"Implementation"},{"line_number":607,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":21,"id":"ee10f559_46617080","line":604,"in_reply_to":"94a09bbe_d229cd02","updated":"2020-12-01 14:18:24.000000000","message":"IMO, the ndp_proxy of this spec is based on kernel related functions. For OVN, maybe the ovn-controller of the gateway chassis should support the NDP protocol first. Then the proxies of this spec can be applied to the OVN someday.","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"143a7816a3d74d1be35915161656b8cb368490a3","unresolved":false,"context_lines":[{"line_number":601,"context_line":"  host. Additionally, the extension should send a NA (Neighbour Advertisement)"},{"line_number":602,"context_line":"  to fresh the upsteam router\u0027s neighbor entry so that the external traffic can"},{"line_number":603,"context_line":"  forward to new host\u0027s fip-namespace immediately."},{"line_number":604,"context_line":""},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"Implementation"},{"line_number":607,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":21,"id":"96f1f425_4da3d42e","line":604,"in_reply_to":"ee10f559_46617080","updated":"2020-12-04 11:25:24.000000000","message":"According the link [1], OVN already support to response NS by flows. You can search \"ARP/ND responder\" in the web page to locate to the relevant location. But, I am not sure is it enough to support that we implement this spec base on OVN.\n\nhttp://www.openvswitch.org/support/dist-docs/ovn-northd.8.html","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe1c60106cd69cf2cad5a2b99b368dff40aae637","unresolved":false,"context_lines":[{"line_number":601,"context_line":"  host. Additionally, the extension should send a NA (Neighbour Advertisement)"},{"line_number":602,"context_line":"  to fresh the upsteam router\u0027s neighbor entry so that the external traffic can"},{"line_number":603,"context_line":"  forward to new host\u0027s fip-namespace immediately."},{"line_number":604,"context_line":""},{"line_number":605,"context_line":""},{"line_number":606,"context_line":"Implementation"},{"line_number":607,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":21,"id":"94a09bbe_d229cd02","line":604,"in_reply_to":"fffc6b78_6a764609","updated":"2020-11-22 09:48:52.000000000","message":"Sorry, I am studying the VON backend. But I haven\u0027t fully learned it yet. So, I have no plan to implement this spec on VON backend now. Maybe this needs to be implemented in the future.","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"400ebbc579d603b59304a3974770de5ec8aa19a0","unresolved":false,"context_lines":[{"line_number":624,"context_line":""},{"line_number":625,"context_line":"Tempest Tests"},{"line_number":626,"context_line":"-------------"},{"line_number":627,"context_line":"Need to add tempest tests"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"Functional Tests"},{"line_number":630,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":21,"id":"fffc6b78_4a738216","line":627,"updated":"2020-11-20 09:55:03.000000000","message":"How You want to test that in tempest? Doesn\u0027t it require some actions/checks on the external router?","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe1c60106cd69cf2cad5a2b99b368dff40aae637","unresolved":false,"context_lines":[{"line_number":624,"context_line":""},{"line_number":625,"context_line":"Tempest Tests"},{"line_number":626,"context_line":"-------------"},{"line_number":627,"context_line":"Need to add tempest tests"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"Functional Tests"},{"line_number":630,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":21,"id":"5630b9e9_0c805ef4","line":627,"in_reply_to":"fffc6b78_4a738216","updated":"2020-11-22 09:48:52.000000000","message":"This is a difficult problem. To be honest, I didn\u0027t think of this issue before. Maybe we can create a VM to simulate the external router, but I need to do more test for the idea. If it isn\u0027t doable we only skip scenario test firstly.","commit_id":"c7a1d031a2368bb52244a81128383555041b56c8"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":66,"context_line":"Agent Side"},{"line_number":67,"context_line":"~~~~~~~~~~"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Implement an extension of ``neutron-l3-agent`` to set relational rules for ndp"},{"line_number":70,"context_line":"proxy. The extension behavior like below:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* If the router external gateway\u0027s ``enable_ndp_proxy`` field is true,"}],"source_content_type":"text/x-rst","patch_set":23,"id":"a635d3aa_0cc1920c","line":69,"range":{"start_line":69,"start_character":27,"end_line":69,"end_character":46},"updated":"2020-12-09 09:11:53.000000000","message":"Neutron L3 agent","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":70,"context_line":"proxy. The extension behavior like below:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* If the router external gateway\u0027s ``enable_ndp_proxy`` field is true,"},{"line_number":73,"context_line":"  the router\u0027s namespace should has a default iptables rule to drop all packets"},{"line_number":74,"context_line":"  input from the router\u0027s external gateway device. By this way, we can"},{"line_number":75,"context_line":"  eliminate affection of extra route and neighbor in upstream router. So, if a"},{"line_number":76,"context_line":"  router\u0027s ``enable_ndp_proxy`` set as True, the Prefix Delegation [4]_ and BGP"}],"source_content_type":"text/x-rst","patch_set":23,"id":"8ad50625_c5ba8d0a","line":73,"range":{"start_line":73,"start_character":46,"end_line":73,"end_character":55},"updated":"2020-12-09 09:11:53.000000000","message":"ip6tables","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"690b376ad326ce85ca5899cb677fc4b1cb6b218f","unresolved":true,"context_lines":[{"line_number":70,"context_line":"proxy. The extension behavior like below:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* If the router external gateway\u0027s ``enable_ndp_proxy`` field is true,"},{"line_number":73,"context_line":"  the router\u0027s namespace should has a default iptables rule to drop all packets"},{"line_number":74,"context_line":"  input from the router\u0027s external gateway device. By this way, we can"},{"line_number":75,"context_line":"  eliminate affection of extra route and neighbor in upstream router. So, if a"},{"line_number":76,"context_line":"  router\u0027s ``enable_ndp_proxy`` set as True, the Prefix Delegation [4]_ and BGP"}],"source_content_type":"text/x-rst","patch_set":23,"id":"0207dd68_85f06819","line":73,"range":{"start_line":73,"start_character":46,"end_line":73,"end_character":55},"in_reply_to":"8ad50625_c5ba8d0a","updated":"2020-12-09 13:21:17.000000000","message":"thx","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    CREATE TABLE ndpproxies ("},{"line_number":95,"context_line":"        id CHAR(36) NOT NULL PRI KEY,"},{"line_number":96,"context_line":"        router VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":97,"context_line":"        port VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":98,"context_line":"        ip_address VARCHAR(64) NOT NULL,"},{"line_number":99,"context_line":"        description VARCHAR(255)"}],"source_content_type":"text/x-rst","patch_set":23,"id":"e5443bac_06fc5582","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":14},"updated":"2020-12-09 09:11:53.000000000","message":"this should be router_id?","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"690b376ad326ce85ca5899cb677fc4b1cb6b218f","unresolved":true,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    CREATE TABLE ndpproxies ("},{"line_number":95,"context_line":"        id CHAR(36) NOT NULL PRI KEY,"},{"line_number":96,"context_line":"        router VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":97,"context_line":"        port VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":98,"context_line":"        ip_address VARCHAR(64) NOT NULL,"},{"line_number":99,"context_line":"        description VARCHAR(255)"}],"source_content_type":"text/x-rst","patch_set":23,"id":"198e64d6_7562bd77","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":14},"in_reply_to":"e5443bac_06fc5582","updated":"2020-12-09 13:21:17.000000000","message":"Yep","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":94,"context_line":"    CREATE TABLE ndpproxies ("},{"line_number":95,"context_line":"        id CHAR(36) NOT NULL PRI KEY,"},{"line_number":96,"context_line":"        router VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":97,"context_line":"        port VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":98,"context_line":"        ip_address VARCHAR(64) NOT NULL,"},{"line_number":99,"context_line":"        description VARCHAR(255)"},{"line_number":100,"context_line":"    );"}],"source_content_type":"text/x-rst","patch_set":23,"id":"86d5e33b_873dfaec","line":97,"range":{"start_line":97,"start_character":8,"end_line":97,"end_character":13},"updated":"2020-12-09 09:11:53.000000000","message":"port_id?","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"690b376ad326ce85ca5899cb677fc4b1cb6b218f","unresolved":true,"context_lines":[{"line_number":94,"context_line":"    CREATE TABLE ndpproxies ("},{"line_number":95,"context_line":"        id CHAR(36) NOT NULL PRI KEY,"},{"line_number":96,"context_line":"        router VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":97,"context_line":"        port VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":98,"context_line":"        ip_address VARCHAR(64) NOT NULL,"},{"line_number":99,"context_line":"        description VARCHAR(255)"},{"line_number":100,"context_line":"    );"}],"source_content_type":"text/x-rst","patch_set":23,"id":"008aa088_2a77422c","line":97,"range":{"start_line":97,"start_character":8,"end_line":97,"end_character":13},"in_reply_to":"86d5e33b_873dfaec","updated":"2020-12-09 13:21:17.000000000","message":"Yep","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":114,"context_line":"        enable_ndp_proxy BOOL NOT NULL,"},{"line_number":115,"context_line":"    );"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Sub Resource Extension"},{"line_number":118,"context_line":"----------------------"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Neutron ``router`` will be extented with a sub-resource ``ndp_proxy``, it will"}],"source_content_type":"text/x-rst","patch_set":23,"id":"975c93e2_14795f1e","line":117,"range":{"start_line":117,"start_character":0,"end_line":117,"end_character":12},"updated":"2020-12-09 09:11:53.000000000","message":"Again, I can imagine that someday we are going to allow binding QoS policy to this \u0027ndp_proxy\u0027 to accomplish a distinguished bandwidth limitation for each IPv6 address. So, I still insist this resource should be a top level of Neutron. So in order to implement that, the top level resource can have a router_id attribute (Line 93 DB model is done that) to indicate where the proxy should be applied.\nAfter that we can:\n1. list all proxy resource by one api\n2. some day allow binding the QoS policy to such new resource\n3. find the resource by router ID for the API\n4. find the resource by router ID when the API try to unset external gateway","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"690b376ad326ce85ca5899cb677fc4b1cb6b218f","unresolved":true,"context_lines":[{"line_number":114,"context_line":"        enable_ndp_proxy BOOL NOT NULL,"},{"line_number":115,"context_line":"    );"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Sub Resource Extension"},{"line_number":118,"context_line":"----------------------"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"Neutron ``router`` will be extented with a sub-resource ``ndp_proxy``, it will"}],"source_content_type":"text/x-rst","patch_set":23,"id":"5b649a10_8d43cc79","line":117,"range":{"start_line":117,"start_character":0,"end_line":117,"end_character":12},"in_reply_to":"975c93e2_14795f1e","updated":"2020-12-09 13:21:17.000000000","message":"This is a interesting idea. By binding QoS policy we can control the rate of external traffic independently(it different with internal traffic\u0027s). But, why it must as top resource? I think we can still expand it when it as the router\u0027s sub resource. Moreover, IMO, as router\u0027s sub resource, it can better demonstrate the relationship between router and ndp proxy entry. But, I don\u0027t insist my opinion. I want to know the others\u0027 opinions, what do you think about this issue?","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":211,"context_line":"                \u0027enforce_policy\u0027: True,"},{"line_number":212,"context_line":"                \u0027validate\u0027: {"},{"line_number":213,"context_line":"                    \u0027type:dict_or_nodata\u0027: {"},{"line_number":214,"context_line":"                        \u0027enable_ndp_proxy\u0027: {"},{"line_number":215,"context_line":"                            \u0027type:boolean\u0027: None, \u0027required\u0027: False,"},{"line_number":216,"context_line":"                            \u0027convert_to\u0027: converters.convert_to_boolean}"},{"line_number":217,"context_line":"                    }"}],"source_content_type":"text/x-rst","patch_set":23,"id":"41fa85f2_0b6fad3e","line":214,"range":{"start_line":214,"start_character":24,"end_line":214,"end_character":45},"updated":"2020-12-09 09:11:53.000000000","message":"This is not needed, IMO, if there are ndp_proxy entries, L3 agent can directly decide the related config option can be applied.","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"For the new sub-resource \u0027ndp_proxy\u0027, some new URLs will be introduced:"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"List NDP Proxies"},{"line_number":315,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"GET /v2.0/routers/\u003crouter-uuid\u003e/ndp_proxies"}],"source_content_type":"text/x-rst","patch_set":23,"id":"a56308e6_8e7c29b1","line":314,"range":{"start_line":314,"start_character":0,"end_line":314,"end_character":16},"updated":"2020-12-09 09:11:53.000000000","message":"Is there a way to list all such \"ndp_proxies\" no matter it belongs?","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"ba0890c12a881c0b96befc64c341c0cb3a19ff0e","unresolved":true,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":"For the new sub-resource \u0027ndp_proxy\u0027, some new URLs will be introduced:"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"List NDP Proxies"},{"line_number":315,"context_line":"~~~~~~~~~~~~~~~~"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"GET /v2.0/routers/\u003crouter-uuid\u003e/ndp_proxies"}],"source_content_type":"text/x-rst","patch_set":23,"id":"db3b0ac4_3c06fe27","line":314,"range":{"start_line":314,"start_character":0,"end_line":314,"end_character":16},"in_reply_to":"a56308e6_8e7c29b1","updated":"2020-12-13 06:22:40.000000000","message":"Let ``ndp_proxy`` as top resource is a good solution, I will modify this spec.","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":371,"context_line":"So Address Scopes [5]_ need to be used to ensure the ``ip_address`` is unique"},{"line_number":372,"context_line":"and can be routed by upstream router. So there are some constraints here:"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"* The router external gateway\u0027s ``enable_ndp_proxy`` parameter must be set as"},{"line_number":375,"context_line":"  True."},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"* The subnet that the ``ip_address`` allocated from must be added to the"},{"line_number":378,"context_line":"  router."}],"source_content_type":"text/x-rst","patch_set":23,"id":"2b5e14a2_478da204","line":375,"range":{"start_line":374,"start_character":0,"end_line":375,"end_character":7},"updated":"2020-12-09 09:11:53.000000000","message":"After read the LOG of this spec, once I had questioned about this new parameter for external gateway info. Again, IMO, this is not needed, if there are ndp_proxy entries, L3 agent can directly decide the related config option to be applied or not. Users try to create ndp proxy, they may know how this works and how this is the different to other mechanism like BGP.\nAnd this makes the code with extra condition checks:\n1. if users directly try to create ndp proxy, they code needs to check if this is set to true\n2. if users try to set this to False, the code need to check if there are ndp proxies\n\nSo my thougth is when the first ndp_proxy created set the kernel related config and ip6tables, meanwhile the last ndp_proxy removed unset related stuff.","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"690b376ad326ce85ca5899cb677fc4b1cb6b218f","unresolved":true,"context_lines":[{"line_number":371,"context_line":"So Address Scopes [5]_ need to be used to ensure the ``ip_address`` is unique"},{"line_number":372,"context_line":"and can be routed by upstream router. So there are some constraints here:"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"* The router external gateway\u0027s ``enable_ndp_proxy`` parameter must be set as"},{"line_number":375,"context_line":"  True."},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"* The subnet that the ``ip_address`` allocated from must be added to the"},{"line_number":378,"context_line":"  router."}],"source_content_type":"text/x-rst","patch_set":23,"id":"8cdcda22_fd646036","line":375,"range":{"start_line":374,"start_character":0,"end_line":375,"end_character":7},"in_reply_to":"2b5e14a2_478da204","updated":"2020-12-09 13:21:17.000000000","message":"The aim I introduce this parameter is that the user can notice the action\u0027s dangerousness (We should explain the dangerousness  in user docs). The router will default drop all related subnet\u0027s traffic while the router enable ndp proxy.  Suppose user have two IPv6 subnets connect to one router, and one of them already published the whole CIDR by BGP or PD, and then he create a ndp proxy entry for another subnet on the router, the all traffic will suddenly stop, I think it\u0027s a little jarring. Of course, we can explain this is due to user create a ndp proxy entry, and just remove the ndp proxy the traffic will be recover. IMHO, the explanation is a little weird. Ditto, I don\u0027t insist my opinion. But, I want to know more people\u0027s opinions.","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":453,"context_line":"  subnet."},{"line_number":454,"context_line":""},{"line_number":455,"context_line":".. note:: For HA router, the implementation of the feature is same as Legacy"},{"line_number":456,"context_line":"          router, I don\u0027t describe it separately. During failover, the traffic"},{"line_number":457,"context_line":"          will be breaked, but it will recover soon if the failover"},{"line_number":458,"context_line":"          accomplished. So, we don\u0027t need extra process for HA router."},{"line_number":459,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"e596b0ca_76a83c59","line":456,"range":{"start_line":456,"start_character":18,"end_line":456,"end_character":19},"updated":"2020-12-09 09:11:53.000000000","message":"Here should not use \"I\", \"we\" can be used here. Or just write a declarative sentence here, something like \"it will not be described separately.\" Or just remove this line, IMO, it is duplicated to the former sentence.","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"690b376ad326ce85ca5899cb677fc4b1cb6b218f","unresolved":true,"context_lines":[{"line_number":453,"context_line":"  subnet."},{"line_number":454,"context_line":""},{"line_number":455,"context_line":".. note:: For HA router, the implementation of the feature is same as Legacy"},{"line_number":456,"context_line":"          router, I don\u0027t describe it separately. During failover, the traffic"},{"line_number":457,"context_line":"          will be breaked, but it will recover soon if the failover"},{"line_number":458,"context_line":"          accomplished. So, we don\u0027t need extra process for HA router."},{"line_number":459,"context_line":""}],"source_content_type":"text/x-rst","patch_set":23,"id":"e6c38938_bbf5bf70","line":456,"range":{"start_line":456,"start_character":18,"end_line":456,"end_character":19},"in_reply_to":"e596b0ca_76a83c59","updated":"2020-12-09 13:21:17.000000000","message":"thx","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":498,"context_line":"    ip -6 neigh del proxy 2001::1:8 dev qg-733bd76b-62"},{"line_number":499,"context_line":"    ip6tables -D neutron-l3-agent-NDP -i qg-733bd76b-62 --destination 2001::1:8"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"* When router external gateway\u0027s parameter ``enable_ndp_proxy`` set to false,"},{"line_number":502,"context_line":"  the extension needs to set the kernel parameter ``proxy_ndp`` as ``0`` in the"},{"line_number":503,"context_line":"  router\u0027s qrouter-namespace namespace, delete the custom chain named"},{"line_number":504,"context_line":"  ``neutron-l3-agent-NDP``. The executed commands like below::"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"    sysctl -w net.ipv6.conf.qg-733bd76b-62.proxy_ndp\u003d0"},{"line_number":507,"context_line":"    ip6tables -X neutron-l3-agent-NDP"}],"source_content_type":"text/x-rst","patch_set":23,"id":"d18ca42a_b20d45f7","line":504,"range":{"start_line":501,"start_character":2,"end_line":504,"end_character":27},"updated":"2020-12-09 09:11:53.000000000","message":"If there are ndp_proxies for this router, this parameter can also be set to False? All blocked IPv6 traffic will be directly recovered?","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"ba0890c12a881c0b96befc64c341c0cb3a19ff0e","unresolved":true,"context_lines":[{"line_number":498,"context_line":"    ip -6 neigh del proxy 2001::1:8 dev qg-733bd76b-62"},{"line_number":499,"context_line":"    ip6tables -D neutron-l3-agent-NDP -i qg-733bd76b-62 --destination 2001::1:8"},{"line_number":500,"context_line":""},{"line_number":501,"context_line":"* When router external gateway\u0027s parameter ``enable_ndp_proxy`` set to false,"},{"line_number":502,"context_line":"  the extension needs to set the kernel parameter ``proxy_ndp`` as ``0`` in the"},{"line_number":503,"context_line":"  router\u0027s qrouter-namespace namespace, delete the custom chain named"},{"line_number":504,"context_line":"  ``neutron-l3-agent-NDP``. The executed commands like below::"},{"line_number":505,"context_line":""},{"line_number":506,"context_line":"    sysctl -w net.ipv6.conf.qg-733bd76b-62.proxy_ndp\u003d0"},{"line_number":507,"context_line":"    ip6tables -X neutron-l3-agent-NDP"}],"source_content_type":"text/x-rst","patch_set":23,"id":"803bd655_0fbebd9c","line":504,"range":{"start_line":501,"start_character":2,"end_line":504,"end_character":27},"in_reply_to":"d18ca42a_b20d45f7","updated":"2020-12-13 06:22:40.000000000","message":"Sorry, I missed the question last time. This is a good question. Yep, I think we can support this. I will modify the spec as soon as possible.","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":598,"context_line":"* Because setting of ip6tables rules is not required, so for the change of"},{"line_number":599,"context_line":"  ``enable_ndp_proxy``, the agent extension needn\u0027t do any thing."},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"* If a instance was migrated and it\u0027s port was related to a ndp proxy entry."},{"line_number":602,"context_line":"  The extension should delete related rules in old host and create them in new"},{"line_number":603,"context_line":"  host. Additionally, the extension should send a NA (Neighbour Advertisement)"},{"line_number":604,"context_line":"  to fresh the upsteam router\u0027s neighbor entry so that the external traffic can"}],"source_content_type":"text/x-rst","patch_set":23,"id":"f00bc5ed_fe119432","line":601,"range":{"start_line":601,"start_character":5,"end_line":601,"end_character":7},"updated":"2020-12-09 09:11:53.000000000","message":"an","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"690b376ad326ce85ca5899cb677fc4b1cb6b218f","unresolved":true,"context_lines":[{"line_number":598,"context_line":"* Because setting of ip6tables rules is not required, so for the change of"},{"line_number":599,"context_line":"  ``enable_ndp_proxy``, the agent extension needn\u0027t do any thing."},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"* If a instance was migrated and it\u0027s port was related to a ndp proxy entry."},{"line_number":602,"context_line":"  The extension should delete related rules in old host and create them in new"},{"line_number":603,"context_line":"  host. Additionally, the extension should send a NA (Neighbour Advertisement)"},{"line_number":604,"context_line":"  to fresh the upsteam router\u0027s neighbor entry so that the external traffic can"}],"source_content_type":"text/x-rst","patch_set":23,"id":"27c25ef9_36d03fd2","line":601,"range":{"start_line":601,"start_character":5,"end_line":601,"end_character":7},"in_reply_to":"f00bc5ed_fe119432","updated":"2020-12-09 13:21:17.000000000","message":"thx","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0d3ac4f75df0b4d4941d22fb7cfe0a5cd3a0e86e","unresolved":true,"context_lines":[{"line_number":607,"context_line":"OVN backend impact"},{"line_number":608,"context_line":"------------------"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"I have no ideal about how to implement this spec base on OVN backend. If it was"},{"line_number":611,"context_line":"proved to be feasible, we should implement the feature base on OVN backend in"},{"line_number":612,"context_line":"the future. But for now, we will just implement this base on"},{"line_number":613,"context_line":"``neutron-l3-agent``."}],"source_content_type":"text/x-rst","patch_set":23,"id":"87fd6df0_bebb6c4b","line":610,"range":{"start_line":610,"start_character":0,"end_line":610,"end_character":69},"updated":"2020-12-09 09:11:53.000000000","message":"This looks a bit improper here. How about \"The ndp_proxy for OVN L3 backend is not covered by this proposal.\"","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"690b376ad326ce85ca5899cb677fc4b1cb6b218f","unresolved":true,"context_lines":[{"line_number":607,"context_line":"OVN backend impact"},{"line_number":608,"context_line":"------------------"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"I have no ideal about how to implement this spec base on OVN backend. If it was"},{"line_number":611,"context_line":"proved to be feasible, we should implement the feature base on OVN backend in"},{"line_number":612,"context_line":"the future. But for now, we will just implement this base on"},{"line_number":613,"context_line":"``neutron-l3-agent``."}],"source_content_type":"text/x-rst","patch_set":23,"id":"8037bda8_c489aef2","line":610,"range":{"start_line":610,"start_character":0,"end_line":610,"end_character":69},"in_reply_to":"87fd6df0_bebb6c4b","updated":"2020-12-09 13:21:17.000000000","message":"thx","commit_id":"997bedaa5fbd48e71b02633eef0d8beeb1bcdad6"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c52b03ee2755063f6a4a889016899bf85a2db7c4","unresolved":true,"context_lines":[{"line_number":80,"context_line":"  .. note:: If a router\u0027s ``enable_ndp_proxy`` set as Flase when the router"},{"line_number":81,"context_line":"            have ndp proxies, these ndp proxes will have no effect, the Prefix"},{"line_number":82,"context_line":"            Delegation [4]_ and BGP Dynamic Routing [3]_ solution will recover."},{"line_number":83,"context_line":"            In particular, the DVR rotuer will ignore ``enable_ndp_proxy``."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":86,"context_line":"  at the router\u0027s external gateway device and set an ip6tables rule to permit"}],"source_content_type":"text/x-rst","patch_set":26,"id":"897a54d1_f5df481b","line":83,"range":{"start_line":83,"start_character":12,"end_line":83,"end_character":75},"updated":"2020-12-18 08:53:37.000000000","message":"This makes me to think about the value of this enable_ndp_proxy one more time...\nAnd this statement looks a bit not true in the case of \"dvr_no_external\".","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe6b4973301461aebd4c25aa945830318d140c07","unresolved":true,"context_lines":[{"line_number":80,"context_line":"  .. note:: If a router\u0027s ``enable_ndp_proxy`` set as Flase when the router"},{"line_number":81,"context_line":"            have ndp proxies, these ndp proxes will have no effect, the Prefix"},{"line_number":82,"context_line":"            Delegation [4]_ and BGP Dynamic Routing [3]_ solution will recover."},{"line_number":83,"context_line":"            In particular, the DVR rotuer will ignore ``enable_ndp_proxy``."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":86,"context_line":"  at the router\u0027s external gateway device and set an ip6tables rule to permit"}],"source_content_type":"text/x-rst","patch_set":26,"id":"2efcabba_98cf833a","line":83,"range":{"start_line":83,"start_character":12,"end_line":83,"end_character":75},"in_reply_to":"897a54d1_f5df481b","updated":"2020-12-19 05:14:00.000000000","message":"In section \"DVR Router Impact\", line 528, I explain this, the \"dvr_no_external\" do not adapt the feature of the spec proposed.\n\nAdditional, about this paramter. I want to say tha it is very useful when user adopt both \"BGP\" and \"NDP proxy\" solutions.","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c52b03ee2755063f6a4a889016899bf85a2db7c4","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"For ndp proxy resource::"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    CREATE TABLE ndpproxies ("},{"line_number":100,"context_line":"        id CHAR(36) NOT NULL PRI KEY,"},{"line_number":101,"context_line":"        router_id VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":102,"context_line":"        port_id VARCHAR(36) NOT NULL FOREIGN KEY,"}],"source_content_type":"text/x-rst","patch_set":26,"id":"044ad081_2122b91d","line":99,"range":{"start_line":99,"start_character":17,"end_line":99,"end_character":28},"updated":"2020-12-18 08:53:37.000000000","message":"I\u0027d like to use \"ndp_proxies\", it\u0027s better to add the underscore between the works. More about the table name is we can add a \"router_\" prefix to concentrate the related tables together. So how about \"router_ndp_proxies\"?","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe6b4973301461aebd4c25aa945830318d140c07","unresolved":true,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"For ndp proxy resource::"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    CREATE TABLE ndpproxies ("},{"line_number":100,"context_line":"        id CHAR(36) NOT NULL PRI KEY,"},{"line_number":101,"context_line":"        router_id VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":102,"context_line":"        port_id VARCHAR(36) NOT NULL FOREIGN KEY,"}],"source_content_type":"text/x-rst","patch_set":26,"id":"17981ce6_8d8bd287","line":99,"range":{"start_line":99,"start_character":17,"end_line":99,"end_character":28},"in_reply_to":"044ad081_2122b91d","updated":"2020-12-19 05:14:00.000000000","message":"thanks very much.","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8474dff3b9e3936abd448599996572a28fd7fbc2","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"For ndp proxy resource::"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"    CREATE TABLE ndpproxies ("},{"line_number":100,"context_line":"        id CHAR(36) NOT NULL PRI KEY,"},{"line_number":101,"context_line":"        router_id VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":102,"context_line":"        port_id VARCHAR(36) NOT NULL FOREIGN KEY,"}],"source_content_type":"text/x-rst","patch_set":26,"id":"eff5f178_3ff2947c","line":99,"range":{"start_line":99,"start_character":17,"end_line":99,"end_character":28},"in_reply_to":"17981ce6_8d8bd287","updated":"2020-12-19 06:13:18.000000000","message":"Done","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c52b03ee2755063f6a4a889016899bf85a2db7c4","unresolved":true,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"For router external gateway\u0027s ``enable_ndp_proxy`` parameter::"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    CREATE TABLE routerndpproxyenable ("},{"line_number":116,"context_line":"        router_id VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":117,"context_line":"        enable_ndp_proxy BOOL NOT NULL,"},{"line_number":118,"context_line":"    );"}],"source_content_type":"text/x-rst","patch_set":26,"id":"e54cebe9_599b9e6b","line":115,"range":{"start_line":115,"start_character":17,"end_line":115,"end_character":37},"updated":"2020-12-18 08:53:37.000000000","message":"Same here, add underscore. And the last word \"_enable\" looks a bit strange to me, so... how about \"router_ndp_proxy_state\"?\n\nBut again, why this attribute is still here for router? 😊","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe6b4973301461aebd4c25aa945830318d140c07","unresolved":true,"context_lines":[{"line_number":112,"context_line":""},{"line_number":113,"context_line":"For router external gateway\u0027s ``enable_ndp_proxy`` parameter::"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    CREATE TABLE routerndpproxyenable ("},{"line_number":116,"context_line":"        router_id VARCHAR(36) NOT NULL FOREIGN KEY,"},{"line_number":117,"context_line":"        enable_ndp_proxy BOOL NOT NULL,"},{"line_number":118,"context_line":"    );"}],"source_content_type":"text/x-rst","patch_set":26,"id":"75d34707_614d3ef0","line":115,"range":{"start_line":115,"start_character":17,"end_line":115,"end_character":37},"in_reply_to":"e54cebe9_599b9e6b","updated":"2020-12-19 05:14:00.000000000","message":"Thanks very much for your suggestion.\n\nResponse for \"But again, why this attribute is still here for router?\"\nI still want to reserve the attribute. Like as linux kernel, if you add a ndp proxy entry to a interface, you must set related kernal parameter \"net.ipv6.conf.xxx.proxy_ndp\" to \"1\" firstly.\n\nMoreover, by the parameter the router can be classified into two types, this facilitates our web consone\u0027s design.","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c52b03ee2755063f6a4a889016899bf85a2db7c4","unresolved":true,"context_lines":[{"line_number":137,"context_line":".. code-block:: python"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":140,"context_line":"        \u0027ndp_proxy\u0027: {"},{"line_number":141,"context_line":"            \u0027id\u0027: {\u0027allow_post\u0027: False,"},{"line_number":142,"context_line":"                   \u0027allow_put\u0027: False,"},{"line_number":143,"context_line":"                   \u0027validate\u0027: {\u0027type:uuid\u0027: None},"}],"source_content_type":"text/x-rst","patch_set":26,"id":"2ddec43f_3cc26cd9","line":140,"range":{"start_line":140,"start_character":8,"end_line":140,"end_character":19},"updated":"2020-12-18 08:53:37.000000000","message":"How about add a name attribute to this?","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe6b4973301461aebd4c25aa945830318d140c07","unresolved":true,"context_lines":[{"line_number":137,"context_line":".. code-block:: python"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":140,"context_line":"        \u0027ndp_proxy\u0027: {"},{"line_number":141,"context_line":"            \u0027id\u0027: {\u0027allow_post\u0027: False,"},{"line_number":142,"context_line":"                   \u0027allow_put\u0027: False,"},{"line_number":143,"context_line":"                   \u0027validate\u0027: {\u0027type:uuid\u0027: None},"}],"source_content_type":"text/x-rst","patch_set":26,"id":"43f4f035_bb3f2f96","line":140,"range":{"start_line":140,"start_character":8,"end_line":140,"end_character":19},"in_reply_to":"2ddec43f_3cc26cd9","updated":"2020-12-19 05:14:00.000000000","message":"Yep, I will add name paramter at next patchset.","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8474dff3b9e3936abd448599996572a28fd7fbc2","unresolved":false,"context_lines":[{"line_number":137,"context_line":".. code-block:: python"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":140,"context_line":"        \u0027ndp_proxy\u0027: {"},{"line_number":141,"context_line":"            \u0027id\u0027: {\u0027allow_post\u0027: False,"},{"line_number":142,"context_line":"                   \u0027allow_put\u0027: False,"},{"line_number":143,"context_line":"                   \u0027validate\u0027: {\u0027type:uuid\u0027: None},"}],"source_content_type":"text/x-rst","patch_set":26,"id":"d1fdc179_63b09cc1","line":140,"range":{"start_line":140,"start_character":8,"end_line":140,"end_character":19},"in_reply_to":"43f4f035_bb3f2f96","updated":"2020-12-19 06:13:18.000000000","message":"Done","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c52b03ee2755063f6a4a889016899bf85a2db7c4","unresolved":true,"context_lines":[{"line_number":191,"context_line":"  * - enable_ndp_proxy"},{"line_number":192,"context_line":"    - Boolean"},{"line_number":193,"context_line":"    - CRU"},{"line_number":194,"context_line":"    - False"},{"line_number":195,"context_line":"    - Whether the router external gateway support ndp proxy, it should be"},{"line_number":196,"context_line":"      extend to router\u0027s external_gateway_info."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"c7563b73_88769cda","line":194,"range":{"start_line":194,"start_character":4,"end_line":194,"end_character":11},"updated":"2020-12-18 08:53:37.000000000","message":"There is a config option ``enable_snat_by_default`` for router gateway to idicate the router\u0027s snat state. If that was set to True, users will save some API work to enable it. And change the \"enable_snat\" value needs admin role.\n\nSo, my suggestion is to make this \"enable_ndp_proxy\" all like that:\n1. add config option, enable_ndp_proxy_by_default \u003d False.\n2. change the value is admin only","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"ecffe0d74546d5d92b2c561c701478b5b770698f","unresolved":true,"context_lines":[{"line_number":191,"context_line":"  * - enable_ndp_proxy"},{"line_number":192,"context_line":"    - Boolean"},{"line_number":193,"context_line":"    - CRU"},{"line_number":194,"context_line":"    - False"},{"line_number":195,"context_line":"    - Whether the router external gateway support ndp proxy, it should be"},{"line_number":196,"context_line":"      extend to router\u0027s external_gateway_info."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"230d2d05_a89e125d","line":194,"range":{"start_line":194,"start_character":4,"end_line":194,"end_character":11},"in_reply_to":"0bd2881b_1a1c3eaa","updated":"2020-12-24 07:41:07.000000000","message":"The config option \"enable_ndp_proxy_by_default\" can be used like this:\n1. Set router gateway call API once, set ``enable_ndp_proxy\u003dTrue`` another time. And L3 agent will process the router once for set router gateway, one for enable the ndp_proxy.\nIf a cloud deployment wants to enable ndp_proxy by default, set it to True, to save lots of API calls if cloud have high load resource creation. And save tons of L3 agent router process work.  (This is the main point I suggest to add this option)\n2. if a cloud deployment wants to use ndp_proxy and some other mechanism, set it to False. Admin user can reset the router gateway\u0027s ``enable_ndp_proxy\u003dTrue``, ignore the the default option.\n\nActually all these are same to ``enable_snat`` for router gateway.","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6210322438d6f0c45219961f923692251c734d4b","unresolved":true,"context_lines":[{"line_number":191,"context_line":"  * - enable_ndp_proxy"},{"line_number":192,"context_line":"    - Boolean"},{"line_number":193,"context_line":"    - CRU"},{"line_number":194,"context_line":"    - False"},{"line_number":195,"context_line":"    - Whether the router external gateway support ndp proxy, it should be"},{"line_number":196,"context_line":"      extend to router\u0027s external_gateway_info."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"1e23eb29_66cf5ce2","line":194,"range":{"start_line":194,"start_character":4,"end_line":194,"end_character":11},"in_reply_to":"230d2d05_a89e125d","updated":"2020-12-26 08:00:43.000000000","message":"Thanks, I will modify the spec to add the option.","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe6b4973301461aebd4c25aa945830318d140c07","unresolved":true,"context_lines":[{"line_number":191,"context_line":"  * - enable_ndp_proxy"},{"line_number":192,"context_line":"    - Boolean"},{"line_number":193,"context_line":"    - CRU"},{"line_number":194,"context_line":"    - False"},{"line_number":195,"context_line":"    - Whether the router external gateway support ndp proxy, it should be"},{"line_number":196,"context_line":"      extend to router\u0027s external_gateway_info."},{"line_number":197,"context_line":""}],"source_content_type":"text/x-rst","patch_set":26,"id":"0bd2881b_1a1c3eaa","line":194,"range":{"start_line":194,"start_character":4,"end_line":194,"end_character":11},"in_reply_to":"c7563b73_88769cda","updated":"2020-12-19 05:14:00.000000000","message":"I don\u0027t agree with add the config opton \"enable_ndp_proxy_by_default\". This parameter needs to meet some conditions to be set to True, as I describe in line 295. We don\u0027t meet the users\u0027 demand if user configure \u0027enable_ndp_proxy_by_default \u003d True\u0027.\n\nFor \"change the value is admin only\". Yep, I agree with it.","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c52b03ee2755063f6a4a889016899bf85a2db7c4","unresolved":true,"context_lines":[{"line_number":210,"context_line":"                \u0027enforce_policy\u0027: True,"},{"line_number":211,"context_line":"                \u0027validate\u0027: {"},{"line_number":212,"context_line":"                    \u0027type:dict_or_nodata\u0027: {"},{"line_number":213,"context_line":"                        \u0027enable_ndp_proxy\u0027: {"},{"line_number":214,"context_line":"                            \u0027type:boolean\u0027: None, \u0027required\u0027: False,"},{"line_number":215,"context_line":"                            \u0027convert_to\u0027: converters.convert_to_boolean}"},{"line_number":216,"context_line":"                    }"},{"line_number":217,"context_line":"                }"},{"line_number":218,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":26,"id":"6689c35e_9b65ca2f","line":215,"range":{"start_line":213,"start_character":24,"end_line":215,"end_character":72},"updated":"2020-12-18 08:53:37.000000000","message":"Everyone can change this value, or it is admin only like router\u0027s ``enable_snat``.","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8474dff3b9e3936abd448599996572a28fd7fbc2","unresolved":false,"context_lines":[{"line_number":210,"context_line":"                \u0027enforce_policy\u0027: True,"},{"line_number":211,"context_line":"                \u0027validate\u0027: {"},{"line_number":212,"context_line":"                    \u0027type:dict_or_nodata\u0027: {"},{"line_number":213,"context_line":"                        \u0027enable_ndp_proxy\u0027: {"},{"line_number":214,"context_line":"                            \u0027type:boolean\u0027: None, \u0027required\u0027: False,"},{"line_number":215,"context_line":"                            \u0027convert_to\u0027: converters.convert_to_boolean}"},{"line_number":216,"context_line":"                    }"},{"line_number":217,"context_line":"                }"},{"line_number":218,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":26,"id":"e433c2a6_6942bedc","line":215,"range":{"start_line":213,"start_character":24,"end_line":215,"end_character":72},"in_reply_to":"6689c35e_9b65ca2f","updated":"2020-12-19 06:13:18.000000000","message":"Done","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c52b03ee2755063f6a4a889016899bf85a2db7c4","unresolved":true,"context_lines":[{"line_number":430,"context_line":"Addtionally, if a router or port will be deleted, the ndp proxies which"},{"line_number":431,"context_line":"relational with them will be delete cascade."},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"Effects on Existing Router APIs"},{"line_number":434,"context_line":"-------------------------------"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"* Before remove the subnet from a router, neutron should check whether has any"},{"line_number":437,"context_line":"  ndp proxy related to the subnet (whether the ndp proxy\u0027s ``ip_address`` was"}],"source_content_type":"text/x-rst","patch_set":26,"id":"bb407456_235637be","line":434,"range":{"start_line":433,"start_character":0,"end_line":434,"end_character":31},"updated":"2020-12-18 08:53:37.000000000","message":"Why this is a high level section, see the build doc [1]? This should beblong to \"REST API Impact\"?\n\n[1]https://d7d769db16cb264a4965-cc818d493c2a52ef4d37701157d67702.ssl.cf1.rackcdn.com/728628/26/check/openstack-tox-docs/d6f7031/docs/specs/wallaby/l3-router-support-ndp-proxy.html","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8474dff3b9e3936abd448599996572a28fd7fbc2","unresolved":false,"context_lines":[{"line_number":430,"context_line":"Addtionally, if a router or port will be deleted, the ndp proxies which"},{"line_number":431,"context_line":"relational with them will be delete cascade."},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"Effects on Existing Router APIs"},{"line_number":434,"context_line":"-------------------------------"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"* Before remove the subnet from a router, neutron should check whether has any"},{"line_number":437,"context_line":"  ndp proxy related to the subnet (whether the ndp proxy\u0027s ``ip_address`` was"}],"source_content_type":"text/x-rst","patch_set":26,"id":"7cbd59dd_dd3f0a9d","line":434,"range":{"start_line":433,"start_character":0,"end_line":434,"end_character":31},"in_reply_to":"2d16a724_fed5f6fd","updated":"2020-12-19 06:13:18.000000000","message":"Done","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe6b4973301461aebd4c25aa945830318d140c07","unresolved":true,"context_lines":[{"line_number":430,"context_line":"Addtionally, if a router or port will be deleted, the ndp proxies which"},{"line_number":431,"context_line":"relational with them will be delete cascade."},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"Effects on Existing Router APIs"},{"line_number":434,"context_line":"-------------------------------"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"* Before remove the subnet from a router, neutron should check whether has any"},{"line_number":437,"context_line":"  ndp proxy related to the subnet (whether the ndp proxy\u0027s ``ip_address`` was"}],"source_content_type":"text/x-rst","patch_set":26,"id":"2d16a724_fed5f6fd","line":434,"range":{"start_line":433,"start_character":0,"end_line":434,"end_character":31},"in_reply_to":"bb407456_235637be","updated":"2020-12-19 05:14:00.000000000","message":"Thinks","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c52b03ee2755063f6a4a889016899bf85a2db7c4","unresolved":true,"context_lines":[{"line_number":534,"context_line":"to fip-namespace is ``rfp-ea902fe0-9`` and it\u0027s IPv6 address is"},{"line_number":535,"context_line":"``fe80::a0a7:c5ff:fe2c:bade``. The topology like below::"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"                        +---------------+"},{"line_number":538,"context_line":"                        |               |"},{"line_number":539,"context_line":"                        |upstream router|"},{"line_number":540,"context_line":"                        |               |"},{"line_number":541,"context_line":"                        +-------+-------+"},{"line_number":542,"context_line":"                                |"},{"line_number":543,"context_line":"                +------------------------------+"},{"line_number":544,"context_line":"                |               | compute node |"},{"line_number":545,"context_line":"                |               |              |"},{"line_number":546,"context_line":"                |       +-------+--------+     |"},{"line_number":547,"context_line":"                |       | fg-84920cf6-5e |     |"},{"line_number":548,"context_line":"                |       |                |     |"},{"line_number":549,"context_line":"                |       |  fip-namespace |     |"},{"line_number":550,"context_line":"                |       |                |     |"},{"line_number":551,"context_line":"                |       | fpr-ea902fe0-9 |     |"},{"line_number":552,"context_line":"                |       +--------+-------+     |"},{"line_number":553,"context_line":"                |                |             |"},{"line_number":554,"context_line":"                |                |             |"},{"line_number":555,"context_line":"                |       +--------+--------+    |"},{"line_number":556,"context_line":"                |       |  rfp-ea902fe0-9 |    |"},{"line_number":557,"context_line":"                |       |                 |    |"},{"line_number":558,"context_line":"                |       |qrouter-namespace|    |"},{"line_number":559,"context_line":"                |       |                 |    |"},{"line_number":560,"context_line":"                |       +-----------------+    |"},{"line_number":561,"context_line":"                |                              |"},{"line_number":562,"context_line":"                +------------------------------+"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":".. note:: We don\u0027t need to set ip6tables rules for dvr router. Because just by"},{"line_number":565,"context_line":"          adding or removing the related route in fip-namespace (as description"}],"source_content_type":"text/x-rst","patch_set":26,"id":"38d74148_069deee7","line":562,"range":{"start_line":537,"start_character":0,"end_line":562,"end_character":48},"updated":"2020-12-18 08:53:37.000000000","message":"This looks a bit asymmetric...","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe6b4973301461aebd4c25aa945830318d140c07","unresolved":true,"context_lines":[{"line_number":534,"context_line":"to fip-namespace is ``rfp-ea902fe0-9`` and it\u0027s IPv6 address is"},{"line_number":535,"context_line":"``fe80::a0a7:c5ff:fe2c:bade``. The topology like below::"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"                        +---------------+"},{"line_number":538,"context_line":"                        |               |"},{"line_number":539,"context_line":"                        |upstream router|"},{"line_number":540,"context_line":"                        |               |"},{"line_number":541,"context_line":"                        +-------+-------+"},{"line_number":542,"context_line":"                                |"},{"line_number":543,"context_line":"                +------------------------------+"},{"line_number":544,"context_line":"                |               | compute node |"},{"line_number":545,"context_line":"                |               |              |"},{"line_number":546,"context_line":"                |       +-------+--------+     |"},{"line_number":547,"context_line":"                |       | fg-84920cf6-5e |     |"},{"line_number":548,"context_line":"                |       |                |     |"},{"line_number":549,"context_line":"                |       |  fip-namespace |     |"},{"line_number":550,"context_line":"                |       |                |     |"},{"line_number":551,"context_line":"                |       | fpr-ea902fe0-9 |     |"},{"line_number":552,"context_line":"                |       +--------+-------+     |"},{"line_number":553,"context_line":"                |                |             |"},{"line_number":554,"context_line":"                |                |             |"},{"line_number":555,"context_line":"                |       +--------+--------+    |"},{"line_number":556,"context_line":"                |       |  rfp-ea902fe0-9 |    |"},{"line_number":557,"context_line":"                |       |                 |    |"},{"line_number":558,"context_line":"                |       |qrouter-namespace|    |"},{"line_number":559,"context_line":"                |       |                 |    |"},{"line_number":560,"context_line":"                |       +-----------------+    |"},{"line_number":561,"context_line":"                |                              |"},{"line_number":562,"context_line":"                +------------------------------+"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":".. note:: We don\u0027t need to set ip6tables rules for dvr router. Because just by"},{"line_number":565,"context_line":"          adding or removing the related route in fip-namespace (as description"}],"source_content_type":"text/x-rst","patch_set":26,"id":"ecdbba1e_36d482c6","line":562,"range":{"start_line":537,"start_character":0,"end_line":562,"end_character":48},"in_reply_to":"38d74148_069deee7","updated":"2020-12-19 05:14:00.000000000","message":"I will adjustment in next patchset.","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8474dff3b9e3936abd448599996572a28fd7fbc2","unresolved":false,"context_lines":[{"line_number":534,"context_line":"to fip-namespace is ``rfp-ea902fe0-9`` and it\u0027s IPv6 address is"},{"line_number":535,"context_line":"``fe80::a0a7:c5ff:fe2c:bade``. The topology like below::"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"                        +---------------+"},{"line_number":538,"context_line":"                        |               |"},{"line_number":539,"context_line":"                        |upstream router|"},{"line_number":540,"context_line":"                        |               |"},{"line_number":541,"context_line":"                        +-------+-------+"},{"line_number":542,"context_line":"                                |"},{"line_number":543,"context_line":"                +------------------------------+"},{"line_number":544,"context_line":"                |               | compute node |"},{"line_number":545,"context_line":"                |               |              |"},{"line_number":546,"context_line":"                |       +-------+--------+     |"},{"line_number":547,"context_line":"                |       | fg-84920cf6-5e |     |"},{"line_number":548,"context_line":"                |       |                |     |"},{"line_number":549,"context_line":"                |       |  fip-namespace |     |"},{"line_number":550,"context_line":"                |       |                |     |"},{"line_number":551,"context_line":"                |       | fpr-ea902fe0-9 |     |"},{"line_number":552,"context_line":"                |       +--------+-------+     |"},{"line_number":553,"context_line":"                |                |             |"},{"line_number":554,"context_line":"                |                |             |"},{"line_number":555,"context_line":"                |       +--------+--------+    |"},{"line_number":556,"context_line":"                |       |  rfp-ea902fe0-9 |    |"},{"line_number":557,"context_line":"                |       |                 |    |"},{"line_number":558,"context_line":"                |       |qrouter-namespace|    |"},{"line_number":559,"context_line":"                |       |                 |    |"},{"line_number":560,"context_line":"                |       +-----------------+    |"},{"line_number":561,"context_line":"                |                              |"},{"line_number":562,"context_line":"                +------------------------------+"},{"line_number":563,"context_line":""},{"line_number":564,"context_line":".. note:: We don\u0027t need to set ip6tables rules for dvr router. Because just by"},{"line_number":565,"context_line":"          adding or removing the related route in fip-namespace (as description"}],"source_content_type":"text/x-rst","patch_set":26,"id":"7cbf2866_7d8cb395","line":562,"range":{"start_line":537,"start_character":0,"end_line":562,"end_character":48},"in_reply_to":"ecdbba1e_36d482c6","updated":"2020-12-19 06:13:18.000000000","message":"Done","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c52b03ee2755063f6a4a889016899bf85a2db7c4","unresolved":true,"context_lines":[{"line_number":615,"context_line":""},{"line_number":616,"context_line":"Implementation"},{"line_number":617,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"Assignee(s)"},{"line_number":620,"context_line":"-----------"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"Work Items"},{"line_number":623,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":26,"id":"bdd4a15a_67003dda","line":620,"range":{"start_line":618,"start_character":0,"end_line":620,"end_character":11},"updated":"2020-12-18 08:53:37.000000000","message":"You can fill your name below.","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8474dff3b9e3936abd448599996572a28fd7fbc2","unresolved":false,"context_lines":[{"line_number":615,"context_line":""},{"line_number":616,"context_line":"Implementation"},{"line_number":617,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"Assignee(s)"},{"line_number":620,"context_line":"-----------"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"Work Items"},{"line_number":623,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":26,"id":"b22aadac_a18b0c2a","line":620,"range":{"start_line":618,"start_character":0,"end_line":620,"end_character":11},"in_reply_to":"831bbe7b_dec91cbb","updated":"2020-12-19 06:13:18.000000000","message":"Done","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"fe6b4973301461aebd4c25aa945830318d140c07","unresolved":true,"context_lines":[{"line_number":615,"context_line":""},{"line_number":616,"context_line":"Implementation"},{"line_number":617,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"Assignee(s)"},{"line_number":620,"context_line":"-----------"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"Work Items"},{"line_number":623,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":26,"id":"831bbe7b_dec91cbb","line":620,"range":{"start_line":618,"start_character":0,"end_line":620,"end_character":11},"in_reply_to":"bdd4a15a_67003dda","updated":"2020-12-19 05:14:00.000000000","message":"thanks","commit_id":"477027b8592a64fb52201bd6ce22bfd6a440bff4"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e1e1a995334c2fd536535e7405490598a8aa3bad","unresolved":true,"context_lines":[{"line_number":12,"context_line":"https://bugs.launchpad.net/neutron/+bug/1877301"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but the NDP works at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only works on IPv6, it can"},{"line_number":17,"context_line":"proxy specific IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The Linux"}],"source_content_type":"text/x-rst","patch_set":30,"id":"4b4ba3c6_22ebc946","line":15,"range":{"start_line":15,"start_character":44,"end_line":15,"end_character":60},"updated":"2020-12-23 11:42:58.000000000","message":"Despite of implementing a specific subset of ICMPv6, this is considered a L2 protocol [1]. Yeah, I don\u0027t understand this neither...\n\n[1]https://tools.ietf.org/html/rfc2461","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6210322438d6f0c45219961f923692251c734d4b","unresolved":true,"context_lines":[{"line_number":12,"context_line":"https://bugs.launchpad.net/neutron/+bug/1877301"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The IPv6\u0027s NDP (Neighbor Discovery Protocol) is similar to IPv4\u0027s ARP (Address"},{"line_number":15,"context_line":"Resolution Protocol) in functional, but the NDP works at L3. The NDP proxy [1]_"},{"line_number":16,"context_line":"is also similar to ARP proxy [2]_. But, the NDP proxy only works on IPv6, it can"},{"line_number":17,"context_line":"proxy specific IPv6 address\u0027s NA (Neighbor Advertisement) that to response the"},{"line_number":18,"context_line":"NS (Neighbor Solicitation) which comes from the upstream router. The Linux"}],"source_content_type":"text/x-rst","patch_set":30,"id":"d3375423_59a4e14d","line":15,"range":{"start_line":15,"start_character":44,"end_line":15,"end_character":60},"in_reply_to":"4b4ba3c6_22ebc946","updated":"2020-12-26 08:00:43.000000000","message":"Because, the NDP packet has L3 header (include source ip address and destination ip address), so it can be treat as L3 protocol. The ARP packet only has L2 header.","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e1e1a995334c2fd536535e7405490598a8aa3bad","unresolved":true,"context_lines":[{"line_number":70,"context_line":"proxy. The extension behavior like below:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* If the router external gateway\u0027s ``enable_ndp_proxy`` field is true, the"},{"line_number":73,"context_line":"  router\u0027s namespace should has a default ip6tables rule to drop all packets"},{"line_number":74,"context_line":"  input from the router\u0027s external gateway device. By this way, we can"},{"line_number":75,"context_line":"  eliminate affection of extra route and neighbor in upstream router. So, if a"},{"line_number":76,"context_line":"  router\u0027s ``enable_ndp_proxy`` set as True, the Prefix Delegation [4]_ and BGP"}],"source_content_type":"text/x-rst","patch_set":30,"id":"2cd55f3a_21519418","line":73,"range":{"start_line":73,"start_character":28,"end_line":73,"end_character":31},"updated":"2020-12-23 11:42:58.000000000","message":"have","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6210322438d6f0c45219961f923692251c734d4b","unresolved":true,"context_lines":[{"line_number":70,"context_line":"proxy. The extension behavior like below:"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* If the router external gateway\u0027s ``enable_ndp_proxy`` field is true, the"},{"line_number":73,"context_line":"  router\u0027s namespace should has a default ip6tables rule to drop all packets"},{"line_number":74,"context_line":"  input from the router\u0027s external gateway device. By this way, we can"},{"line_number":75,"context_line":"  eliminate affection of extra route and neighbor in upstream router. So, if a"},{"line_number":76,"context_line":"  router\u0027s ``enable_ndp_proxy`` set as True, the Prefix Delegation [4]_ and BGP"}],"source_content_type":"text/x-rst","patch_set":30,"id":"a7bb7b88_ba4f5197","line":73,"range":{"start_line":73,"start_character":28,"end_line":73,"end_character":31},"in_reply_to":"2cd55f3a_21519418","updated":"2020-12-26 08:00:43.000000000","message":"Thx","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e1e1a995334c2fd536535e7405490598a8aa3bad","unresolved":true,"context_lines":[{"line_number":77,"context_line":"  Dynamic Routing [3]_ solution will have no effect, we should explain this in"},{"line_number":78,"context_line":"  user document."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  .. note:: If a router\u0027s ``enable_ndp_proxy`` set as Flase when the router"},{"line_number":81,"context_line":"            have ndp proxies, these ndp proxes will have no effect, the Prefix"},{"line_number":82,"context_line":"            Delegation [4]_ and BGP Dynamic Routing [3]_ solution will recover."},{"line_number":83,"context_line":"            In particular, the DVR rotuer will ignore ``enable_ndp_proxy``."}],"source_content_type":"text/x-rst","patch_set":30,"id":"e3ab2470_a598f2b9","line":80,"range":{"start_line":80,"start_character":54,"end_line":80,"end_character":59},"updated":"2020-12-23 11:42:58.000000000","message":"false","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6210322438d6f0c45219961f923692251c734d4b","unresolved":true,"context_lines":[{"line_number":77,"context_line":"  Dynamic Routing [3]_ solution will have no effect, we should explain this in"},{"line_number":78,"context_line":"  user document."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  .. note:: If a router\u0027s ``enable_ndp_proxy`` set as Flase when the router"},{"line_number":81,"context_line":"            have ndp proxies, these ndp proxes will have no effect, the Prefix"},{"line_number":82,"context_line":"            Delegation [4]_ and BGP Dynamic Routing [3]_ solution will recover."},{"line_number":83,"context_line":"            In particular, the DVR rotuer will ignore ``enable_ndp_proxy``."}],"source_content_type":"text/x-rst","patch_set":30,"id":"169f19bd_38ab8fc4","line":80,"range":{"start_line":80,"start_character":54,"end_line":80,"end_character":59},"in_reply_to":"e3ab2470_a598f2b9","updated":"2020-12-26 08:00:43.000000000","message":"Thx","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e1e1a995334c2fd536535e7405490598a8aa3bad","unresolved":true,"context_lines":[{"line_number":80,"context_line":"  .. note:: If a router\u0027s ``enable_ndp_proxy`` set as Flase when the router"},{"line_number":81,"context_line":"            have ndp proxies, these ndp proxes will have no effect, the Prefix"},{"line_number":82,"context_line":"            Delegation [4]_ and BGP Dynamic Routing [3]_ solution will recover."},{"line_number":83,"context_line":"            In particular, the DVR rotuer will ignore ``enable_ndp_proxy``."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":86,"context_line":"  at the router\u0027s external gateway device and set an ip6tables rule to permit"}],"source_content_type":"text/x-rst","patch_set":30,"id":"618aebe2_0c8bea0f","line":83,"range":{"start_line":83,"start_character":12,"end_line":83,"end_character":75},"updated":"2020-12-23 11:42:58.000000000","message":"what does it mean? DVR router should always skip this option?","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6210322438d6f0c45219961f923692251c734d4b","unresolved":true,"context_lines":[{"line_number":80,"context_line":"  .. note:: If a router\u0027s ``enable_ndp_proxy`` set as Flase when the router"},{"line_number":81,"context_line":"            have ndp proxies, these ndp proxes will have no effect, the Prefix"},{"line_number":82,"context_line":"            Delegation [4]_ and BGP Dynamic Routing [3]_ solution will recover."},{"line_number":83,"context_line":"            In particular, the DVR rotuer will ignore ``enable_ndp_proxy``."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* For each ndp proxy object, the extension should set a neighbor proxy entry"},{"line_number":86,"context_line":"  at the router\u0027s external gateway device and set an ip6tables rule to permit"}],"source_content_type":"text/x-rst","patch_set":30,"id":"041c126c_3efa15cf","line":83,"range":{"start_line":83,"start_character":12,"end_line":83,"end_character":75},"in_reply_to":"618aebe2_0c8bea0f","updated":"2020-12-26 08:00:43.000000000","message":"Yep. Current, the DVR router don\u0027t still support other solution (Such as BGP or PD) to publish IPv6 address. And the DVR router don\u0027t need to worry about the affection of extra route and neighbor in upstream router.","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e1e1a995334c2fd536535e7405490598a8aa3bad","unresolved":true,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* \u0027create_router_ndp_proxy()\u0027"},{"line_number":131,"context_line":"* \u0027delete_router_ndp_proxy()\u0027"},{"line_number":132,"context_line":"* \u0027update_router_ndp_proxy()\u0027"},{"line_number":133,"context_line":"* \u0027get_router_ndp_proxy()\u0027"},{"line_number":134,"context_line":"* \u0027get_router_ndp_proxies()\u0027"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":30,"id":"fe3b8958_315f212d","line":132,"range":{"start_line":132,"start_character":3,"end_line":132,"end_character":26},"updated":"2020-12-23 11:42:58.000000000","message":"Only name and description, right?","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6210322438d6f0c45219961f923692251c734d4b","unresolved":true,"context_lines":[{"line_number":129,"context_line":""},{"line_number":130,"context_line":"* \u0027create_router_ndp_proxy()\u0027"},{"line_number":131,"context_line":"* \u0027delete_router_ndp_proxy()\u0027"},{"line_number":132,"context_line":"* \u0027update_router_ndp_proxy()\u0027"},{"line_number":133,"context_line":"* \u0027get_router_ndp_proxy()\u0027"},{"line_number":134,"context_line":"* \u0027get_router_ndp_proxies()\u0027"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":30,"id":"8d954c2d_9bc6ff61","line":132,"range":{"start_line":132,"start_character":3,"end_line":132,"end_character":26},"in_reply_to":"fe3b8958_315f212d","updated":"2020-12-26 08:00:43.000000000","message":"Yep","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e1e1a995334c2fd536535e7405490598a8aa3bad","unresolved":true,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"   RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":211,"context_line":"        \u0027routers\u0027: {"},{"line_number":212,"context_line":"            \u0027external_gateway_info\u0027: {"},{"line_number":213,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":214,"context_line":"                \u0027allow_put\u0027: True,"},{"line_number":215,"context_line":"                \u0027is_visible\u0027: True,"}],"source_content_type":"text/x-rst","patch_set":30,"id":"ca6bd360_616f47ca","line":212,"updated":"2020-12-23 11:42:58.000000000","message":"I think you need to add and extra nested level:\nrouters-\u003eexternal_gw_info-\u003eenable_ndp_proxy-\u003e { }","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6210322438d6f0c45219961f923692251c734d4b","unresolved":true,"context_lines":[{"line_number":209,"context_line":""},{"line_number":210,"context_line":"   RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":211,"context_line":"        \u0027routers\u0027: {"},{"line_number":212,"context_line":"            \u0027external_gateway_info\u0027: {"},{"line_number":213,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":214,"context_line":"                \u0027allow_put\u0027: True,"},{"line_number":215,"context_line":"                \u0027is_visible\u0027: True,"}],"source_content_type":"text/x-rst","patch_set":30,"id":"aa5aeb08_48f1ca5e","line":212,"in_reply_to":"ca6bd360_616f47ca","updated":"2020-12-26 08:00:43.000000000","message":"Thx, I will adjust it.","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e1e1a995334c2fd536535e7405490598a8aa3bad","unresolved":true,"context_lines":[{"line_number":213,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":214,"context_line":"                \u0027allow_put\u0027: True,"},{"line_number":215,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":216,"context_line":"                \u0027default\u0027: None,"},{"line_number":217,"context_line":"                \u0027enforce_policy\u0027: True,"},{"line_number":218,"context_line":"                \u0027validate\u0027: {"},{"line_number":219,"context_line":"                    \u0027type:dict_or_nodata\u0027: {"}],"source_content_type":"text/x-rst","patch_set":30,"id":"f4f2db99_5b1e1aa8","line":216,"range":{"start_line":216,"start_character":17,"end_line":216,"end_character":32},"updated":"2020-12-23 11:42:58.000000000","message":"If this is a boolean parameter, set the default value: False (no extension or extension disabled)","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6210322438d6f0c45219961f923692251c734d4b","unresolved":true,"context_lines":[{"line_number":213,"context_line":"                \u0027allow_post\u0027: True,"},{"line_number":214,"context_line":"                \u0027allow_put\u0027: True,"},{"line_number":215,"context_line":"                \u0027is_visible\u0027: True,"},{"line_number":216,"context_line":"                \u0027default\u0027: None,"},{"line_number":217,"context_line":"                \u0027enforce_policy\u0027: True,"},{"line_number":218,"context_line":"                \u0027validate\u0027: {"},{"line_number":219,"context_line":"                    \u0027type:dict_or_nodata\u0027: {"}],"source_content_type":"text/x-rst","patch_set":30,"id":"57732a34_d7908016","line":216,"range":{"start_line":216,"start_character":17,"end_line":216,"end_character":32},"in_reply_to":"f4f2db99_5b1e1aa8","updated":"2020-12-26 08:00:43.000000000","message":"Good suggestion, thx.","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e1e1a995334c2fd536535e7405490598a8aa3bad","unresolved":true,"context_lines":[{"line_number":219,"context_line":"                    \u0027type:dict_or_nodata\u0027: {"},{"line_number":220,"context_line":"                        \u0027enable_ndp_proxy\u0027: {"},{"line_number":221,"context_line":"                            \u0027type:boolean\u0027: None, \u0027required\u0027: False,"},{"line_number":222,"context_line":"                            \u0027convert_to\u0027: converters.convert_to_boolean}"},{"line_number":223,"context_line":"                    }"},{"line_number":224,"context_line":"                }"},{"line_number":225,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":30,"id":"05d13364_741c801d","line":222,"range":{"start_line":222,"start_character":53,"end_line":222,"end_character":71},"updated":"2020-12-23 11:42:58.000000000","message":"convert_to_boolean_if_not_none","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6210322438d6f0c45219961f923692251c734d4b","unresolved":true,"context_lines":[{"line_number":219,"context_line":"                    \u0027type:dict_or_nodata\u0027: {"},{"line_number":220,"context_line":"                        \u0027enable_ndp_proxy\u0027: {"},{"line_number":221,"context_line":"                            \u0027type:boolean\u0027: None, \u0027required\u0027: False,"},{"line_number":222,"context_line":"                            \u0027convert_to\u0027: converters.convert_to_boolean}"},{"line_number":223,"context_line":"                    }"},{"line_number":224,"context_line":"                }"},{"line_number":225,"context_line":"            }"}],"source_content_type":"text/x-rst","patch_set":30,"id":"9123fe4f_a6ff23d1","line":222,"range":{"start_line":222,"start_character":53,"end_line":222,"end_character":71},"in_reply_to":"05d13364_741c801d","updated":"2020-12-26 08:00:43.000000000","message":"thx","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e1e1a995334c2fd536535e7405490598a8aa3bad","unresolved":true,"context_lines":[{"line_number":521,"context_line":"  ``neutron-l3-agent-NDP``. The executed commands like below::"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    sysctl -w net.ipv6.conf.qg-733bd76b-62.proxy_ndp\u003d0"},{"line_number":524,"context_line":"    ip6tables -X neutron-l3-agent-NDP"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"HA router Impact"},{"line_number":527,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":30,"id":"d957ceaa_cad042d6","line":524,"updated":"2020-12-23 11:42:58.000000000","message":"and delete the \"neutron-l3-agent-FORWARD\" entry, I guess","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"6210322438d6f0c45219961f923692251c734d4b","unresolved":true,"context_lines":[{"line_number":521,"context_line":"  ``neutron-l3-agent-NDP``. The executed commands like below::"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    sysctl -w net.ipv6.conf.qg-733bd76b-62.proxy_ndp\u003d0"},{"line_number":524,"context_line":"    ip6tables -X neutron-l3-agent-NDP"},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"HA router Impact"},{"line_number":527,"context_line":"~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":30,"id":"afa2d2a3_6533f2c9","line":524,"in_reply_to":"d957ceaa_cad042d6","updated":"2020-12-26 08:00:43.000000000","message":"This rule will be automatically deleted by the cascade. So we don\u0027t need to write extra codes to delete it.","commit_id":"a7cf342e2aeee05fb29c224d973e401889b16907"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"df66f0b0930d443b8a823e51b780c03474e558ac","unresolved":true,"context_lines":[{"line_number":61,"context_line":"* Add a parameter to ``external_gateway_info`` of ``router``, we can named it"},{"line_number":62,"context_line":"  as ``enable_ndp_proxy``. Only the parameter set as ``True``, the ndp proxy"},{"line_number":63,"context_line":"  entry can be created in the router. Additionally, the network of the ``router"},{"line_number":64,"context_line":"  external gateway`` should be associated a IPv6 address scope [5]_."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Agent Side"},{"line_number":67,"context_line":"~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":31,"id":"49a1d80c_52461420","line":64,"range":{"start_line":64,"start_character":31,"end_line":64,"end_character":41},"updated":"2021-01-07 11:08:02.000000000","message":"nit: associated with a","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"09e84dfefe96e35cf44241528742faca1e638f93","unresolved":false,"context_lines":[{"line_number":61,"context_line":"* Add a parameter to ``external_gateway_info`` of ``router``, we can named it"},{"line_number":62,"context_line":"  as ``enable_ndp_proxy``. Only the parameter set as ``True``, the ndp proxy"},{"line_number":63,"context_line":"  entry can be created in the router. Additionally, the network of the ``router"},{"line_number":64,"context_line":"  external gateway`` should be associated a IPv6 address scope [5]_."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Agent Side"},{"line_number":67,"context_line":"~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":31,"id":"f5ec3796_2a37f9bc","line":64,"range":{"start_line":64,"start_character":31,"end_line":64,"end_character":41},"in_reply_to":"49a1d80c_52461420","updated":"2021-01-09 09:51:24.000000000","message":"Done","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"df66f0b0930d443b8a823e51b780c03474e558ac","unresolved":true,"context_lines":[{"line_number":77,"context_line":"  Dynamic Routing [3]_ solution will have no effect, we should explain this in"},{"line_number":78,"context_line":"  user document."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  .. note:: If a router\u0027s ``enable_ndp_proxy`` set as flase when the router"},{"line_number":81,"context_line":"            have ndp proxies, these ndp proxes will have no effect, the Prefix"},{"line_number":82,"context_line":"            Delegation [4]_ and BGP Dynamic Routing [3]_ solution will recover."},{"line_number":83,"context_line":"            In particular, the DVR router will ignore ``enable_ndp_proxy``."}],"source_content_type":"text/x-rst","patch_set":31,"id":"12eeea1c_c95afaee","line":80,"range":{"start_line":80,"start_character":54,"end_line":80,"end_character":59},"updated":"2021-01-07 11:08:02.000000000","message":"nit: false","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"09e84dfefe96e35cf44241528742faca1e638f93","unresolved":false,"context_lines":[{"line_number":77,"context_line":"  Dynamic Routing [3]_ solution will have no effect, we should explain this in"},{"line_number":78,"context_line":"  user document."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"  .. note:: If a router\u0027s ``enable_ndp_proxy`` set as flase when the router"},{"line_number":81,"context_line":"            have ndp proxies, these ndp proxes will have no effect, the Prefix"},{"line_number":82,"context_line":"            Delegation [4]_ and BGP Dynamic Routing [3]_ solution will recover."},{"line_number":83,"context_line":"            In particular, the DVR router will ignore ``enable_ndp_proxy``."}],"source_content_type":"text/x-rst","patch_set":31,"id":"8f66a081_a86398c5","line":80,"range":{"start_line":80,"start_character":54,"end_line":80,"end_character":59},"in_reply_to":"12eeea1c_c95afaee","updated":"2021-01-09 09:51:24.000000000","message":"Done","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"df66f0b0930d443b8a823e51b780c03474e558ac","unresolved":true,"context_lines":[{"line_number":491,"context_line":""},{"line_number":492,"context_line":"* When add the IPv6 subnet to the router (the router external gateway\u0027s"},{"line_number":493,"context_line":"  ``enable_ndp_proxy`` already set as true), Before user advertise the subnet\u0027s"},{"line_number":494,"context_line":"  address with ndp proxy, the subnet shoud drop all external traffic. So, the"},{"line_number":495,"context_line":"  following cmd should be executed::"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    ip6tables -I neutron-l3-agent-FORWARD -i qg-733bd76b-62 --destination 2001::1:0/112 -j neutron-l3-agent-NDP"}],"source_content_type":"text/x-rst","patch_set":31,"id":"29bf77a1_d007b874","line":494,"range":{"start_line":494,"start_character":37,"end_line":494,"end_character":42},"updated":"2021-01-07 11:08:02.000000000","message":"nit: should","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"09e84dfefe96e35cf44241528742faca1e638f93","unresolved":false,"context_lines":[{"line_number":491,"context_line":""},{"line_number":492,"context_line":"* When add the IPv6 subnet to the router (the router external gateway\u0027s"},{"line_number":493,"context_line":"  ``enable_ndp_proxy`` already set as true), Before user advertise the subnet\u0027s"},{"line_number":494,"context_line":"  address with ndp proxy, the subnet shoud drop all external traffic. So, the"},{"line_number":495,"context_line":"  following cmd should be executed::"},{"line_number":496,"context_line":""},{"line_number":497,"context_line":"    ip6tables -I neutron-l3-agent-FORWARD -i qg-733bd76b-62 --destination 2001::1:0/112 -j neutron-l3-agent-NDP"}],"source_content_type":"text/x-rst","patch_set":31,"id":"a86818ac_c13b0062","line":494,"range":{"start_line":494,"start_character":37,"end_line":494,"end_character":42},"in_reply_to":"29bf77a1_d007b874","updated":"2021-01-09 09:51:24.000000000","message":"Done","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"df66f0b0930d443b8a823e51b780c03474e558ac","unresolved":true,"context_lines":[{"line_number":532,"context_line":""},{"line_number":533,"context_line":".. note:: When HA router\u0027s state has changed, the ``keepalived`` will sends"},{"line_number":534,"context_line":"          unsolicited neighbor advertisement automatically. So, we don\u0027t need"},{"line_number":535,"context_line":"          to write extra codes to do this."},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"DVR Router Impact"},{"line_number":538,"context_line":"~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":31,"id":"5e63874d_f6772fcf","line":535,"range":{"start_line":535,"start_character":25,"end_line":535,"end_character":30},"updated":"2021-01-07 11:08:02.000000000","message":"nit: code","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"09e84dfefe96e35cf44241528742faca1e638f93","unresolved":false,"context_lines":[{"line_number":532,"context_line":""},{"line_number":533,"context_line":".. note:: When HA router\u0027s state has changed, the ``keepalived`` will sends"},{"line_number":534,"context_line":"          unsolicited neighbor advertisement automatically. So, we don\u0027t need"},{"line_number":535,"context_line":"          to write extra codes to do this."},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"DVR Router Impact"},{"line_number":538,"context_line":"~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":31,"id":"168c823f_4a44cb36","line":535,"range":{"start_line":535,"start_character":25,"end_line":535,"end_character":30},"in_reply_to":"5e63874d_f6772fcf","updated":"2021-01-09 09:51:24.000000000","message":"Done","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"df66f0b0930d443b8a823e51b780c03474e558ac","unresolved":true,"context_lines":[{"line_number":588,"context_line":""},{"line_number":589,"context_line":"    ip route add default via fe80::8493:5bff:fe9b:8d93 dev rfp-ea902fe0-9"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"* Because of the device which direct connect to upstream router is locate in"},{"line_number":592,"context_line":"  fip-namespace, the proxy entry should be set in fip-namespace. So, the"},{"line_number":593,"context_line":"  below cmd should be executed in all fip-namespace::"},{"line_number":594,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"4b6a8ca1_39703dde","line":591,"range":{"start_line":591,"start_character":30,"end_line":591,"end_character":44},"updated":"2021-01-07 11:08:02.000000000","message":"I would say \"directly connects\"","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"df66f0b0930d443b8a823e51b780c03474e558ac","unresolved":true,"context_lines":[{"line_number":588,"context_line":""},{"line_number":589,"context_line":"    ip route add default via fe80::8493:5bff:fe9b:8d93 dev rfp-ea902fe0-9"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"* Because of the device which direct connect to upstream router is locate in"},{"line_number":592,"context_line":"  fip-namespace, the proxy entry should be set in fip-namespace. So, the"},{"line_number":593,"context_line":"  below cmd should be executed in all fip-namespace::"},{"line_number":594,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"0b633cf1_bcd4db14","line":591,"range":{"start_line":591,"start_character":67,"end_line":591,"end_character":73},"updated":"2021-01-07 11:08:02.000000000","message":"located","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"09e84dfefe96e35cf44241528742faca1e638f93","unresolved":false,"context_lines":[{"line_number":588,"context_line":""},{"line_number":589,"context_line":"    ip route add default via fe80::8493:5bff:fe9b:8d93 dev rfp-ea902fe0-9"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"* Because of the device which direct connect to upstream router is locate in"},{"line_number":592,"context_line":"  fip-namespace, the proxy entry should be set in fip-namespace. So, the"},{"line_number":593,"context_line":"  below cmd should be executed in all fip-namespace::"},{"line_number":594,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"4ffb93a8_357d71e7","line":591,"range":{"start_line":591,"start_character":67,"end_line":591,"end_character":73},"in_reply_to":"0b633cf1_bcd4db14","updated":"2021-01-09 09:51:24.000000000","message":"Done","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"09e84dfefe96e35cf44241528742faca1e638f93","unresolved":false,"context_lines":[{"line_number":588,"context_line":""},{"line_number":589,"context_line":"    ip route add default via fe80::8493:5bff:fe9b:8d93 dev rfp-ea902fe0-9"},{"line_number":590,"context_line":""},{"line_number":591,"context_line":"* Because of the device which direct connect to upstream router is locate in"},{"line_number":592,"context_line":"  fip-namespace, the proxy entry should be set in fip-namespace. So, the"},{"line_number":593,"context_line":"  below cmd should be executed in all fip-namespace::"},{"line_number":594,"context_line":""}],"source_content_type":"text/x-rst","patch_set":31,"id":"4ae230e3_ac2df813","line":591,"range":{"start_line":591,"start_character":30,"end_line":591,"end_character":44},"in_reply_to":"4b6a8ca1_39703dde","updated":"2021-01-09 09:51:24.000000000","message":"Done","commit_id":"688c0882102461c1a8204735e78e6a6893affc58"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a9bd056ea5765f596bbb8913f466d60164e71e10","unresolved":true,"context_lines":[{"line_number":210,"context_line":"   RESOURCE_ATTRIBUTE_MAP \u003d {"},{"line_number":211,"context_line":"        \u0027routers\u0027: {"},{"line_number":212,"context_line":"            \u0027external_gateway_info\u0027: {"},{"line_number":213,"context_line":"                \u0027is_part\u0027: True,"},{"line_number":214,"context_line":"                \u0027enable_ndp_proxy\u0027: {"},{"line_number":215,"context_line":"                    \u0027type:boolean\u0027: None, \u0027required\u0027: False,"},{"line_number":216,"context_line":"                    \u0027convert_to\u0027: converters.convert_to_boolean}"}],"source_content_type":"text/x-rst","patch_set":32,"id":"5c90fc24_e6941970","line":213,"range":{"start_line":213,"start_character":16,"end_line":213,"end_character":32},"updated":"2021-01-12 07:41:34.000000000","message":"This is a new API input？","commit_id":"be9587d5e88f159889ffa9e4a61fe064238be132"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"a9bd056ea5765f596bbb8913f466d60164e71e10","unresolved":true,"context_lines":[{"line_number":228,"context_line":".. note:: We need to write some codes to support easily extend"},{"line_number":229,"context_line":"          external_gateway_info. Currently, the external_gateway_info already"},{"line_number":230,"context_line":"          extended some attributes, such as ``enable_snat`` and"},{"line_number":231,"context_line":"          ``qos_policy_id``, but these attributes\u0027s extenstion method aren\u0027t"},{"line_number":232,"context_line":"          referential. As above, I introduce a parameter ``is_part``, if it set"},{"line_number":233,"context_line":"          as ``True`` then mean that this extension defined parameters just"},{"line_number":234,"context_line":"          only used to extent other extension defined same name parameter."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"For example, GET a ``router``:"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"3f54cd6e_f6079daf","line":234,"range":{"start_line":231,"start_character":29,"end_line":234,"end_character":74},"updated":"2021-01-12 07:41:34.000000000","message":"Sorry, I did not get these points. Neutron supports to extend one same attribute more than once.","commit_id":"be9587d5e88f159889ffa9e4a61fe064238be132"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"c3bad4b954027e2fb0f2286498da11cda6a5ac3a","unresolved":true,"context_lines":[{"line_number":228,"context_line":".. note:: We need to write some codes to support easily extend"},{"line_number":229,"context_line":"          external_gateway_info. Currently, the external_gateway_info already"},{"line_number":230,"context_line":"          extended some attributes, such as ``enable_snat`` and"},{"line_number":231,"context_line":"          ``qos_policy_id``, but these attributes\u0027s extenstion method aren\u0027t"},{"line_number":232,"context_line":"          referential. As above, I introduce a parameter ``is_part``, if it set"},{"line_number":233,"context_line":"          as ``True`` then mean that this extension defined parameters just"},{"line_number":234,"context_line":"          only used to extent other extension defined same name parameter."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"For example, GET a ``router``:"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"c943ef05_60a168b0","line":234,"range":{"start_line":231,"start_character":29,"end_line":234,"end_character":74},"in_reply_to":"3f54cd6e_f6079daf","updated":"2021-01-17 07:56:33.000000000","message":"Sorry, Maybe I didn\u0027t describe it clear. Now, The router external_gateway_info already has a instability paramter: \"qos_policy_id\" (Only existing when qos service plugin be enabled). Now, the spec propose to extend a new instability paramter enable_ndp_proxy to external_gateway_info (Only existing when ndp_proxy service plugin be enabled). So, We need to consider two scenes when define new external_gateway_info extension file: 1. enable ndp_proxy and disable qos; 2. enable ndp_proxy and enable qos. Their api extension files are difference. Now, neutron has no mechanism to process this issue. This sentence propose a new mechanism to implement that extension neutron resource\u0027s parameter\u0027s parameter (The parent parameter must is dict type). The code [1] is this idea\u0027s POC code.\n\n[1] https://review.opendev.org/c/openstack/neutron/+/743142/12/neutron/api/extensions.py#336","commit_id":"be9587d5e88f159889ffa9e4a61fe064238be132"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"e924687c2446a6599caaf95cbcedeb506ad88fa0","unresolved":true,"context_lines":[{"line_number":228,"context_line":".. note:: We need to write some codes to support easily extend"},{"line_number":229,"context_line":"          external_gateway_info. Currently, the external_gateway_info already"},{"line_number":230,"context_line":"          extended some attributes, such as ``enable_snat`` and"},{"line_number":231,"context_line":"          ``qos_policy_id``, but these attributes\u0027s extenstion method aren\u0027t"},{"line_number":232,"context_line":"          referential. As above, I introduce a parameter ``is_part``, if it set"},{"line_number":233,"context_line":"          as ``True`` then mean that this extension defined parameters just"},{"line_number":234,"context_line":"          only used to extent other extension defined same name parameter."},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"For example, GET a ``router``:"},{"line_number":237,"context_line":""}],"source_content_type":"text/x-rst","patch_set":32,"id":"9cf3c6d9_c4c57065","line":234,"range":{"start_line":231,"start_character":29,"end_line":234,"end_character":74},"in_reply_to":"c943ef05_60a168b0","updated":"2021-01-17 08:03:13.000000000","message":"Maybe, we can make enable_ndp_proxy parameter as router\u0027s top paramter to skip this issue.","commit_id":"be9587d5e88f159889ffa9e4a61fe064238be132"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b2ea4e09b467393de6971e35894f143703741a91","unresolved":true,"context_lines":[{"line_number":61,"context_line":"* Add a parameter to ``external_gateway_info`` of ``router``, we can named it"},{"line_number":62,"context_line":"  as ``enable_ndp_proxy``. Only the parameter set as ``True``, the ndp proxy"},{"line_number":63,"context_line":"  entry can be created in the router. Additionally, the network of the ``router"},{"line_number":64,"context_line":"  external gateway`` should be associated with a IPv6 address scope [5]_."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Agent Side"},{"line_number":67,"context_line":"~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":33,"id":"f6ea8223_335ead25","line":64,"range":{"start_line":64,"start_character":21,"end_line":64,"end_character":73},"updated":"2021-01-21 09:14:10.000000000","message":"Why? If not, what happened?","commit_id":"95530a6a718d414022572b43d3ce8d5860683dad"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b2ea4e09b467393de6971e35894f143703741a91","unresolved":true,"context_lines":[{"line_number":290,"context_line":""},{"line_number":291,"context_line":"The router must meet some constraint conditions when set the router\u0027s ``enable_ndp_proxy`` to ``True``:"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"* The router must has external gateway"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"* The network of router\u0027s external gateway must has ``ipv6_address_scope``."},{"line_number":296,"context_line":""}],"source_content_type":"text/x-rst","patch_set":33,"id":"4c0b65d4_e7773b8c","line":293,"range":{"start_line":293,"start_character":18,"end_line":293,"end_character":21},"updated":"2021-01-21 09:14:10.000000000","message":"have","commit_id":"95530a6a718d414022572b43d3ce8d5860683dad"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"b2ea4e09b467393de6971e35894f143703741a91","unresolved":true,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"* The router must has external gateway"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"* The network of router\u0027s external gateway must has ``ipv6_address_scope``."},{"line_number":296,"context_line":""},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"For the new resource ``ndp_proxy``, some new URLs will be introduced:"}],"source_content_type":"text/x-rst","patch_set":33,"id":"b4fc126a_8543f2db","line":295,"range":{"start_line":295,"start_character":43,"end_line":295,"end_character":51},"updated":"2021-01-21 09:14:10.000000000","message":"\u0027must have\u0027, but why? Why the external network must have address scope?\n\nDid you mean this is to aviod address overlap among different subnet pools? If so, I don\u0027t think it is a \u0027must\u0027 condition. Someting like IPv4, floating IPs from different external networks can be overlapped, but there is no such limitation for IPv4 floating IP. But it can be applied to IPv4 floating IP to prevent overlap.","commit_id":"95530a6a718d414022572b43d3ce8d5860683dad"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"c2672dc2a3c69598ede27ebff4e51ea28ddf8ac2","unresolved":true,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"* The router must has external gateway"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"* The network of router\u0027s external gateway must has ``ipv6_address_scope``."},{"line_number":296,"context_line":""},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"For the new resource ``ndp_proxy``, some new URLs will be introduced:"}],"source_content_type":"text/x-rst","patch_set":33,"id":"75aee590_4ebae846","line":295,"range":{"start_line":295,"start_character":43,"end_line":295,"end_character":51},"in_reply_to":"b4fc126a_8543f2db","updated":"2021-01-23 06:22:50.000000000","message":"Thinks Yulong\u0027s remind. My understanding of address scope was wrong before. Yep, you are right, the `ipv6_address_scope` is not necessary when set `enable_ndp_proxy` to True. After test, I found if multiple networks have no `ipv6_address_scope`, neutron will default treat them as belong to same ipv6 address scope. But, when create ndp proxy entry, we also need to check that wheter the internal network\u0027s `ipv6_address_scope` is same with external network\u0027s (Both is null, also treat as same).","commit_id":"95530a6a718d414022572b43d3ce8d5860683dad"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c5c62eed552e33260f5d7621b3e30b72552d9dc8","unresolved":true,"context_lines":[{"line_number":58,"context_line":"* Implement an API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource and its APIs."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Add a parameter to ``router``, we can named it as ``enable_ndp_proxy``. It"},{"line_number":62,"context_line":"  used to specify whether the router support ndp proxy function. Only the"},{"line_number":63,"context_line":"  parameter set as ``True``, the ndp proxy entry can be created in the router."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Agent Side"},{"line_number":66,"context_line":"~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":35,"id":"cc59086d_43cfbb0e","line":63,"range":{"start_line":61,"start_character":0,"end_line":63,"end_character":78},"updated":"2021-01-26 02:11:08.000000000","message":"Add a new parameter ``enable_ndp_proxy`` to router. If it is set to True, the ndp proxy will be enabled in router namespace.","commit_id":"9e57b90bef882001837afd5be9b184ed4ef45240"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"304b69e6ec8009bfcee251e309911e43eb32371b","unresolved":true,"context_lines":[{"line_number":58,"context_line":"* Implement an API extension, In the extension we should define a named"},{"line_number":59,"context_line":"  ``ndp_proxy`` resource and its APIs."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"* Add a parameter to ``router``, we can named it as ``enable_ndp_proxy``. It"},{"line_number":62,"context_line":"  used to specify whether the router support ndp proxy function. Only the"},{"line_number":63,"context_line":"  parameter set as ``True``, the ndp proxy entry can be created in the router."},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"Agent Side"},{"line_number":66,"context_line":"~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":35,"id":"6596bff0_40dc43f2","line":63,"range":{"start_line":61,"start_character":0,"end_line":63,"end_character":78},"in_reply_to":"cc59086d_43cfbb0e","updated":"2021-01-27 11:05:14.000000000","message":"Thanks very much.","commit_id":"9e57b90bef882001837afd5be9b184ed4ef45240"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"c5c62eed552e33260f5d7621b3e30b72552d9dc8","unresolved":true,"context_lines":[{"line_number":468,"context_line":"    ip6tables -A neutron-l3-agent-NDP -i qg-733bd76b-62 -j DROP"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":".. note:: If the router have no external gateway, the parameter"},{"line_number":471,"context_line":"          ``enable_ndp_proxy`` weill be ignored."},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"* When add the IPv6 subnet to the router (the router\u0027s ``enable_ndp_proxy``"},{"line_number":474,"context_line":"  already set as true), Before user advertise the subnet\u0027s address with ndp"}],"source_content_type":"text/x-rst","patch_set":35,"id":"951efb0a_0588053b","line":471,"range":{"start_line":471,"start_character":31,"end_line":471,"end_character":36},"updated":"2021-01-26 02:11:08.000000000","message":"s/will","commit_id":"9e57b90bef882001837afd5be9b184ed4ef45240"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"304b69e6ec8009bfcee251e309911e43eb32371b","unresolved":true,"context_lines":[{"line_number":468,"context_line":"    ip6tables -A neutron-l3-agent-NDP -i qg-733bd76b-62 -j DROP"},{"line_number":469,"context_line":""},{"line_number":470,"context_line":".. note:: If the router have no external gateway, the parameter"},{"line_number":471,"context_line":"          ``enable_ndp_proxy`` weill be ignored."},{"line_number":472,"context_line":""},{"line_number":473,"context_line":"* When add the IPv6 subnet to the router (the router\u0027s ``enable_ndp_proxy``"},{"line_number":474,"context_line":"  already set as true), Before user advertise the subnet\u0027s address with ndp"}],"source_content_type":"text/x-rst","patch_set":35,"id":"d7133f74_05336135","line":471,"range":{"start_line":471,"start_character":31,"end_line":471,"end_character":36},"in_reply_to":"951efb0a_0588053b","updated":"2021-01-27 11:05:14.000000000","message":"thx","commit_id":"9e57b90bef882001837afd5be9b184ed4ef45240"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"1e90f2bcd33d96ea34197ab2df622b735131615a","unresolved":true,"context_lines":[{"line_number":234,"context_line":"            \"created_at\": \"2018-03-19T19:17:04Z\","},{"line_number":235,"context_line":"            \"description\": \"\","},{"line_number":236,"context_line":"            \"distributed\": false,"},{"line_number":237,"context_line":"            \"enable_ndp_proxy\": False,"},{"line_number":238,"context_line":"            \"external_gateway_info\": {"},{"line_number":239,"context_line":"                \"enable_snat\": true,"},{"line_number":240,"context_line":"                \"external_fixed_ips\": ["}],"source_content_type":"text/x-rst","patch_set":36,"id":"ea20a57e_afc28ecb","line":237,"range":{"start_line":237,"start_character":32,"end_line":237,"end_character":37},"updated":"2021-01-28 11:34:14.000000000","message":"nitty nit: all other things are written in lowercase","commit_id":"af8398a1ca4f82002eab1a2184ac4ebf3110b890"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"4aa82c231f3e0ee0f95e0485ee378c383dd07238","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            \"created_at\": \"2018-03-19T19:17:04Z\","},{"line_number":235,"context_line":"            \"description\": \"\","},{"line_number":236,"context_line":"            \"distributed\": false,"},{"line_number":237,"context_line":"            \"enable_ndp_proxy\": False,"},{"line_number":238,"context_line":"            \"external_gateway_info\": {"},{"line_number":239,"context_line":"                \"enable_snat\": true,"},{"line_number":240,"context_line":"                \"external_fixed_ips\": ["}],"source_content_type":"text/x-rst","patch_set":36,"id":"76365f2f_9e9f19ba","line":237,"range":{"start_line":237,"start_character":32,"end_line":237,"end_character":37},"in_reply_to":"ea20a57e_afc28ecb","updated":"2021-01-29 00:54:01.000000000","message":"Done","commit_id":"af8398a1ca4f82002eab1a2184ac4ebf3110b890"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"eebdc50ccb996f97443ad9394669aa6734ff6c6a","unresolved":true,"context_lines":[{"line_number":125,"context_line":"For this new feature, a new service plugin will be introduced, and the"},{"line_number":126,"context_line":"following methods will be added:"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* \u0027create_router_ndp_proxy()\u0027"},{"line_number":129,"context_line":"* \u0027delete_router_ndp_proxy()\u0027"},{"line_number":130,"context_line":"* \u0027update_router_ndp_proxy()\u0027"},{"line_number":131,"context_line":"* \u0027get_router_ndp_proxy()\u0027"}],"source_content_type":"text/x-rst","patch_set":37,"id":"0058d9e8_c3469d17","line":128,"range":{"start_line":128,"start_character":3,"end_line":128,"end_character":26},"updated":"2021-02-04 04:42:33.000000000","message":"nit: The resource name is \"ndp_proxy\", so we usually call it as \"create_ndp_proxy\".","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8a3e91063fb2d26fd3dad7e3913fdafe8ae94d29","unresolved":true,"context_lines":[{"line_number":125,"context_line":"For this new feature, a new service plugin will be introduced, and the"},{"line_number":126,"context_line":"following methods will be added:"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"* \u0027create_router_ndp_proxy()\u0027"},{"line_number":129,"context_line":"* \u0027delete_router_ndp_proxy()\u0027"},{"line_number":130,"context_line":"* \u0027update_router_ndp_proxy()\u0027"},{"line_number":131,"context_line":"* \u0027get_router_ndp_proxy()\u0027"}],"source_content_type":"text/x-rst","patch_set":37,"id":"ad20f64b_0b7d7250","line":128,"range":{"start_line":128,"start_character":3,"end_line":128,"end_character":26},"in_reply_to":"0058d9e8_c3469d17","updated":"2021-02-05 11:03:24.000000000","message":"thx","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"eebdc50ccb996f97443ad9394669aa6734ff6c6a","unresolved":true,"context_lines":[{"line_number":163,"context_line":"                        \u0027required\u0027: True,"},{"line_number":164,"context_line":"                        \u0027validate\u0027: {\u0027type:uuid\u0027: None},"},{"line_number":165,"context_line":"                        \u0027is_visible\u0027: True},"},{"line_number":166,"context_line":"            \u0027ip_address\u0027: {\u0027allow_post\u0027: True,"},{"line_number":167,"context_line":"                           \u0027allow_put\u0027: False,"},{"line_number":168,"context_line":"                           \u0027default\u0027: None,"},{"line_number":169,"context_line":"                           \u0027validate\u0027: {"}],"source_content_type":"text/x-rst","patch_set":37,"id":"31071c58_a1897f8e","line":166,"range":{"start_line":166,"start_character":11,"end_line":166,"end_character":24},"updated":"2021-02-04 04:42:33.000000000","message":"Question: Is this \"ip_address\" one of IPv6 addresses of a port specified by \"port_id\" field?\nAs the API level, is this an optional field if a port specified by \"port_id\" has only one IPv6 address?\n(I see no description on these fields in the API level, so I\u0027d like to clarify it.)","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8a3e91063fb2d26fd3dad7e3913fdafe8ae94d29","unresolved":true,"context_lines":[{"line_number":163,"context_line":"                        \u0027required\u0027: True,"},{"line_number":164,"context_line":"                        \u0027validate\u0027: {\u0027type:uuid\u0027: None},"},{"line_number":165,"context_line":"                        \u0027is_visible\u0027: True},"},{"line_number":166,"context_line":"            \u0027ip_address\u0027: {\u0027allow_post\u0027: True,"},{"line_number":167,"context_line":"                           \u0027allow_put\u0027: False,"},{"line_number":168,"context_line":"                           \u0027default\u0027: None,"},{"line_number":169,"context_line":"                           \u0027validate\u0027: {"}],"source_content_type":"text/x-rst","patch_set":37,"id":"5cb82a34_2879e9fb","line":166,"range":{"start_line":166,"start_character":11,"end_line":166,"end_character":24},"in_reply_to":"31071c58_a1897f8e","updated":"2021-02-05 11:03:24.000000000","message":"Yep, you are full right. This should be optional.","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"eebdc50ccb996f97443ad9394669aa6734ff6c6a","unresolved":true,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    {"},{"line_number":280,"context_line":"        \"router\": {"},{"line_number":281,"context_line":"            \"enable_ndp_proxy\": True"},{"line_number":282,"context_line":"        }"},{"line_number":283,"context_line":"    }"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-rst","patch_set":37,"id":"43c3d39f_e6b803aa","line":281,"range":{"start_line":281,"start_character":32,"end_line":281,"end_character":36},"updated":"2021-02-04 04:42:33.000000000","message":"nit: Precisely speaking, it should be \"true\" instead of \"True\". \"True\" is not valid in JSON.","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8a3e91063fb2d26fd3dad7e3913fdafe8ae94d29","unresolved":true,"context_lines":[{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    {"},{"line_number":280,"context_line":"        \"router\": {"},{"line_number":281,"context_line":"            \"enable_ndp_proxy\": True"},{"line_number":282,"context_line":"        }"},{"line_number":283,"context_line":"    }"},{"line_number":284,"context_line":""}],"source_content_type":"text/x-rst","patch_set":37,"id":"21eb85ef_1c0ff925","line":281,"range":{"start_line":281,"start_character":32,"end_line":281,"end_character":36},"in_reply_to":"43c3d39f_e6b803aa","updated":"2021-02-05 11:03:24.000000000","message":"thx","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"eebdc50ccb996f97443ad9394669aa6734ff6c6a","unresolved":true,"context_lines":[{"line_number":298,"context_line":"                \"project_id\": \"ad239fa5-ceb7-8b81-abf5-b930d7f6ceb7\","},{"line_number":299,"context_line":"                \"id\": \"ae34051f-aa6c-4c75-abf5-50dc9ac99ef3\","},{"line_number":300,"context_line":"                \"name\": \"test01\","},{"line_number":301,"context_line":"                \"port\": \"fa450s1f-aa6c-4c75-abf5-50dc9ac9df67\","},{"line_number":302,"context_line":"                \"ip_address\": \"2001:217::19\","},{"line_number":303,"context_line":"                \"created_at\":\"2020-05-21T11:33:21Z\","},{"line_number":304,"context_line":"                \"updated_at\":\"2020-06-18T08:31:48Z\","}],"source_content_type":"text/x-rst","patch_set":37,"id":"bb793371_29d5cd0c","line":301,"range":{"start_line":301,"start_character":16,"end_line":301,"end_character":22},"updated":"2021-02-04 04:42:33.000000000","message":"In the above API defintion, it is \"port_id\".","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8a3e91063fb2d26fd3dad7e3913fdafe8ae94d29","unresolved":true,"context_lines":[{"line_number":298,"context_line":"                \"project_id\": \"ad239fa5-ceb7-8b81-abf5-b930d7f6ceb7\","},{"line_number":299,"context_line":"                \"id\": \"ae34051f-aa6c-4c75-abf5-50dc9ac99ef3\","},{"line_number":300,"context_line":"                \"name\": \"test01\","},{"line_number":301,"context_line":"                \"port\": \"fa450s1f-aa6c-4c75-abf5-50dc9ac9df67\","},{"line_number":302,"context_line":"                \"ip_address\": \"2001:217::19\","},{"line_number":303,"context_line":"                \"created_at\":\"2020-05-21T11:33:21Z\","},{"line_number":304,"context_line":"                \"updated_at\":\"2020-06-18T08:31:48Z\","}],"source_content_type":"text/x-rst","patch_set":37,"id":"4a8eb5e3_2b19fa04","line":301,"range":{"start_line":301,"start_character":16,"end_line":301,"end_character":22},"in_reply_to":"bb793371_29d5cd0c","updated":"2021-02-05 11:03:24.000000000","message":"thx","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"eebdc50ccb996f97443ad9394669aa6734ff6c6a","unresolved":true,"context_lines":[{"line_number":329,"context_line":"            \"project_id\": \"ad239fa5-ceb7-8b81-abf5-b930d7f6ceb7\","},{"line_number":330,"context_line":"            \"id\": \"ae34051f-aa6c-4c75-abf5-50dc9ac99ef3\","},{"line_number":331,"context_line":"            \"name\": \"test01\","},{"line_number":332,"context_line":"            \"port\": \"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\""},{"line_number":333,"context_line":"            \"ip_address\": \"2001:217::19\","},{"line_number":334,"context_line":"            \"created_at\":\"2020-05-21T11:33:21Z\","},{"line_number":335,"context_line":"            \"updated_at\":\"2020-06-18T08:31:48Z\","}],"source_content_type":"text/x-rst","patch_set":37,"id":"35fd20a9_7f43d7c3","line":332,"range":{"start_line":332,"start_character":11,"end_line":332,"end_character":19},"updated":"2021-02-04 04:42:33.000000000","message":"-\u003e port_id","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8a3e91063fb2d26fd3dad7e3913fdafe8ae94d29","unresolved":true,"context_lines":[{"line_number":329,"context_line":"            \"project_id\": \"ad239fa5-ceb7-8b81-abf5-b930d7f6ceb7\","},{"line_number":330,"context_line":"            \"id\": \"ae34051f-aa6c-4c75-abf5-50dc9ac99ef3\","},{"line_number":331,"context_line":"            \"name\": \"test01\","},{"line_number":332,"context_line":"            \"port\": \"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\""},{"line_number":333,"context_line":"            \"ip_address\": \"2001:217::19\","},{"line_number":334,"context_line":"            \"created_at\":\"2020-05-21T11:33:21Z\","},{"line_number":335,"context_line":"            \"updated_at\":\"2020-06-18T08:31:48Z\","}],"source_content_type":"text/x-rst","patch_set":37,"id":"aa2e50e2_4298a447","line":332,"range":{"start_line":332,"start_character":11,"end_line":332,"end_character":19},"in_reply_to":"35fd20a9_7f43d7c3","updated":"2021-02-05 11:03:24.000000000","message":"thx","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"eebdc50ccb996f97443ad9394669aa6734ff6c6a","unresolved":true,"context_lines":[{"line_number":404,"context_line":"            \"name\": \"test02\","},{"line_number":405,"context_line":"            \"project_id\": \"ad239fa5-ceb7-8b81-abf5-b930d7f6ceb7\","},{"line_number":406,"context_line":"            \"router_id\": \"5823deb7-8b81-ceb7-40a0-b930d7f6ceb7\","},{"line_number":407,"context_line":"            \"port\": \"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\""},{"line_number":408,"context_line":"            \"ip_address\": \"2001:217::56\","},{"line_number":409,"context_line":"            \"created_at\":\"2020-05-21T11:33:21Z\","},{"line_number":410,"context_line":"            \"updated_at\":\"2020-06-18T08:31:48Z\","}],"source_content_type":"text/x-rst","patch_set":37,"id":"49333e6c_b67d6882","line":407,"range":{"start_line":407,"start_character":12,"end_line":407,"end_character":18},"updated":"2021-02-04 04:42:33.000000000","message":"port_id","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8a3e91063fb2d26fd3dad7e3913fdafe8ae94d29","unresolved":true,"context_lines":[{"line_number":404,"context_line":"            \"name\": \"test02\","},{"line_number":405,"context_line":"            \"project_id\": \"ad239fa5-ceb7-8b81-abf5-b930d7f6ceb7\","},{"line_number":406,"context_line":"            \"router_id\": \"5823deb7-8b81-ceb7-40a0-b930d7f6ceb7\","},{"line_number":407,"context_line":"            \"port\": \"b930d7f6-ceb7-40a0-8b81-a425dd994ccf\""},{"line_number":408,"context_line":"            \"ip_address\": \"2001:217::56\","},{"line_number":409,"context_line":"            \"created_at\":\"2020-05-21T11:33:21Z\","},{"line_number":410,"context_line":"            \"updated_at\":\"2020-06-18T08:31:48Z\","}],"source_content_type":"text/x-rst","patch_set":37,"id":"15370203_fd06bd6f","line":407,"range":{"start_line":407,"start_character":12,"end_line":407,"end_character":18},"in_reply_to":"49333e6c_b67d6882","updated":"2021-02-05 11:03:24.000000000","message":"thx","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"eebdc50ccb996f97443ad9394669aa6734ff6c6a","unresolved":true,"context_lines":[{"line_number":446,"context_line":"* A distributed/legacy router which set external gateway and connect to the"},{"line_number":447,"context_line":"  subnet."},{"line_number":448,"context_line":""},{"line_number":449,"context_line":".. note:: For HA router, the implementation of the feature is same as Legacy"},{"line_number":450,"context_line":"          router. During failover, the traffic will be breaked, but it will"},{"line_number":451,"context_line":"          recover soon if the failover accomplished. So, we don\u0027t need extra"},{"line_number":452,"context_line":"          process for HA router."},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"Legacy router Impact"},{"line_number":455,"context_line":"~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":37,"id":"089cb9c1_bf9a7f0d","line":452,"range":{"start_line":449,"start_character":0,"end_line":452,"end_character":32},"updated":"2021-02-04 04:42:33.000000000","message":"I think this can be merged into \"HA router impact\" seciton below.","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8a3e91063fb2d26fd3dad7e3913fdafe8ae94d29","unresolved":true,"context_lines":[{"line_number":446,"context_line":"* A distributed/legacy router which set external gateway and connect to the"},{"line_number":447,"context_line":"  subnet."},{"line_number":448,"context_line":""},{"line_number":449,"context_line":".. note:: For HA router, the implementation of the feature is same as Legacy"},{"line_number":450,"context_line":"          router. During failover, the traffic will be breaked, but it will"},{"line_number":451,"context_line":"          recover soon if the failover accomplished. So, we don\u0027t need extra"},{"line_number":452,"context_line":"          process for HA router."},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"Legacy router Impact"},{"line_number":455,"context_line":"~~~~~~~~~~~~~~~~~~~~"}],"source_content_type":"text/x-rst","patch_set":37,"id":"287fe7ec_c65a2dc9","line":452,"range":{"start_line":449,"start_character":0,"end_line":452,"end_character":32},"in_reply_to":"089cb9c1_bf9a7f0d","updated":"2021-02-05 11:03:24.000000000","message":"thx","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"eebdc50ccb996f97443ad9394669aa6734ff6c6a","unresolved":true,"context_lines":[{"line_number":520,"context_line":"For DVR [6]_ router, it\u0027s a little different from legacy and HA router. Because"},{"line_number":521,"context_line":"of the IPv6 don\u0027t support any NAT action, the network node is dispensable. Due"},{"line_number":522,"context_line":"to the traffic need to be processed in local compute node so the `agent_mode`"},{"line_number":523,"context_line":"just support `dvr`, can\u0027t be set as `dvr_no_external`. So, the all following"},{"line_number":524,"context_line":"actions of ndp proxy was executed at compute nodes."},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"Assume the fip-namespace\u0027s fg-dev port is ``fg-84920cf6-5e``; the port connect"}],"source_content_type":"text/x-rst","patch_set":37,"id":"a17507dd_54c3e407","line":523,"range":{"start_line":523,"start_character":20,"end_line":523,"end_character":53},"updated":"2021-02-04 04:42:33.000000000","message":"just a question: What happens when agent_mode is dvr_no_external?","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"8a3e91063fb2d26fd3dad7e3913fdafe8ae94d29","unresolved":true,"context_lines":[{"line_number":520,"context_line":"For DVR [6]_ router, it\u0027s a little different from legacy and HA router. Because"},{"line_number":521,"context_line":"of the IPv6 don\u0027t support any NAT action, the network node is dispensable. Due"},{"line_number":522,"context_line":"to the traffic need to be processed in local compute node so the `agent_mode`"},{"line_number":523,"context_line":"just support `dvr`, can\u0027t be set as `dvr_no_external`. So, the all following"},{"line_number":524,"context_line":"actions of ndp proxy was executed at compute nodes."},{"line_number":525,"context_line":""},{"line_number":526,"context_line":"Assume the fip-namespace\u0027s fg-dev port is ``fg-84920cf6-5e``; the port connect"}],"source_content_type":"text/x-rst","patch_set":37,"id":"24ee50f2_48ab4462","line":523,"range":{"start_line":523,"start_character":20,"end_line":523,"end_character":53},"in_reply_to":"a17507dd_54c3e407","updated":"2021-02-05 11:03:24.000000000","message":"Due to the IPv6 don\u0027t support NAT action, so the north-south traffic should\u0027t redirect to network node\u0027s snat-namespace, so the traffic need to be processed in local compute node. It we set agent_mode as dve_no_external, the fip-namespace don\u0027t exist in local compute node, the north-south traffic will breaking. Of course, we can write code to apply ndp proxy entry in network node for dvr router in the future, but this need to design a new solution and do some PoC tests. For now, I have no plan to implement it.","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"eebdc50ccb996f97443ad9394669aa6734ff6c6a","unresolved":true,"context_lines":[{"line_number":659,"context_line":"Developer Documentation"},{"line_number":660,"context_line":"-----------------------"},{"line_number":661,"context_line":"Needs devref documentation"},{"line_number":662,"context_line":""},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"References"},{"line_number":665,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":37,"id":"9a79642f_9791b49b","line":662,"updated":"2021-02-04 04:42:33.000000000","message":"+ API reference","commit_id":"0ba3c42630f520bb8d7852393f68e01ddc97dc92"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4a028c4e07acdebe9b38871b4c7741783e522206","unresolved":true,"context_lines":[{"line_number":165,"context_line":"                        \u0027is_visible\u0027: True},"},{"line_number":166,"context_line":"            \u0027ip_address\u0027: {\u0027allow_post\u0027: True,"},{"line_number":167,"context_line":"                           \u0027allow_put\u0027: False,"},{"line_number":168,"context_line":"                           \u0027required\u0027: False,"},{"line_number":169,"context_line":"                           \u0027default\u0027: None,"},{"line_number":170,"context_line":"                           \u0027validate\u0027: {"},{"line_number":171,"context_line":"                               \u0027type:ip_address_or_none\u0027: None},"}],"source_content_type":"text/x-rst","patch_set":38,"id":"9ab880e7_bdfec4ac","line":168,"updated":"2021-02-12 07:52:43.000000000","message":"IIRC \u0027required\u0027 in the attribute map has no meaning. How does it work?\nI don\u0027t see any \u0027required\u0027 field in the existing API definition in neutron-lib.\n\u0027required\u0027 I see in neutron-lib API definitions is only as a value of \"validate\" parameter.","commit_id":"40306ed260831342dbb8aa2ca7fca842ed340db4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"1a8485fd384dfa3b9c082d159eb485c45713b8ad","unresolved":true,"context_lines":[{"line_number":166,"context_line":"            \u0027ip_address\u0027: {\u0027allow_post\u0027: True,"},{"line_number":167,"context_line":"                           \u0027allow_put\u0027: False,"},{"line_number":168,"context_line":"                           \u0027required\u0027: False,"},{"line_number":169,"context_line":"                           \u0027default\u0027: None,"},{"line_number":170,"context_line":"                           \u0027validate\u0027: {"},{"line_number":171,"context_line":"                               \u0027type:ip_address_or_none\u0027: None},"},{"line_number":172,"context_line":"                           \u0027is_visible\u0027: True}"}],"source_content_type":"text/x-rst","patch_set":38,"id":"e49331fd_eaded4ca","line":169,"range":{"start_line":169,"start_character":27,"end_line":169,"end_character":43},"updated":"2021-02-07 07:22:19.000000000","message":"nit: Remove \u0027default\u0027 value will make it optional implicitly.","commit_id":"40306ed260831342dbb8aa2ca7fca842ed340db4"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4a028c4e07acdebe9b38871b4c7741783e522206","unresolved":true,"context_lines":[{"line_number":166,"context_line":"            \u0027ip_address\u0027: {\u0027allow_post\u0027: True,"},{"line_number":167,"context_line":"                           \u0027allow_put\u0027: False,"},{"line_number":168,"context_line":"                           \u0027required\u0027: False,"},{"line_number":169,"context_line":"                           \u0027default\u0027: None,"},{"line_number":170,"context_line":"                           \u0027validate\u0027: {"},{"line_number":171,"context_line":"                               \u0027type:ip_address_or_none\u0027: None},"},{"line_number":172,"context_line":"                           \u0027is_visible\u0027: True}"}],"source_content_type":"text/x-rst","patch_set":38,"id":"63f2970e_565f462a","line":169,"range":{"start_line":169,"start_character":27,"end_line":169,"end_character":43},"in_reply_to":"0a0b6dd5_2681781c","updated":"2021-02-12 07:52:43.000000000","message":"Hmm... I cannot understand Liu\u0027s comment.\n\"ip_address\" is an optional field, so I think we should have \"default\" here.\nIf you drop \"default\" filed here, it means \"ip_address\" field is required.","commit_id":"40306ed260831342dbb8aa2ca7fca842ed340db4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"8c2f2017370040eed51387c6e1248b5806eba048","unresolved":true,"context_lines":[{"line_number":166,"context_line":"            \u0027ip_address\u0027: {\u0027allow_post\u0027: True,"},{"line_number":167,"context_line":"                           \u0027allow_put\u0027: False,"},{"line_number":168,"context_line":"                           \u0027required\u0027: False,"},{"line_number":169,"context_line":"                           \u0027default\u0027: None,"},{"line_number":170,"context_line":"                           \u0027validate\u0027: {"},{"line_number":171,"context_line":"                               \u0027type:ip_address_or_none\u0027: None},"},{"line_number":172,"context_line":"                           \u0027is_visible\u0027: True}"}],"source_content_type":"text/x-rst","patch_set":38,"id":"0e9fb6f9_4e686584","line":169,"range":{"start_line":169,"start_character":27,"end_line":169,"end_character":43},"in_reply_to":"63f2970e_565f462a","updated":"2021-02-22 01:58:05.000000000","message":"I made a mistake. I want to comment to that `\u0027required\u0027: False,`, remove that.","commit_id":"40306ed260831342dbb8aa2ca7fca842ed340db4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"7a41bd7beb8045d3006de6bb8287538e46f6c282","unresolved":true,"context_lines":[{"line_number":166,"context_line":"            \u0027ip_address\u0027: {\u0027allow_post\u0027: True,"},{"line_number":167,"context_line":"                           \u0027allow_put\u0027: False,"},{"line_number":168,"context_line":"                           \u0027required\u0027: False,"},{"line_number":169,"context_line":"                           \u0027default\u0027: None,"},{"line_number":170,"context_line":"                           \u0027validate\u0027: {"},{"line_number":171,"context_line":"                               \u0027type:ip_address_or_none\u0027: None},"},{"line_number":172,"context_line":"                           \u0027is_visible\u0027: True}"}],"source_content_type":"text/x-rst","patch_set":38,"id":"0a0b6dd5_2681781c","line":169,"range":{"start_line":169,"start_character":27,"end_line":169,"end_character":43},"in_reply_to":"e49331fd_eaded4ca","updated":"2021-02-08 08:09:46.000000000","message":"thx","commit_id":"40306ed260831342dbb8aa2ca7fca842ed340db4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"1a8485fd384dfa3b9c082d159eb485c45713b8ad","unresolved":true,"context_lines":[{"line_number":173,"context_line":"            \u0027description\u0027: {\u0027allow_post\u0027: True,"},{"line_number":174,"context_line":"                            \u0027allow_put\u0027: True,"},{"line_number":175,"context_line":"                            \u0027required\u0027: False,"},{"line_number":176,"context_line":"                            \u0027default\u0027: None,"},{"line_number":177,"context_line":"                            \u0027validate\u0027: {\u0027type:string\u0027: 1024},"},{"line_number":178,"context_line":"                            \u0027is_visible\u0027: True}"},{"line_number":179,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":38,"id":"6fa24352_0ff9010e","line":176,"range":{"start_line":176,"start_character":28,"end_line":176,"end_character":44},"updated":"2021-02-07 07:22:19.000000000","message":"ditto","commit_id":"40306ed260831342dbb8aa2ca7fca842ed340db4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"7a41bd7beb8045d3006de6bb8287538e46f6c282","unresolved":true,"context_lines":[{"line_number":173,"context_line":"            \u0027description\u0027: {\u0027allow_post\u0027: True,"},{"line_number":174,"context_line":"                            \u0027allow_put\u0027: True,"},{"line_number":175,"context_line":"                            \u0027required\u0027: False,"},{"line_number":176,"context_line":"                            \u0027default\u0027: None,"},{"line_number":177,"context_line":"                            \u0027validate\u0027: {\u0027type:string\u0027: 1024},"},{"line_number":178,"context_line":"                            \u0027is_visible\u0027: True}"},{"line_number":179,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":38,"id":"ef52950d_06b1218b","line":176,"range":{"start_line":176,"start_character":28,"end_line":176,"end_character":44},"in_reply_to":"6fa24352_0ff9010e","updated":"2021-02-08 08:09:46.000000000","message":"thx","commit_id":"40306ed260831342dbb8aa2ca7fca842ed340db4"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"4a028c4e07acdebe9b38871b4c7741783e522206","unresolved":true,"context_lines":[{"line_number":173,"context_line":"            \u0027description\u0027: {\u0027allow_post\u0027: True,"},{"line_number":174,"context_line":"                            \u0027allow_put\u0027: True,"},{"line_number":175,"context_line":"                            \u0027required\u0027: False,"},{"line_number":176,"context_line":"                            \u0027default\u0027: None,"},{"line_number":177,"context_line":"                            \u0027validate\u0027: {\u0027type:string\u0027: 1024},"},{"line_number":178,"context_line":"                            \u0027is_visible\u0027: True}"},{"line_number":179,"context_line":"        }"}],"source_content_type":"text/x-rst","patch_set":38,"id":"f9d7b2c5_d821b20d","line":176,"range":{"start_line":176,"start_character":28,"end_line":176,"end_character":44},"in_reply_to":"ef52950d_06b1218b","updated":"2021-02-12 07:52:43.000000000","message":"\"description\" field is optional, so we need \"default\" field here.\nHowever, the default value should be \"\" instead of None.","commit_id":"40306ed260831342dbb8aa2ca7fca842ed340db4"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"1a8485fd384dfa3b9c082d159eb485c45713b8ad","unresolved":true,"context_lines":[{"line_number":521,"context_line":"just support `dvr`, can\u0027t be set as `dvr_no_external`. So, the all following"},{"line_number":522,"context_line":"actions of ndp proxy was executed at compute nodes."},{"line_number":523,"context_line":""},{"line_number":524,"context_line":".. note:: Maybe we can by apply ndp proxies entry at network nodes\u0027"},{"line_number":525,"context_line":"          snat-namespace to support `dvr_no_external` mode. But this need to"},{"line_number":526,"context_line":"          design a new solution and do some PoC tests. This spec not cover this"},{"line_number":527,"context_line":"          now."},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"Assume the fip-namespace\u0027s fg-dev port is ``fg-84920cf6-5e``; the port connect"},{"line_number":530,"context_line":"fip-namespace to qrouter-namespace is ``fpr-ea902fe0-9`` and it\u0027s IPv6"}],"source_content_type":"text/x-rst","patch_set":38,"id":"ff0a7433_6d2b5900","line":527,"range":{"start_line":524,"start_character":0,"end_line":527,"end_character":14},"updated":"2021-02-07 07:22:19.000000000","message":"Enable ndp_proxy in snat namespace for dvr_no_external nodes is working:\n1. qg-device can still work for ndp_proxy\n2. sg-device of ipv6 subnet will add the route to the internal subnet\n3. a default route in qrouter-namespace in dvr_no_external node which is pointing to sg-device in snat ns\n\"\"\"\n445545147:\tfrom fda7:a5cc:3460:2::1/64 lookup 445545147 \ndefault via fda7:a5cc:3460:1::307 dev qr-2518364f-77 metric 1024 pref medium\n\"\"\"\n4. traffic from VM to outside world goes to the snat-namespace\n\nActually everthing is same to floating IP.\n\nSo we can accomplish this, for dvr_no_external this extension should not be enabled, nothing changed for such L3 agent type. And all configration works for the ipv6 address will be done only in snat node, same to legacy router.","commit_id":"40306ed260831342dbb8aa2ca7fca842ed340db4"},{"author":{"_account_id":28329,"name":"yangjianfeng","display_name":"JeffYang","email":"yjf1970231893@gmail.com","username":"yangjianfeng"},"change_message_id":"7a41bd7beb8045d3006de6bb8287538e46f6c282","unresolved":true,"context_lines":[{"line_number":521,"context_line":"just support `dvr`, can\u0027t be set as `dvr_no_external`. So, the all following"},{"line_number":522,"context_line":"actions of ndp proxy was executed at compute nodes."},{"line_number":523,"context_line":""},{"line_number":524,"context_line":".. note:: Maybe we can by apply ndp proxies entry at network nodes\u0027"},{"line_number":525,"context_line":"          snat-namespace to support `dvr_no_external` mode. But this need to"},{"line_number":526,"context_line":"          design a new solution and do some PoC tests. This spec not cover this"},{"line_number":527,"context_line":"          now."},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"Assume the fip-namespace\u0027s fg-dev port is ``fg-84920cf6-5e``; the port connect"},{"line_number":530,"context_line":"fip-namespace to qrouter-namespace is ``fpr-ea902fe0-9`` and it\u0027s IPv6"}],"source_content_type":"text/x-rst","patch_set":38,"id":"03784b1b_e5f38fa6","line":527,"range":{"start_line":524,"start_character":0,"end_line":527,"end_character":14},"in_reply_to":"ff0a7433_6d2b5900","updated":"2021-02-08 08:09:46.000000000","message":"Thanks, I will do some tests for this, and then modify the spec.","commit_id":"40306ed260831342dbb8aa2ca7fca842ed340db4"}]}
