14:00:50 #startmeeting neutron_ipv6 14:00:51 Meeting started Tue Jan 14 14:00:50 2014 UTC and is due to finish in 60 minutes. The chair is sc68cal. Information about MeetBot at http://wiki.debian.org/MeetBot. 14:00:52 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 14:00:55 The meeting name has been set to 'neutron_ipv6' 14:00:58 hello. Good morning Sean 14:01:19 #topic recap last meeting actions 14:01:39 #link http://eavesdrop.openstack.org/meetings/neutron_ipv6/2014/neutron_ipv6.2014-01-07-15.00.html last week's actions 14:02:11 OK - I had two actions that needed to be done, first was to schedule the meeting time for a non-conflicting time - and that's been done ;) 14:02:29 The second action was to register a blueprint for Horizon support for the IPv6 subnet modes 14:03:00 #link https://blueprints.launchpad.net/horizon/+spec/neutron-subnet-mode-support Horizon blueprint for ipv6 subnet configuration 14:03:36 It's a bit light on details, but we can always add more info 14:03:37 Wonderful. Thanks for the quick actions! 14:04:22 let me see if I can fetch the people that are responsible for the other items 14:05:36 OK - well we can circle back later if need be 14:05:55 #topic blueprints 14:06:59 We're still hammering out the subnet mode keyword review 14:07:38 We had one core reviewer suggest it become an API extension, but I punted to the mailing list to solicit more feedback on what we should do 14:07:50 hola 14:07:57 shshang: hello 14:07:59 recheck your email, we had another punt on it 14:08:13 #link http://lists.openstack.org/pipermail/openstack-dev/2014-January/024179.html API extension vs core api 14:09:26 That's pretty much all I have - if we want to circle back to the keyword action from last meeting 14:09:48 aveiga: shshang: you guys along with ijw were going to figure out how to get the dnsmasq-isms out? 14:10:11 I saw an e-mail from ijw on the mailing list, but I don't know if there's anything more 14:10:25 yup 14:10:32 yup 14:10:33 shshang: any progress on the writeup? 14:11:06 aveiga, still have one question needing your help 14:11:13 Need to grab your brain 14:11:31 regarding your last comment about seperating the RA and address assignment 14:13:19 I have been thinking about how to differentiate the use case you mentioned (i.e. external router sends RA, dnsmasq as DHCPv6), and the case that dnsmasq will send RA and act as DHCPv6 14:14:08 I think ijw and I have gone over this a few times at this point, but the commands to enable addressing and the commands for routing need to be separated 14:14:22 and this is why they won't fit in the API in the enable_dhcp attribute 14:14:31 yes 14:15:15 in other words, we need a separate keyword to capture the address assignment part, since the one we discussed is on RA announcment side. 14:15:44 I think we need to reword them too 14:15:55 we make statements in the RA configuration that refer to addressing 14:16:03 we should completely separate them 14:16:12 either way, as long as we can carry the information precisely and concisely 14:16:24 yup 14:17:22 The fastest way is to separate them by adding a switch to indicate whether dnsmasq will act as dhcpv6 server. 14:17:44 nope, going right back down the hole we were digging out of 14:17:51 don't link yourself to dnsmasq 14:17:58 and this isn't a switch 14:18:05 it's a pair of keywords that combine to make functionality 14:18:11 I think we should just plain have two keywords 14:18:17 that is what I mean 14:18:21 two keywords 14:18:28 keep our current one for RA only 14:18:50 and another keyword to signal whether we need OpenStack to provide dhcpv6 function or not 14:19:03 well, it's not boolean 14:19:14 it's off, stateless or stateful 14:19:19 but yes 14:19:29 rename our current keyword set to something accurate, --enable-ipv6-ra 14:19:47 agreed 14:19:53 and reword the descriptions 14:19:59 I can help with that 14:20:04 add another keywords like something --enable-ipv6-dhcpv6 14:20:16 if you can help, that will be awesome 14:20:28 The only question I have is, the current attribute for subnets, enable_dhcp 14:20:37 ah... 14:20:42 that's a boolean isn't it. 14:20:46 yeah 14:20:53 like TRUE or FALSE. :D 14:21:01 so we need to have a powwow with Mark and Salvatore :-D 14:21:12 what about changing it to take options instead of just T/F ? 14:21:34 like REMOTE or LOCAL? 14:21:40 I think we should take this to the ML and ask for a chat with the cores for Neutron about this 14:21:43 --disable-dhcp Disable DHCP for this subnet 14:21:58 baoli__: that's the problem, we need 3 modes 14:22:01 not boolean 14:22:20 Right - that sets the enable_dhcp attribute on a subnet to False 14:22:27 via the neutron cli 14:22:35 Just to get it into the meeting minutes: bugger. 14:22:50 ijw: rough afternoon, eh? 14:23:00 If you create a ipv6 subnet, would that parameter work ? 14:23:09 I was in openstack-meeting-alt, cos I had a meeting there just before, and Sean's evil and moved channels 14:23:25 baoli__: the issue is that we need off, stateful and stateless as modes 14:23:33 I don't debate that I'm evil, although I swear I did this channel because alt is in use 14:23:42 I see 14:23:49 It's supposed to be, but no, completely dead 14:24:05 Sorry, I see I've come in in the middle of the attribute wars - what's the debate this time? 14:24:23 in any case, I think we need to hammer this out with the Neutron cores, there's no way we can get away with reusing enable_dhcp 14:24:51 ok - who wants to grab that nettle? 14:25:02 does it have to be specified per subnet? 14:25:06 baoli__: yes 14:25:08 baoli__: yes 14:25:09 yes 14:25:18 sorry, didn't mean to gang up on you 14:25:25 :D 14:25:27 we have consensus :) 14:25:30 but at least we have consensus 14:25:41 that's fine. 14:25:52 sc68cal, grabbing that nettle is an action item? 14:26:06 I think it needs to be a few of us 14:26:16 shshang: yes 14:26:24 I can raise my hand(s) 14:26:29 I'll take an AI to write up the proposal 14:26:30 aveiga: we had two cores onside anyway 14:26:42 (Mark, Salvatore) 14:26:55 ijw: I'm referring to them telling us to reuse enable_dhcp 14:26:56 #action shshang send e-mail to mailing list regarding new attribute 14:26:58 that's not going to work 14:27:08 Didn't I do that yesterday? 14:27:11 ... are those my feet? 14:27:17 they fired back about it 14:27:45 They agreed strenuously, I think that's fine 14:28:20 They say 'backwards compatible with enable_dhcp' - I'll check what Mark has in mind on IRC when he turns up too if you like 14:28:32 yes, I'd like to have that chat with him 14:28:37 we need two keywords 14:28:47 Ok, keep an eye in #openstack-neutron later 14:28:57 or perhaps we'll have to write all the permutations out as enumerations (ick) 14:29:14 Yup, agreed, and unless he's telling us to control dhcp6 from the dhcp flag (I don't think so) then we just reserve enable_dhcp for v4 behaviour 14:29:36 Since v6 is busted that is backwards compatible, I think 14:29:43 I'll check with evan too 14:29:58 sc68cal: I think we're settled here 14:30:20 OK. 14:30:25 #topic open discussion 14:30:43 We're making some headway on the hairpinning bug 14:31:00 Question about dnsmasq instances. how to determine one needs started? separate ipv6 instance? 14:31:28 As far as I'm concerned, shshang can do what he pleases as long as it implements the spec ;) 14:31:32 baoli__: I believe dnsmasq processes are launched per subnet 14:31:37 baoli__: if the option we pick for enabling dhcp is set to anything but off, you'll have to start one 14:31:46 or possibly per network - 14:31:57 sc68cal, it's per network. 14:32:08 baoli__: not for v6 it isn't 14:32:14 You need it in your router namespaces 14:33:19 ijw, if you add a subnet into a router, then you will have one instance per subnet? 14:33:30 The minimal number that will do is one per router (for RAs) plus one for all the subnets that don't have routers (which you could load all the dhcpv6 work onto) 14:34:06 My qeustion is what if the subnet is not added into a router, but enabled with ipv6? 14:34:25 it's the other way around, I believe 14:34:33 routers are added to subnets 14:34:44 via the API 14:35:11 I think it only depends on our mode settings 14:35:19 Either way, you need (at least) one dnsmasq per net with detached subnets that have address discovery enabled. 14:35:29 if we set the RA mode off and the address mode off, you don't need one 14:35:34 usage: neutron router-interface-add [-h] [--request-format {json,xml}] router-id INTERFACE Add an internal network interface to a router. positional arguments: router-id ID of the router INTERFACE The format is "SUBNET|subnet=SUBNET|port=PORT". Either a subnet or port must be specified. Both ID and name are acc 14:35:36 otherwise, you follow the settings 14:35:49 sorry, the format is not good to see 14:36:14 Yeah, that port doesn't really work for us any more. Ports are in one of the subnets for v4 but all of them for v6 14:36:28 I think this will be clarified better one the keyword stuff is nailed down 14:36:32 once* 14:36:52 baoli, in your case (private network), all modes and keywords we discussed here is still valid, however, inside the code, the way I am writing it now is to detect whether gateway exist and launch dnsmasq accordingly 14:37:13 shshang: I think it doesn't need to detect anything 14:37:17 just follow the keywords 14:37:29 the CLI doesn't, but code need to 14:37:32 I don't want to go down that hole where we have to detect things 14:37:52 shshang, so without a router, the VM won't be able talk ipv6? 14:37:56 the code need to differetiate whether the subnet has router port, or not 14:38:08 it still can 14:38:26 but the code needs to decide where to launch the dnsmasq 14:38:29 baoli__: without a router, you'd either have link local only or you set dnsmasq to issue RAs for SLAAC 14:38:43 yup 14:39:15 aveiga, so you need to enable ipv6 in the dnsmasq running in the dhcp namespace? 14:39:27 that was my next question 14:39:36 the answer is yet 14:39:38 yes 14:39:42 are we running one dnsmasq per network, or one per subnet? 14:39:48 per network 14:40:02 per network as far as I saw it from my test 14:40:16 per subnet 14:40:27 that begs the question 14:40:30 If anything, dnsmasq was being too helpful - it was adding entries to the leases file for ports that were on subnets that didn't have dhcp enabled 14:40:40 when you want an RA on the router port, you have to run another dnsmasq 14:40:47 is this the case? 14:40:50 yup 14:40:54 #link https://review.openstack.org/#/c/64578/ Ensure entries in dnsmasq belong to a subnet using DHCP 14:41:01 that is the hardest part 14:41:15 aveiga, I have been pulling my teeth to get that work... 14:41:43 I'm sure 14:41:55 this is why I suggested running radvd instead of an extra dnsmasq 14:42:06 but that complicates matters when you don't have a router 14:42:19 damned if you do, damned if you don't 14:42:26 LOL...very true 14:42:36 Should we hook into the code that creates a router in neutron 14:42:39 to launch rtadvd? 14:43:05 sc68cal: your BSDisms are showing :-P 14:43:22 :) 14:43:36 just tried to add a subnet, and here it is:ps -ef | grep dnsmasqnobody 2898 1 0 14:42 ? 00:00:00 dnsmasq --no-hosts --no-resolv --strict-order --bind-interfaces --interface=tap7c0d258a-dc --except-interface=lo --pid-file=/opt/stack/data/neutron/dhcp/133288d6-9b9a-42ff-9eed-daee8a539410/pid --dhcp-hostsfile=/opt/stack/data/neutron/dhcp/133288d6-9b9a-42ff-9eed-daee8a539410/host --dhcp-optsfile=/opt/stack/data/ 14:44:08 s/rtadvd/radvd/ 14:44:17 sc68cal: I knew what you meant 14:44:47 --leasefile-ro --dhcp-range=set:tag0,10.0.0.0,static,86400s --dhcp-range=set:tag1,20.20.20.0,static,86400s --dhcp-lease-max=512 --conf-file= --domain=openstacklocal 1000 3225 3025 0 14:42 pts/3 00:00:00 grep --color=auto dnsmasq 14:45:16 I believe "133288d6-9b9a-42ff-9eed-daee8a539410" is the network id 14:45:28 two subnets 10.0.0.0/24 & 20.20.20.0/24. 14:45:54 right, it's one instance per network 14:46:20 yes 14:46:30 in IPv6, you have to be one instance per subnet, due to default route 14:46:43 assuming you want dnsmasq to send out RA 14:46:52 shshang: only if you're issuing DHCPv6 from the router namespace 14:47:04 and actually, not even 14:47:09 it's still one per network 14:47:14 you issue the RA per subnet 14:47:37 dnsmasq should be able to issue multiple RAs 14:47:58 Yes, dnsmasq will issue the RA per subnet, and, dnsmasq needs to bind to the default gw port 14:48:16 I'm not sure if the router port is numbered with IP addresses from multiple subnets in the same network 14:48:26 oh, that's the problem 14:48:33 it's because you can't do that in ipv4 14:48:51 ugh, that means we have to run one per subnet 14:48:58 yup 14:49:11 however 14:49:21 Well, we would want to fix the port addressing 14:49:24 if you ran dnsmasq on the dhcp namespace 14:49:31 Or, at least, we could 14:49:37 you could probably run radvd on the router namespace for each port 14:49:58 I still think it's better to decouple them, even in the actual code 14:50:01 makes it cleaner 14:50:29 you mean, decouple which two? 14:50:37 addressing and RA 14:50:49 i.e. run dnsmasq where it normally runs 14:50:55 and run radvd on the router namespace 14:51:14 just don't have dnsmasq do the RAs at all 14:51:26 agreed. I think you successfully convinced me. :D 14:51:35 If it were me, for the sake of simplicity and also so that dhcp doesn't jump addresses when you attach a router, I would run one process for DHCP and one for RA. And, if it were me, I would also run the v6 process indepdently of v4, at least until we've established things are working. 14:51:54 Optimise later. 14:51:54 now I can only use what we have...i.e. dnsmasq. 14:52:13 ijw: I'd agree with you, except for the fact that neutron mlk has been abuzz with performance issues recently 14:52:19 ml* 14:52:36 aveiga, that's probably a good idea 14:52:58 Yes, though I don't know that we would necessarily be making performance much worse by doing this (where specifically we're talking about the turnaround for adding a port) 14:53:17 ijw: I agree 14:53:24 so let's try it 14:53:31 It's kill -HUP on more processes - but we're going to be doing that anyway, and it's a function call not a command (ovs-vsctl is the root of all evil tbh) 14:53:33 just expecet a mislead -1 here and there 14:54:29 Another question, are we going to support ipv6 prefix delegation with dhcp? 14:54:44 yes, that is in Sean's original proposal 14:54:52 ok 14:54:54 baoli__: yes, but I think that's a J thing 14:55:02 it's too much to get out the door for Icehouse 14:55:02 I see 14:55:06 but not sure whether it makes to icehouse.... 14:55:08 agree 14:55:19 it's in my backlog to writeup though 14:55:26 I'd put that the other way - fundamental addressing, then fundamental routing, then whatever we can fit in 14:55:28 we'll need it for advanced services VMs 14:56:01 we have 5 minutes left 14:56:11 anyone else have anything they want to bring up? 14:56:19 shshang: ping me when you have a patch up and I'll come check it out 14:56:25 Sean, how can I access to your original proposal? Are they all accessible from the meeting wiki? 14:56:29 Daniel B has -1'ed the hairpin, I see 14:56:44 Can't track him down on here, I thought he was berrange but if he is he ain't on 14:57:00 Looks very like he's been out a week. I'll deal with it 14:57:02 baoli__: check the blueprints 14:57:22 I believe our wiki page for the subteam meetings will have links 14:57:24 ok, thanks 14:57:48 Do you think I can work on it? 14:58:53 baoli__: the prefix delegation? 14:58:59 Sean, yes 14:59:26 I don't know if we have a specific blueprint to cover it - feel free to register it and start the work 14:59:37 cool, thanks 14:59:40 make sure you base it on top of the dnsmasq topic 14:59:48 absolutely 15:00:19 ok everyone, till next week 15:00:22 #endmeeting