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