)]}'
{"specs/juno/multiple-ipv6-prefixes.rst":[{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"5765fc8e71f06e9f476aa89395c20ad946ac26e3","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  associated with that port to a maximum of one IP address per family"},{"line_number":43,"context_line":"  (i.e. up to one IPv4 address and up to one IPv6 address). (Note: for"},{"line_number":44,"context_line":"  externally-facing gateway ports, the number of IP addresses is further"},{"line_number":45,"context_line":"  restricted to a single IP address, either IPv4 or IPv6. See Ref 1.)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  For IPv4, following port creation, the port can then be associated with"},{"line_number":48,"context_line":"  additional fixed IP addresses using the port-update API, and/or it can be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_e004f77f","line":45,"updated":"2014-06-10 15:36:56.000000000","message":"We could make these as refs in RST syntax:\n\nhttp://sphinx-doc.org/rest.html#hyperlinks","commit_id":"9ef8a9c2c94a306657fa4936fe46a26cd270854d"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"de2caac4c28a32b1c30bb34f5d0e2dcd4d4b0933","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  associated with that port to a maximum of one IP address per family"},{"line_number":43,"context_line":"  (i.e. up to one IPv4 address and up to one IPv6 address). (Note: for"},{"line_number":44,"context_line":"  externally-facing gateway ports, the number of IP addresses is further"},{"line_number":45,"context_line":"  restricted to a single IP address, either IPv4 or IPv6. See Ref 1.)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  For IPv4, following port creation, the port can then be associated with"},{"line_number":48,"context_line":"  additional fixed IP addresses using the port-update API, and/or it can be"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_0ff45059","line":45,"in_reply_to":"1ae5cdf2_e004f77f","updated":"2014-06-12 21:50:40.000000000","message":"Done","commit_id":"9ef8a9c2c94a306657fa4936fe46a26cd270854d"},{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"5765fc8e71f06e9f476aa89395c20ad946ac26e3","unresolved":false,"context_lines":[{"line_number":410,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"1. Neutron Blueprint: Allow multiple subnets on gateway."},{"line_number":413,"context_line":"   https://blueprints.launchpad.net/neutron/+spec/allow-multiple-subnets-on-gateway-port"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"2. RFC 4861: Neighbor Discovery for IP version 6 (IPv6)"},{"line_number":416,"context_line":"   https://datatracker.ietf.org/doc/rfc4861"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_40020b70","line":413,"updated":"2014-06-10 15:36:56.000000000","message":"RST hyperlink syntax \n\nhttp://sphinx-doc.org/rest.html#hyperlinks","commit_id":"9ef8a9c2c94a306657fa4936fe46a26cd270854d"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"de2caac4c28a32b1c30bb34f5d0e2dcd4d4b0933","unresolved":false,"context_lines":[{"line_number":410,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":411,"context_line":""},{"line_number":412,"context_line":"1. Neutron Blueprint: Allow multiple subnets on gateway."},{"line_number":413,"context_line":"   https://blueprints.launchpad.net/neutron/+spec/allow-multiple-subnets-on-gateway-port"},{"line_number":414,"context_line":""},{"line_number":415,"context_line":"2. RFC 4861: Neighbor Discovery for IP version 6 (IPv6)"},{"line_number":416,"context_line":"   https://datatracker.ietf.org/doc/rfc4861"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_8fff8033","line":413,"in_reply_to":"1ae5cdf2_40020b70","updated":"2014-06-12 21:50:40.000000000","message":"Done","commit_id":"9ef8a9c2c94a306657fa4936fe46a26cd270854d"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"821e6f3d51319d8455906bb2e1fd90cb5f3c0895","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  be configured and supported in Neutron, and how closely the IPv6"},{"line_number":57,"context_line":"  implementation will follow the IPv4 paradigm:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"  * IPv6 addresses are more abundant. Which means:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    * We can afford to be less conservative about assigning addresses to a"},{"line_number":62,"context_line":"      port from each of the subnets within a network."}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab895d6_e59f014f","line":59,"updated":"2014-06-29 19:38:20.000000000","message":"Super ultra pedantic nit: s/Which/This/","commit_id":"aa1cc0c9cba9e4c27338a367dff9acf919df4bc6"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"5c0040b480d45c0d3b6c9cb06869ff206f3a4ebb","unresolved":false,"context_lines":[{"line_number":56,"context_line":"  be configured and supported in Neutron, and how closely the IPv6"},{"line_number":57,"context_line":"  implementation will follow the IPv4 paradigm:"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"  * IPv6 addresses are more abundant. Which means:"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    * We can afford to be less conservative about assigning addresses to a"},{"line_number":62,"context_line":"      port from each of the subnets within a network."}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_af221fb7","line":59,"in_reply_to":"dab895d6_e59f014f","updated":"2014-07-01 19:28:00.000000000","message":"Done","commit_id":"aa1cc0c9cba9e4c27338a367dff9acf919df4bc6"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"821e6f3d51319d8455906bb2e1fd90cb5f3c0895","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    that the subnet should be associated with that port."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    Theoretically, it would be possible to change this behavior by hacking"},{"line_number":101,"context_line":"    RA generator used on an OpenStack network (whether it be dnsmasq or radvd)"},{"line_number":102,"context_line":"    so that RA messages are delivered via unicast, and then devise a scheme to"},{"line_number":103,"context_line":"    selectively enable or filter RA messages on a per port basis, but this"},{"line_number":104,"context_line":"    would take a significant amount of hacking and would probably be rather"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab895d6_e5f46189","line":101,"updated":"2014-06-29 19:38:20.000000000","message":"\"... hacking the RA generator ...\" (missing \u0027the\u0027).\n\nAlso, it has been decided that dnsmasq will not be used for RA, so you just need to say \u0027(radvd)\u0027.","commit_id":"aa1cc0c9cba9e4c27338a367dff9acf919df4bc6"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"5c0040b480d45c0d3b6c9cb06869ff206f3a4ebb","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    that the subnet should be associated with that port."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    Theoretically, it would be possible to change this behavior by hacking"},{"line_number":101,"context_line":"    RA generator used on an OpenStack network (whether it be dnsmasq or radvd)"},{"line_number":102,"context_line":"    so that RA messages are delivered via unicast, and then devise a scheme to"},{"line_number":103,"context_line":"    selectively enable or filter RA messages on a per port basis, but this"},{"line_number":104,"context_line":"    would take a significant amount of hacking and would probably be rather"}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_5af93fe8","line":101,"in_reply_to":"dab895d6_e5f46189","updated":"2014-07-01 19:28:00.000000000","message":"Done","commit_id":"aa1cc0c9cba9e4c27338a367dff9acf919df4bc6"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"821e6f3d51319d8455906bb2e1fd90cb5f3c0895","unresolved":false,"context_lines":[{"line_number":168,"context_line":"  changed so that these subnets will be allowed to be deleted even when there"},{"line_number":169,"context_line":"  are ports which are using IPv6 addresses from this subnet. In this case,"},{"line_number":170,"context_line":"  when a subnet deletion is requested, the Neutron L3 agent should reconfigure"},{"line_number":171,"context_line":"  the source of RA messages (dnsmasq or radvd) to eliminate advertisement of"},{"line_number":172,"context_line":"  the associated prefix. The VMs on the subnet will in time receive the"},{"line_number":173,"context_line":"  updated RA messages, and start the process of disabling the SLAAC-generated"},{"line_number":174,"context_line":"  address. (Note: According to RFC 2862, VMs should leave the address in a"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab895d6_054955d0","line":171,"updated":"2014-06-29 19:38:20.000000000","message":"Only radvd.","commit_id":"aa1cc0c9cba9e4c27338a367dff9acf919df4bc6"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"5c0040b480d45c0d3b6c9cb06869ff206f3a4ebb","unresolved":false,"context_lines":[{"line_number":168,"context_line":"  changed so that these subnets will be allowed to be deleted even when there"},{"line_number":169,"context_line":"  are ports which are using IPv6 addresses from this subnet. In this case,"},{"line_number":170,"context_line":"  when a subnet deletion is requested, the Neutron L3 agent should reconfigure"},{"line_number":171,"context_line":"  the source of RA messages (dnsmasq or radvd) to eliminate advertisement of"},{"line_number":172,"context_line":"  the associated prefix. The VMs on the subnet will in time receive the"},{"line_number":173,"context_line":"  updated RA messages, and start the process of disabling the SLAAC-generated"},{"line_number":174,"context_line":"  address. (Note: According to RFC 2862, VMs should leave the address in a"}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_bac41b41","line":171,"in_reply_to":"dab895d6_054955d0","updated":"2014-07-01 19:28:00.000000000","message":"Done","commit_id":"aa1cc0c9cba9e4c27338a367dff9acf919df4bc6"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"821e6f3d51319d8455906bb2e1fd90cb5f3c0895","unresolved":false,"context_lines":[{"line_number":268,"context_line":"subnet delete will need to be changed to allow for deletion of a"},{"line_number":269,"context_line":"SLAAC-enabled subnet even when that subnet still has ports in use with"},{"line_number":270,"context_line":"SLAAC-generated addresses. In this case, the Neutron L3 agent should"},{"line_number":271,"context_line":"reconfigure the source of RA messages (dnsmasq or radvd) to eliminate"},{"line_number":272,"context_line":"advertisement of the associated prefix. The VMs on the subnet will in time"},{"line_number":273,"context_line":"receive the updated RA messages, and start the process of disabling the"},{"line_number":274,"context_line":"SLAAC-generated address."}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab895d6_c56cbd39","line":271,"updated":"2014-06-29 19:38:20.000000000","message":"radvd only\n\nWhat if the \u0027source of RA messages\u0027 is an external router?","commit_id":"aa1cc0c9cba9e4c27338a367dff9acf919df4bc6"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"5c0040b480d45c0d3b6c9cb06869ff206f3a4ebb","unresolved":false,"context_lines":[{"line_number":268,"context_line":"subnet delete will need to be changed to allow for deletion of a"},{"line_number":269,"context_line":"SLAAC-enabled subnet even when that subnet still has ports in use with"},{"line_number":270,"context_line":"SLAAC-generated addresses. In this case, the Neutron L3 agent should"},{"line_number":271,"context_line":"reconfigure the source of RA messages (dnsmasq or radvd) to eliminate"},{"line_number":272,"context_line":"advertisement of the associated prefix. The VMs on the subnet will in time"},{"line_number":273,"context_line":"receive the updated RA messages, and start the process of disabling the"},{"line_number":274,"context_line":"SLAAC-generated address."}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_f531440c","line":271,"in_reply_to":"dab895d6_c56cbd39","updated":"2014-07-01 19:28:00.000000000","message":"I\u0027ve reworded this to say that the source of the RA messages is assumed to be reconfigured to eliminate the advertisement of the associated subnet when the subnet is deleted, and when the source of the RA messages is an internal radvd process, it\u0027s expected that the L3 agent will do this reconfiguration when the subnet is removed from the internal gateway port, or when the internal gateway port is deleted.","commit_id":"aa1cc0c9cba9e4c27338a367dff9acf919df4bc6"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"821e6f3d51319d8455906bb2e1fd90cb5f3c0895","unresolved":false,"context_lines":[{"line_number":422,"context_line":"   \u003chttps://blueprints.launchpad.net/devstack/+spec/ipv6-support\u003e`_"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":".. [Ref-5] Neutron Blueprint: `Two Attributes Proposal to Control IPv6 RA"},{"line_number":425,"context_line":"   \u003cAnnouncement and Address Assignment"},{"line_number":426,"context_line":"   https://blueprints.launchpad.net/neutron/+spec/ipv6-two-attributes\u003e`_"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":".. [Ref-6] Neutron Blueprint: `Provider Networking - upstream SLAAC support"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1ae5cdf2_17bf7061","line":425,"updated":"2014-06-29 19:38:20.000000000","message":"The \u0027\u003c\u0027 should be in front of \u0027https\u0027 below.","commit_id":"aa1cc0c9cba9e4c27338a367dff9acf919df4bc6"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"5c0040b480d45c0d3b6c9cb06869ff206f3a4ebb","unresolved":false,"context_lines":[{"line_number":422,"context_line":"   \u003chttps://blueprints.launchpad.net/devstack/+spec/ipv6-support\u003e`_"},{"line_number":423,"context_line":""},{"line_number":424,"context_line":".. [Ref-5] Neutron Blueprint: `Two Attributes Proposal to Control IPv6 RA"},{"line_number":425,"context_line":"   \u003cAnnouncement and Address Assignment"},{"line_number":426,"context_line":"   https://blueprints.launchpad.net/neutron/+spec/ipv6-two-attributes\u003e`_"},{"line_number":427,"context_line":""},{"line_number":428,"context_line":".. [Ref-6] Neutron Blueprint: `Provider Networking - upstream SLAAC support"}],"source_content_type":"text/x-rst","patch_set":4,"id":"baada198_2310e300","line":425,"in_reply_to":"1ae5cdf2_17bf7061","updated":"2014-07-01 19:28:00.000000000","message":"Done","commit_id":"aa1cc0c9cba9e4c27338a367dff9acf919df4bc6"},{"author":{"_account_id":4656,"name":"Sean M. Collins","email":"sean@coreitpro.com","username":"scollins"},"change_message_id":"eeaa2cbd184f898911eac992329f9c77e1ac0976","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    With the current Neutron implementation, a subnet is configured for"},{"line_number":83,"context_line":"    SLAAC vs. DHCPv6 address mode when the subnet is created"},{"line_number":84,"context_line":"    by setting the \"ipv6_ra_mode\" and \"ipvt_address_mode\" attributes in a"},{"line_number":85,"context_line":"    subnet-create API call. These attributes were added with the blueprint"},{"line_number":86,"context_line":"    listed in [Ref-5]_. Attribute values are described in [Ref-7]_."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"baada198_a6ade18a","line":84,"updated":"2014-07-01 20:03:22.000000000","message":"\"ipvt_address_mode\" should be \"ipv6_address_mode\"","commit_id":"a454eec21a2cd836eb70c80c6021efacb4a31085"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"138b2854b82b9e6f8ddb391967cd1a32200e35ad","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    With the current Neutron implementation, a subnet is configured for"},{"line_number":83,"context_line":"    SLAAC vs. DHCPv6 address mode when the subnet is created"},{"line_number":84,"context_line":"    by setting the \"ipv6_ra_mode\" and \"ipvt_address_mode\" attributes in a"},{"line_number":85,"context_line":"    subnet-create API call. These attributes were added with the blueprint"},{"line_number":86,"context_line":"    listed in [Ref-5]_. Attribute values are described in [Ref-7]_."},{"line_number":87,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"baada198_41a5cf51","line":84,"in_reply_to":"baada198_a6ade18a","updated":"2014-07-01 20:52:36.000000000","message":"D\u0027oh... fat fingers. Fixed.","commit_id":"a454eec21a2cd836eb70c80c6021efacb4a31085"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"a8d5021938e1ad4416939e9d51a8fe6d34208277","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  a pool of pre-determined public IPv6 addresses, and associate that"},{"line_number":28,"context_line":"  address with a VM or set of VMs. Note: Unlike the IPv4 Floating IP"},{"line_number":29,"context_line":"  feature, IPv6 support would not involve NAT translation from fixed IPs"},{"line_number":30,"context_line":"  to floating IPs. This design specification is a pre-requisite for"},{"line_number":31,"context_line":"  for IPv6 Floating IPs; more details will be covered in a separate"},{"line_number":32,"context_line":"  blueprint."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_ae638cdb","line":30,"updated":"2014-07-25 12:49:29.000000000","message":"duplicate \u0027for\u0027","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"424a8935c8b964947bfc44f5c3cf96f0853ed362","unresolved":false,"context_lines":[{"line_number":27,"context_line":"  a pool of pre-determined public IPv6 addresses, and associate that"},{"line_number":28,"context_line":"  address with a VM or set of VMs. Note: Unlike the IPv4 Floating IP"},{"line_number":29,"context_line":"  feature, IPv6 support would not involve NAT translation from fixed IPs"},{"line_number":30,"context_line":"  to floating IPs. This design specification is a pre-requisite for"},{"line_number":31,"context_line":"  for IPv6 Floating IPs; more details will be covered in a separate"},{"line_number":32,"context_line":"  blueprint."},{"line_number":33,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da9df570_91fd333d","line":30,"in_reply_to":"baada198_ae638cdb","updated":"2014-10-02 17:03:10.000000000","message":"Done","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"0b247df2a25fc56a94cfa82522f2074b36e3b6ed","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  restricted to a single IP address, either IPv4 or IPv6 [Ref-1]_.)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  For IPv4, following port creation, the port can then be associated with"},{"line_number":48,"context_line":"  additional fixed IP addresses using the port-update API, and/or it can be"},{"line_number":49,"context_line":"  associated with a floating IP address (with NAT translation) using"},{"line_number":50,"context_line":"  floating IP APIs."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_afe1db2b","line":48,"updated":"2014-07-13 05:23:54.000000000","message":"You can do that?","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"424a8935c8b964947bfc44f5c3cf96f0853ed362","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  restricted to a single IP address, either IPv4 or IPv6 [Ref-1]_.)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  For IPv4, following port creation, the port can then be associated with"},{"line_number":48,"context_line":"  additional fixed IP addresses using the port-update API, and/or it can be"},{"line_number":49,"context_line":"  associated with a floating IP address (with NAT translation) using"},{"line_number":50,"context_line":"  floating IP APIs."},{"line_number":51,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"da9df570_bd19267b","line":48,"in_reply_to":"baada198_afe1db2b","updated":"2014-10-02 17:03:10.000000000","message":"Yes. There are test cases to cover this in test_db_plugin.py, e.g. test_update_port_update_ip_address_only (https://github.com/openstack/neutron/blob/master/neutron/tests/unit/test_db_plugin.py#L1169) and test_update_port_add_additional_ip (https://github.com/openstack/neutron/blob/master/neutron/tests/unit/test_db_plugin.py#L1212).","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"0b247df2a25fc56a94cfa82522f2074b36e3b6ed","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  For IPv4, following port creation, the port can then be associated with"},{"line_number":48,"context_line":"  additional fixed IP addresses using the port-update API, and/or it can be"},{"line_number":49,"context_line":"  associated with a floating IP address (with NAT translation) using"},{"line_number":50,"context_line":"  floating IP APIs."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Considerations for IPv6"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_4fc59f8c","line":50,"updated":"2014-07-13 05:23:54.000000000","message":"Another point: in v4, if there are multiple subnets you get an address assigned from one of them, not all of them.  Although clearly multiple subnets on one port would work just fine, subnets in v4 are really a way of expanding the address space (a pretty sucky way, frankly) and not of using multiple addresses on one network for different purposes.  I think you\u0027ve just made an assumption that v6 subnets would be used differently - which I think is the correct approach but you may want to be explicit.","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"424a8935c8b964947bfc44f5c3cf96f0853ed362","unresolved":false,"context_lines":[{"line_number":47,"context_line":"  For IPv4, following port creation, the port can then be associated with"},{"line_number":48,"context_line":"  additional fixed IP addresses using the port-update API, and/or it can be"},{"line_number":49,"context_line":"  associated with a floating IP address (with NAT translation) using"},{"line_number":50,"context_line":"  floating IP APIs."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"* Considerations for IPv6"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baa201ad_e74b56ae","line":50,"in_reply_to":"baada198_4fc59f8c","updated":"2014-10-02 17:03:10.000000000","message":"Good point. I\u0027ve included this point explicitly in the \"Considerations for IPv6\".","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"a8d5021938e1ad4416939e9d51a8fe6d34208277","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    * SLAAC (Stateless Address Autoconfiguration):"},{"line_number":69,"context_line":"      This mechanism [Ref-3]_ requires no manual configuration of"},{"line_number":70,"context_line":"      hosts and minimal configuration of routers. With SLAAC, routers"},{"line_number":71,"context_line":"      periodically send out Router Advertisement (RA) messages via multicast."},{"line_number":72,"context_line":"      To obtain an router advertisement quickly, hosts on that link may also"},{"line_number":73,"context_line":"      prompt the router by sending a Router Solicitation message [Ref-2]_."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_6ef33409","line":70,"updated":"2014-07-25 12:49:29.000000000","message":"host may need to be configured if RA is accepted.","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"424a8935c8b964947bfc44f5c3cf96f0853ed362","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    * SLAAC (Stateless Address Autoconfiguration):"},{"line_number":69,"context_line":"      This mechanism [Ref-3]_ requires no manual configuration of"},{"line_number":70,"context_line":"      hosts and minimal configuration of routers. With SLAAC, routers"},{"line_number":71,"context_line":"      periodically send out Router Advertisement (RA) messages via multicast."},{"line_number":72,"context_line":"      To obtain an router advertisement quickly, hosts on that link may also"},{"line_number":73,"context_line":"      prompt the router by sending a Router Solicitation message [Ref-2]_."}],"source_content_type":"text/x-rst","patch_set":6,"id":"baa201ad_47b7c286","line":70,"in_reply_to":"baada198_6ef33409","updated":"2014-10-02 17:03:10.000000000","message":"I\u0027ve changed \"no manual configuration of hosts and minimal configuration of routers\" to \"minimal configuration of hosts and routers\".","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"0b247df2a25fc56a94cfa82522f2074b36e3b6ed","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    network). The host will therefore generate an address using that"},{"line_number":96,"context_line":"    subnet/prefix, regardless of whether the associated port-create API calls"},{"line_number":97,"context_line":"    (and any follow-up port-update API calls) for that VM happen to specify"},{"line_number":98,"context_line":"    that the subnet should be associated with that port."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    Theoretically, it would be possible to change this behavior by configuring"},{"line_number":101,"context_line":"    radvd so that all RA messages are delivered via unicast, but this"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_6f70a372","line":98,"updated":"2014-07-13 05:23:54.000000000","message":"Unless we firewall the packets, and there is in fact already a source address based firewall for RAs if we absolutely had to.  Woudn\u0027t bother personally.","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"424a8935c8b964947bfc44f5c3cf96f0853ed362","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    network). The host will therefore generate an address using that"},{"line_number":96,"context_line":"    subnet/prefix, regardless of whether the associated port-create API calls"},{"line_number":97,"context_line":"    (and any follow-up port-update API calls) for that VM happen to specify"},{"line_number":98,"context_line":"    that the subnet should be associated with that port."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    Theoretically, it would be possible to change this behavior by configuring"},{"line_number":101,"context_line":"    radvd so that all RA messages are delivered via unicast, but this"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baa201ad_841ecf61","line":98,"in_reply_to":"baada198_6f70a372","updated":"2014-10-02 17:03:10.000000000","message":"Would firewall rules work if the radvd process that is sending the RAs is in the same broadcast domain? This would also have to be done on a per-port, per-subnet basis (port A might need to see RAs with SLAAC subnet 1, port B might need to see RAs with SLAAC subnet 2). As you say, wouldn\u0027t bother, since it would be a bit messy.","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"0b247df2a25fc56a94cfa82522f2074b36e3b6ed","unresolved":false,"context_lines":[{"line_number":177,"context_line":"  process of disabling the SLAAC-generated address. (Note: According to"},{"line_number":178,"context_line":"  RFC 2862, VMs should leave the address in a deprecated state for 2 hours."},{"line_number":179,"context_line":"  It\u0027s not clear whether associated gateway addresses on this subnet will"},{"line_number":180,"context_line":"  need to follow a similar deprecation algorithm)."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"* Router Interfaces"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_ef8e732d","line":180,"updated":"2014-07-13 05:23:54.000000000","message":"Given port firewalling again it\u0027s likely we\u0027d block traffic long before that if the port became invalid.\n\nIs there any necessity to have the two different cases?  Can\u0027t we combine them to the SLAAC case for simplicity?","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"424a8935c8b964947bfc44f5c3cf96f0853ed362","unresolved":false,"context_lines":[{"line_number":177,"context_line":"  process of disabling the SLAAC-generated address. (Note: According to"},{"line_number":178,"context_line":"  RFC 2862, VMs should leave the address in a deprecated state for 2 hours."},{"line_number":179,"context_line":"  It\u0027s not clear whether associated gateway addresses on this subnet will"},{"line_number":180,"context_line":"  need to follow a similar deprecation algorithm)."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"* Router Interfaces"},{"line_number":183,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baa201ad_84bfaffa","line":180,"in_reply_to":"baada198_ef8e732d","updated":"2014-10-02 17:03:10.000000000","message":"I\u0027d prefer to treat these two cases differently, only so that for DHCPv6, there\u0027s little change from the current V4 model (admin must remove and DHCPv6 addresses in use on the subnet before deleting the subnet). But I\u0027m open to discussion, maybe you can re-raise this issue after I port this spec to Kilo.","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"0b247df2a25fc56a94cfa82522f2074b36e3b6ed","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"  This blueprint will relax the restriction even further by allowing multiple"},{"line_number":191,"context_line":"  IPv6 addresses along with up to one IPv4 address per gateway port. The same"},{"line_number":192,"context_line":"  treatment will be extended to internal router interfaces."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"* Floating-IP-Like Support"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_af70fb40","line":192,"updated":"2014-07-13 05:23:54.000000000","message":"Even without this you can get multiple subnets to different routers, of course.","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"424a8935c8b964947bfc44f5c3cf96f0853ed362","unresolved":false,"context_lines":[{"line_number":189,"context_line":""},{"line_number":190,"context_line":"  This blueprint will relax the restriction even further by allowing multiple"},{"line_number":191,"context_line":"  IPv6 addresses along with up to one IPv4 address per gateway port. The same"},{"line_number":192,"context_line":"  treatment will be extended to internal router interfaces."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"* Floating-IP-Like Support"},{"line_number":195,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baa201ad_e43b1b9a","line":192,"in_reply_to":"baada198_af70fb40","updated":"2014-10-02 17:03:10.000000000","message":"Agreed.","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"0b247df2a25fc56a94cfa82522f2074b36e3b6ed","unresolved":false,"context_lines":[{"line_number":209,"context_line":"  floating IP APIs, they would be marked and accounted for specifically as"},{"line_number":210,"context_line":"  floating IP addresses within Neutron databases and in floating API"},{"line_number":211,"context_line":"  responses."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Proposed change"},{"line_number":215,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_cfb7efd6","line":212,"updated":"2014-07-13 05:23:54.000000000","message":"Personally I\u0027d expect the floating IP calls to be used for v4-to-v6 and just add a new API for v6-only ingress, but you\u0027ve basically flagged this as out of scope anyway so it\u0027s not really up for discussion here.","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"424a8935c8b964947bfc44f5c3cf96f0853ed362","unresolved":false,"context_lines":[{"line_number":209,"context_line":"  floating IP APIs, they would be marked and accounted for specifically as"},{"line_number":210,"context_line":"  floating IP addresses within Neutron databases and in floating API"},{"line_number":211,"context_line":"  responses."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":""},{"line_number":214,"context_line":"Proposed change"},{"line_number":215,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"baa201ad_646e4b98","line":212,"in_reply_to":"baada198_cfb7efd6","updated":"2014-10-02 17:03:10.000000000","message":"I\u0027ve removed this section, since it\u0027s out of the scope of this blueprint (but left the comments about floating IPs in the intro).","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"0b247df2a25fc56a94cfa82522f2074b36e3b6ed","unresolved":false,"context_lines":[{"line_number":224,"context_line":"network, will represent a bit of a paradigm shift from the IPv4 model."},{"line_number":225,"context_line":"The change in behavior will revolve around deciding for which subnets"},{"line_number":226,"context_line":"on the network that IP addresses should be allocated and associated"},{"line_number":227,"context_line":"initially, upon port creation."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"The changes can be summarized:"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baada198_8fd8971f","line":227,"updated":"2014-07-13 05:23:54.000000000","message":"I wonder about this.  The current model is that per address family we associate with precise one subnet (if there are subnets; 0 otherwise).  Does this *really* not change the call semantics?  Marvellous if so...","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"424a8935c8b964947bfc44f5c3cf96f0853ed362","unresolved":false,"context_lines":[{"line_number":224,"context_line":"network, will represent a bit of a paradigm shift from the IPv4 model."},{"line_number":225,"context_line":"The change in behavior will revolve around deciding for which subnets"},{"line_number":226,"context_line":"on the network that IP addresses should be allocated and associated"},{"line_number":227,"context_line":"initially, upon port creation."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"The changes can be summarized:"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"baa201ad_a4c4b35f","line":227,"in_reply_to":"baada198_8fd8971f","updated":"2014-10-02 17:03:10.000000000","message":"I\u0027ve rearranged this document for the Kilo version to make this clearer: The Problem Description section lists what the current behavior is and what the problem is with that behavior, and the Proposed change section describes how that behavior is changing.","commit_id":"ab2fd6b3bdaf2857f6b687573deacebc9c5e99c4"}],"specs/kilo/multiple-ipv6-prefixes.rst":[{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"88c175f72633b01e7bcde4664122ef644bf1d17a","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    For subnets configured for DHCPv6, this model continues to make sense"},{"line_number":158,"context_line":"    and can be followed. For example, an operator can be expected to"},{"line_number":159,"context_line":"    remove all associated DHCPv6 addresses before deleting the subnet. "},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    In the case of SLAAC-enabled subnets, however, it\u0027s not feasible to"},{"line_number":162,"context_line":"    require removal of SLAAC-generated addresses individually from each"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa201ad_dbdf5867","line":159,"updated":"2014-10-08 20:38:30.000000000","message":"remove spaces","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"57292785d9d8f9164cf18402fd52c40c4f6c6647","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    For subnets configured for DHCPv6, this model continues to make sense"},{"line_number":158,"context_line":"    and can be followed. For example, an operator can be expected to"},{"line_number":159,"context_line":"    remove all associated DHCPv6 addresses before deleting the subnet. "},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    In the case of SLAAC-enabled subnets, however, it\u0027s not feasible to"},{"line_number":162,"context_line":"    require removal of SLAAC-generated addresses individually from each"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_12878662","line":159,"in_reply_to":"baa201ad_dbdf5867","updated":"2014-10-22 14:58:39.000000000","message":"Done","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"4c80b51b62a6f0da60b88ea9f22813858851073d","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    an internal (managed by OpenStack) radvd process, then the radvd process"},{"line_number":171,"context_line":"    should be reconfigured (e.g. by changing the radvd initialization file"},{"line_number":172,"context_line":"    and restarting the radvd process) to eliminate advertisement of the"},{"line_number":173,"context_line":"    associated prefix when the subnet is deleted. If the source of RA"},{"line_number":174,"context_line":"    messages is external to OpenStack (provider RA), it is assumed that"},{"line_number":175,"context_line":"    the external source has been reconfigured to stop advertisement of the"},{"line_number":176,"context_line":"    associated prefix before the subnet is deleted from OpenStack. The VMs"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_81945c38","line":173,"updated":"2014-10-20 08:05:24.000000000","message":"Since deleting a subnet requires removing the internal router interface port of the subnet (the qr-XXXX) device, l3-agent should be able to detect this chagne by synchronizing the router status and clean the radvd process running on the router interface. Do we still need to reconfigure RADVD process?","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"52940289678079a4188705e429df6547b39d6535","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    an internal (managed by OpenStack) radvd process, then the radvd process"},{"line_number":171,"context_line":"    should be reconfigured (e.g. by changing the radvd initialization file"},{"line_number":172,"context_line":"    and restarting the radvd process) to eliminate advertisement of the"},{"line_number":173,"context_line":"    associated prefix when the subnet is deleted. If the source of RA"},{"line_number":174,"context_line":"    messages is external to OpenStack (provider RA), it is assumed that"},{"line_number":175,"context_line":"    the external source has been reconfigured to stop advertisement of the"},{"line_number":176,"context_line":"    associated prefix before the subnet is deleted from OpenStack. The VMs"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_6dba9e0b","line":173,"in_reply_to":"9aa7fdbe_72fa92be","updated":"2014-10-23 06:36:16.000000000","message":"OK. Make sense to me now.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"57292785d9d8f9164cf18402fd52c40c4f6c6647","unresolved":false,"context_lines":[{"line_number":170,"context_line":"    an internal (managed by OpenStack) radvd process, then the radvd process"},{"line_number":171,"context_line":"    should be reconfigured (e.g. by changing the radvd initialization file"},{"line_number":172,"context_line":"    and restarting the radvd process) to eliminate advertisement of the"},{"line_number":173,"context_line":"    associated prefix when the subnet is deleted. If the source of RA"},{"line_number":174,"context_line":"    messages is external to OpenStack (provider RA), it is assumed that"},{"line_number":175,"context_line":"    the external source has been reconfigured to stop advertisement of the"},{"line_number":176,"context_line":"    associated prefix before the subnet is deleted from OpenStack. The VMs"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_72fa92be","line":173,"in_reply_to":"9aa7fdbe_81945c38","updated":"2014-10-22 14:58:39.000000000","message":"One of the changes being proposed in this BP is to support multiple IPv6 prefixes/addresses per internal router port (next section). If this change is made and there is a case where multiple SLAAC addresses are configured on the internal router port, then the internal router port wouldn\u0027t be getting removed when just one of the subnets gets deleted. In this case, we\u0027d need to ensure that when one subnet is deleted, there is an update port on the router port to remove the corresponding SLAAC address, and a router sync is triggered so that RADVD gets reconfigured (keep one prefix, remove the other).","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":10257,"name":"Sridhar Gaddam","email":"sgaddam@redhat.com","username":"sridhargaddam"},"change_message_id":"e9772582b82704f132795f8fb432711ce5c831db","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    and restarting the radvd process) to eliminate advertisement of the"},{"line_number":173,"context_line":"    associated prefix when the subnet is deleted. If the source of RA"},{"line_number":174,"context_line":"    messages is external to OpenStack (provider RA), it is assumed that"},{"line_number":175,"context_line":"    the external source has been reconfigured to stop advertisement of the"},{"line_number":176,"context_line":"    associated prefix before the subnet is deleted from OpenStack. The VMs"},{"line_number":177,"context_line":"    on the subnet will in time receive the updated RA messages, and start"},{"line_number":178,"context_line":"    the process of disabling the SLAAC-generated address. (Note: According"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_db7ba927","line":175,"updated":"2014-10-20 11:13:00.000000000","message":"@leblanc, when you say reconfigure RADVD, are you suggesting that we remove the prefix from the radvd configuration file and restart radvd process? If not, can you please elaborate this point.\n\nAlso, currently Neutron does not set the prefix specific params like  AdvValidLifetime/AdvPreferredLifetime in radvd.conf file. So the default values are used. Do you think it would be useful to set some reasonably small values for these params?","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"57292785d9d8f9164cf18402fd52c40c4f6c6647","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    and restarting the radvd process) to eliminate advertisement of the"},{"line_number":173,"context_line":"    associated prefix when the subnet is deleted. If the source of RA"},{"line_number":174,"context_line":"    messages is external to OpenStack (provider RA), it is assumed that"},{"line_number":175,"context_line":"    the external source has been reconfigured to stop advertisement of the"},{"line_number":176,"context_line":"    associated prefix before the subnet is deleted from OpenStack. The VMs"},{"line_number":177,"context_line":"    on the subnet will in time receive the updated RA messages, and start"},{"line_number":178,"context_line":"    the process of disabling the SLAAC-generated address. (Note: According"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_1d94f735","line":175,"in_reply_to":"9aa7fdbe_db7ba927","updated":"2014-10-22 14:58:39.000000000","message":"Yes, that\u0027s what I meant by reconfiguring RADVD, though I\u0027m not sure if restarting is the right term. There\u0027s a way to trigger a reload of RADVD config, please let me know if there\u0027s a better way to phrase this.\nRegarding the prefix-specific params, it probably makes sense to set these to some reasonable small values, but this should be done as a separate bug, in my opinion.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"580f87d6d36de186673529da5de15a00b95cc81e","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    This blueprint will relax the restriction even further by allowing"},{"line_number":197,"context_line":"    multiple IPv6 addresses along with up to one IPv4 address per gateway"},{"line_number":198,"context_line":"    port, for either internal or external gateway ports."},{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_85f2c803","line":198,"updated":"2014-10-28 14:23:32.000000000","message":"For external gateway ports, up to one IPv4 and up to one IPv6 should be sufficient. So this wording should be modified so that support for multiple IPv6 addresses/prefixes will only be added for internal router ports.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"88c175f72633b01e7bcde4664122ef644bf1d17a","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    * All subnets configured for DHCPv6 on the associated network will be"},{"line_number":236,"context_line":"      implicitly included for address generation/association (along with"},{"line_number":237,"context_line":"      addresses for all IPv6 SLAAC enabled subnets on the network, which"},{"line_number":238,"context_line":"      are already included implicitly.)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"  * Response to API call will list all fixed IPs associated with the"},{"line_number":241,"context_line":"    port, whether the association was implicitly or explicitly included in"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa201ad_b16f13fb","line":238,"updated":"2014-10-08 20:38:30.000000000","message":"Doing so will prevent the following use case:\n   a tenant may want to use ULA for its private subnet, and allocate GUA for a few nodes. \n\nThe tenant will not have control over that any more.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"8c7823301d90a2aa8328a2ce312bfdcb5f0b1e5c","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    * All subnets configured for DHCPv6 on the associated network will be"},{"line_number":236,"context_line":"      implicitly included for address generation/association (along with"},{"line_number":237,"context_line":"      addresses for all IPv6 SLAAC enabled subnets on the network, which"},{"line_number":238,"context_line":"      are already included implicitly.)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"  * Response to API call will list all fixed IPs associated with the"},{"line_number":241,"context_line":"    port, whether the association was implicitly or explicitly included in"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_a324120f","line":238,"in_reply_to":"9aa7fdbe_01232dbd","updated":"2014-10-29 03:29:12.000000000","message":"sounds great to me.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"57292785d9d8f9164cf18402fd52c40c4f6c6647","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    * All subnets configured for DHCPv6 on the associated network will be"},{"line_number":236,"context_line":"      implicitly included for address generation/association (along with"},{"line_number":237,"context_line":"      addresses for all IPv6 SLAAC enabled subnets on the network, which"},{"line_number":238,"context_line":"      are already included implicitly.)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"  * Response to API call will list all fixed IPs associated with the"},{"line_number":241,"context_line":"    port, whether the association was implicitly or explicitly included in"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_acee5eb2","line":238,"in_reply_to":"9aa7fdbe_642b06ec","updated":"2014-10-22 14:58:39.000000000","message":"This is a very good point. The any/all keywords being proposed would need to be expanded: either additional keywords would need to be defined for finer control, or the definition of \"all\" would need to change. With the current changes being proposed in review 125061, Neutron would still be assigning one V4 address and one V6 address, so the definitions of the keywords would be:\n\n\"any\": One v4 (if possible), one v6 (if possible), exception if neither assigned\n\"all\": One v4 (if possible), one v6 (if possible), exception if either v4 or v6\n        addresses are exhausted\n\nOne possible way to combine this any/all idea with this multi-prefix BP would be to redefine the definition of \"all\". For example, when the fixed_ips dictionary is not provided, it could be:\n\n\"any\": One v4 if possible, all v6 subnets, exception if no address assigned\n\"all\": One v4 if possible, all v6 subnets, exception if any of the V4\n         or DHCPv6 addresses are exhausted or SLAAC address\n         assignment somehow fails.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"52940289678079a4188705e429df6547b39d6535","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    * All subnets configured for DHCPv6 on the associated network will be"},{"line_number":236,"context_line":"      implicitly included for address generation/association (along with"},{"line_number":237,"context_line":"      addresses for all IPv6 SLAAC enabled subnets on the network, which"},{"line_number":238,"context_line":"      are already included implicitly.)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"  * Response to API call will list all fixed IPs associated with the"},{"line_number":241,"context_line":"    port, whether the association was implicitly or explicitly included in"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_cdcb8aa3","line":238,"in_reply_to":"9aa7fdbe_acee5eb2","updated":"2014-10-23 06:36:16.000000000","message":"Why all DHCPv6 subnets are included but only one v4 subnet is included?  I don\u0027t think we should treat DHCPv6 and DHCPv4 differently.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"580f87d6d36de186673529da5de15a00b95cc81e","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    * All subnets configured for DHCPv6 on the associated network will be"},{"line_number":236,"context_line":"      implicitly included for address generation/association (along with"},{"line_number":237,"context_line":"      addresses for all IPv6 SLAAC enabled subnets on the network, which"},{"line_number":238,"context_line":"      are already included implicitly.)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"  * Response to API call will list all fixed IPs associated with the"},{"line_number":241,"context_line":"    port, whether the association was implicitly or explicitly included in"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_01232dbd","line":238,"in_reply_to":"9aa7fdbe_cdcb8aa3","updated":"2014-10-28 14:23:32.000000000","message":"@Xu Han: Yes, Robert had the same opinion. I\u0027ll remove this change and keep with the current implementation, that is, for port-create without a list of fixed IPs, we\u0027ll associate the port with up to one IPv4 subnet, up to one DHCPv6 subnet, and all IPv6 SLAAC subnets.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"4c80b51b62a6f0da60b88ea9f22813858851073d","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    * All subnets configured for DHCPv6 on the associated network will be"},{"line_number":236,"context_line":"      implicitly included for address generation/association (along with"},{"line_number":237,"context_line":"      addresses for all IPv6 SLAAC enabled subnets on the network, which"},{"line_number":238,"context_line":"      are already included implicitly.)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"  * Response to API call will list all fixed IPs associated with the"},{"line_number":241,"context_line":"    port, whether the association was implicitly or explicitly included in"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_642b06ec","line":238,"in_reply_to":"baa201ad_b16f13fb","updated":"2014-10-20 08:05:24.000000000","message":"I think we need finer control of how IP are allocated especially when there are multiple DHCPv4 and DHCPv6 subnets in one network. Referencing the discussion on https://review.openstack.org/#/c/125061/, Armando was suggesting to add option like \"any\"/\"all\" to specify if one of the subnets or all of the subnets should be used.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"57292785d9d8f9164cf18402fd52c40c4f6c6647","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    * All subnets configured for DHCPv6 on the associated network will be"},{"line_number":236,"context_line":"      implicitly included for address generation/association (along with"},{"line_number":237,"context_line":"      addresses for all IPv6 SLAAC enabled subnets on the network, which"},{"line_number":238,"context_line":"      are already included implicitly.)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"  * Response to API call will list all fixed IPs associated with the"},{"line_number":241,"context_line":"    port, whether the association was implicitly or explicitly included in"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_bde68bb2","line":238,"in_reply_to":"baa201ad_b16f13fb","updated":"2014-10-22 14:58:39.000000000","message":"The tenant still has control if fixed_ips dictionary is provided, and the use case you describe would require use of fixed_ips to get selectivity for the GUA addresses.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"88c175f72633b01e7bcde4664122ef644bf1d17a","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    will be done as part of the port update operation, and an association"},{"line_number":261,"context_line":"    with a SLAAC address for each new SLAAC subnet will be added to the port,"},{"line_number":262,"context_line":"    even if the subnet is not included in the fixed_ips list of changed/new"},{"line_number":263,"context_line":"    subnets/addresses."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"* Subnet Delete API Call"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa201ad_db22f850","line":263,"updated":"2014-10-08 20:38:30.000000000","message":"Should the following case be covered?\n   -- port update includes fixed-ups from SLAAC subnet, but not from DHCPv6 subnet\n\nHas the following been covered or existed?\n   -- add a new SLAAC subnet to a network","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"580f87d6d36de186673529da5de15a00b95cc81e","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    will be done as part of the port update operation, and an association"},{"line_number":261,"context_line":"    with a SLAAC address for each new SLAAC subnet will be added to the port,"},{"line_number":262,"context_line":"    even if the subnet is not included in the fixed_ips list of changed/new"},{"line_number":263,"context_line":"    subnets/addresses."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"* Subnet Delete API Call"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_657a4489","line":263,"in_reply_to":"9aa7fdbe_efc058e2","updated":"2014-10-28 14:23:32.000000000","message":"I\u0027ll add the following to cover the case where a SLAAC subnet is added to a network after ports have already been created: all ports on the network will get updated with the SLAAC subnet. If the SLAAC subnet uses the (reference) OpenStack RADVD, then these updates will get triggered by a router interface add. For SLAAC subnets that use provider sources of RA messages, the port updates will get triggered by a subnet add.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"57292785d9d8f9164cf18402fd52c40c4f6c6647","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    will be done as part of the port update operation, and an association"},{"line_number":261,"context_line":"    with a SLAAC address for each new SLAAC subnet will be added to the port,"},{"line_number":262,"context_line":"    even if the subnet is not included in the fixed_ips list of changed/new"},{"line_number":263,"context_line":"    subnets/addresses."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"* Subnet Delete API Call"},{"line_number":266,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_efc058e2","line":263,"in_reply_to":"baa201ad_db22f850","updated":"2014-10-22 14:58:39.000000000","message":"For SLAAC subnets included in the fixed_ips, I think I\u0027ve (indirectly) described how they\u0027ll be handled (\"will be added to the port, even if the subnet is not included in the fixed_ips\"). For addresses for DHCPv6 subnets, these will only be preserved if they are explicitly included in the fixed_ips. This behavior is not changing, so I didn\u0027t mention it here. Should I add a note to make the DHCPv6 treatment clearer?\n\nWhen a SLAAC subnet is added to a network after ports have been created, I\u0027m assuming that a port update will be done for each existing port after the subnet is added (that is, this design is not adding automatic updates for the SLAAC subnets). Is this the right approach, and should I add a note here to make this clear?","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":10257,"name":"Sridhar Gaddam","email":"sgaddam@redhat.com","username":"sridhargaddam"},"change_message_id":"e9772582b82704f132795f8fb432711ce5c831db","unresolved":false,"context_lines":[{"line_number":323,"context_line":"Developer Impact"},{"line_number":324,"context_line":"----------------"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Devlopers of L3 services may need to incorporate some of the behavior"},{"line_number":327,"context_line":"changes proposed in the blueprint with respect to port creation when"},{"line_number":328,"context_line":"IPv6 subnets are involved."},{"line_number":329,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_1090b094","line":326,"updated":"2014-10-20 11:13:00.000000000","message":"nit: s/Devlopers/Developers","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"57292785d9d8f9164cf18402fd52c40c4f6c6647","unresolved":false,"context_lines":[{"line_number":323,"context_line":"Developer Impact"},{"line_number":324,"context_line":"----------------"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"Devlopers of L3 services may need to incorporate some of the behavior"},{"line_number":327,"context_line":"changes proposed in the blueprint with respect to port creation when"},{"line_number":328,"context_line":"IPv6 subnets are involved."},{"line_number":329,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_6f08e82d","line":326,"in_reply_to":"9aa7fdbe_1090b094","updated":"2014-10-22 14:58:39.000000000","message":"Done","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"88c175f72633b01e7bcde4664122ef644bf1d17a","unresolved":false,"context_lines":[{"line_number":347,"context_line":"------------"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"As an alternative to what is being proposed, it would be possible to avoid"},{"line_number":350,"context_line":"avoid the multicast nature of RA prefix assignments by configuring radvd"},{"line_number":351,"context_line":"so that RA messages are delivered on a per-port, per-subnet basis via"},{"line_number":352,"context_line":"unicast. Ports that explicitly include a given SLAAC subnet would then be"},{"line_number":353,"context_line":"sent an RA unicast that includes an advertisement of that subnet, and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa201ad_7bc02c50","line":350,"updated":"2014-10-08 20:38:30.000000000","message":"duplicate \u0027avoid\u0027","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"57292785d9d8f9164cf18402fd52c40c4f6c6647","unresolved":false,"context_lines":[{"line_number":347,"context_line":"------------"},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"As an alternative to what is being proposed, it would be possible to avoid"},{"line_number":350,"context_line":"avoid the multicast nature of RA prefix assignments by configuring radvd"},{"line_number":351,"context_line":"so that RA messages are delivered on a per-port, per-subnet basis via"},{"line_number":352,"context_line":"unicast. Ports that explicitly include a given SLAAC subnet would then be"},{"line_number":353,"context_line":"sent an RA unicast that includes an advertisement of that subnet, and"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_821ec361","line":350,"in_reply_to":"baa201ad_7bc02c50","updated":"2014-10-22 14:58:39.000000000","message":"Done","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"88c175f72633b01e7bcde4664122ef644bf1d17a","unresolved":false,"context_lines":[{"line_number":354,"context_line":"ports that don\u0027t explicitly include the SLAAC subnet would not receive"},{"line_number":355,"context_line":"an RA unicast (or would receive an RA that doesn\u0027t include the subnet)."},{"line_number":356,"context_line":"However, this approach would be rather complex and error prone, and"},{"line_number":357,"context_line":"would go against the automatic nature of SLAAC."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa201ad_3bc22453","line":357,"updated":"2014-10-08 20:38:30.000000000","message":"well, in that case, why not just use dhcpv6?","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"57292785d9d8f9164cf18402fd52c40c4f6c6647","unresolved":false,"context_lines":[{"line_number":354,"context_line":"ports that don\u0027t explicitly include the SLAAC subnet would not receive"},{"line_number":355,"context_line":"an RA unicast (or would receive an RA that doesn\u0027t include the subnet)."},{"line_number":356,"context_line":"However, this approach would be rather complex and error prone, and"},{"line_number":357,"context_line":"would go against the automatic nature of SLAAC."},{"line_number":358,"context_line":""},{"line_number":359,"context_line":""},{"line_number":360,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9aa7fdbe_22aa77d4","line":357,"in_reply_to":"baa201ad_3bc22453","updated":"2014-10-22 14:58:39.000000000","message":"Yes, good point. I\u0027ll add a line here saying that this messy alternative treatment for SLAAC doesn\u0027t add much value given that DHCPv6 already provides selectivity.","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"88c175f72633b01e7bcde4664122ef644bf1d17a","unresolved":false,"context_lines":[{"line_number":368,"context_line":"  launchpad-id: leblancd"},{"line_number":369,"context_line":""},{"line_number":370,"context_line":"Other contributors:"},{"line_number":371,"context_line":"  Robert (Bao) Li"},{"line_number":372,"context_line":"  launchpad-id: baoli"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"Work Items"}],"source_content_type":"text/x-rst","patch_set":7,"id":"baa201ad_5b8b681e","line":371,"updated":"2014-10-08 20:38:30.000000000","message":"Baodong (Robert) Li\n\nthanks","commit_id":"355f0b23ce2e8c077e1d023f2f3c6d2da84f1916"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"79ab4278e21b7db61637c69a96a03a6da781f811","unresolved":false,"context_lines":[{"line_number":164,"context_line":"    nature of RA messages. For SLAAC-enabled subnets, the processing of"},{"line_number":165,"context_line":"    subnet delete requests needs to be changed so that these subnets will"},{"line_number":166,"context_line":"    be allowed to be deleted even when there are ports which are associated"},{"line_number":167,"context_line":"    with SLAAC addresses from this subnet."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    If the source of RA messages that advertise the associated prefix is"},{"line_number":170,"context_line":"    an internal (managed by OpenStack) radvd process, then the radvd process"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5a890539_822548ad","line":167,"updated":"2014-11-08 22:27:34.000000000","message":"I think that this particular issue should be taken up in a bug since we should consider backporting the fix to the stable branch.","commit_id":"39cb4c4b6841ac33dfb58cfff9081fbd825ec481"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"f84274106d440e52d7f2ad1048434de8c5c797fb","unresolved":false,"context_lines":[{"line_number":235,"context_line":"    subnets on the associated network will be associated with the port:"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    * One subnet from all IPv4 subnets"},{"line_number":238,"context_line":"    * One subnet from all IPv6 DHCPv6 subnets"},{"line_number":239,"context_line":"    * All IPv6 SLAAC subnets"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"  * Response to API call will list all fixed IPs associated with the"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9aa7fdbe_23c66217","line":238,"updated":"2014-10-29 03:30:52.000000000","message":"I think we should use Stateful DHCPv6 subnets here?","commit_id":"39cb4c4b6841ac33dfb58cfff9081fbd825ec481"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"f84274106d440e52d7f2ad1048434de8c5c797fb","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    * One subnet from all IPv4 subnets"},{"line_number":238,"context_line":"    * One subnet from all IPv6 DHCPv6 subnets"},{"line_number":239,"context_line":"    * All IPv6 SLAAC subnets"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"  * Response to API call will list all fixed IPs associated with the"},{"line_number":242,"context_line":"    port, whether the association was implicitly or explicitly included in"}],"source_content_type":"text/x-rst","patch_set":8,"id":"9aa7fdbe_63d06aca","line":239,"updated":"2014-10-29 03:30:52.000000000","message":"use SLAAC or stateless DHCPv6 subnets","commit_id":"39cb4c4b6841ac33dfb58cfff9081fbd825ec481"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dff8302b2a52ebcee3ddbdae4550b6ed0ec5ba5c","unresolved":false,"context_lines":[{"line_number":256,"context_line":"    subnet on the associated network will now be implicitly preserved"},{"line_number":257,"context_line":"    (retained) when the port-update operation does not explicitly include"},{"line_number":258,"context_line":"    the SLAAC subnet in the fixed_ips list of changed/new subnets/addresses."},{"line_number":259,"context_line":"  * A scan for new IPv6-SLAAC-enabled subnets (i.e. newly created since the"},{"line_number":260,"context_line":"    last port create or port update operation) on the associated network"},{"line_number":261,"context_line":"    will be done as part of the port update operation, and an association"},{"line_number":262,"context_line":"    with a SLAAC address for each new SLAAC subnet will be added to the port,"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a8c0949_efa167aa","line":259,"updated":"2014-10-31 23:50:33.000000000","message":"Isn\u0027t updating all ports when creating a new SLAAC subnet described below in \u0027Subnet Create API Call\u0027 section enough to make sure all ports are up-to-date with all ipv6 slaac subnets?","commit_id":"39cb4c4b6841ac33dfb58cfff9081fbd825ec481"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dff8302b2a52ebcee3ddbdae4550b6ed0ec5ba5c","unresolved":false,"context_lines":[{"line_number":282,"context_line":"  As discussed in the Problem Definition section, the Neutron code which"},{"line_number":283,"context_line":"  handles subnet delete will be changed to allow for deletion of a"},{"line_number":284,"context_line":"  SLAAC-enabled subnet even when that subnet still has ports which are using"},{"line_number":285,"context_line":"  SLAAC-generated addresses."},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"* Router Interface Create API Call"},{"line_number":288,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a8c0949_4fb19bf7","line":285,"updated":"2014-10-31 23:50:33.000000000","message":"Should we update all subnet ports here too?","commit_id":"39cb4c4b6841ac33dfb58cfff9081fbd825ec481"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dff8302b2a52ebcee3ddbdae4550b6ed0ec5ba5c","unresolved":false,"context_lines":[{"line_number":411,"context_line":"* Port-update API handling coding and unit test"},{"line_number":412,"context_line":"* Subnet-delete API handling coding and unit test"},{"line_number":413,"context_line":"* Router/Gateway interface coding and unit test"},{"line_number":414,"context_line":"* Functional test creation"},{"line_number":415,"context_line":"* Tempest test creation"},{"line_number":416,"context_line":""},{"line_number":417,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a8c0949_ef8fa721","line":414,"updated":"2014-10-31 23:50:33.000000000","message":"can you elaborate on which functional tests you envision here?","commit_id":"39cb4c4b6841ac33dfb58cfff9081fbd825ec481"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dff8302b2a52ebcee3ddbdae4550b6ed0ec5ba5c","unresolved":false,"context_lines":[{"line_number":427,"context_line":"Testing"},{"line_number":428,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"Please discuss how the change will be tested. We especially want to know what"},{"line_number":431,"context_line":"tempest tests will be added. It is assumed that unit test coverage will be"},{"line_number":432,"context_line":"added so that doesn\u0027t need to be mentioned explicitly, but discussion of why"},{"line_number":433,"context_line":"you think unit tests are sufficient and we don\u0027t need to add more tempest"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a8c0949_af767f3c","line":430,"updated":"2014-10-31 23:50:33.000000000","message":"Please update the section.","commit_id":"39cb4c4b6841ac33dfb58cfff9081fbd825ec481"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dff8302b2a52ebcee3ddbdae4550b6ed0ec5ba5c","unresolved":false,"context_lines":[{"line_number":453,"context_line":"Functional Tests"},{"line_number":454,"context_line":"----------------"},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"No functional tests needed."},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"API Tests"},{"line_number":459,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"7a8c0949_2f9a8f63","line":456,"updated":"2014-10-31 23:50:33.000000000","message":"Here, you say they are not needed. Though above in line 414, you meantion those tests as one of work items.","commit_id":"39cb4c4b6841ac33dfb58cfff9081fbd825ec481"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":24,"context_line":"* IPv6 renumbering: Support for overlap interval during which old and new"},{"line_number":25,"context_line":"  IPv6 prefixes co-exist (e.g. on router port)."},{"line_number":26,"context_line":"* Floating-IP-like support: Allow for a tenant to allocate an address from"},{"line_number":27,"context_line":"  a pool of pre-determined public IPv6 addresses, and associate that"},{"line_number":28,"context_line":"  address with a VM or set of VMs. Note: Unlike the IPv4 Floating IP"},{"line_number":29,"context_line":"  feature, IPv6 support would not involve NAT translation from fixed IPs"},{"line_number":30,"context_line":"  to floating IPs. This design specification is a pre-requisite for"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_1e7f5ee1","line":27,"updated":"2014-12-03 22:57:38.000000000","message":"For floating ips, I imagine that we\u0027re not going to allocate an entire prefix to a network unless all of the tenants sharing the pool are on the same external network.  At least, this will be the case if we want to support the model where a floating ip routes through the tenant\u0027s router to a private network.\n\nIf I\u0027m correct, then there is still the issue of how to route the address to the port.  I think dynamic routing or proxied neighbor discovery (is there such a thing?) would be needed to complete the data path.\n\nRegardless, multicast RA won\u0027t be useful for floating ips.\n\nI guess this is all out of the scope of this blueprint.  So, just consider this comment an aside.","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"8a7a27609f4868545dca9c8adc46fef1b5e12d48","unresolved":false,"context_lines":[{"line_number":24,"context_line":"* IPv6 renumbering: Support for overlap interval during which old and new"},{"line_number":25,"context_line":"  IPv6 prefixes co-exist (e.g. on router port)."},{"line_number":26,"context_line":"* Floating-IP-like support: Allow for a tenant to allocate an address from"},{"line_number":27,"context_line":"  a pool of pre-determined public IPv6 addresses, and associate that"},{"line_number":28,"context_line":"  address with a VM or set of VMs. Note: Unlike the IPv4 Floating IP"},{"line_number":29,"context_line":"  feature, IPv6 support would not involve NAT translation from fixed IPs"},{"line_number":30,"context_line":"  to floating IPs. This design specification is a pre-requisite for"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_e11b7c19","line":27,"in_reply_to":"5a890539_1e7f5ee1","updated":"2014-12-04 22:59:24.000000000","message":"Robert Li is trying to tackle floating IPs for v6 with https://blueprints.launchpad.net/neutron/+spec/ipv6-router-and-dvr and another floating IP for v6 blueprint that he is about to file. He does propose using neighbor discovery proxy instead of dynamic routing.","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    With IPv4 in OpenStack, multiple IP addresses are associated with a"},{"line_number":97,"context_line":"    port as a way of expanding the (homogeneous) address space available"},{"line_number":98,"context_line":"    to the associated VM. With IPv6, it is expected that multiple IP"},{"line_number":99,"context_line":"    addresses typically will be associated with a port to provide separate"},{"line_number":100,"context_line":"    functions. For example, one IPv6 address could be assigned to provide"},{"line_number":101,"context_line":"    a public or global (GUA) address, whereas another could be assigned"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_de70760a","line":98,"updated":"2014-12-03 22:57:38.000000000","message":"I don\u0027t understand this sentence about IPv4.","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"8a7a27609f4868545dca9c8adc46fef1b5e12d48","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    With IPv4 in OpenStack, multiple IP addresses are associated with a"},{"line_number":97,"context_line":"    port as a way of expanding the (homogeneous) address space available"},{"line_number":98,"context_line":"    to the associated VM. With IPv6, it is expected that multiple IP"},{"line_number":99,"context_line":"    addresses typically will be associated with a port to provide separate"},{"line_number":100,"context_line":"    functions. For example, one IPv6 address could be assigned to provide"},{"line_number":101,"context_line":"    a public or global (GUA) address, whereas another could be assigned"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_f6a9847c","line":98,"in_reply_to":"5a890539_de70760a","updated":"2014-12-04 22:59:24.000000000","message":"What I was trying to say (not very clearly :o\u003c)is that when port-update is used to add multiple IPv4 addresses to a port, they\u0027re all private addresses, whereas for IPv6, you can add IPv6 addresses with different routing scope. This isn\u0027t a compelling consideration, so I\u0027d rather just delete this paragraph.","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    addresses typically will be associated with a port to provide separate"},{"line_number":100,"context_line":"    functions. For example, one IPv6 address could be assigned to provide"},{"line_number":101,"context_line":"    a public or global (GUA) address, whereas another could be assigned"},{"line_number":102,"context_line":"    to provide a private or local (ULA) address."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"* Current Implementation"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_52f1adff","line":102,"updated":"2014-12-03 22:57:38.000000000","message":"How are these \"separate functions?\"","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"8a7a27609f4868545dca9c8adc46fef1b5e12d48","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    addresses typically will be associated with a port to provide separate"},{"line_number":100,"context_line":"    functions. For example, one IPv6 address could be assigned to provide"},{"line_number":101,"context_line":"    a public or global (GUA) address, whereas another could be assigned"},{"line_number":102,"context_line":"    to provide a private or local (ULA) address."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"* Current Implementation"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_3605cc79","line":102,"in_reply_to":"5a890539_52f1adff","updated":"2014-12-04 22:59:24.000000000","message":"This is poorly worded. Should have said \"to provide different routing scope\" or something like that. As I said earlier, probably better to delete this paragraph.","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    an explicit list of fixed IPs, IPs from the following subnets on the"},{"line_number":123,"context_line":"    associated network are associated with the port:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    * One subnet from all IPv4 subnets"},{"line_number":126,"context_line":"    * One subnet from all IPv6 DHCPv6-stateful subnets"},{"line_number":127,"context_line":"    * All IPv6 SLAAC and DHCPv6-stateless subnets"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_72106900","line":125,"updated":"2014-12-03 22:57:38.000000000","message":"You should be aware of this proposal:  https://review.openstack.org/#/c/129910/","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"8a7a27609f4868545dca9c8adc46fef1b5e12d48","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    an explicit list of fixed IPs, IPs from the following subnets on the"},{"line_number":123,"context_line":"    associated network are associated with the port:"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    * One subnet from all IPv4 subnets"},{"line_number":126,"context_line":"    * One subnet from all IPv6 DHCPv6-stateful subnets"},{"line_number":127,"context_line":"    * All IPv6 SLAAC and DHCPv6-stateless subnets"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_015248dd","line":125,"in_reply_to":"5a890539_72106900","updated":"2014-12-04 22:59:24.000000000","message":"Yes, the changes proposed here will have to be merged with the changes in 129910. I think the concepts can be combined if we consider SLAAC and DHCPv6-stateless subnet associations to be mandatory... so the values for the \"ip_allocation\" string would have these meanings:\n4: One IPv4 (and all SLAAC and DHCPv6-stateless)\n6: One DHCPv6-stateful (and all SLAAC and DHCPv6 stateless)\nall: One IPv4, one DHCPv6-stateful (and all SLAAC and DHCPv6 stateless)\nany: Either one IPv4 or one DHCPv6-statefull (and all SLAAC and DHCPv6 stateless) (I agree with you on this, there might not be a good use case for this setting)","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    fixed_ips list of a port update request will be forgotten (deleted),"},{"line_number":147,"context_line":"    even though the port will continue to use the SLAAC addresses as long"},{"line_number":148,"context_line":"    as the source of IPv6 RA messages (radvd process) continues to"},{"line_number":149,"context_line":"    multicast RA messages."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"  * Subnet delete"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_32bfc1d1","line":149,"updated":"2014-12-03 22:57:38.000000000","message":"Will SG rules be updated to block traffic to the address even in this case since Neutron is no longer aware that the address exists?","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"8a7a27609f4868545dca9c8adc46fef1b5e12d48","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    fixed_ips list of a port update request will be forgotten (deleted),"},{"line_number":147,"context_line":"    even though the port will continue to use the SLAAC addresses as long"},{"line_number":148,"context_line":"    as the source of IPv6 RA messages (radvd process) continues to"},{"line_number":149,"context_line":"    multicast RA messages."},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"  * Subnet delete"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_e159bc5b","line":149,"in_reply_to":"5a890539_32bfc1d1","updated":"2014-12-04 22:59:24.000000000","message":"Yes. The SG rules are getting updated when an IPv6 (or v4) address gets removed from a port via update-port, so that traffic would no longer be allowed to that address. I still think we want to make the change suggested here (SLAAC/DHCPv6-stateless subnets are implicitly retained in port-update), keeping in line with the idea that SLAAC/DHCPv6-stateless addresses are automatic.","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":154,"context_line":"    until all associated IP addresses have been removed from ports (via"},{"line_number":155,"context_line":"    port update) or the associated ports/VMs have been deleted."},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    For subnets configured for DHCPv6-stateless, this model continues to"},{"line_number":158,"context_line":"    make sense and can be followed. For example, an operator can be"},{"line_number":159,"context_line":"    expected to remove all associated DHCPv6 addresses before deleting"},{"line_number":160,"context_line":"    the subnet."}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_92cf957e","line":157,"updated":"2014-12-03 22:57:38.000000000","message":"*stateful","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    In the case of IPv6 or DHCPv6-stateless subnets, however, it\u0027s not"},{"line_number":163,"context_line":"    feasible to require removal of SLAAC-generated addresses individually"},{"line_number":164,"context_line":"    from each associated port before deleting a subnet because of the"},{"line_number":165,"context_line":"    multicast nature of RA messages. For SLAAC and DHCPv6-stateless subnets,"},{"line_number":166,"context_line":"    the processing of subnet delete requests needs to be changed so that"},{"line_number":167,"context_line":"    these subnets will be allowed to be deleted even when there are ports"},{"line_number":168,"context_line":"    which are associated with SLAAC addresses from the subnet. This change"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_124c859d","line":165,"updated":"2014-12-03 22:57:38.000000000","message":"nit:  I think \"multicast nature\" might be a bit misleading because multicast is not specific enough.  I think the point you\u0027re trying to make is that it is sent to the link-local all nodes multicast group (ff02::1) which is a little more specific.\n\nYou could say the \"all nodes nature\" or something like that.","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"8a7a27609f4868545dca9c8adc46fef1b5e12d48","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    In the case of IPv6 or DHCPv6-stateless subnets, however, it\u0027s not"},{"line_number":163,"context_line":"    feasible to require removal of SLAAC-generated addresses individually"},{"line_number":164,"context_line":"    from each associated port before deleting a subnet because of the"},{"line_number":165,"context_line":"    multicast nature of RA messages. For SLAAC and DHCPv6-stateless subnets,"},{"line_number":166,"context_line":"    the processing of subnet delete requests needs to be changed so that"},{"line_number":167,"context_line":"    these subnets will be allowed to be deleted even when there are ports"},{"line_number":168,"context_line":"    which are associated with SLAAC addresses from the subnet. This change"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_463b819b","line":165,"in_reply_to":"5a890539_124c859d","updated":"2014-12-04 22:59:24.000000000","message":"Done","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    these subnets will be allowed to be deleted even when there are ports"},{"line_number":168,"context_line":"    which are associated with SLAAC addresses from the subnet. This change"},{"line_number":169,"context_line":"    will be implemented as a bug fix (https://review.openstack.org/#/c/134978)"},{"line_number":170,"context_line":"    so that this fix can be backported to stable Juno."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"  * Router interface create"},{"line_number":173,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_d203dd0d","line":170,"updated":"2014-12-03 22:57:38.000000000","message":"+1","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    This blueprint will include the change described in [Ref-1]_, and will"},{"line_number":187,"context_line":"    also relax the restrictions for internal router ports by allowing"},{"line_number":188,"context_line":"    multiple IPv6 addresses (along with up to one IPv4 address) per"},{"line_number":189,"context_line":"    internal router port."},{"line_number":190,"context_line":""},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"Proposed Change"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_0d28e484","line":189,"updated":"2014-12-03 22:57:38.000000000","message":"I wonder if this should be changed, too.  But, it is out of scope for this BP.","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":205,"context_line":""},{"line_number":206,"context_line":"  The changes can be summarized:"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"  * Current IPv4 behavior will not be changed."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"  * Port-create operations with an explicit list of fixed IPs:"},{"line_number":211,"context_line":"    When an explicit list of fixed IPs is included (via fixed_ips dictionary),"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_6d21689d","line":208,"updated":"2014-12-03 22:57:38.000000000","message":"+1","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":261,"context_line":"  by the provider\u0027s source of RA messages. In order to keep in sync with"},{"line_number":262,"context_line":"  these generated addresses, the subnet create processing will need to be"},{"line_number":263,"context_line":"  modified by adding a port update for all existing ports on the network"},{"line_number":264,"context_line":"  in order to associate the ports with these SLAAC/DHCPv6-stateless subnets."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"* Subnet Delete API Call"},{"line_number":267,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_8db05444","line":264,"updated":"2014-12-03 22:57:38.000000000","message":"Could this be optimized with a bulk port update or something?","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"9880cd5ab04a083926dad48df5fe9d6cef6e371d","unresolved":false,"context_lines":[{"line_number":261,"context_line":"  by the provider\u0027s source of RA messages. In order to keep in sync with"},{"line_number":262,"context_line":"  these generated addresses, the subnet create processing will need to be"},{"line_number":263,"context_line":"  modified by adding a port update for all existing ports on the network"},{"line_number":264,"context_line":"  in order to associate the ports with these SLAAC/DHCPv6-stateless subnets."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"* Subnet Delete API Call"},{"line_number":267,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"3a961159_e887be0d","line":264,"in_reply_to":"5a890539_1f61bc38","updated":"2014-12-09 00:11:49.000000000","message":"I took a look at how the bulk creates (nets, subnets, ports) are implemented in the base DB plugin, and now I\u0027m thinking that doing the same bulking for port update will help us here. The DB plugin breaks up the bulk create requests into individual creates, so the performance is gained in the messaging between Neutron clients and Neutron server. Probably the normal sequence would be for the user to set up SLAAC subnets first before VMs are initiated anyway. I don\u0027t know if there\u0027s a way to optimize db transactions, or if there\u0027s any other db concerns here, but I\u0027m open for ideas.","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"b836d14d1bea39910ca4cd654832da732cdfc052","unresolved":false,"context_lines":[{"line_number":261,"context_line":"  by the provider\u0027s source of RA messages. In order to keep in sync with"},{"line_number":262,"context_line":"  these generated addresses, the subnet create processing will need to be"},{"line_number":263,"context_line":"  modified by adding a port update for all existing ports on the network"},{"line_number":264,"context_line":"  in order to associate the ports with these SLAAC/DHCPv6-stateless subnets."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"* Subnet Delete API Call"},{"line_number":267,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_1f61bc38","line":264,"in_reply_to":"5a890539_73fbe17a","updated":"2014-12-05 01:17:13.000000000","message":"I guess it depends if there will be significant performance benefit.  I\u0027m not sure if port_update in this context will perform very well.\n\nAre there considerations with db transactions that should be taken in to account?","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"8a7a27609f4868545dca9c8adc46fef1b5e12d48","unresolved":false,"context_lines":[{"line_number":261,"context_line":"  by the provider\u0027s source of RA messages. In order to keep in sync with"},{"line_number":262,"context_line":"  these generated addresses, the subnet create processing will need to be"},{"line_number":263,"context_line":"  modified by adding a port update for all existing ports on the network"},{"line_number":264,"context_line":"  in order to associate the ports with these SLAAC/DHCPv6-stateless subnets."},{"line_number":265,"context_line":""},{"line_number":266,"context_line":"* Subnet Delete API Call"},{"line_number":267,"context_line":""}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_73fbe17a","line":264,"in_reply_to":"5a890539_8db05444","updated":"2014-12-04 22:59:24.000000000","message":"That might be a helpful optimization, but I don\u0027t see a bulk update mechanism in the base DB plugin. (There is a bulk network/subnet/port create.)  Should I create 2 bugs: one to add bulk update (unless it already exists?), and a second to optimize this subnet create after the bulk update is available?","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":272,"context_line":"  ports that are using SLAAC addresses from the deleted subnet will be"},{"line_number":273,"context_line":"  disassociated from the corresponding SLAAC address."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"* Limits on Number of IP Addresses per Router Interface"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"  * Externally-facing gateway ports: As discussed in the Problem"},{"line_number":278,"context_line":"    Definition section, this blueprint will relax the restrictions imposed"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_8dde946b","line":275,"updated":"2014-12-03 22:57:38.000000000","message":"You should be conscious of the L3 agent restructuring that is starting now [1].\n\n[1] https://review.openstack.org/#/c/131535/","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"8a7a27609f4868545dca9c8adc46fef1b5e12d48","unresolved":false,"context_lines":[{"line_number":272,"context_line":"  ports that are using SLAAC addresses from the deleted subnet will be"},{"line_number":273,"context_line":"  disassociated from the corresponding SLAAC address."},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"* Limits on Number of IP Addresses per Router Interface"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"  * Externally-facing gateway ports: As discussed in the Problem"},{"line_number":278,"context_line":"    Definition section, this blueprint will relax the restrictions imposed"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_d33ad532","line":275,"in_reply_to":"5a890539_8dde946b","updated":"2014-12-04 22:59:24.000000000","message":"It\u0027s a continually moving target. :o)","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e4aeafcbef5f362ff1a415c16cd7ae63867d0457","unresolved":false,"context_lines":[{"line_number":379,"context_line":"However, this approach would be rather complex and error prone, and"},{"line_number":380,"context_line":"would go against the automatic nature of SLAAC. Also, this approach would"},{"line_number":381,"context_line":"not add much value given that IPv6 addresses can already be selectively"},{"line_number":382,"context_line":"assigned on a subnet by using DHCPv6-stateful."},{"line_number":383,"context_line":""},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"Implementation"}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a890539_cda7bc4e","line":382,"updated":"2014-12-03 22:57:38.000000000","message":"Agreed.  However, in the floating ip case, we still might need this.  But, that is out of scope for now.  So, sounds good.","commit_id":"a2464341bdb158a72a52b53220c74400792cd253"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e8c871fd006109b5a13030041514a97f7bf23c2d","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    delivery of RA prefix assignments on a per-port, per-subnet basis by"},{"line_number":90,"context_line":"    configuring radvd so that RA messages are delivered per subnet via"},{"line_number":91,"context_line":"    unicast, but this implementation would be rather complex"},{"line_number":92,"context_line":"    and error prone, and would go against the automatic nature of SLAAC."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Current Implementation"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_5dfb8778","line":92,"updated":"2014-12-12 14:22:07.000000000","message":"I agree with your considerations and I would also like to add that unicast in this case won\u0027t scale well on large network, triggering unnecessary chattiness and slowing down processing. However, I was wondering (and I apologise if it\u0027s a dumb question) if multicast group could be used to define which ports will receive SLAAC router advertisement messages.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    delivery of RA prefix assignments on a per-port, per-subnet basis by"},{"line_number":90,"context_line":"    configuring radvd so that RA messages are delivered per subnet via"},{"line_number":91,"context_line":"    unicast, but this implementation would be rather complex"},{"line_number":92,"context_line":"    and error prone, and would go against the automatic nature of SLAAC."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Current Implementation"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_af6183aa","line":92,"in_reply_to":"3a961159_5dfb8778","updated":"2014-12-12 23:03:11.000000000","message":"Yes, I\u0027ll add a note here saying that using unicast for SLAAC router advertisement won\u0027t scale well in a large system. That\u0027s a good question about using multicast groups other than the all-nodes group. The difficult aspect about implementing such a scheme would be figuring out how to tell each host  which groups it should be listening on for RAs. Here I\u0027m assuming that we\u0027d need multiple multicast groups, since a tenant could want multiple SLAAC subnets, with a different set of VMs targeted for each subnet. For the scope of this blueprint, I\u0027d prefer to stick with the standard use of the all-nodes multicast group, and maybe we can explore ways of providing more selectivity on SLAAC subnets as a future enhancement.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"01baa8cc17352f33e4cfe16c11e065ed4d901cc6","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    delivery of RA prefix assignments on a per-port, per-subnet basis by"},{"line_number":90,"context_line":"    configuring radvd so that RA messages are delivered per subnet via"},{"line_number":91,"context_line":"    unicast, but this implementation would be rather complex"},{"line_number":92,"context_line":"    and error prone, and would go against the automatic nature of SLAAC."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"* Current Implementation"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_e1d390d2","line":92,"in_reply_to":"3a961159_af6183aa","updated":"2014-12-14 12:47:44.000000000","message":"You\u0027ve invited comments by even talking about the implementation, I think, but we all agree it\u0027s not a first pass feature.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e0ed7594d78f9ea37ff029f5448e3faeb9c2188b","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    expected to remove all associated DHCPv6 addresses before deleting"},{"line_number":151,"context_line":"    the subnet."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    In the case of IPv6 or DHCPv6-stateless subnets, however, it\u0027s not"},{"line_number":154,"context_line":"    feasible to require removal of SLAAC-generated addresses individually"},{"line_number":155,"context_line":"    from each associated port before deleting a subnet because the ports"},{"line_number":156,"context_line":"    will continue to receive RA messages advertising the subnet prefix"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_08329f5e","line":153,"updated":"2014-12-12 15:17:14.000000000","message":"IPv6 -\u003e SLAAC?","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    expected to remove all associated DHCPv6 addresses before deleting"},{"line_number":151,"context_line":"    the subnet."},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    In the case of IPv6 or DHCPv6-stateless subnets, however, it\u0027s not"},{"line_number":154,"context_line":"    feasible to require removal of SLAAC-generated addresses individually"},{"line_number":155,"context_line":"    from each associated port before deleting a subnet because the ports"},{"line_number":156,"context_line":"    will continue to receive RA messages advertising the subnet prefix"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_4f3d7f2a","line":153,"in_reply_to":"3a961159_08329f5e","updated":"2014-12-12 23:03:11.000000000","message":"Yes, good catch, but I\u0027ll be deleting this section as you suggested below.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e0ed7594d78f9ea37ff029f5448e3faeb9c2188b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"    deleted even when there are ports which are associated with SLAAC"},{"line_number":161,"context_line":"    addresses from the subnet. This change will be implemented as a bug"},{"line_number":162,"context_line":"    fix (https://review.openstack.org/#/c/134978) so that this fix can be"},{"line_number":163,"context_line":"    backported to stable Juno."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  * Router interface create"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_e863933f","line":163,"updated":"2014-12-12 15:17:14.000000000","message":"All in all, the fix is merged, and backported to Juno, so I doubt we should spend time discussing non-existent behaviour here.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":160,"context_line":"    deleted even when there are ports which are associated with SLAAC"},{"line_number":161,"context_line":"    addresses from the subnet. This change will be implemented as a bug"},{"line_number":162,"context_line":"    fix (https://review.openstack.org/#/c/134978) so that this fix can be"},{"line_number":163,"context_line":"    backported to stable Juno."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  * Router interface create"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_ef346b4b","line":163,"in_reply_to":"3a961159_e863933f","updated":"2014-12-12 23:03:11.000000000","message":"Sure, I\u0027ll delete this section.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e0ed7594d78f9ea37ff029f5448e3faeb9c2188b","unresolved":false,"context_lines":[{"line_number":192,"context_line":"  However, the way in which this API call will be used, and the way that"},{"line_number":193,"context_line":"  Neutron handles this call when IPv6 subnets are included in the associated"},{"line_number":194,"context_line":"  network, will represent a small paradigm shift from the IPv4 model."},{"line_number":195,"context_line":"  The change in behavior will revolve around deciding for which subnets"},{"line_number":196,"context_line":"  on the network that IP addresses should be allocated and associated"},{"line_number":197,"context_line":"  initially, upon port creation."},{"line_number":198,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_089c5f0e","line":195,"updated":"2014-12-12 15:17:14.000000000","message":"I\u0027m not a native speaker, though the order of words in the sentence seems weird for me. I needed to read it five times before being able to grasp the idea.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":192,"context_line":"  However, the way in which this API call will be used, and the way that"},{"line_number":193,"context_line":"  Neutron handles this call when IPv6 subnets are included in the associated"},{"line_number":194,"context_line":"  network, will represent a small paradigm shift from the IPv4 model."},{"line_number":195,"context_line":"  The change in behavior will revolve around deciding for which subnets"},{"line_number":196,"context_line":"  on the network that IP addresses should be allocated and associated"},{"line_number":197,"context_line":"  initially, upon port creation."},{"line_number":198,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_1aa653ae","line":195,"in_reply_to":"3a961159_089c5f0e","updated":"2014-12-12 23:03:11.000000000","message":"Yeah, it\u0027s tough for me reading what I wrote. :o) I\u0027ll replace this line with something similar to what Salvatore says in the comment below, i.e. the change in behavior revolves around the notion that, because of the nature of SLAAC address assignment, then if a network has a SLAAC subnet, then all ports on the subnet will get that SLAAC address automatically.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e8c871fd006109b5a13030041514a97f7bf23c2d","unresolved":false,"context_lines":[{"line_number":208,"context_line":"      will now be implicitly associated with the port, regardless of whether"},{"line_number":209,"context_line":"      or not these subnets are explicitly included in the fixed_ips list."},{"line_number":210,"context_line":"      (DHCPv6-stateful subnets will continue to be included in this case"},{"line_number":211,"context_line":"      only when they are explicitly included in fixed_ips.)"},{"line_number":212,"context_line":"    * A port-create request can optionally include SLAAC or DHCPv6-stateless"},{"line_number":213,"context_line":"      subnets explicitly listed in fixed_ips, but these entries are"},{"line_number":214,"context_line":"      superfluous."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_7df68390","line":211,"updated":"2014-12-12 14:22:07.000000000","message":"This is a slight behavioural change in the API - for instance the same request against Juno would not have returned SLAAC subnets in the request. However I think there\u0027s a very good explanation in this document for the reasons that have led the author to make this proposal. If no better solution is devised, then it should be documented that if a network has a SLAAC subnet then all ports on that network will get SLAAC address.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e0ed7594d78f9ea37ff029f5448e3faeb9c2188b","unresolved":false,"context_lines":[{"line_number":208,"context_line":"      will now be implicitly associated with the port, regardless of whether"},{"line_number":209,"context_line":"      or not these subnets are explicitly included in the fixed_ips list."},{"line_number":210,"context_line":"      (DHCPv6-stateful subnets will continue to be included in this case"},{"line_number":211,"context_line":"      only when they are explicitly included in fixed_ips.)"},{"line_number":212,"context_line":"    * A port-create request can optionally include SLAAC or DHCPv6-stateless"},{"line_number":213,"context_line":"      subnets explicitly listed in fixed_ips, but these entries are"},{"line_number":214,"context_line":"      superfluous."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_c8a4174d","line":211,"in_reply_to":"3a961159_7df68390","updated":"2014-12-12 15:17:14.000000000","message":"(adding to comment above) ... and when we say SLAAC subnets, it means both \u0027slaac\u0027 and \u0027dhcp-stateless\u0027 subnets.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":208,"context_line":"      will now be implicitly associated with the port, regardless of whether"},{"line_number":209,"context_line":"      or not these subnets are explicitly included in the fixed_ips list."},{"line_number":210,"context_line":"      (DHCPv6-stateful subnets will continue to be included in this case"},{"line_number":211,"context_line":"      only when they are explicitly included in fixed_ips.)"},{"line_number":212,"context_line":"    * A port-create request can optionally include SLAAC or DHCPv6-stateless"},{"line_number":213,"context_line":"      subnets explicitly listed in fixed_ips, but these entries are"},{"line_number":214,"context_line":"      superfluous."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_f5119804","line":211,"in_reply_to":"3a961159_7df68390","updated":"2014-12-12 23:03:11.000000000","message":"I\u0027ll add that to the leading paragraph for this section.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6685,"name":"Baodong (Robert) Li","email":"baoli@cisco.com","username":"baoli"},"change_message_id":"9a6d7a6f4163683553aab5e61b3d79f17caa27e3","unresolved":false,"context_lines":[{"line_number":208,"context_line":"      will now be implicitly associated with the port, regardless of whether"},{"line_number":209,"context_line":"      or not these subnets are explicitly included in the fixed_ips list."},{"line_number":210,"context_line":"      (DHCPv6-stateful subnets will continue to be included in this case"},{"line_number":211,"context_line":"      only when they are explicitly included in fixed_ips.)"},{"line_number":212,"context_line":"    * A port-create request can optionally include SLAAC or DHCPv6-stateless"},{"line_number":213,"context_line":"      subnets explicitly listed in fixed_ips, but these entries are"},{"line_number":214,"context_line":"      superfluous."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_43156847","line":211,"in_reply_to":"3a961159_c8a4174d","updated":"2014-12-12 15:32:02.000000000","message":"The confusion here regarding SLAAC and dhcp-stateless is caused by the two modes we are currently using to create ipv6 subnet. It\u0027s really meant to be the SLAAC: StateLess Address Auto Configuration.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":208,"context_line":"      will now be implicitly associated with the port, regardless of whether"},{"line_number":209,"context_line":"      or not these subnets are explicitly included in the fixed_ips list."},{"line_number":210,"context_line":"      (DHCPv6-stateful subnets will continue to be included in this case"},{"line_number":211,"context_line":"      only when they are explicitly included in fixed_ips.)"},{"line_number":212,"context_line":"    * A port-create request can optionally include SLAAC or DHCPv6-stateless"},{"line_number":213,"context_line":"      subnets explicitly listed in fixed_ips, but these entries are"},{"line_number":214,"context_line":"      superfluous."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_b532b0a4","line":211,"in_reply_to":"3a961159_c8a4174d","updated":"2014-12-12 23:03:11.000000000","message":"Yes.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"01baa8cc17352f33e4cfe16c11e065ed4d901cc6","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    subnets on the associated network will be associated with the port:"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    * One subnet from all IPv4 subnets"},{"line_number":222,"context_line":"    * One subnet from all IPv6 DHCPv6-stateful subnets"},{"line_number":223,"context_line":"    * All IPv6 SLAAC and DHCPv6-stateless subnets"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"  * Response to API call will list all fixed IPs associated with the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_41e464ab","line":222,"updated":"2014-12-14 12:47:44.000000000","message":"Why only one from stateful networks?  It seems we have a difference in meaning between v4 and v6 subnets: (v4: expand the address space; v6: issue more addresses) and I\u0027m not sure why stateful subnets should get different treatment - makes more sense to me to have a consistent interface for v6 across the board.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"09d943d9c808c5cc37d702202a45be744e4da9e5","unresolved":false,"context_lines":[{"line_number":219,"context_line":"    subnets on the associated network will be associated with the port:"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    * One subnet from all IPv4 subnets"},{"line_number":222,"context_line":"    * One subnet from all IPv6 DHCPv6-stateful subnets"},{"line_number":223,"context_line":"    * All IPv6 SLAAC and DHCPv6-stateless subnets"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"  * Response to API call will list all fixed IPs associated with the"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_07d42cea","line":222,"in_reply_to":"3a961159_41e464ab","updated":"2014-12-14 18:20:50.000000000","message":"The motivation is to keep v6 treatment consistent with v4 as much as possible. For v6 stateful, keeping consistent with v4 means associating with only one v6 stateful subnet if you don\u0027t provide an explicit list... for v6 SLAAC/stateless, the addresses are automatic so this consistency isn\u0027t possible.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"01baa8cc17352f33e4cfe16c11e065ed4d901cc6","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"  Similar to the port-create API call, it is not expected that the"},{"line_number":232,"context_line":"  definition/syntax of the Neutron port-update API request/response messages"},{"line_number":233,"context_line":"  will change, but the way in which this API call is used and the way that"},{"line_number":234,"context_line":"  Neutron handles these requests will change for IPv6 subnets/addresses."},{"line_number":235,"context_line":"  The change in behavior will revolve around deciding for which subnets"},{"line_number":236,"context_line":"  on the network that IP addresses should be preserved upon port update."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_61dfa0d6","line":233,"updated":"2014-12-14 12:47:44.000000000","message":"will *not* change, I think?","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"09d943d9c808c5cc37d702202a45be744e4da9e5","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"  Similar to the port-create API call, it is not expected that the"},{"line_number":232,"context_line":"  definition/syntax of the Neutron port-update API request/response messages"},{"line_number":233,"context_line":"  will change, but the way in which this API call is used and the way that"},{"line_number":234,"context_line":"  Neutron handles these requests will change for IPv6 subnets/addresses."},{"line_number":235,"context_line":"  The change in behavior will revolve around deciding for which subnets"},{"line_number":236,"context_line":"  on the network that IP addresses should be preserved upon port update."}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_67d5f0e3","line":233,"in_reply_to":"3a961159_61dfa0d6","updated":"2014-12-14 18:20:50.000000000","message":"It\u0027s saying \"...not expected that ... will change\". It\u0027s the right sense, but could we worded more clearly. Will modify that wording.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e0ed7594d78f9ea37ff029f5448e3faeb9c2188b","unresolved":false,"context_lines":[{"line_number":240,"context_line":"    DHCPv6-stateless subnet on the associated network will now be implicitly"},{"line_number":241,"context_line":"    preserved (retained) when the port-update operation does not explicitly"},{"line_number":242,"context_line":"    include the SLAAC/DHCPv6-stateless subnet in the fixed_ips list of"},{"line_number":243,"context_line":"    changed/new subnets/addresses."},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"* Subnet Create API Call"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_a34a8c52","line":243,"updated":"2014-12-12 15:17:14.000000000","message":"They will also be returned to the caller, right?","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":240,"context_line":"    DHCPv6-stateless subnet on the associated network will now be implicitly"},{"line_number":241,"context_line":"    preserved (retained) when the port-update operation does not explicitly"},{"line_number":242,"context_line":"    include the SLAAC/DHCPv6-stateless subnet in the fixed_ips list of"},{"line_number":243,"context_line":"    changed/new subnets/addresses."},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"* Subnet Create API Call"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_f5ad189c","line":243,"in_reply_to":"3a961159_a34a8c52","updated":"2014-12-12 23:03:11.000000000","message":"Yes, good point. I\u0027ll add that (similar to what\u0027s there for port create above).","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e0ed7594d78f9ea37ff029f5448e3faeb9c2188b","unresolved":false,"context_lines":[{"line_number":244,"context_line":""},{"line_number":245,"context_line":"* Subnet Create API Call"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"  When an IPv6 SLAAC or DHCPv6-stateless subnet is created after ports"},{"line_number":248,"context_line":"  have already been created on the associated network, and that SLAAC"},{"line_number":249,"context_line":"  subnet relies on a provider source for RA messages (as opposed to an"},{"line_number":250,"context_line":"  OpenStack reference RADVD process; this is selected via \"ipv6_ra_mode\""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_236e9cc9","line":247,"updated":"2014-12-12 15:17:14.000000000","message":"Maybe we need some short term defined for \u0027IPv6 SLAAC or DHCPv6-stateless subnets\u0027 at the top of the spec and then use it everywhere...","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":244,"context_line":""},{"line_number":245,"context_line":"* Subnet Create API Call"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"  When an IPv6 SLAAC or DHCPv6-stateless subnet is created after ports"},{"line_number":248,"context_line":"  have already been created on the associated network, and that SLAAC"},{"line_number":249,"context_line":"  subnet relies on a provider source for RA messages (as opposed to an"},{"line_number":250,"context_line":"  OpenStack reference RADVD process; this is selected via \"ipv6_ra_mode\""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_b5955034","line":247,"in_reply_to":"3a961159_236e9cc9","updated":"2014-12-12 23:03:11.000000000","message":"Yes, good idea!  Maybe \"SLAAC-enabled\"? (I\u0027m open for suggestions.)","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e8c871fd006109b5a13030041514a97f7bf23c2d","unresolved":false,"context_lines":[{"line_number":254,"context_line":"  by the provider\u0027s source of RA messages. In order to keep in sync with"},{"line_number":255,"context_line":"  these generated addresses, the subnet create processing will need to be"},{"line_number":256,"context_line":"  modified by adding a port update for all existing ports on the network"},{"line_number":257,"context_line":"  in order to associate the ports with these SLAAC/DHCPv6-stateless subnets."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* Subnet Delete API Call"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_9df16f97","line":257,"updated":"2014-12-12 14:22:07.000000000","message":"This is potentially a very long transaction, if done through the port update logic.\nProcressing port updates asynchronously is a potential solution.\nHowever in this case the update of a port could be made a lot easier by having\ndirect logic for adding IPAllocations object for each port on the network.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"01baa8cc17352f33e4cfe16c11e065ed4d901cc6","unresolved":false,"context_lines":[{"line_number":254,"context_line":"  by the provider\u0027s source of RA messages. In order to keep in sync with"},{"line_number":255,"context_line":"  these generated addresses, the subnet create processing will need to be"},{"line_number":256,"context_line":"  modified by adding a port update for all existing ports on the network"},{"line_number":257,"context_line":"  in order to associate the ports with these SLAAC/DHCPv6-stateless subnets."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* Subnet Delete API Call"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_a1f4285b","line":257,"in_reply_to":"3a961159_35524067","updated":"2014-12-14 12:47:44.000000000","message":"We discussed extensively at the summit that we should be expecting operations on the network to be asynchronous, and DB ops to be synchronous.  That fits with what Salvatore is saying, and what Dane says in the spec doesn\u0027t actually contradict that.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":254,"context_line":"  by the provider\u0027s source of RA messages. In order to keep in sync with"},{"line_number":255,"context_line":"  these generated addresses, the subnet create processing will need to be"},{"line_number":256,"context_line":"  modified by adding a port update for all existing ports on the network"},{"line_number":257,"context_line":"  in order to associate the ports with these SLAAC/DHCPv6-stateless subnets."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* Subnet Delete API Call"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_35524067","line":257,"in_reply_to":"3a961159_9df16f97","updated":"2014-12-12 23:03:11.000000000","message":"That would be better. I\u0027ll change this to use a direct approach.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"09d943d9c808c5cc37d702202a45be744e4da9e5","unresolved":false,"context_lines":[{"line_number":254,"context_line":"  by the provider\u0027s source of RA messages. In order to keep in sync with"},{"line_number":255,"context_line":"  these generated addresses, the subnet create processing will need to be"},{"line_number":256,"context_line":"  modified by adding a port update for all existing ports on the network"},{"line_number":257,"context_line":"  in order to associate the ports with these SLAAC/DHCPv6-stateless subnets."},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"* Subnet Delete API Call"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_87073c81","line":257,"in_reply_to":"3a961159_a1f4285b","updated":"2014-12-14 18:20:50.000000000","message":"I agree with Salvatore that \"port update\" is a little misleading, so it should be clearer that this is a programmatic update of IP allocations.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e0ed7594d78f9ea37ff029f5448e3faeb9c2188b","unresolved":false,"context_lines":[{"line_number":263,"context_line":"  SLAAC-enabled subnet even when that subnet still has ports which are using"},{"line_number":264,"context_line":"  SLAAC-generated addresses. When a SLAAC-enabled subnet is deleted, all"},{"line_number":265,"context_line":"  ports that are using SLAAC addresses from the deleted subnet will be"},{"line_number":266,"context_line":"  disassociated from the corresponding SLAAC address."},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"* Limits on Number of IP Addresses per Router Interface"},{"line_number":269,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_8394b08b","line":266,"updated":"2014-12-12 15:17:14.000000000","message":"It\u0027s already changed, so no need for that item here.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":263,"context_line":"  SLAAC-enabled subnet even when that subnet still has ports which are using"},{"line_number":264,"context_line":"  SLAAC-generated addresses. When a SLAAC-enabled subnet is deleted, all"},{"line_number":265,"context_line":"  ports that are using SLAAC addresses from the deleted subnet will be"},{"line_number":266,"context_line":"  disassociated from the corresponding SLAAC address."},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"* Limits on Number of IP Addresses per Router Interface"},{"line_number":269,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_95ca1419","line":266,"in_reply_to":"3a961159_8394b08b","updated":"2014-12-12 23:03:11.000000000","message":"Done","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e8c871fd006109b5a13030041514a97f7bf23c2d","unresolved":false,"context_lines":[{"line_number":285,"context_line":"    if there is already an internal router interface supporting a gateway"},{"line_number":286,"context_line":"    address for one of the other IPv6 subnets in the network. If so,"},{"line_number":287,"context_line":"    the new IPv6 gateway IP address will be added to that existing"},{"line_number":288,"context_line":"    interface, rather than having a new router interface created."},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"Data Model Impact"},{"line_number":291,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_bdec6bbc","line":288,"updated":"2014-12-12 14:22:07.000000000","message":"This a bit obscure. What if a user wants to connect two distinct subnet to two different routers? This is probably a remote corner case, but will Neutron still be able to support it with IPv6?","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":285,"context_line":"    if there is already an internal router interface supporting a gateway"},{"line_number":286,"context_line":"    address for one of the other IPv6 subnets in the network. If so,"},{"line_number":287,"context_line":"    the new IPv6 gateway IP address will be added to that existing"},{"line_number":288,"context_line":"    interface, rather than having a new router interface created."},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"Data Model Impact"},{"line_number":291,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_e0563805","line":288,"in_reply_to":"3a961159_bdec6bbc","updated":"2014-12-12 23:03:11.000000000","message":"Apologies, I\u0027m not following. Let\u0027s say we have router1 and router2, and subnetA and subnetB. In this scenario, router1 and router2 would each have an interface that has an address from subnetA and from subnetB. The routers would have to use different addresses on each subnet (they can\u0027t both use :1 addresses). Does this work or is there a hole?","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":3217,"name":"Ian Wells","username":"ijw-ubuntu"},"change_message_id":"01baa8cc17352f33e4cfe16c11e065ed4d901cc6","unresolved":false,"context_lines":[{"line_number":285,"context_line":"    if there is already an internal router interface supporting a gateway"},{"line_number":286,"context_line":"    address for one of the other IPv6 subnets in the network. If so,"},{"line_number":287,"context_line":"    the new IPv6 gateway IP address will be added to that existing"},{"line_number":288,"context_line":"    interface, rather than having a new router interface created."},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"Data Model Impact"},{"line_number":291,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_0105fc44","line":288,"in_reply_to":"3a961159_e0563805","updated":"2014-12-14 12:47:44.000000000","message":"It\u0027s far more likely that you have router1 on subnet1 as its gateway, and router2 on subnet2 as *its* gateway.  In v6, I think having two routers on one network (which, for that matter, probably doesn\u0027t see much testing as a v4 scenario either) has uses, particularly when you\u0027re using provider networks.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e8c871fd006109b5a13030041514a97f7bf23c2d","unresolved":false,"context_lines":[{"line_number":298,"context_line":"As discussed in earlier sections, the definition/syntax of the port-create,"},{"line_number":299,"context_line":"port-update, and subnet-delete API calls will not be changed, but the way"},{"line_number":300,"context_line":"in which these API calls are used and the way that Neutron handles these"},{"line_number":301,"context_line":"API calls will be modified for IPv6 subnets as compared to IPv4 subnets."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Security Impact"},{"line_number":304,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_dd2e97fa","line":301,"updated":"2014-12-12 14:22:07.000000000","message":"For the sake of completeness it should also be mentioned here that the behavioral\nchange mentioned here will result in different responses for port create and update operations are SLAAC subnets will be automatically added to fixed_ips","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e0ed7594d78f9ea37ff029f5448e3faeb9c2188b","unresolved":false,"context_lines":[{"line_number":298,"context_line":"As discussed in earlier sections, the definition/syntax of the port-create,"},{"line_number":299,"context_line":"port-update, and subnet-delete API calls will not be changed, but the way"},{"line_number":300,"context_line":"in which these API calls are used and the way that Neutron handles these"},{"line_number":301,"context_line":"API calls will be modified for IPv6 subnets as compared to IPv4 subnets."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Security Impact"},{"line_number":304,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_a3e60c42","line":301,"in_reply_to":"3a961159_dd2e97fa","updated":"2014-12-12 15:17:14.000000000","message":"+1.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":298,"context_line":"As discussed in earlier sections, the definition/syntax of the port-create,"},{"line_number":299,"context_line":"port-update, and subnet-delete API calls will not be changed, but the way"},{"line_number":300,"context_line":"in which these API calls are used and the way that Neutron handles these"},{"line_number":301,"context_line":"API calls will be modified for IPv6 subnets as compared to IPv4 subnets."},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"Security Impact"},{"line_number":304,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_403f0cb4","line":301,"in_reply_to":"3a961159_dd2e97fa","updated":"2014-12-12 23:03:11.000000000","message":"Done","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e8c871fd006109b5a13030041514a97f7bf23c2d","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"Developers of L3 services may need to incorporate some of the behavior"},{"line_number":343,"context_line":"changes proposed in the blueprint with respect to port creation when"},{"line_number":344,"context_line":"IPv6 subnets are involved."},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"Community Impact"},{"line_number":347,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_fd31935a","line":344,"updated":"2014-12-12 14:22:07.000000000","message":"I think these developers will get this behaviour for \"free\" if they base their software on the common framework database classes. Indeed you\u0027re not changing the way SLAAC works, you\u0027re simply ensuring the management plane reflects faithfully the way SLAAC works.\nIf that is correct, this is something else worth mentioning in ths section.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"Developers of L3 services may need to incorporate some of the behavior"},{"line_number":343,"context_line":"changes proposed in the blueprint with respect to port creation when"},{"line_number":344,"context_line":"IPv6 subnets are involved."},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"Community Impact"},{"line_number":347,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_40662cee","line":344,"in_reply_to":"3a961159_fd31935a","updated":"2014-12-12 23:03:11.000000000","message":"Done","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e8c871fd006109b5a13030041514a97f7bf23c2d","unresolved":false,"context_lines":[{"line_number":372,"context_line":"would go against the automatic nature of SLAAC. Also, this approach would"},{"line_number":373,"context_line":"not add much value given that IPv6 addresses can already be selectively"},{"line_number":374,"context_line":"assigned on a subnet by using DHCPv6-stateful."},{"line_number":375,"context_line":""},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"Implementation"},{"line_number":378,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_1d357f45","line":375,"updated":"2014-12-12 14:22:07.000000000","message":"Regarding SLAAC, I am somehow skewed towards thinking that listing them among fixed_ips is at the end of the day not the right solution. If nothing else because it is unlikely we\u0027d get to know which address a port gets from a SLAAC subnet.\nI was therefore considering the idea of a possibly backward compatible API change, which would be the addition of a \u0027slaac_ips\u0027 attribute to the port resource. These attribute would simply list subnets from which an IPv6 address was automatically generated. I did not include dhcpv6-stateless in the picture, but is this an alternative which has been considered already? If yes, why was it discarded?","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e0ed7594d78f9ea37ff029f5448e3faeb9c2188b","unresolved":false,"context_lines":[{"line_number":372,"context_line":"would go against the automatic nature of SLAAC. Also, this approach would"},{"line_number":373,"context_line":"not add much value given that IPv6 addresses can already be selectively"},{"line_number":374,"context_line":"assigned on a subnet by using DHCPv6-stateful."},{"line_number":375,"context_line":""},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"Implementation"},{"line_number":378,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_c3c23852","line":375,"in_reply_to":"3a961159_1d357f45","updated":"2014-12-12 15:17:14.000000000","message":"Do you mean instances won\u0027t use EUI-64?","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":372,"context_line":"would go against the automatic nature of SLAAC. Also, this approach would"},{"line_number":373,"context_line":"not add much value given that IPv6 addresses can already be selectively"},{"line_number":374,"context_line":"assigned on a subnet by using DHCPv6-stateful."},{"line_number":375,"context_line":""},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"Implementation"},{"line_number":378,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_e09e3806","line":375,"in_reply_to":"3a961159_1d357f45","updated":"2014-12-12 23:03:11.000000000","message":"We would know (or maybe a better word is predict) the address that a port gets from a SLAAC subnet. It would be a EUI-64 address, so we can derive the address from the prefix and the port\u0027s MAC address. But listing the SLAAC (and DHCPv6-stateless)  addresses via a separate \u0027slaac_ips\u0027 attribute might be clearer. On the other hand, if a user chooses to include a SLAAC subnet in the list of fixed IPs (even though it\u0027s not needed) when creating a port, and then the results list the SLAAC address in a separate \u0027slaac-ips\u0027 attribute, would that be confusing? Let me know what you think makes more sense.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":372,"context_line":"would go against the automatic nature of SLAAC. Also, this approach would"},{"line_number":373,"context_line":"not add much value given that IPv6 addresses can already be selectively"},{"line_number":374,"context_line":"assigned on a subnet by using DHCPv6-stateful."},{"line_number":375,"context_line":""},{"line_number":376,"context_line":""},{"line_number":377,"context_line":"Implementation"},{"line_number":378,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_40870cb5","line":375,"in_reply_to":"3a961159_c3c23852","updated":"2014-12-12 23:03:11.000000000","message":"Yes, they\u0027ll use EUI-64, thanks for pointing that out.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e0ed7594d78f9ea37ff029f5448e3faeb9c2188b","unresolved":false,"context_lines":[{"line_number":404,"context_line":"The change set for this blueprint depends on the following Neutron bug:"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"Neutron network:dhcp port is not assigned EUI64 IPv6 address for SLAAC subnet"},{"line_number":407,"context_line":"https://bugs.launchpad.net/neutron/+bug/1330826"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_6398a478","line":407,"updated":"2014-12-12 15:17:14.000000000","message":"The bug is fixed, so probably we may kill those dependencies from the spec.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":404,"context_line":"The change set for this blueprint depends on the following Neutron bug:"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"Neutron network:dhcp port is not assigned EUI64 IPv6 address for SLAAC subnet"},{"line_number":407,"context_line":"https://bugs.launchpad.net/neutron/+bug/1330826"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":""},{"line_number":410,"context_line":"Testing"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_a0bfd05f","line":407,"in_reply_to":"3a961159_6398a478","updated":"2014-12-12 23:03:11.000000000","message":"Done","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"e8c871fd006109b5a13030041514a97f7bf23c2d","unresolved":false,"context_lines":[{"line_number":428,"context_line":"  - Create an instance using all three subnets."},{"line_number":429,"context_line":"  - From the instance, ping the gateway IP address for each of the three"},{"line_number":430,"context_line":"    subnets."},{"line_number":431,"context_line":"  - From the instance, ping an external gateway port."},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"Functional Tests"},{"line_number":434,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_3d387b3c","line":431,"updated":"2014-12-12 14:22:07.000000000","message":"Is this a scenario test, or a set of API verification tests? (ie: the ones that go in tempest.api.network)","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":428,"context_line":"  - Create an instance using all three subnets."},{"line_number":429,"context_line":"  - From the instance, ping the gateway IP address for each of the three"},{"line_number":430,"context_line":"    subnets."},{"line_number":431,"context_line":"  - From the instance, ping an external gateway port."},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"Functional Tests"},{"line_number":434,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_40238cbc","line":431,"in_reply_to":"3a961159_3d387b3c","updated":"2014-12-12 23:03:11.000000000","message":"The last test listed is a scenario test, so that would go in tempest.scenario.network. The first 4 are API tests, and should probably be moved to the in-tree API tests.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"e0ed7594d78f9ea37ff029f5448e3faeb9c2188b","unresolved":false,"context_lines":[{"line_number":433,"context_line":"Functional Tests"},{"line_number":434,"context_line":"----------------"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"No functional tests needed."},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"API Tests"},{"line_number":439,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_23e77ce5","line":436,"updated":"2014-12-12 15:17:14.000000000","message":"I thought we\u0027re moving tempest tests into the tree. If that\u0027s the case, I would say, that\u0027s exactly what *is* needed here.","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"f1dfe87259c9b9264dcd2cb661b9d6548f2d5999","unresolved":false,"context_lines":[{"line_number":433,"context_line":"Functional Tests"},{"line_number":434,"context_line":"----------------"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"No functional tests needed."},{"line_number":437,"context_line":""},{"line_number":438,"context_line":"API Tests"},{"line_number":439,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":12,"id":"3a961159_3b3f91b5","line":436,"in_reply_to":"3a961159_23e77ce5","updated":"2014-12-12 23:03:11.000000000","message":"Maybe the best thing to do would be to move the API tests from the Tempest test section to the in-tree \"API Tests\" section below.  For the scenario (ping) tests, I think that would rely on Nova, etc, so maybe that stays in Tempest? (Not 100% sure on what goes into the functional tests).","commit_id":"7a3411876e501ffcfa7edea5cd401e331b324247"},{"author":{"_account_id":7183,"name":"Xu Han Peng","email":"xuhanp@linux.vnet.ibm.com","username":"xuhanp"},"change_message_id":"2b03911cd56e4a2a97a467826c8aa5522971d87b","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    if there is already an internal router interface supporting a gateway"},{"line_number":261,"context_line":"    address for one of the other IPv6 subnets in the network. If so,"},{"line_number":262,"context_line":"    the new IPv6 gateway IP address will be added to that existing"},{"line_number":263,"context_line":"    interface, rather than having a new router interface created."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"Data Model Impact"},{"line_number":266,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3a961159_98e6b6e6","line":263,"updated":"2014-12-15 05:47:56.000000000","message":"I didn\u0027t see a clear answer from previous patch. Will different routers share same internal router interface port when a network is attached to both routers?  Current the device id of router interface port is the router id. How can this be handled when only one port is required?","commit_id":"d24d2efa51458e0fbf4d9142932561be7eec9b36"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"f44adc36aab61e04c97416b4b6943b544b3a9769","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    if there is already an internal router interface supporting a gateway"},{"line_number":261,"context_line":"    address for one of the other IPv6 subnets in the network. If so,"},{"line_number":262,"context_line":"    the new IPv6 gateway IP address will be added to that existing"},{"line_number":263,"context_line":"    interface, rather than having a new router interface created."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"Data Model Impact"},{"line_number":266,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3a961159_c56f6790","line":263,"in_reply_to":"3a961159_3f1bdd81","updated":"2014-12-15 15:28:04.000000000","message":"Ah, the danger of knowing what you mean when reading the spec. Thanks for the rewording.","commit_id":"d24d2efa51458e0fbf4d9142932561be7eec9b36"},{"author":{"_account_id":6695,"name":"Dane LeBlanc","email":"leblancd@cisco.com","username":"leblancd"},"change_message_id":"42b1cd64ddc9b52fdcb4d62b13649e0a8d9e88bf","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    if there is already an internal router interface supporting a gateway"},{"line_number":261,"context_line":"    address for one of the other IPv6 subnets in the network. If so,"},{"line_number":262,"context_line":"    the new IPv6 gateway IP address will be added to that existing"},{"line_number":263,"context_line":"    interface, rather than having a new router interface created."},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"Data Model Impact"},{"line_number":266,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":13,"id":"3a961159_3f1bdd81","line":263,"in_reply_to":"3a961159_98e6b6e6","updated":"2014-12-15 13:33:56.000000000","message":"The wording is wrong here. Different routers won\u0027t share the same internal router interface. The sharing will be done per router (and per network). I\u0027ll reword this.","commit_id":"d24d2efa51458e0fbf4d9142932561be7eec9b36"}]}
