15:52:24 <DaveBarach> #startmeeting fdio vpp 15:52:24 <collabot`> Meeting started Tue Feb 28 15:52:24 2017 UTC. The chair is DaveBarach. Information about MeetBot at http://wiki.debian.org/MeetBot. 15:52:24 <collabot`> Useful Commands: #action #agreed #help #info #idea #link #topic. 15:52:24 <collabot`> The meeting name has been set to 'fdio_vpp' 16:02:15 <jong> #topic CSIT - Jan G. reporting 16:02:30 <jong> #info preparing tests on CentOS 16:03:15 <jong> #topic Honeycomb - Marek sent in status by email 16:03:31 <jong> #info Done proxy Arp/SNAT/DHCP updates 16:04:29 <jong> #info In progress: v3po.yang model split (follows vpe.api split); 16:04:32 <valderrv> https://rt.linuxfoundation.org/Ticket/Display.html?id=36808 16:04:36 <jong> #info In-progress: policer yang model discussion; 16:04:58 <jong> #info In-progress: BGP in HC discussion 16:05:49 <dwallacelf> #info Dave Wallace 16:08:17 <jong> #info In-progress: support for Yang model... 16:08:42 <jong> #topic NSH-SFC - no reporting 16:08:54 <jong> #topic LISP - Florin reporting 16:09:12 <jong> #info made API changes 16:10:39 <jong> #info will be completed with API changes by next week's freeze 16:10:57 <jong> #topic DPDK packaging - Tom H. reporting 16:11:20 <jong> #info making progress. merging patches to DPDK 17.02. 16:12:25 <jong> #info next step is to build vpp rpm.. so dependency is based on dpdk rpm 16:15:41 <jong> #topic Plugin API message numbering, tracing - Dave B 16:15:55 <jong> #info Please implement pretty-print / custom-dump fns in plugins! 16:16:25 <jong> #topic Loopback create API discussion - Dave B 16:16:38 <jong> #info important for control plane 16:16:42 <jong> #info Add config parameter to change loop%d to Loopback%d (interface naming) 16:16:58 <jong> #info Add new api ("create_loopback2" or some such) w/ instance number control 16:17:02 <jong> #info Deprecate current API in 17.07 16:18:55 <jong> #agreed group in agreement with oopback create API discussion 16:19:14 <jong> #agreed group in agreement with loopback create API discussion 16:26:16 <jong> #action DB to write-up a paragraph re loopback create API discussion and send to vpp-dev mailer 16:27:54 <jong> #topic Maintainers file - Damjan reporting 16:28:18 <jong> #link https://gerrit.fd.io/r/#/c/5547 16:30:52 <jong> #info starting file, not a file. folks can nominate themselves during commits 16:31:14 <jong> #action Damjan to send maintainers file gerrit to vpp-dev 16:31:34 <jong> #topic Infra - Vanessa reporting 16:32:50 <jong> #info 17.01 - Damjan 16:32:56 <jong> #topic 17.01 - Damjan 16:33:14 <jong> #info started the rebuild process for 17.01. will publish soon 16:33:17 <DaveBarach> Hey Jong: pls #endmeeting at some point, and add entries to the Meeting Minutes page 16:33:28 <jong> will do 16:34:41 <jong> #info VPP Jira dashboard aligned with maintainers file 16:35:04 <jong> #link https://jira.fd.io/secure/Dashboard.jspa?selectPageId=10700 16:36:36 <jong> #topic Coverity report 16:37:09 <jong> #link https://scan.coverity.com/projects/fd-io-vpp 16:37:20 <jong> #topic issues 16:45:17 <jong> #info doxygen issue/limitation wrt interpolated macros... there's work around (fixed string..) 16:46:17 <jong> #endmeeting 16:46:31 <Chrisy_> if dave didn't make you a chair, that won't work 16:46:48 <jong> ok... 16:47:07 <Chrisy_> also, there is already a jira for that issue 16:47:26 <Chrisy_> #info inerpolation issue recorded at https://jira.fd.io/browse/VPP-417 since september 19:11:51 * jdl blinks 20:04:35 * jdl blinks 20:40:34 <jdl> oletroan: So, if there is a config flag to indicate "loop%d" or "Loopback%d" style names, would that flag be per-interface, or one global-ish for all loopback interface names? 22:40:39 <OleTroan> JDL: Hmm… So these names are only visible and used through the debug CLI? This isn't something communicated across the API? Would you expect other interface names to follow the same generic style? 22:41:15 <jdl> The names are more than just debug info. 22:41:35 <jdl> They form expect user-level names for future commands. 22:41:50 <jdl> That's why they need to be predictable and not dynamically allocated. 22:42:03 <OleTroan> Right, but only for the debug CLI? 22:42:16 <jdl> No. 22:42:24 <jdl> This ha nothing to do with VAT. 22:42:30 <jdl> Or vppctl. 22:42:44 <OleTroan> Where are the names used? 22:42:53 <jdl> In *my* CLI. 22:43:09 <OleTroan> Aha, then it's up to you isn't it. ;-) 22:43:18 <jdl> No, that is just it. 22:44:33 <jdl> Dave suggests a single flag indicating the base name for all devices of a class. 22:45:40 <jdl> In the same way that the bridge Ids can be specified, we need to have definite loopback instance names as well. 22:46:18 <OleTroan> Pondering… If you are writing your own control plane on top of VPP, you can just use interface indices no? 22:46:30 <OleTroan> And call "create loopback interface 15" 22:46:43 <OleTroan> how you represent a name for "15" is your choice, no? 22:46:50 <jdl> You can't specify 15. 22:47:07 <OleTroan> right, today you can't, but that's what you need right? 22:47:20 <OleTroan> as opposed to "create an interface, return me the if index" 22:47:20 <jdl> Yes, that is half of it 22:48:03 <jdl> Its not sw_if_index, though. 22:48:07 <OleTroan> Please explain the other half again. I may be a little slow. 22:48:36 <jdl> When a user types "interface loopback 4", the expected future name used is "Loopback4". 22:48:51 <jdl> It has to show up in interface dumps as "Loopback4". 22:49:01 <jdl> And it might be sw_if_index 20 22:50:04 <OleTroan> Right but in the interface dump, you get 20, and you do the mapping in your control plane to the string, right? 22:50:10 <jdl> Right now, one says "create loopback", and has to know that it will be "0". 22:50:27 <jdl> And if you do "create loopback" again, it will be "1". With name "loop1". 22:50:39 <OleTroan> Why do you care about the name is what I'm trying to get at? 22:50:55 <jdl> Because future commands need to reliably reference it by name. 22:50:57 <OleTroan> Assuming you are writing a new separate CLI that accesses VPP through the binary API.... 22:51:16 <jdl> The binary API returns interface names in a "dump" request too. 22:51:30 <OleTroan> True… 22:51:46 <OleTroan> Perhaps not having that and making it a completely local to the control plane entity would have been cleanest. 22:52:03 <jdl> DPDK prenames the IFs it finds. 22:53:01 <OleTroan> Cause it would be unfortunate if we had to maintain multiple name representations inside of VPP. e.g. if you need loop%d and Loopback%d… 22:53:22 <jdl> Yes. 22:54:07 <jdl> Dave suggested a config flag to select one for this running instance of VPP... 22:54:21 <jdl> Could come from vpp conf file, or API call. 22:55:09 <OleTroan> How would you have solved your problem if VPP didn't expose interface names? Just interface properties / instance #? 22:55:43 <jdl> I'd have to manage a separate name/index table, of course. 22:55:59 <OleTroan> (It might be Dave's proposal is the best, and it isn't many lines of code either way, I was just wanting to explore the solution space). 22:56:18 <OleTroan> Don't you need that anyway? Since most of the API calls require if index and not name. 22:56:21 <jdl> But that would make DPDK named interfaces be different too. 22:56:36 <OleTroan> True 22:56:51 <jdl> Those translations are obtained via table dynamically built by "dump" results. 22:57:16 <jdl> So not really a table I manage. :-) 22:57:31 <OleTroan> You could certainly map those names into prettier names for your purpose. 22:58:02 <jdl> Needless to say, the DPDK style names are IOS-ish, which is precisely what we need. 22:58:42 <OleTroan> Or just do a s/loop/Loopback in the VPP code. ;-) 22:59:06 <jdl> Sure -- but it will break existing code! 22:59:20 <jdl> I'm happy to take the s/loop/Loopback and be done with it. 22:59:38 <jdl> But it requires agreement from the entire VPP crew, code, and tests. 22:59:52 <jdl> Does it also affect something external? Don't know. 22:59:55 <OleTroan> In principle though, I'd really prefer no-one to deal programmatically with interface names. If index should be used. 23:00:27 <jdl> totally agree in principle. 23:01:05 <jdl> But I'd still need to be able to specify the user-level name for the interface. 23:01:13 <jdl> Same for ACL sets too. 23:01:15 <OleTroan> Yep 23:01:17 <jdl> Same for bridges. 23:01:36 <OleTroan> Is this written in a higher level language using one of the language bindings? 23:01:49 <jdl> All C. 23:01:56 <OleTroan> Poor you. ;-) 23:02:00 <jdl> LOL 23:02:21 <jdl> This is the highest level I've programmed in decades! 23:02:33 <jdl> this is *user* space! 23:03:15 <OleTroan> If the API gave you a set of classes of interface and then you mapped classes into names, e.g. loopback -> Loopback, 10base2 -> ThickYellowCable 23:04:06 <jdl> Might work. 23:04:42 <jdl> But I'd still have to specify the instance being created somehow. 23:05:14 <OleTroan> You could make a local mapping of that too? 23:05:19 <jdl> And the expected behavior is a number. So at the least that would impose a int->int mapping. 23:06:13 <OleTroan> Cause you have a static configuration of Loopback4 and you connect that CP to VPP and want to recreate a loopback interface 4 23:07:10 <jdl> I've not yet pried the rock off the tap-tun mechanism, but we will get there too. 23:07:22 <jdl> And we'll have to agree with the Linux host at some level for sure. 23:07:51 <jdl> It's not out of the question to need to agree with the FreeBSD host at some point as well. 23:08:27 <OleTroan> oh… you want names that match whatever a local host representation is of those names? 23:08:27 <jdl> Technically "local0" fits into this mess as well. 23:08:29 <jdl> Whee! 23:08:55 <OleTroan> Yeah, then I'd really like you to pretend that VPP doesn't have interface names. ;-) 23:09:11 <jdl> LOL. RIght? 23:15:19 <OleTroan> Good luck! Must get to bed. Have fun and let us know how it goes. 23:15:59 <jdl> Thanks! 02:48:38 <collabot`> jong: Error: Can't start another meeting, one is in progress. Use #endmeeting first. 02:48:54 <jong> #endmeeting