<div dir="ltr"><div>As the follow up action of IPv6 sub-team meeting [1], I created a 
new blueprint [2] to store both IPv6 LLA and GUA address on router 
interface port. </div><div><br clear="none"></div><div>Here is what it's about:</div><div><br clear="none"></div><div>Based
 on the two modes (ipv6-ra-mode and ipv6-address-mode) design[3], RA 
can be sent from both openstack controlled dnsmasq or existing devices. </div><div><br></div><div>RA
 From dnsmasq: gateway ip that dnsmasq binds into should be link local 
address (LLA) according to [4]. This means we need to pass the LLA of 
the created router internal port (i.e. qr-xxxx) to dnsmasq spawned by 
openstack dhcp agent. In the mean while, we need to assign an GUA to the
 created router port so that the traffic from external network can be 
routed back using the GUA of the router port as the next hop into the 
internal subnet. Therefore, we will need some change to the current 
logic to leverage both LLA and GUA on router port. </div><div><br clear="none"></div><div>RA
 from existing device on the same link which is not controlled by 
openstack: dnsmasq will not send RA in this case. RA is sending from 
subnet's gateway address which should also be LLA according to [4]. 
Allowing subnet's gateway IP to be LLA is enough in this case. Current 
code works when force_gateway_on_subnet = False.<br><br><p>RA from 
router gateway port (i.e. qg-xxxx):  the LLA of the gateway port 
(qg-xxxx) should be set as the gateway of tenant subnet to get the RA 
from that. This could be potentially calculated by [5] or by other 
methods in the future considering privacy extension. However, this will 
make the tenant network gateway port qr-xxxx useless. Therefore, we also
 need code change to current router interface attach logic. <br></p></div><div>If you have any comments on this, please let me know. </div><div><br clear="none"></div><div>[1] <a href="http://eavesdrop.openstack.org/meetings/neutron_ipv6/2014/neutron_ipv6.2014-02-25-14.02.html">http://eavesdrop.openstack.org/meetings/neutron_ipv6/2014/neutron_ipv6.2014-02-25-14.02.html</a></div>
<div><span style="color:rgb(255,0,0)"><span style="color:rgb(0,0,0)">[2] <a href="https://blueprints.launchpad.net/neutron/+spec/ipv6-lla-gua-router-interface">https://blueprints.launchpad.net/neutron/+spec/ipv6-lla-gua-router-interface</a></span><br>
</span></div><div><span style="color:rgb(0,0,0)">[3] <a href="https://blueprints.launchpad.net/neutron/+spec/ipv6-two-attributes">https://blueprints.launchpad.net/neutron/+spec/ipv6-two-attributes</a><br></span></div><div>
<span style="color:rgb(0,0,0)">[4] <a href="http://tools.ietf.org/html/rfc4861">http://tools.ietf.org/html/rfc4861</a></span><br clear="none"></div><span style="color:rgb(0,0,0)">[5] <a href="https://review.openstack.org/#/c/56184/">https://review.openstack.org/#/c/56184/</a></span></div>