#opendaylight-group-policy: GBP 9/9
Meeting started by alagalah at 15:00:18 UTC
(full logs).
Meeting summary
-
- alagalah (alagalah,
15:00:23)
- Agenda bashing (alagalah, 15:01:37)
- meeting held on hangouts: https://talkgadget.google.com/hangouts/_/gz4g7iazv6vburqjnrtkyjknmea
(alagalah,
15:01:46)
- https://wiki.opendaylight.org/view/Group_Based_Policy_(GBP)/Team_Meeting
Agenda (alagalah,
15:02:00)
- M2 milestone delivered (alagalah, 15:02:46)
- M2 was delivered last Thu, the main point was
the final RP (alagalah,
15:03:25)
- martin-sunal (martin-sunal,
15:03:46)
- NEutron NPE bug (alagalah, 15:03:54)
- dileep_r on Hangout says he was able to
reproduce it? (alagalah,
15:04:08)
- alagalah: patch merged to stable lithium
yesterday and master too I believe (alagalah,
15:04:29)
- 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....
(alagalah,
15:05:24)
- fix is to: 1. Pull OVSDB stable-lithium-SR1
(important: SR1) (alagalah,
15:05:39)
- 2. build by either removing OVSDB from
.m2/repository/org/opendaylight OR you could try building with -U
... is mvn clean install -U -DskipTests (alagalah,
15:06:14)
- 3. Pull GBP stable/lithium and build: mvn clean
install -nsu -DskipTests (alagalah,
15:06:37)
- Note this is not the NPE bug I was talking
about in the topic (alagalah,
15:08:59)
- 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! (alagalah,
15:10:36)
- Be Release plan - multirenderer SDK (alagalah, 15:10:56)
- khaldoon you around ? (alagalah,
15:11:02)
- khaldoon mentioned that he had a policyInfo
YANG model that he will push... khaldoon can you expand ?
(alagalah,
15:11:47)
- Multirenderer SDK - IOVisor agent (alagalah, 15:15:09)
- khaldoon's work ties in nicely with the timing
of the next item, which is an IOVisor agent. (alagalah,
15:15:31)
- 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 (alagalah,
15:16:46)
- 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 (alagalah,
15:17:38)
- This is meant as a POC to showcase the
capabilities of IOVisor and eBPF (alagalah,
15:18:27)
- Instrumentation (alagalah, 15:19:42)
- The 3 things we want to achieve with
Instrumentation: (alagalah,
15:20:59)
- 1. OAM 2. Time-series data a) immediate b)
historical/trend (alagalah,
15:21:21)
- #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... (alagalah,
15:22:27)
- as discussed last week, the best way forward
appears to be sFlow (alagalah,
15:22:39)
- since this is an open standard, this *should*
be ok with FaaS as well as OVS. (alagalah,
15:22:58)
- that was Yapeng's opinion on the last
call. (alagalah,
15:23:07)
- The big issue here is the collector
(alagalah,
15:23:15)
- 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. (alagalah,
15:24:09)
- unless someone wants to take that on, it seems
the next sensible step is OAM. (alagalah,
15:24:30)
- 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
? (alagalah,
15:25:02)
- Stable lithium update - CSIT (alagalah, 15:26:45)
- 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. (alagalah,
15:27:50)
- 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 (alagalah,
15:28:51)
- 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) .... (alagalah,
15:31:03)
- https://github.com/alagalah/gbpsfc-env/tree/box
GBP SFC demo that leverages prebuilt box (alagalah,
15:31:17)
- 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 (alagalah,
15:33:52)
- 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. (alagalah,
15:34:32)
- 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/ (alagalah,
15:35:28)
- The issue with PBR requirements with devstack
stable/kilo has been resolved, so we have a couple of avenues to
pursue.... (alagalah,
15:36:27)
- 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 (alagalah,
15:37:58)
- https://github.com/alagalah/gbp-devstack/tree/newbox
new box branch (alagalah,
15:38:04)
- this is still under development and should be
ready next week. (alagalah,
15:38:16)
- 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. (alagalah,
15:38:49)
- 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. (alagalah,
15:39:21)
- 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.
(alagalah,
15:39:53)
- Stable/lithium SFC+neutron working (alagalah, 15:40:49)
- yesterday with the tunnel NPE bug fixed I was
able to get two NOVA instances talking over SFC!!!! (alagalah,
15:41:06)
- woot!!! (alagalah,
15:41:10)
- The NPE patch has been merged but that leads
onto the next topic for martin-sunal ... (alagalah,
15:41:31)
- neutron-mapper redesign (alagalah, 15:41:40)
- draft was created (martin-sunal,
15:41:56)
- as some of you may know, we have mapped neutron
security groups to EPGs (alagalah,
15:42:02)
- 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 (alagalah,
15:42:35)
- 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. (alagalah,
15:43:08)
- this contract was CONSUMED by an EPG known as
the ANY group. (alagalah,
15:43:28)
- 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. (alagalah,
15:44:30)
- to that end, martin-sunal has been working ona
solution and has a draft that is almost ready for review
(alagalah,
15:44:48)
- mapping between neutron and GBP entities is
much easier (martin-sunal,
15:45:28)
- each security group rule is represented as a
contract with one subject (martin-sunal,
15:46:04)
- a subject has one rule which contains
classifier and action reference (martin-sunal,
15:46:50)
- classifier ref points to classifier-instance
created based on attributes of security group rule (martin-sunal,
15:47:25)
- action-instance is always Allow b/c neutron has
only this action (martin-sunal,
15:47:44)
- a contract is always provided by EPG which
represents security-group from security-group-rule (martin-sunal,
15:48:27)
- we are testing this implementation now
(martin-sunal,
15:48:57)
- I expect to have it done and publish at the end
of this week? (martin-sunal,
15:49:18)
- yes, all attributes from classifier-instance
are used in naming convention of rule, clause, etc. (martin-sunal,
15:50:13)
- cool so instead of seeing a UUID, we see the
actual components of the classifier in the name ? (alagalah,
15:51:50)
- ip-prefix from security-group-rule is mapped as
endpoint-identification-constraint in clause (martin-sunal,
15:52:01)
- UUID is still there - contract does not have
name but ID (martin-sunal,
15:53:16)
- everything what has name as key contains text
representing classifier (martin-sunal,
15:53:53)
- Ok thats very cool! (alagalah,
15:55:07)
- we are having a side conversation on the google
hangout, and dileep asked about conflicts (alagalah,
15:55:22)
- even name of contract-named-selector is
composed from classifer which is inside contract (martin-sunal,
15:55:23)
- ie if we have SG1 and SG2 with each having a
rule TCP 80, would there be one or two classifiers in that case
? (alagalah,
15:55:57)
- there would be 2 classifiers (martin-sunal,
15:56:47)
- sorry, there is one classifier-instance
(martin-sunal,
15:57:07)
- but 2 contracts using that
classifier-instance (martin-sunal,
15:57:26)
- I think thats great (alagalah,
15:57:26)
- ack, thats what I thought... so in the case
where we have that (alagalah,
15:57:37)
- 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 ? (alagalah,
15:58:14)
- exactly (martin-sunal,
15:58:38)
- 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 ? (alagalah,
15:59:11)
- classifier-instance is removed immidietely
after it is not used anymore (martin-sunal,
15:59:55)
- 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 :) (alagalah,
16:00:01)
- nice answer martin-sunal (alagalah,
16:00:09)
- 1. Neutron expects to be single-writer
(alagalah,
16:01:07)
- changing of entities which were created based
on neutron state is considered as illegal state (martin-sunal,
16:01:09)
- 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 (alagalah,
16:01:49)
- 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) (alagalah,
16:02:19)
- martin-sunal Anything to add ? (alagalah,
16:02:28)
- I think that basicly I told everything
(martin-sunal,
16:03:00)
- Ok thats great... so I best wrap this up since
its top of the hour (alagalah,
16:03:47)
- we will be presenting more on this in the next
meeting (alagalah,
16:04:04)
- ok with that, lets wrpa this up... thanks
everyone for joining (alagalah,
16:04:35)
Meeting ended at 16:04:43 UTC
(full logs).
Action items
- (none)
People present (lines said)
- alagalah (91)
- martin-sunal (24)
- khaldoon (6)
- odl_meetbot (3)
Generated by MeetBot 0.1.4.