[openstack-dev] [Neutron][IPv6] A pair of mode keywords

Shixiong Shang sparkofwisdom.cloud at gmail.com
Wed Jan 22 01:28:51 UTC 2014


I created a new PDF file to show two parameters (i.e. not referring “enable_dhcp”). Here is the link. I also updated BP too.

https://www.dropbox.com/s/rq8xmbruqthef38/IPv6%20Two%20Modes%20v2.0.pdf

Shixiong



On Jan 21, 2014, at 6:31 PM, Shixiong Shang <sparkofwisdom.cloud at gmail.com> wrote:

> Hi, Anthony:
> 
> I think we are saying the same thing. Yes, there must be two parameters, and they are independent. What I mean of "simplifying" referred to the CLI. If user provides RA mode, then the 2nd parameter will have default value if user doesn't specify it.  However, user can also indicate different value explicitly. 
> 
> The use cases you pointed out are also called out in the table attached to the end of the email. Anything caught your eyes?
> 
> Thanks, Anthony!
> 
> Shixiong
> 
> 
> 
> 
> 
> On Jan 21, 2014, at 4:46 PM, "Veiga, Anthony" <Anthony_Veiga at cable.comcast.com> wrote:
> 
>> 
>> Hi, Sean and Xuhan:
>> 
>> I totally agree. This is not the ultimate solution with the assumption that we had to use “enable_dhcp”.
>> 
>> We haven’t decided the name of another parameter, however, we are open to any suggestions. As we mentioned during the meeting, the second parameter should highlight the need of addressing. If so, it should have at least four values:
>> 
>> 1) off (i.e. address is assigned by external devices out of OpenStack control)
>> 2) slaac (i.e. address is calculated based on RA sent by OpenStack dnsmasq)
>> 3) dhcpv6-stateful (i.e. address is obtained from OpenStack dnsmasq acting as DHCPv6 stateful server)
>> 4) dhcpv6-stateless (i.e. address is calculated based on RA sent from either OpenStack dnsmasq, or external router, and optional information is retrieved from OpenStack dnsmasq acting as DHCPv6 stateless server)
>> 
>> This I agree with.
>> 
>> 
>> In other words, the original “on” mode captured in “enable_dhcp" should provide more granularity. Since the bits in RA will trigger VM to take certain actions (calculate address, solicit DHCPv6, etc.), I think we can simplify it by saying, if OpenStack RA Mode is slacc/dhcpv6-stateful/dhcpv6-stateless, then by default, the 2nd parameters shares the same value. 
>> 
>> Absolutely not.  The reason for separating routing and addressing is because you can't assume that because one piece is present, that the other is too.  If I want OpenStack to assign addresses via DHCPv6, then I set the addressing parameter to stateful.  But maybe I want the RA to come from my provider network router.  In that case, the RA mode is OFF.  We MUST separate these, as there are other permutations as well.
>> 
>> 
>> Thanks!
>> 
>> Shixiong
>> 
>> 
>> 
>> <PastedGraphic-1.png>
>> 
>> 
>> 
>> 
>> 
>> 
>> On Jan 21, 2014, at 10:42 AM, Xuhan Peng <pengxuhan at gmail.com> wrote:
>> 
>>> I think what will confuse openstack end user/admin will be the difference between the combination of "RA mode=slaac, enable_dhcp=off" and "RA mode=dhcpv6_stateless, enable_dhcp=off". The only difference will be if getting optional info from external DHCPv6 server using DHCPv6 stateless but it's hard to tell from the RA mode unless the admin is very familiar with dnsmasq. I think we are trying to isolate the detail of dnsmasq configuration from the API attribute here based on our previous discussion, but I could not figure out a better mode name here too. 
>>> 
>>> Just want to point out this before going to bed. Will be back tomorrow and check on other ones' input on this. 
>>> 
>>> 
>>> On Tue, Jan 21, 2014 at 10:07 PM, Shixiong Shang <sparkofwisdom.cloud at gmail.com> wrote:
>>> 
>>> 
>>> Begin forwarded message:
>>> 
>>>> From: Shixiong Shang <sparkofwisdom.cloud at gmail.com>
>>>> Subject: Re: Cannot make it today at 4pm EST
>>>> Date: January 17, 2014 at 3:09:56 PM EST
>>>> To: "Veiga, Anthony" <Anthony_Veiga at cable.comcast.com>
>>>> Cc: "Ian Wells (iawells)" <iawells at cisco.com>
>>>> 
>>>> Hi, Anthony and Ian:
>>>> 
>>>> Not sure how the API discussion is going with Neutron team. Please let me know what I can help from my side.
>>>> 
>>>> Last night, I put together this slide to summarize the possible combinations of RA mode and “enable_dhcp” keyword. It is quite clear that the current on/off boolean value won’t be sufficient. However, I think it is still possible to support this pair of keywords within IceHouse timeline while negotiating with Neutron team for more flexible approach in the next major release.
>>>> 
>>>> If you are thinking along the same line, would you please let me know what I overlooked?
>>>> 
>>>> Thanks!
>>>> 
>>>> Shixiong
>>>> 
>>>> 
>>>> 
>>>> <PastedGraphic-1.png>
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> On Jan 14, 2014, at 4:47 PM, Veiga, Anthony <Anthony_Veiga at cable.comcast.com> wrote:
>>>> 
>>>>> 
>>>>> 
>>>>>> OK, I see that we're back to splitting the RA and DHCP modes, though I'm not sure why - enable_dhcp is bugger all use for anything other than a flat-out disable flag, since it's a boolean, so it's not like we can make much use of it.  Otherwise are we talking about whether we have an external router and/or DHCP server?
>>>>> 
>>>>> 
>>>>> Precisely this.  We determined multiple times previously that there is a chance of either of these items being external to OpenStack.  Where appropriate, we need to also be able to get out of the way.
>>>>> 
>>>>>> -- 
>>>>>> Ian.
>>>>>> 
>>>>>> 
>>>>>> From: <Veiga>, Anthony <Anthony_Veiga at cable.comcast.com>
>>>>>> Date: Tuesday, 14 January 2014 21:34
>>>>>> To: Ian Wells <iawells at cisco.com>, Shixiong Shang <sparkofwisdom.cloud at gmail.com>
>>>>>> Subject: Re: Cannot make it today at 4pm EST
>>>>>> 
>>>>>>> You missed the first part of the meeting this morning.  Addressing should be either off, stateful or stateless and routing should be the 4 modes.  If enable_dhcp is there, then it's boolean and cuts off our stateful/stateless determination.  Unless you think we should provide everything to dnsmasq and hope the clients are smart enough to only send the options flag?
>>>>>>> 
>>>>>>>> I don't think so.
>>>>>>>> 
>>>>>>>> Given the two attrs below we have 6 permutations of values.  Three of those are simply 'off'.  The other three are our three settings that weren't 'off'.  We monitor changes to either value.
>>>>>>>> 
>>>>>>>> What are you seeing that I'm not?
>>>>>>>> -- 
>>>>>>>> Ian.
>>>>>>>> 
>>>>>>>> 
>>>>>>>> From: <Veiga>, Anthony <Anthony_Veiga at cable.comcast.com>
>>>>>>>> Date: Tuesday, 14 January 2014 21:28
>>>>>>>> To: Ian Wells <iawells at cisco.com>, Shixiong Shang <sparkofwisdom.cloud at gmail.com>
>>>>>>>> Subject: Re: Cannot make it today at 4pm EST
>>>>>>>> 
>>>>>>>>> So now we need 3 attributes.  One is enable_dhcp, one is dhcp_mode, and one is ra_mode.  We can't do permutations, because some of them would be dependent on enable_dhcp, which our routines would no longer control.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> OK, I tracked Mark down and asked about what he was on with.  I'm not saying I like the result of it though.
>>>>>>>>>> 
>>>>>>>>>> The point they're making is that enable_dhcp exists on a v6 subnet and should enable or disable DHCP if no-one touches anything else there, because that's what it used to do (and apparently it even worked with NVP).  So instead of one value, we need two:
>>>>>>>>>> 
>>>>>>>>>> enable_dhcp = false (our 'off') or true (anything else)
>>>>>>>>>> ipv6_addr_mode = slaac, dhcpv6-stateless, dhcpv6-stateful (which, because it was the default in the old world, wants to remain as DHCP providing the address as default in the new one) - obviously if enable_dhcp is off this is ignored.
>>>>>>>>>> 
>>>>>>>>>> It's a matter of API compatibility so they're not going to move on this.  It's not as nice as what we had but it's what we have to do, I think.
>>>>>>>>>> -- 
>>>>>>>>>> Ian.
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> From: <Veiga>, Anthony <Anthony_Veiga at cable.comcast.com>
>>>>>>>>>> Date: Monday, 13 January 2014 23:48
>>>>>>>>>> To: Ian Wells <iawells at cisco.com>, Shixiong Shang <sparkofwisdom.cloud at gmail.com>
>>>>>>>>>> Subject: Re: Cannot make it today at 4pm EST
>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> See below.
>>>>>>>>>>>>>> I am curios as to why stateless is the default.  Shouldn't SLAAC be default for all /64's and stateless be default for everything else?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> [SHSHANG] I like this proposal better.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> If nothing lese stateless in all cases is easier to document.  In the (perhaps unlikely) event that things work in all cases stateless is more flexible, too.
>>>>>>>>>>>> 
>>>>>>>>>>>>>> Just to be ABSOLUTELY, 100% CLEAR, this section is for the RA definition only, correct?  I want to make sure we're still decoupling the RA configuration and the Addressing configuration.  There are still use cases for OpenStack provisioning via DHCPv6, but the router being an external device.  We absolutely have to decouple these.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> [SHSHANG] Good point. In your case, can user adopt “off” mode, so external router will send RA to trigger VM provisioning with DHCPv6? In case that OpenStack Neutron router sending RA and VM provisioning with DHCPv6 (via dnsmasq), then user can use our dhcpv6-stateful and dhcpv6-stateless. 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Currently the way I coded the dhcp client is, if user choose dhcpv6-stateful or dhcpv6-stateless, the dnsmasq also acts as DHCPv6 server for the subnet. This behavior should not conflict with the case as you mentioned previously.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> If the gateway is set and there's no router attached then the external router would be expected to provide the right sort of RA's, I guess? A little weird, but flexible.
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> No, the issue here is that we still want Stateful DHCPv6.  I just don't want dnsmasq issuing the RA.  I want Addressing from OpenStack, but not routing (I.e. No RA)
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>> 
>>> 
>>> 
>>> _______________________________________________
>>> OpenStack-dev mailing list
>>> OpenStack-dev at lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>> 
>>> 
>>> _______________________________________________
>>> OpenStack-dev mailing list
>>> OpenStack-dev at lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
>> <PastedGraphic-1.png>
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20140121/67abbb29/attachment.html>


More information about the OpenStack-dev mailing list