16:03:21 #startmeeting neutron_northbound 16:03:21 Meeting started Mon Jan 23 16:03:21 2017 UTC. The chair is yamahata. Information about MeetBot at http://ci.openstack.org/meetbot.html. 16:03:21 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 16:03:21 The meeting name has been set to 'neutron_northbound' 16:03:32 #chair vthapar 16:03:32 Current chairs: vthapar yamahata 16:04:33 #topic agenda bashing and roll call 16:04:36 #info yamahata 16:04:40 #info vthapar 16:04:46 #link https://wiki.opendaylight.org/view/NeutronNorthbound:Meetings 16:05:17 any other topics in addition to usual topic? 16:06:21 I'd like to discuss trunk drivers, not much other than that 16:06:31 okay. let's move on 16:06:36 #topic Announcements 16:06:43 odl M3 offset 1 is reached. 16:07:02 But after the report, I've got some update. So I'm going to update M3 report. 16:07:09 #action yamahata update M3 report. 16:07:41 the schedule of cutting openstack stable/ocata was announced. 16:08:21 For netwokring-odl the hard deadline is 16 Feb. 16:08:43 So the team probably upload the patch to cut it around Feb 9. 16:08:53 1 week before the hard deadline would be reasonable. 16:09:16 by when we need all patches to be in? I believe need some time to have all tests stable too, right? 16:09:16 any other announcement? 16:09:47 Yes. 16:10:09 Given time needed for test, we really need to hurry. 16:10:36 ideally as soon as possible. 16:10:59 ok. 16:11:21 If we're not very confident with its stability, we can announce the feature as experimental. 16:11:28 in networking-odl. 16:11:56 Especially trunk api in networking-odl would be mark experimental. 16:12:19 okay. was about to ask that as backend implementation of trunk will be coming bit later. 16:12:39 I beleive stability also includes ODL NN and netvirt, right? 16:12:48 right. 16:13:32 tempest scenario test case would be wanted. 16:13:39 okay, would be good to have criteria documented for experimental or stable. I think stable means tempest passing. 16:13:46 agree 16:14:51 move on 16:15:12 #topic action items from last meeting 16:15:28 yamahata review patches. 16:15:47 I'll keep reviewing patches to include remaining patches. 16:16:06 #topic carbon planning 16:16:34 As I mentioned a bit, for carbon hostconfig patches for ovs/vpp will be included. 16:16:40 So I'll update M3 report. 16:17:13 and trunk api and yang model update(e.g. project-id) will be included 16:17:22 #topic neutron stadium effort 16:17:47 Now hopefully grenade ci is passing. 16:18:21 #topic migrating to new features 16:18:33 Now Mike introduced tempest tests with v2driver. 16:18:46 but it seems a bit unstable. need to keep eyes on it. 16:19:04 new netvirt. yamahata will update patch for project-config 16:19:17 #topic patches/bugs 16:19:32 vthapar: you have a stage? 16:19:50 which patches do you want to discuss? 16:19:53 #link https://review.openstack.org/421895 16:20:21 it is more or less done from my side. I added more dependency validations and got good coverage on trunk dependency code. 16:20:37 great. 16:20:46 #action yamahata review https://review.openstack.org/421895 16:21:01 #link https://review.openstack.org/422421 16:21:24 #action yamahata review https://review.openstack.org/422421 16:21:26 this is in shape to review now, functional tests are TODO. 16:21:37 #link https://review.openstack.org/424064 16:21:53 this one is still WiP. 16:22:03 Cool. gbpvpn v2driver is also coming. 16:22:06 so can probably hold off for now. should be ready in day or two. 16:22:14 sure. 16:22:31 talked to bgpvpn folks and they're okay to retain v1 in their tree till Pike release. so we're only adding v2 to n-odl 16:22:41 got it. 16:23:05 btw when are you going to update documentation? 16:23:10 Maybe netvirt one. 16:23:25 I'll do, let me know which ones need to be updated. 16:23:26 People may want to use those three functions after networking-odl ocata release. 16:23:42 So the documents would be needed before carbon release. 16:23:54 okay, you mean the ODL+OpenStack document, right? 16:23:59 Yes. 16:24:08 I'll update that. am the doc lead for netvirt :) 16:24:22 but need things working once and test them end to end. 16:24:27 I'd like to have a link so that we can point to it. 16:24:30 probably before M4. 16:24:35 okay. 16:24:37 Yes, it's not urgent. 16:24:51 link to general ODL+OpenStack or trunk etc. specific? 16:25:10 ODL + OpenStack. 16:25:25 #link http://docs.opendaylight.org/en/latest/opendaylight-with-openstack/index.html 16:25:38 #link http://docs.opendaylight.org/en/latest/submodules/netvirt/docs/openstack-guide/index.html 16:25:55 first one links to second one 16:26:31 thanks for the link 16:27:03 any other patches/bugs to discuss? 16:27:25 #link https://git.opendaylight.org/gerrit/#/c/50615/ Add support for Openstack Neutron Trunkport APIs 16:27:42 I'm going to merge it tomorrow after netvirt meeting. 16:27:46 cool! 16:28:04 I thin Ariel already gave +1. 16:28:10 ^think 16:28:25 I hoped more netvirt guys review. but it's okay with me. 16:29:10 anything else? 16:29:31 #topic Open Mike 16:29:36 wanted to discuss couple open points for trunk patch in n-odl, but can take it up in open mike 16:30:01 okay, you're on the stage. 16:30:22 one issue I faced when testing this was that if I enable ODL_L3 in devstack, it would overwrite service_plugins entry. 16:30:41 I was adding trunk as post-config in NEUTRNO_CONF 16:31:03 I think need some code in devstack to allow it... I looked but couldn't figure out where. 16:32:00 * yamahata digging into devstack 16:33:44 maybe we could look into it later, other point was, trunk status. it supports setting status to ERROR, DEGRADED etc. I think we could update it based on status in journal... something to consider for future. 16:34:16 for now I set it active once we do postcommit. on v1 am setting to degraded if sendjson throws exception. 16:34:18 Hmm, probably neutron_service_plugin_class_add 16:34:46 are we planning to handle ODL faiures in, say, netvirt? 16:35:09 I guess a generic comment for all resources that support state, not just trunks. 16:35:47 Yes. I'm planning that by using websocket, networking-odl receives the notification from ODL on status. 16:35:54 then status will be updated. 16:36:01 aha, that would be helpful then :) 16:36:21 In trunk API case, it's a bit different. If sendjson fails, we'd like to update status to DEGRADED. 16:36:35 does journal capture suchinformation? 16:36:49 what does it do if sendjson fails? 16:36:52 With the current implementation, no. 16:37:07 Nothing will happend. We'll retry the journal entry. 16:37:20 okay. 16:37:34 other point I wanted to bring up was filters when sending json. 16:37:58 what issue do you have with filters? 16:37:59 e.g. trunk_details extension decorates trunk's parent port with infomation about subports. 16:38:10 we don't really need to send all that json as part of port_update. 16:38:26 Right. 16:38:27 not that simply creating subports does't send it, it comes in any subsequent port updates. 16:38:38 more of an optimization, to reduce datain journal and sent to ODL 16:38:42 ^data in 16:38:54 Yes filters can be used for that purpose. 16:39:06 also noticed getting created-at etc. values for most objects but don't think we're using them. 16:39:14 In case subport, we can drops trunk-details from port. 16:39:25 yeah. 16:39:37 * vthapar getting link to dump 16:40:22 Feel free to send a patch to update filters for optimisation. 16:40:27 #link https://etherpad.openstack.org/p/trunk-api-dump-newton 16:40:36 line 1756, search for trunk_details. 16:40:42 it adds following to port: 16:41:01 "trunk_details": {"trunk_id": "bc587c4c-de31-42b1-89c3-809add88c9b3", "sub_ports": [{"segmentation_id": 101, "port_id": "75e366aa-51b6-4ec8-9695-739c465377f7", "segmentation_type": "vlan", "mac_address": "fa:16:3e:44:c8:d9"}, {"segmentation_id": 102, "port_id": "e12f8356-ff66-4948-979f-9dedb63ee299", "segmentation_type": "vlan", "mac_address": "fa:16:3e:da:bb:a0"}]} 16:41:41 mac address is what it gets from subport's neutron port. rest are part of subport itself. 16:42:03 we could leverage it for optimization later, but for that we'll need yang changes. 16:42:09 As trunk_details isn't needed, it can be filters out. 16:42:19 I'd rather go with what we have and include it if we think it will help. 16:42:26 Right. ODL NN ignores unknown fields. 16:42:30 do we have framework for filtering? or need to add it? 16:42:44 yeah, so why store in journal or send if not gonna use it. can be perf issue at scale 16:43:02 trunk_details can just be added. 16:43:31 filters._filter_port_update 16:43:49 we can add 'trunk_detail' to the argument of try_del. 16:43:53 okay, will add that in subsequent patch, depending on your review comments. 16:44:45 is it possible to let plugin know we don't support trunk_details extension? 16:45:16 I think for most ml2 extensions drivers can pick and choose, right? might be better way. 16:46:24 Right. Do you mean plugin=ml2 plugin? 16:46:37 In filter code, we can unconditionally remove trunk_detail. 16:47:03 If trunk_details isn't there, it's noop 16:47:27 okay, will go with that. I was wondering if some way for trunk driver to tell trunk plugin it doesn't support trunk_details. couldn't find any. 16:47:44 In code, we can utilise neutron.manager to check if which service plugins are loaded. 16:48:14 hmmm... will go with filtering for now, will be easier to get it back if we need tomorrow 16:49:37 In that case, we can check if trunk-details extension is loaded or not. 16:49:54 Eventually what do you want to do? 16:50:11 I saw plugin code, it is always loaded, hard coded. 16:50:14 by knowing if trunk-details is loaded or not. 16:50:25 class TrunkPlugin(service_base.ServicePluginBase, 16:50:25 common_db_mixin.CommonDbMixin): 16:50:25 supported_extension_aliases = ["trunk", "trunk-details"] 16:50:51 I think better just filter if absence means noop. 16:52:03 Are you worry about performance? 16:52:49 yes. perf at scale due to duplicated information which we'll not use. 16:53:14 mainly on journal and rest calls. 16:53:43 I see. the filter code would be essentially something like port_dict.pop("trunk-detaiks", None). 16:54:06 I expect unconditional dict.pop would be acceptable. 16:54:14 filtering will be done before adding to journal? 16:55:08 Right now it's after journal right before sending json. 16:55:31 Hmm, maybe it might better do it before journaling, though. 16:55:37 okay, would be good to do it before adding. will help with journal perf. 16:55:44 We haven't measured performance difference, though. 16:56:05 well, we know it *will* be better with filtering before than after :) 16:56:59 Yeah. Originally filter is introduced for bug workaround and etc. not for performance. 16:57:23 It won't be difficult to change where filter is done. 16:58:27 time is running out. 16:58:36 any other topics to discuss? 16:58:45 none. thank you! 16:58:55 thank you every one 16:59:03 #topic cookies 16:59:08 #endmeeting