17:00:01 #startmeeting service_chaining 17:00:02 Meeting started Thu Jul 9 17:00:01 2015 UTC and is due to finish in 60 minutes. The chair is cathy_. Information about MeetBot at http://wiki.debian.org/MeetBot. 17:00:03 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 17:00:06 The meeting name has been set to 'service_chaining' 17:00:22 hi everyone 17:00:38 cathy_:hi 17:00:39 cathy_: hi 17:00:45 Hi ! 17:00:47 cathy_:hi 17:00:55 hi 17:01:01 hi 17:01:28 hi 17:01:31 #topic SFC spec, https://review.openstack.org/#/c/192933/8/doc/source/api.rst 17:01:38 hi 17:02:17 any questions you would like to discuss? 17:02:22 on the spec? 17:02:41 amotoki: hi, glad that you join the meeting 17:02:58 hello 17:03:24 hi 17:04:03 let's discuss the parameter which is now changed to ChainParameter object 17:04:22 cathy_: can we discuss how to make the classifier parameters more general, as per the email I sent to the list ? 17:04:23 cathy_: we are still in patch set 8 17:04:47 cathy_: so there hasn't been update based on the various comments from armax 17:05:08 s3wong: I am going to upload a new one soon 17:05:21 cathy_: OK 17:05:30 I have posted replies but will post a new version soon 17:05:33 s3wong, cathy_: yes I am looking forward to it 17:05:49 bouthors: Yes, we can discuss that 17:05:53 I’ll review it to make sure we captured all the main points of our latest discussions 17:05:59 armax: OK 17:06:51 cathy_: ok 17:06:54 For the Chain parameter object, Louis thinks there should be a link from the service chain object to this separate chainparam object. 17:07:26 OK with everyone? 17:07:28 cathy_: extension? 17:07:59 s3wong: what do you mean by extension? 17:08:06 s3wong: yes, the parameter will be modeled as an extension of the SFC object and there will be a separate API to create that chainparam object 17:08:51 LouisF: the parameter blob would not really be part of the API, but rather an extension 17:09:05 This is based on suggestion from Armando to create a separate chainparam object to specify the encap mechanism and failurepolicy 17:09:17 armando you proposed a separate chain parameter extension - seems a good idea 17:09:17 cathy_: so in the cli we will have to provide a name or a uuid for the chainparm object 17:09:33 bouthors: yes 17:09:55 For this phase, the encap mechansim in the chainparam will be "none" 17:10:24 cathy_: +1 17:10:54 which means we will not support the NSH for now which is suggested by Armando and Paul since OVS has not officially support NSH yet 17:10:54 cathy_: why do we call it "encap mechanism" instead of "chaining mechanism"? 17:11:27 cathy_: this is to get rid of the dependency in the OVS. 17:11:45 bouthors: I am open to the naming. 17:12:08 Swami: yes, kindof 17:12:16 cathy_: thanks 17:12:18 we will add the chainparam it the next version of the doc so please review 17:12:31 it -> to 17:12:42 Swami: this is more to simplify stuff to ensure we have everything we need in OVS such that we can make progress in Liberty 17:12:56 for naming, which one we should use? everyone? 17:12:59 s3wong: understood 17:13:19 encap or chaining mechanism? 17:13:42 chaining mechanism sounds more general. I think that could be good. 17:13:53 cathy_: do we expect it to do more than specifying encap mechanism? 17:14:02 cathy_, there could be multiple ways to encapsulate in NSH for example. 17:14:04 encap-mech seems fine to me 17:14:07 is it about packet format? or is it more than it? 17:14:35 amotoki: it is about packet format 17:14:37 we've done some service chaining research based on MAC re-writing that doesn't use any encapsulation 17:14:53 pcarver: that means the mechanism is none 17:14:57 if it is about packet format, "encap" sounds better to me. we will think more than the format by "chaining mechanism" 17:15:33 dolson have a well defined way using vlan-id to steer 17:15:48 it is about packet format and how to correlate a packet with a chain 17:16:04 how about correlation-mech 17:17:11 i'm open to any reasonable as long as its meaning is well undestood 17:17:36 The mechanism could be NSH-type1, NSH-type2, VLAN, Virtual EthernetPort, etc. For this phase, it will be none. We can discuss in later phase which one to support 17:18:06 but then you could has NHS for data center, and NSH for Gi-LAN 17:18:27 bouthors: that is counted as one mechanism 17:18:41 it does not matter which scenario it is used. 17:19:04 SO how about we call it "correlation mechanism"? Any "no" to this naming? 17:19:15 +1 17:19:26 +1 17:19:31 +1 17:19:31 +1 17:20:01 #agreed We will use "correlation mechanism" 17:20:22 +1 17:20:22 +1 17:21:04 In the chain object, we will have ref to the chainparam object and have a separate API to create the chainparm. Any objection on this? 17:21:23 Let's vote:-) 17:21:26 +1 17:21:30 +1 17:21:55 +1 17:22:19 +1 17:22:36 +1 17:22:38 +1 17:22:39 #agree In the chain object, we will have ref to the chainparam object and have a separate API to create the chainparm 17:22:43 no objection 17:22:50 Swami: :-) 17:23:27 now let's discuss format of the ChainParam? 17:24:15 Sorry what I mean is the parameter attribute format of the flow classifier 17:24:23 1. A single parameter attribute (dict of name-value pairs for the classifier fields) as shown here. 2. Individual attributes for the classifier fields. 17:24:41 Which option we should go for? everyone? 17:25:07 bouthors: you have proposed a general way of encoding the classifier parameters including L7 parameters 17:25:09 1. as shown in the spec? or 2? 17:25:38 bouthors: what's your input? 17:25:38 we should push for a mechanism allowing for some extensions. 17:25:49 bouthors: agree 17:26:07 my proposal is a have a dictionnary of fields 17:26:16 bouthors: do you have link to your doc? 17:26:31 bouthors: OK, how about others' opinion? 17:26:32 and then the chainparm can contain a list of pairs fieldname, fieldvalue 17:26:46 #link https://docs.google.com/document/d/1NkDwbAkPEfe-JuO37P5ZJ3wMH3LFpKCZBoB82hsb-t8/edit 17:26:53 I gave an example in the mailing list. 17:27:18 LouisF, thx 17:27:40 what we have today is dict of name-value pairs 17:28:27 armax: you mentioned that dict result in a lot of complexity in the coding and db 17:28:42 LouisF: ues 17:28:43 LouisF: wow... that is complicated... 17:29:06 s3wong: is there a better way to handle extensibility? 17:29:21 For example, ODL wants a way to do chaining between GBP groups of different tenants. We will not be able to define such a chain. 17:29:40 LouisF: let’s take this offlne, I don’t think we’ll be able to wrap this up here 17:29:51 so how many APIs we have to go through before we can specify something like "all traffic with destination port 80" 17:30:45 LouisF: I do think we need to strike a balance between extensibility and usability --- particularly during phase one 17:30:46 s3wong: we need to have an api that is reasonably straight-foward and yet allows for extensibility 17:30:56 The idea is that the dictionary are preconfigured. so in practise we don't change the number of APIs 17:31:30 The idea is that the dictionary are preconfigured. so in practise we don't change the number of APIs used 17:31:41 armax: I think we need to reach consensus so that we can update the spec based on consensus. Louis has listed two options. ANy other option? Let's discuss the cons and pros of each one and pick one. 17:32:25 s3wong: what is your suggestion? 1 or 2 or another way? 17:32:42 having individual attributes for the more common classifiers fields eg protocol, src/dest port, ip-prefixies make sense 17:33:49 cathy_: even with dictionary of fields, the fields need to be specified, right? 17:33:59 Individual attributes means we do not group the flow descriptors. 17:34:05 s3wong: yes 17:34:21 then additional fields can be handled by a more extensible format 17:34:37 s3wong: yes 17:34:51 cathy_: let me go over LouisF’s comments on the spec 17:35:07 dictionary means we group the flow descriptors into a "parameter" field. 17:36:01 armax: my comment: The parameter attribute was introduced to allow for extensibility. Two options here: 1. A single parameter attribute (dict of name-value pairs for the classifier fields) as shown here. 2. Individual attributes for the classifier fields. Defer to experts on REST API design for best approach for extensibility, readability, and simplest design. 17:36:05 armax: OK. let us know your pick when you are done. 17:36:44 I woud rather choose option 2 17:37:03 I vote for 2. 17:37:32 +1 for 2 17:37:54 s3wong: ? 17:37:57 cathy_: at first glance it looks like 2 would be the way to go 17:38:07 AFAIK, Armando likes 2 too 17:38:29 armax: cool. So looks most people likes 2 17:38:33 cathy_: well I dislkike the dict approach 17:38:36 cathy_: sure, option 2 would be better than parsing a dictionary either at API level or driver 17:39:26 #agree the flow descriptors in Flow Classifier will go for Individual attributes for the classifier fields. 17:39:35 :q! 17:39:43 Cool! 17:40:06 * s3wong thinks Swami is using vi commands on his IRC client 17:40:12 Any more questions on the spec that anyone would like to discuss? 17:40:20 will update next version with option 2 17:40:22 s3wong: sorry wrong context 17:40:38 Swami: :-) 17:40:49 Swami: understood 17:41:40 pcarver: do you have more comments? we can discuss here. otherwise we will update based on all the comments and consensus. We need to get the spec merged as soon as possible which is the team's desire. 17:42:33 will update with the CLI commands 17:42:52 per your suggestion armando 17:43:17 Do we need to post REST API (JSON) examples in the spec? 17:43:56 +q 17:43:58 +1 17:44:06 It will be good.. 17:44:20 i think the tables are sufficient 17:44:25 cathy_: no I don't have a strong opinion on this point 17:44:27 Vikram agree 17:44:32 JSON example would help us understand. I think we can skip CLI example. 17:44:44 pcarver: OK, thanks. 17:44:51 cathy_:atleast resource name becomes clear and CLI will not have last time surprises 17:45:04 you can just add a wiki to show how the rest api works or looks. 17:45:44 So we will post a few JSON examples for illustrative purpose. 17:45:57 +1 17:46:17 #agree the next version will post a few JSON examples for illustrative purpose 17:46:44 Why do we need to have exclusivity between neutron_port and using other individual ones in ChainingParms? 17:48:38 bouthors: is a neutron port is specified that woul include MAC address, IP address, etc 17:48:48 Each chain can have multiple classifiers. If the user wants multiple flows to go through a chain, he cna specify multiple classifiers with one using neutron port and others using IP address etc. params. 17:49:02 It is more clean to not mix them in one classifier. 17:49:32 But we cannot say "trafic from this port, aimed at this dest" 17:49:42 Neutron port itself already includes IP address etc. 17:50:36 I think I added a reply int the spec that we will add source neutorn port and destination neutron port. 17:51:05 bouthors: yes, good point 17:51:44 bouthors: could you be more specific about your point? 17:52:09 we have 8 minutes left 17:52:24 so you mean from, say, neutron-port=X, tcp-port=80 17:53:04 we can take it on the mailing list, I was thinkg neutron-port-src=W, des=x.y.x.z.t/24 17:53:30 your case is covered already 17:53:53 sorry not covered 17:54:07 ok 17:54:26 Ok, I think we probably should lift the restriction to allow more flexible specificaiton of the flow descriptors 17:55:26 bouthors: agree we need to support that, but what if it both src-neutorn-port=X (which has an IP address) and src-ip=10.1.1.1 are specified? 17:55:32 I think we should remove the restriction. Any different opinions on this? 17:55:58 need to set precedence rules for the validation 17:56:03 cathy_: what is the restriction? 17:56:38 LouisF: what do you mean precedence? 17:56:56 s3wong: see line 221 17:57:03 The parameters given must not contract themselves. For ex port-max < port -min , but also Louis example 17:57:19 you mean follow some order for classification? 17:57:55 Vikram_: no, see my comment above: at if it both src-neutorn-port=X (which has an IP address) and src-ip=10.1.1.1 are specified? 17:58:06 Vikram_: Louis means the code internally needs to do some validation as bouthors mentioned. 17:58:33 cathy_, LouisF: understood 17:58:49 will update spec on this 17:59:00 #agreed remove the restriction about Neutron port and other flow descriptors. 17:59:20 one minute 17:59:24 #agreed remove the restriction about combination of Neutron port and other flow descriptors. 17:59:30 left :-) 17:59:43 do we have any meeting agenda wiki page? 17:59:43 great discussion.time is up. thanks everyone. bye now 17:59:53 bye 17:59:55 i would like to see pointers before meeitngs. 18:00:03 bye 18:00:05 bye 18:00:05 bye 18:00:05 amotoki: we will set it up 18:00:13 But we have meeting logs 18:00:16 bye 18:00:21 #endmeeting