From mboxrd@z Thu Jan 1 00:00:00 1970 From: Olivier Matz Subject: Re: [RFC] New CLI for DPDK Date: Fri, 24 Mar 2017 14:09:54 +0100 Message-ID: <20170324140954.356e3755@platinum> References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: DPDK To: "Wiles, Keith" Return-path: Received: from mail-wm0-f42.google.com (mail-wm0-f42.google.com [74.125.82.42]) by dpdk.org (Postfix) with ESMTP id A2F6A69A5 for ; Fri, 24 Mar 2017 14:09:58 +0100 (CET) Received: by mail-wm0-f42.google.com with SMTP id n11so1854667wma.0 for ; Fri, 24 Mar 2017 06:09:58 -0700 (PDT) In-Reply-To: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Keith, On Thu, 23 Mar 2017 16:13:21 +0000, "Wiles, Keith" = wrote: > > On Mar 10, 2017, at 9:25 AM, Wiles, Keith wrote: > >=20 > > I would like to request for comments on a new CLI design and get any fe= edback. I have attached the cli.rst text, which is still a work in progress= for you review. > >=20 > > I have also ported the CLI to a version of Pktgen on the =E2=80=98dev= =E2=80=99 branch of the repo in DPDK.org. > >=20 > > http://dpdk.org/browse/apps/pktgen-dpdk/refs/?h=3Ddev > >=20 > > I would like to submit the CLI library to be used in DPDK, if that seem= s reasonable to everyone. I need more testing of the API and Pktgen, but I = feel it has a simpler design, easier to understand and hopefully make it ea= sier for developers to add commands. > >=20 > > As an example I quickly converted over testpmd from CMDLINE to CLI (I j= ust add a -I option to select CLI instead) and reduced the test-pmd/cmdline= .c file from 12.6K lines to about 4.5K lines. I did not fully test the code= , but the ones I did test seem to work. > >=20 > > I do not expect DPDK to convert to the new CLI only if it makes sense a= nd I am not suggesting to replace CMDLINE library. > >=20 > > If you play with the new CLI in pktgen and see any problems or want to = suggest new features or changes please let me know. > >=20 > > Comments on the cli.rst text is also welcome, but the cli.rst is not co= mplete. I think this file needs to be broken into two one to explain the ex= ample and another to explain CLI internals. =20 >=20 > Any more comments on the CLI code for DPDK. >=20 > Should I submit a patch for DPDK or would it be better to push this into = its own repo on DPDK? >=20 I agree that there is a large possibility of improvements in librte_cmdline. Just for reference, I think this design was not that bad at the time it was introduced: - declaring commands as static variables makes sense when running on baremetal without malloc library - implementing a readline-like part was also needed because not available on baremetal - masking structures to the user was harder due to the lack of malloc - having a cli is really helpful for a program like testpmd (both for a user or for an automatic test program) Few efforts were made to enhance this library because it's not the heart of dpdk. The current status is acceptable to me: this library is mostly used internally in dpdk for test apps, and application developers are free to use a better one if they want. But adding another cli lib in dpdk does not make sense to me. I think the proper direction would be to remove the cli from dpdk and use a good cli library that is available in distros. But for that: - we need to find one - we need to update all examples/tests that use the cmdline, and that will be a lot of work - we need to enhance dpdk framework to better manage deps with external libraries So, in my opinion, the CLI you are proposing should be hosted on another repo. Regards, Olivier