09:00:33 #startmeeting Dragonflow 09:00:34 Meeting started Mon Jul 10 09:00:33 2017 UTC and is due to finish in 60 minutes. The chair is oanson. Information about MeetBot at http://wiki.debian.org/MeetBot. 09:00:35 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 09:00:37 The meeting name has been set to 'dragonflow' 09:00:42 Hey 09:00:47 Hi 09:00:48 Hi 09:00:54 Hello. Who is here for the Dragonflow weekly? 09:01:09 Let's wait another minute, and then we'll start. 09:01:17 * yamamoto peeping 09:01:41 All right. Let's start. 09:01:49 #info dimak leyal lihi in meeting 09:01:55 #info yamamoto peeping :) 09:02:09 First, some announcements: 09:02:27 I changed the teimslot for the Dragonflow weekly. 09:02:39 ין 09:02:41 #link Meeting time change https://review.openstack.org/#/c/482034/ 09:02:48 #info itamaro also in meeting 09:02:53 hi 09:03:13 It was already merged? 09:03:16 Yes 09:03:18 No time to appeal :P 09:03:20 ? 09:03:20 hi 09:03:31 This means that next week we start an hour earlier, and the week after we meet at 1900 UTC 09:03:56 dimak, the time was voted on last week and was accepted, but we can always submit a second patch 09:04:02 Thierry just didn't waste any time :) 09:04:09 #info irenab also in meeting 09:04:12 (Hi) 09:04:53 It is also possible I got it wrong, and next week we start in the evening, and the week after we move an hour earlier :) 09:05:21 I guess the wiki will be updated soon, and I'll verify 09:05:21 oanson, maybe worth to add on the DF wiki the date and time for few following weeks 09:05:39 Sure 09:05:49 I'll also send an email to the mailing list 09:06:49 Anything else for announcements? 09:07:10 #topic Roadmap 09:07:56 So, SFC 09:08:00 dimak, any comments? 09:08:23 I'll upload a newer version soon with more tests, there are some python3 issues I found 09:08:34 but I its nothing major 09:08:54 All right. ping lihi and me once you do, and we'll push it in. I think it's in a fairly advanced state 09:09:28 LBaaS - sadly no progress :( 09:09:36 oanson, alright, will do 09:09:41 Thanks. 09:09:42 L3 flavour - dimak, you're up again. 09:09:55 I didn't get to revise the spec yet 09:10:08 Sure 09:10:16 etcd publisher - lihi? 09:10:59 I have some issues with python-etcd. I'm missing some an important feature from etcd's regular API 09:11:23 I'm testing if we can use pyton-etcd3 instead 09:11:42 requirements project has an etcd3 package already in - is this what you're testing? 09:12:33 No, I want to replace our driver to use etcd3 package instead of etcd 09:12:41 #link etcd3 https://python-etcd3.readthedocs.io/en/latest/ 09:13:03 The question is - are you using something already in requirements (like the link I just posted) 09:14:15 I'm sorry I don't understand your question 09:14:45 The requirements project unifies all the python requirements used in openstack. They do that for licensing issues and to make sure no stale packages are used 09:15:06 #link Requirements Project https://github.com/openstack/requirements 09:15:12 I'm trying to get our DB driver to work with the package, and then build our subscriber on top of it 09:15:38 I see. And you are using the etcd3 python library, from here: https://python-etcd3.readthedocs.io/en/latest/ ? 09:15:40 Oh 09:15:47 Yes this is the one 09:16:05 All right. Just wanted to make sure :) 09:16:45 Do you have an ETA? 09:18:27 lihi, ? 09:18:30 Aiming for this week (even though this is was I say last week :|) 09:18:44 It's all right. It's not a hard limit :) 09:19:13 RPM packaging - I started looking into this. I hope to have a patch up by end of week 09:19:42 Cool 09:19:47 Skydive has no carrier - so I'll skip it unless someone volunteers? 09:19:55 And Ironic support - leyal ? 09:20:09 oanson, I want to get to it eventually 09:20:26 oanson, can you please post the link to the roadmap items list? 09:20:27 I started to read about 09:20:34 dimak, doesn't look like anyone is rushing to it, so... :) 09:20:37 Ironic 09:20:47 irenab, agenda is here: https://wiki.openstack.org/wiki/Meetings/Dragonflow 09:20:49 #link Agenda https://wiki.openstack.org/wiki/Meetings/Dragonflow 09:20:51 thanks 09:20:59 leyal, yes 09:21:03 It's looks that it's HAd 2 modes : 1. flat-networks 09:21:49 2. sperated the tenant networks from the provisioning networks 09:22:34 What do you mean by 2.? 09:22:41 And what about virtual services, e.g. dhcp, metadata, NATs? Do they mention that? 09:23:54 It's the second mode - use one network for provision (boot - DHCP - TFTP etc .. ) 09:24:07 leyal, maybe it will be helpful if you can provide some draft for the Ironic support 09:24:22 And other network for regular usage after vm boot from disk .. 09:25:13 i didn't saw that they mention anything about virtual-services.. 09:25:21 I see 09:25:24 I think irenab has the right idea. Writing up a draft would be all right? 09:25:44 +1 09:26:12 leyal, ? 09:26:34 writing draft about what? 09:26:45 About ironic, and its integration with Dragonflow 09:27:00 It doesn't have to be a spec. A whitepaper or blog post can also do 09:27:29 +1 , but i think that i need to get better understanding of Ironic before that ... 09:27:46 Of course. 09:28:13 The idea is to synthesize the information that is relevant for the cross-project synergy, and put it somewhere where it's accessible 09:29:33 Anything else for roadmap? 09:30:00 sure , will do when i will be prepared .. 09:30:20 oanson, the spec itamaro posted 09:30:56 1 sec. Let me find it 09:31:08 You mean this one? https://review.openstack.org/#/c/481887/ 09:31:35 Posted some comments ther 09:31:36 e 09:32:28 dimak, I see your main concern is snat 09:32:46 yes. In my opinion it is best to have a patch identified by the connecting briges for simplicity. 09:32:48 snat and provider are the primary users of patches 09:33:15 snat issues can be managed by providing higher priority 09:33:28 Then we have coupling 09:33:42 eg SNAT_CLASS_PRIO = 300 09:33:58 In general the snat API is lacking. It is configuration based, not in line with Neutron networks, and doesn't have a logical port on which other applications can operate if needed 09:34:22 (which in theory breaks the API and General Order of Things we are constructing) 09:34:49 Like dnat relies on provider networks, maybe make snat do the same 09:35:12 Give snat a port (e.g. like a fip, but for snat not dnat), and let it do its thing from there 09:35:21 I think that ant connectivity with the physical underlay must go through provider networks 09:35:26 Who will allocate those ports? 09:35:58 provider networks - they will be responsible for the mapping of network to bridge. Any other apps just sends packets to networks 09:36:11 In case of snat and dnat, also natting the packets in the process. 09:36:12 yes 09:36:52 And then only provider networks need to handle patch ports. In general, we only need a library for software engineering reasons. provider app should be the only user 09:36:58 oanson, my question still stands 09:37:45 Let me think a second 09:37:51 (Or someone else suggest something (: ) 09:38:14 Some one needs to allocate ports for 'snat' ports and delete them when hosts die 09:38:18 As step 1 - we can do the quick and dirty fix of giving snat higher priority. As step 2 - we give snat a specialised fip or fip network 09:38:18 I need to catch up on the spec. Can we have a discussion later 09:38:25 Or don't have any ports on chassis 09:38:54 I think its more relevant to snat rather than patch ports 09:39:01 if I understand your concern. it is that snap flows may no be considered because of higher prio match. 09:39:18 irenab, it's not a long spec. Basically it says, let's have an external library for patch ports. Have a single patch-port-pair between br-int and any external bridge. And let provider networks app manage the patch ports. itamaro, dimak, did I miss anything? 09:39:30 Yes 09:39:42 correct 09:39:56 I'm just not sure what problem we try to solve if snat works differently 09:40:00 oanson, this sounds reasonable approach 09:41:09 dimak, one example is an API. If the api is configuration file, you need to restart the controller to change configuration. 09:41:52 Secondly, we *have* issues of multiple patch ports and multiple apps trying to reach networks (the dnat problem). I'm hoping this will solve that as well 09:41:55 snat can be solved by having it's own priorities in the global constants prefixed with SNAT_PRIO, and keep them higher than the higest prio 09:41:57 Ok, but bridge mapping to physical network is configuration anyway 09:42:44 Yes 09:42:52 But snat -> physical network doesn't have to be 09:43:02 itamaro, I don't like this solution, because it creates overlap in table=0 for both apps, I'd very much like to avoid that 09:43:06 it's logical mapping. we shall map the mapped (physical: flat/valn) networks names to the patch port 09:43:23 The rationale is that if you change the network <-> bridge mapping, there's a hardware change involved. Otherwise, everything is software defined. 09:43:59 dimak, in the second phase, only provider app will have a mapping in table=0. snat (like dnat) will take the packet from provider. 09:44:07 itamaro, please confirm 09:44:21 oanson, what if I want to NAT to another network? 09:44:22 yes, that should be the plan. 09:44:39 Current implementation does not restrict you to neutron networks 09:44:45 dimak, then the snat app should be extended. If snat is already network based, it should be easy. 09:44:55 dimak, that's not a good thing 09:44:57 you will have a mapping like :bridge 09:45:05 (I think it isn't, at least) 09:45:07 name is network name 09:45:10 oanson, I can argue otherwise 09:45:33 Its an extra flexibility we allow at the moment 09:45:58 Yes, extra flexibility means more complex api. 09:46:09 the bridge must be handelded by the providers networks app, which prodes the access to the physical infra 09:46:17 Currently, there is no way to control it except going to the node, changing the configuration, and restarting the service 09:46:35 At the moment its zero API, egress through the address your host got from the DHCP 09:46:50 If you want an API, which can be validated and verified, you need to lay down some ground rules. This also helps the applications "play nice" with each other - there is a limit to what they are allowed to do 09:46:54 I think we are mixing the api (usability) part with the implementation part 09:46:58 But same for mapping, I see it on the same level 09:47:03 yes, definitely 09:47:16 maybe worth to keep discussion on implementation first? 09:47:35 As I said, the mapping assumes a physical backend. That's why I want things to be network based, not bridge based. 09:48:01 oanson, phy network? 09:48:06 irenab, I thought that's what we're doing? 09:48:27 oanson, just seemed to me 2 parallel discussions, sorry 09:48:32 irenab, yes. But that still goes through mapping, which is handled by provider network and hidden for everything else 09:49:34 I would be happiest with a solution that let's us phase into it, without breaking too much on the way, and allows us to get things working 09:49:47 We can have a provider network based SNAT, and it won't need extra patches. But that's not what chassis SNAT does at the moment. 09:50:00 dimak is right that apps need to play nice with each other 09:50:04 We can decide that we drop it but that's something else 09:50:13 drop what? 09:50:29 dimak, sure. That's a good way to do it 09:50:38 chassis snat in favor of neutron managed snat 09:51:01 manages as in IPAM and port creation and deletion 09:51:40 Sure 09:52:13 But if chassis snat works ad-hoc, it's going to be difficult to get it to play nice with other apps 09:52:17 e.g. provider networks 09:52:18 i think a full snat solution should include a physical network/interface mapping and even reachability checks, 09:52:26 Unless you have another suggestion 09:52:55 itamaro, yes to the second, not sure about the first. A more flexible approach will just let you nat between networks 09:52:56 oanson, it is super simple, each gets its own patch port 09:53:09 we can use pkt marks 09:53:28 Then you can have snat have a patch-port, ignoring that provider app already has one as well 09:53:40 That way SNAT can communicate with provider ports as well 09:54:47 Possibly, but probably not the only way. 09:54:48 (No need for loopback if both apps classify on same patch port in table=0) 09:54:56 pkt-marks 09:55:13 Should work both ways, external bridge will flood and learn 09:55:15 itamaro, there is only so much you can cover with 'pkt-marks'. :) 09:55:21 Please at least explain how to use them? 09:55:57 pkt marks can emulate patch port.. 09:56:51 that moves the logic to the external bridges. 09:57:00 one can tag snat traffic with it'a mark, so you match on it 09:57:10 That might not be too good, since the external bridges might be regular bridges (i.e. not OVS/OpenFlow) 09:57:17 normal bridges* 09:58:17 I think we're almost out of time 09:58:20 Yes 09:58:26 I am not convinced either way. 09:59:08 dimak, itamaro, please discuss offline and come up with a design everyone is happy, which will support better snat/dnat implementations in the future (as discussed here) 09:59:20 And post for us a spec, if possible. 09:59:29 That's all our time for today, 09:59:32 +1 09:59:33 Thanks everyone for coming. 09:59:53 Bye 09:59:55 #endmeeting