15:00:18 <alagalah> #startmeeting GBP 9/9
15:00:18 <odl_meetbot> Meeting started Wed Sep  9 15:00:18 2015 UTC.  The chair is alagalah. Information about MeetBot at http://ci.openstack.org/meetbot.html.
15:00:18 <odl_meetbot> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
15:00:18 <odl_meetbot> The meeting name has been set to 'gbp_9_9'
15:00:23 <alagalah> #info alagalah
15:01:37 <alagalah> #topic Agenda bashing
15:01:46 <alagalah> #link meeting held on hangouts: https://talkgadget.google.com/hangouts/_/gz4g7iazv6vburqjnrtkyjknmea
15:02:00 <alagalah> #link https://wiki.opendaylight.org/view/Group_Based_Policy_(GBP)/Team_Meeting Agenda
15:02:46 <alagalah> #topic M2 milestone delivered
15:03:25 <alagalah> #info M2 was delivered last Thu, the main point was the final RP
15:03:46 <martin-sunal> #info martin-sunal
15:03:54 <alagalah> #topic NEutron NPE bug
15:04:08 <alagalah> #info dileep_r on Hangout says he was able to reproduce it?
15:04:29 <alagalah> #info alagalah: patch merged to stable lithium yesterday and master too I believe
15:05:24 <alagalah> #info please note there is an issue OVSDB currently that causes NPE in InventoryHelper. alagalah logged a bug, martin-sunal was unable to reproduce but dileep_r can....
15:05:39 <alagalah> #info fix is to: 1. Pull OVSDB stable-lithium-SR1 (important: SR1)
15:06:14 <alagalah> #info 2. build by either removing OVSDB from .m2/repository/org/opendaylight OR you could try building with -U ... is mvn clean install -U -DskipTests
15:06:37 <alagalah> #info 3. Pull GBP stable/lithium and build: mvn clean install -nsu -DskipTests
15:07:41 <alagalah> martin-sunal, It seems dileep can reproduce the issue I was seeing
15:08:13 <alagalah> martin-sunal, He is using openJDK1.7, I am using openJDK1.8
15:08:26 <martin-sunal> alagalah: I removed m2 and I will try again
15:08:27 <alagalah> martin-sunal, Not that it should matter....
15:08:32 <alagalah> martin-sunal, Thanks sir!
15:08:59 <alagalah> #info Note this is not the NPE bug I was talking about in the topic
15:10:36 <alagalah> #info NPE bug I was referring to which was patched in GBP stable and master, was when we add the chain action to neutron generated policy, we would NPE due to VXLANGPE port not getting added to augmentation. This has been resolved!
15:10:56 <alagalah> #topic Be Release plan - multirenderer SDK
15:11:02 <alagalah> #info khaldoon you around ?
15:11:10 <khaldoon> yes
15:11:47 <alagalah> #info khaldoon mentioned that he had a policyInfo YANG model that he will push... khaldoon can you expand ?
15:12:56 <khaldoon> Yes, I have the Yang model
15:13:27 <alagalah> khaldoon, Excellent, excited to see it.
15:13:28 <khaldoon> I can convert PolicyInfo to the YANG and store it in Datastore
15:13:47 <khaldoon> of-overlay can also listen to changes
15:13:48 <alagalah> khaldoon, Any ETA on when a patch (either draft or published) may be able to be pushed for review ?
15:14:23 <khaldoon> Also, the existing solution should still work until we happy with the new solution
15:14:41 <khaldoon> This week
15:14:42 <alagalah> khaldoon, Thats great. This ties in nicely with the next topic
15:15:09 <alagalah> #topic Multirenderer SDK - IOVisor agent
15:15:31 <alagalah> #info khaldoon's work ties in nicely with the timing of the next item, which is an IOVisor agent.
15:16:46 <alagalah> #info The IOVisor project (iovisor.org) leverages eBPF. I am on the TSC for the IOVisor project, and as a POC, will start work on an IOVisor Module for taking policy from ODL GBP and applying it to the linux kernel networking pipeline via IOVisor
15:17:38 <alagalah> #info this will be "another" renderer but will be very lightweight from the ODL GBP side I hope, in that we need to potentially serialize policy as YAML to the agent running on the linux host. Hence khaldoon's work on making policyInfo available in the datastore is key
15:17:52 <alagalah> Any questions on that ?
15:18:27 <alagalah> #info This is meant as a POC to showcase the capabilities of IOVisor and eBPF
15:19:20 <alagalah> Ok if there are no questions I'll move onto the next topic
15:19:42 <alagalah> #topic Instrumentation
15:20:59 <alagalah> #info The 3 things we want to achieve with Instrumentation:
15:21:21 <alagalah> #info 1. OAM 2. Time-series data a) immediate b) historical/trend
15:22:27 <alagalah> #info #2 is proving to be a tricksy hobbit. Just using EP data is not going to yield the results we want, and the alternative is a bunch of interfaces for every object.. Ideally we could have leveraged simple data and derive stats, but thats a bit of a fools errand...
15:22:39 <alagalah> #info as discussed last week, the best way forward appears to be sFlow
15:22:58 <alagalah> #info since this is an open standard, this *should* be ok with FaaS as well as OVS.
15:23:07 <alagalah> #info that was Yapeng's opinion on the last call.
15:23:15 <alagalah> #info The big issue here is the collector
15:24:09 <alagalah> #info where would it live? Would it be external? It maybe something someone wants to take a look at as there are existing sFlow collectors available we could play with while we see what sort of data it can pull, and how we map that to policy constructs, before we start worrying about whether we want an sFlow collector in the ODL datastore.
15:24:30 <alagalah> #info unless someone wants to take that on, it seems the next sensible step is OAM.
15:25:02 <alagalah> #info I have some thoughts on leveraging our existing packet Out/In capability we use for neutron external gateway ARP to achieve this. Is anyone interested in working on this with me ?
15:26:45 <alagalah> #topic Stable lithium update - CSIT
15:27:50 <alagalah> #info There appears to have been some confusion about how we progress with Ubuntu in CSIT. We were under the impression that Vagrantfiles would be provided, but it appears we need to provide our own, which makes sense. We have them. Trying to organise a meeting today with "rel-eng" to get some pointers on how to start pushing our Vagrantfiles for GBP-neutron and GBPSFC demo environments up into CSIT.
15:28:51 <alagalah> #info dileep wants to work on CSIT, so hopefully he and I can get some help this morning to kick this off from edwarnicke  et al
15:31:03 <alagalah> #info we could leverage the GBPSFC demo branch that uses a pre-built BOX so we aren't trying to provision everything from SHELL (40+min per VM) ....
15:31:17 <alagalah> #link https://github.com/alagalah/gbpsfc-env/tree/box GBP SFC demo that leverages prebuilt box
15:33:52 <alagalah> #info note that this box has the OVS pre-installed. There were issues where the install required more RAM but with the BOX I believe since OVS NSH is already installed, we can drop this to 512M RAM which will be nicer for CSIT
15:34:32 <alagalah> #info I have tested successfully the same approach for neutron integration ... ie I have a box for devstack-control and a box for devstack-compute with the right repos etc already installed.
15:35:28 <alagalah> #info this means you can (from ~/devstack) do "restack.sh" and 4min (control) 1min (compute) have the system up and ready then run through the scripts already in the path (ie step01.sh etc) /vagrant/devstack-scripts/tutorial/
15:36:27 <alagalah> #info The issue with PBR requirements with devstack stable/kilo has been resolved, so we have a couple of avenues to pursue....
15:37:58 <alagalah> #info 1. A fixed BOX configuration for DevStack. This will have the downside that it won't have all the latest updates for stable/kilo but for base neutron testing/development will be ideal. I believe there is a branch for GBP devstack called "newbox" BUT PLEASE DO NOT USE THIS YET
15:38:04 <alagalah> #link https://github.com/alagalah/gbp-devstack/tree/newbox new box branch
15:38:16 <alagalah> #info this is still under development and should be ready next week.
15:38:49 <alagalah> #info with this in place, we can have a locked down devstack that we can use not only for development but also for CSIT since it should remain invariant.
15:39:21 <alagalah> #info the next thing we need to progress on is on pulling both the latest stable/kilo and latest master liberty and testing those for upstream compatibility / breakages.
15:39:53 <alagalah> #info our current thinking is that the OPNFV project already has test environments that include openstack Tempest testing so we are in the works of leveraging those environments.
15:40:49 <alagalah> #topic Stable/lithium SFC+neutron working
15:41:06 <alagalah> #info yesterday with the tunnel NPE bug fixed I was able to get two NOVA instances talking over SFC!!!!
15:41:10 <alagalah> #info woot!!!
15:41:31 <alagalah> #info The NPE patch has been merged but that leads onto the next topic for martin-sunal ...
15:41:40 <alagalah> #topic neutron-mapper redesign
15:41:56 <martin-sunal> #info draft was created
15:42:02 <alagalah> #info as some of you may know, we have mapped neutron security groups to EPGs
15:42:07 <alagalah> martin-sunal, hold on mate
15:42:14 <martin-sunal> alagalah: ok :)
15:42:35 <alagalah> #info A Security Group rule is more like an ACL, ie one sided... but an EPG and contract needs an EPG to provide and an EPG to consume
15:43:08 <alagalah> #info to make policy resolution happen, each SecurityGroup mapped to an EPG and its Security Group Rules mapped to a contract that the SecurityGroup/EPG PROVIDED.
15:43:28 <alagalah> #info this contract was CONSUMED by an EPG known as the ANY group.
15:44:30 <alagalah> #info this worked reasonably well in the simple case, but as we tested more complex scenarios with SecurityGroupRules that used either ip-prefix or "remove-security-group" we found instances where we could get asymmetric policy resolution. This has been an outstanding bug since before Li release.
15:44:48 <alagalah> #info to that end, martin-sunal has been working ona solution and has a draft that is almost ready for review
15:44:56 <alagalah> martin-sunal, Could you perhaps expand on the design here?
15:45:28 <martin-sunal> #info mapping between neutron and GBP entities is much easier
15:46:04 <martin-sunal> #info each security group rule is represented as a contract with one subject
15:46:50 <martin-sunal> #info a subject has one rule which contains classifier and action reference
15:47:25 <martin-sunal> #info classifier ref points to classifier-instance created based on attributes of security group rule
15:47:44 <martin-sunal> #info action-instance is always Allow b/c neutron has only this action
15:48:27 <martin-sunal> #info a contract is always provided by EPG which represents security-group from security-group-rule
15:48:57 <martin-sunal> #info we are testing this implementation now
15:49:18 <martin-sunal> #info I expect to have it done and publish at the end of this week?
15:49:23 <alagalah> martin-sunal, Great stuff mate, so the result is that the automatically generated policy is much easier to read in the UX ?
15:50:13 <martin-sunal> #info yes, all attributes from classifier-instance are used in naming convention of rule, clause, etc.
15:51:50 <alagalah> #info cool so instead of seeing a UUID, we see the actual components of the classifier in the name ?
15:52:01 <martin-sunal> #info ip-prefix from security-group-rule is mapped as endpoint-identification-constraint in clause
15:53:16 <martin-sunal> #info UUID is still there - contract does not have name but ID
15:53:53 <martin-sunal> #info everything what has name as key contains text representing classifier
15:55:07 <alagalah> #info Ok thats very cool!
15:55:22 <alagalah> #info we are having a side conversation on the google hangout, and dileep asked about conflicts
15:55:23 <martin-sunal> #info even name of contract-named-selector is composed from classifer which is inside contract
15:55:57 <alagalah> #info ie if we have SG1 and SG2 with each having a rule TCP 80, would there be one or two classifiers in that case ?
15:56:47 <martin-sunal> #info there would be 2 classifiers
15:57:07 <martin-sunal> #info sorry, there is one classifier-instance
15:57:26 <martin-sunal> #info but 2 contracts using that classifier-instance
15:57:26 <alagalah> #info I think thats great
15:57:37 <alagalah> #info ack, thats what I thought... so in the case where we have that
15:58:14 <alagalah> #info two contracts sharing a classifier, if SG2 were to say change its rule from TCP 80 to TCP 80-100 would we create a new classifier and associate it with the contract and hence have two classifiers ?
15:58:38 <martin-sunal> #info exactly
15:59:11 <alagalah> #info Very cool, and how do you know a classifier is still in use? ie do you do "garbage collection" or is this an item of optimisation for later ?
15:59:55 <martin-sunal> #info classifier-instance is removed immidietely after it is not used anymore
16:00:01 <alagalah> #info dileep Asks on hangout, do we expect these things to only be changed via neutron or via the ODL GBP GUI ... alagalah prepares a long answer :)
16:00:09 <alagalah> #info nice answer martin-sunal
16:01:07 <alagalah> #info 1. Neutron expects to be single-writer
16:01:09 <martin-sunal> #info changing of entities which were created based on neutron state is considered as illegal state
16:01:49 <alagalah> #info 2. As Martin points out, we would consider this illegal state but since we don't have AuthZ/AuthN on parts of the datastore (YET), this is something you can do
16:02:19 <alagalah> #info 3. In order to support SFC, we DO modify the ACTION from ALLOW to CHAIN-"foo" (tested yesterday) in order to make this work since Neutron doesn't support SFC (yet)
16:02:28 <alagalah> #info martin-sunal Anything to add ?
16:03:00 <martin-sunal> #info I think that basicly I told everything
16:03:47 <alagalah> #info Ok thats great... so I best wrap this up since its top of the hour
16:04:04 <alagalah> #info we will be presenting more on this in the next meeting
16:04:35 <alagalah> #info ok with that, lets wrpa this up... thanks everyone for joining
16:04:43 <alagalah> #endmeeting