18:02:07 <Sukhdev> #startmeeting networking_l2GW 18:02:07 <openstack> Meeting started Mon Jan 5 18:02:07 2015 UTC and is due to finish in 60 minutes. The chair is Sukhdev. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:02:09 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 18:02:11 <openstack> The meeting name has been set to 'networking_l2gw' 18:02:43 <Sukhdev> Folks, welcome to our first L2-GW meeting 18:02:53 <Sukhdev> Happy New Year to all 18:03:09 <armax> Sukhdev: welcome 2015! 18:03:15 <ChuckC> hi 18:03:47 <Sukhdev> As you will notice, I did not put anything specific on the agenda - since this is first meeting, I thought we go free flow 18:04:23 <Sukhdev> We will define the agenda as we go along 18:04:25 <armax> Sukhdev: yup, I suspect things will be slow, as we go back to normal after the holiday period 18:04:38 <armax> Sukhdev: I am still catching up with reviews etc 18:05:19 <Sukhdev> To start with, perhaps, armax you can give us as to the progress on the L2-GW spec so far 18:05:26 <armax> Sukhdev: sure 18:06:02 <armax> let me start by saying that there have been a number of efforts that were labelled l2gw over the past few months 18:07:21 <armax> afaik the effort focus on this team is primarly on the specs that came out of https://review.openstack.org/#/c/134179/ 18:07:41 <armax> and https://review.openstack.org/#/c/136581/ 18:08:23 <armax> at the same time, we also recognize that there is the need to get this effort off the ground in a way that is not tighly coupled with the Neutron code 18:08:49 <armax> *recognized 18:09:38 <armax> to this aim, we started arranging ourselves in a way that allows us to collaborate without depending on Neutron, hence the stackforge project 18:10:18 <armax> maruti has moved the aforementioned specs here: https://review.openstack.org/#/c/144173/ and here: https://review.openstack.org/#/c/144190/ 18:10:45 <Sukhdev> Here is the link https://review.openstack.org/#/c/141289/2 18:10:48 <armax> in my view this is mostly for tracking purposes…I don’t believe that we should have a full blown spec process just yet 18:11:28 <armax> I think there’s enough meat on the bone for getting us started in contributing some code 18:11:38 <selva_> Basic REST API(service plugin) code for l2 gateway except the extension file is checked-in to stackforge/networking-l2gw repo of openstack L2 gateway agent code for l2gateway is checked-in to stackforge/networking-l2gw repo of openstack. Code https://review.openstack.org/#/c/144097/ https://review.openstack.org/#/c/144215/ SPEC https://review.openstack.org/#/c/144173 Hi Armando I have a question regarding the extens 18:11:38 <armax> but lots still remain to be done 18:11:45 <ijw> I found the spec a bit more complex than I expected 18:12:06 <ijw> Thr gateway -> device ('that represents an L2 gateway') -> port layering was odd 18:12:40 <armax> ijw: I appreciate that some nomenclature or abstraction may look unfamiliar to some people 18:13:05 <ijw> armax: I think the issue here is that we define these terms (which are quite overloaded) as we go along, and so a glossary might be necessary 18:13:16 <armax> and perhaps this was the reason why we were unable to ultimately reach to a consensu 18:13:18 <armax> consensus 18:13:26 <ijw> armax: There are other reasons too, I think 18:13:31 <armax> ijw: that’s a good point 18:13:50 <ijw> armax: primarily that the stuff in the stackforge project sits neatly between two other efforts: 18:14:01 <armax> ijw: that said, I wanted to stress the fact that if someone is compelled to come with his/her own version of what an l2gw should be 18:14:05 <ijw> 1. attaching any L2 network to Openstack in a programmatic way - such as MPLS 18:14:20 <ijw> 2. merging L2 networks with VLANs, which doesn't have to be tied to anything physical 18:14:39 <armax> they should be able to do so 18:15:00 <armax> cramming everything in a single project is not healthy IMO 18:15:00 <ijw> armax: With apologies for taking this a step backwards, but maybe we could use the wiki top list use cases just so that it's clear what we're trying to address and what we aren't? 18:16:09 <Sukhdev> ijw: It is hard to make a conclusive list - however, I agree with the idea 18:16:11 <armax> ijw: we tried to make the API spec as clear as possible as to what we’re targeting 18:16:40 <armax> ijw: I really don’t want to boil the ocean for now 18:16:49 <ijw> I'm the one who's usually arguing 'it doesn't do this', so think of this as stopping me arguing so that it's clear what you're trying to do and that you've considered and rejected other things 18:17:11 <ijw> Point about use cases is that you can say: 'here's a use case... and we aren't trying to do it' 18:17:37 <Sukhdev> ijw: I think the spec covers as to what we are trying to solve 18:17:55 <armax> ijw: nothing is definite, obviously 18:17:56 <Sukhdev> ijw: it does not go into what we are not trying to cover 18:18:07 <ijw> Sukhdev: which is only fair, which is why I say wiki 18:18:23 <armax> ijw: there is always some degree of manouvre 18:18:49 <ijw> Sukhdev: you did say that 'anyone who's interested in any sort of L2 GW should show up here'. I'm making the point that that spec is not the sum total of what we need 18:18:58 <armax> ijw: I’d rather keep things in one place, to avoid the potential of getting things to become stale or outdated in one place 18:19:14 <Sukhdev> ijw: If I may, we can take two step process - 18:19:49 <Sukhdev> ijw: 1) to kick off a wiki, like you suggest to jot down the use cases etc., and 18:20:09 <Sukhdev> 2) We proceed with what we have in terms of the progress on the API at hand 18:20:13 <armax> ijw: anyone who is familiar or paid attention to l2gw related efforts in Neutron should have an idea to what this is about by now :) 18:20:24 <ijw> Sukhdev: that's exactly what I was trying to get at - if we're all good with that 18:20:27 <Sukhdev> ijw: Both efforts can go simultaneously 18:20:55 <ijw> armax: I can find year old speds that define L2GW differently, so it's really not as clear-cut as you're making out 18:21:36 <Sukhdev> ijw: The question is how should we spend next few months to get something done in Kilo cycle 18:21:40 <armax> ijw: ok 18:22:24 <Sukhdev> ijw - I think we do not want to get hung up on the exact definition of l2-gw 18:22:25 <ijw> Sukhdev: your spec's really the only one that's close enough for that to happen, though I can't say I'm desperately enamoured of it 18:22:29 <armax> ultimately everything bubbles up to an API 18:23:07 <Sukhdev> ijw: may be as you see more of it - you might change your openion :-) 18:23:09 <armax> an API can evolve to accommodate use case 18:23:15 <ijw> Sukhdev: but on the other hand as a separate project and with a well-defined interface to core Neutron I don't think that matters so much - you can try it and we can learn from it if it isn't right 18:23:15 <armax> s 18:23:47 <armax> one API that came out of the various efforts is the one that Maruti put together 18:24:07 <Sukhdev> ijw: agree - that is why armax, I and others thought - lets move forward with what we have 18:24:21 <ijw> armax: I would prefer that we had a more logical framework around attaching external L2 domains to a cloud, rather than make an API that's VLAN specific, and one that's MPLS specific. That's where my interest comes from here 18:24:26 <armax> The intention of the people who kickstarted this project was to get that API to stage where we have some working code underpinning it 18:24:36 <ijw> armax: And evolving a VLAN-specific API is unlikely to get us there, I think 18:24:49 <armax> ijw: I don’t want to do that 18:25:08 <Sukhdev> ijw: I think the use of VLAN may be confusing the issue - there is already a comment on the spec to change it 18:25:30 <armax> this is not what this effort is about 18:26:17 <ijw> armax: or a device-specific API, for that matter (as in, one that assumes that devices must be recorded in the DB before anything happens) 18:27:01 <armax> the reference to VLAN in the spec was to fix ideas, and to give us something concrete that we can bridge against, a use case if you will 18:28:04 <armax> ijw: if you feel that this API would not lead you to support MPLS, or weasels, or whatnot, this is probably not the right project 18:28:07 <ijw> Look, I want this to work, I'm not trying to block things, I'm just laying my concerns out. If we're all happy I like the plan that we clarify the spec we have an lay out the use cases that involve L2 'gateways' of all flavours and types and the reasons why we might want them, in parallel, and we can work from there. Hopefully we'll have a wider audience than the three of us next time to see how that's worked out (I know K 18:28:08 <ijw> evin is interested, for starters) 18:28:44 <armax> ijw: I don’t think that we are gonna be able to encompass all the possible use cases under a single umbrella 18:28:49 <armax> we tried and failed 18:28:52 <Sukhdev> armax, ijw : Like I suggested earlier - we can kick of a separate effort to cover the use cases, but, I rather use this meeting to make progress on the API at hand - and see how can this evolve over time to cover more use cases 18:29:21 <armax> so at this point, I think we should realistically acknowledge that we need to agree to disagree and move separate ways 18:29:29 <ijw> armax: think of it more as laying out our strategy 18:29:55 <ijw> armax: not solving everything with a single spec, which as you rightly say is not going to work, but making sure that when the other stuff comes along it complements this 18:30:56 <Sukhdev> ijw: If we define the API correctly, I am sure we can come up with the extensions/enhancements that should be able to handle additional use cases 18:31:10 <ijw> armax: (and, conversely, making sure that when someone comes along with the wrong idea of what this spec should be solving they can be referred to the wiki, which will hopefully explain that there's space for someone else to come along and fix the problem they have which is not the problem at hand) 18:31:21 <armax> I know that you’re not here to block things :) and I realize that the effort laid out here might not necessarily fit with what you have in mind, but at one point we gotta draw the line; we tried to be as clear as possible as to what this type of L2GW is about 18:31:45 <ijw> armax, Sukhdev: you are now effectively arguing opposite sides of the coin ;) 18:32:03 <dougwig> (you have a wider audience now, it's just lurking, fyi.) 18:32:16 <Sukhdev> The worry I have is if we try to chew too much, we risk choking and come up with nothing 18:32:21 <armax> ijw: not sure I understand 18:32:28 <ijw> So: we agree that we're looking for a pragmatic subset of what to do, right? We agree that this spec looks like it's going to work as that. I'm saying we just put the documentation in place to make that clear 18:32:47 <ijw> (and not in the spec, because it doesn't belong in a spec) 18:33:22 <armax> ijw: ok, what is the format that you propose? 18:33:47 <armax> or that you think would be a better fit to clarying the confusion? 18:34:03 <Sukhdev> ijw: I agreed with your point, and hence suggested, we kick off a separate task to create a wiki with the use cases - perhaps that effort can be out of the scope for this meeting for the time being 18:34:05 <ijw> armax: So, as I said - we start a wiki page, we list the use cases, we then explain what we are doing with this specific spec to solve some of those use cases, and when everyone else comes along with their other requirements they document those and list their specs there too 18:35:00 <armax> ijw: ok, I can have a stub at that 18:35:01 <Sukhdev> ijw: Do I hear a volunteer to put together that wiki? I can help... 18:35:19 <ijw> I'm happy to join in: start it off and mail me 18:35:25 <ijw> I'll stick in a few more bits 18:35:31 <armax> ijw: :) 18:35:43 <ijw> They will not be what this spec addresses, which is, I think, the point ;) 18:35:45 <Sukhdev> ijw: OK - looks like we are converging :-) 18:35:58 <armax> as I said, I don’t want to boil the ocean right now 18:35:58 <ijw> Right, so we're good. Sukhdev, that aside, would you define your terms in the spec somewhere near the top, maybe ;) 18:36:09 <ijw> armax: yup, that's fine 18:36:26 <Sukhdev> #action: ijw and Sukhdev to work on a wiki to list all the use cases under the L2-GW umbrella 18:36:32 <armax> and I also don’t want to go in never ending arguments 18:36:56 <ijw> armax: I'm effectively saying that if we write stuff down that we are explicitly not doing at this moment in time, we will not spend another half hour explaining it to each other ;) 18:36:59 <Sukhdev> ijw: I just assigned you a task - hope you are OK with it 18:37:03 <ijw> yup, fine 18:37:39 <Sukhdev> OK - cool - lets move on then folks 18:37:40 <armax> well, my point is that the use cases you’re after initially are not the ones we’re after 18:37:46 <ijw> armax: I know 18:37:59 <armax> so I am not sure ijw is the one that’s best tasked with this initial wiki documentation 18:38:00 <ijw> armax: let's stop with this bit and I'll chat with you in #openstack-neutron later 18:38:20 <armax> ijw: sure 18:38:39 <Sukhdev> armax: the idea is to put the wiki for the completeness sake and then folks can decide how much effort they are willing to chip in to implement those 18:38:52 <armax> Sukhdev: ok, sure let 18:38:59 <ijw> Which, for what it's worth, may even be in different stackforge projects 18:39:02 <armax> let’s have a stab at this collaboratively 18:39:37 <ijw> armax: the point is to have something to point at to make them understand they're not what we're doing right this instant. 18:39:45 <armax> ijw: indeed, we can have an overarching wiki page that list all the l2gw flavors we can come up with 18:39:52 <ijw> K. 18:40:03 <ijw> Sukhdev: what else did you want to discuss? 18:40:27 <Sukhdev> ijw: We want to cover the API which we have so far - 18:40:49 <maruti> We have basic code (patchsets) that have been submitted. 18:40:52 <Sukhdev> I want maruti and armax to take the stage and bring everybody in sync with what we have 18:41:30 <Sukhdev> maruti: how have you tested it? 18:41:43 <maruti> Yes 18:41:45 <armax> Sukhdev: as I mentioned the spec https://review.openstack.org/#/c/144173/ has gone through a number of iterations 18:42:47 <maruti> Sukhdev: we have tested it using REST APIs. 18:43:02 <ijw> maruti: presumably the implementation was ML2/OVS? 18:43:27 <ijw> (not looked at the patchsets, sorry) 18:43:32 <armax> to some, this looks like the one that the Nicira implemented for the NVP plugin 18:44:08 <armax> ijw: well, the architecture being chosen is via service plugins 18:44:41 <maruti> service plugin (not ML2 plugin) 18:44:42 <Sukhdev> armax: correct - that is exactly what we discussed in Paris Summit 18:44:44 <armax> so in theory this can integrate with ML2/OVS or others, but we’ll work ML2/OVS is the initial choice 18:45:09 <ijw> armax: I admit my ignorance but I've not seen a good explanation of how service plugins work - is there a reference I should be reading? 18:45:25 <armax> um…the code? :) 18:45:49 <armax> ijw: sorry I don’t have a better answer right now 18:45:56 <ijw> armax: so helpful ;) - that's fine, but any specific files? 18:46:19 <Sukhdev> ijw: /neutron/neutron/services 18:46:29 <ijw> ta 18:46:30 <armax> um…https://github.com/openstack/neutron/tree/master/neutron/services 18:46:46 <maruti> ijw: you may look at FwaaS, or VPNaaS or LBaaS code 18:46:47 <armax> that’s the entry point for a bunch of the services related stuff 18:47:13 <Sukhdev> ijw: L3Router, Lbaas, Fwaas, etc. they all use this model 18:48:08 <armax> a service plugin is the underpinning block that would allow us to integrate loosely with Neutron core right now 18:48:23 <armax> and that would let us experiment with the API 18:48:51 <Sukhdev> maruti: I will ping you off-line to seek some help/advise to get me going with your patch - I want to pull it and start to play with it and see if I can make it work with Arista HA 18:48:55 <Sukhdev> *HW 18:49:11 <ijw> got a link to the patches? 18:49:25 <armax> https://review.openstack.org/#/q/status:open+project:stackforge/networking-l2gw,n,z 18:49:33 <maruti> https://review.openstack.org/#/c/144097/ 18:49:39 <armax> that’s what I can see so far 18:50:14 <maruti> thanks armax 18:50:16 <selva_> armax : I have a question related to extensions file placement in the advance services repo 18:50:36 <selva_> looks like extensions files are kept in neutron repo 18:51:13 <armax> selva_: extensions can be added elsewhere 18:51:45 <armax> you can look at this project for an example: https://github.com/stackforge/group-based-policy/tree/master/gbpservice/neutron/extensions 18:51:57 <ijw> So just for a bit of architectural clarification, you're talking to the OVSDBs directly from the L2GW code in parallel to the OVS agents? 18:52:04 <selva_> ok . Can I add in the stackforge itself ? I want everyone to review once I have updated it 18:52:40 <selva_> thanks armax 18:53:02 <maruti> OVSDB here is different server (2.3.x) that supports hardware_vtep schema - that is one implementation of the APIs. 18:53:10 <armax> the initial implementation that maruti has been working on is about talking to OVSDB on a physical switch 18:53:12 <Sukhdev> armax, selva_ : extensions should go where the API will live, no? 18:53:46 <maruti> OVS agents communicate with OVSDB db on CN/NNs 18:53:50 <armax> ijw: but we need some volunteer for the implementation that relies purely on a software node 18:54:07 <armax> Sukhdev: right 18:54:18 <ijw> maruti: ok, that makes sense, thanks 18:54:59 * ijw had a different mental picture, everything fits into place a lot better with that comment 18:55:30 <Sukhdev> ijw: LIke I said, once you understand it better, you may start to like it :-):-) 18:55:44 * Sukhdev 5 min left 18:55:45 <ijw> Sukhdev: you optimist, you ;) 18:55:52 <maruti> :) 18:56:15 <Sukhdev> Folks, we are close to the end of time - I want to ask a question 18:56:20 <armax> Sukhdev: so maybe we should recap 18:56:24 <ijw> I've run out of annoying arguments now, I think 18:56:36 <armax> ijw: nah, you’re good :) 18:56:46 <Sukhdev> Do you believe we should meet more often or every other week? 18:57:27 <armax> I think a forthnight is fine, but we always hang out on the channel so that shouldn’t stop us from talking ad hoc 18:57:45 <Sukhdev> armax: sounds good - 18:57:50 <Sukhdev> Now to recap - 18:58:02 <ijw> Generally two weeks, but I'd have one next week as a special occasion 18:58:13 <armax> ijw: makes sens 18:58:14 <armax> e 18:58:16 <ijw> This went out late and it looks like we won't be bored next week 18:58:33 <Sukhdev> We have an action item - for ijw and Sukhdev to put together a wiki - to cover use case for L2-GW 18:58:55 <Sukhdev> 2) We all agree with the direction we are heading into 18:59:19 <armax> Sukhdev: feel free to ping me on this, I’d be happy to help 18:59:57 <Sukhdev> armax: I will - wanted to keep you out of this so that you can concentrate with maruti to get the API going 19:00:31 <armax> Sukhdev: right, the other aspect is that I’ll work with maruti and selva_ and others to whip the code into shape 19:00:58 <Sukhdev> 3) team's goal is to have the API working before the end of Kilo cycle 19:01:18 <maruti> yes 19:01:43 <Sukhdev> armax: correct, I think your time will be well spent working with maruti, selva_ and others to get this API tested and put into better shape 19:01:51 <Sukhdev> Anything - I missed? 19:02:02 <ijw> And I think we're clear I don't want what you want, but I'm happy on doc tasks and keeping a reviewing eye out 19:02:21 <ijw> You'll just have to tell me to shut up if I'm in the wrong 19:02:36 <armax> ijw: there’s no right or wrong here 19:02:41 <armax> just different :) 19:02:51 <Sukhdev> ijw: I think we will turn you around - just wait and watch :-):-) 19:03:01 <armax> I think we overrun 19:03:11 <ijw> armax: yes, but I'll get in the way if I'm extending the scope beyond a certain point, so just push back and I'll document things up 19:03:13 <armax> no-one kicked us out yet 19:03:15 <Sukhdev> OK - folks thanks for attending 19:03:19 <maruti> Are we meeting next week? 19:03:22 <Sukhdev> #endmeeting