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