Thanks for pointing that out, Chris.

I have not tested changing shm permissions, but I see that I can "sudo
vpp_api_test" directly and run commands without having to make any changes
to /etc/sudoers like the one I needed to use vppctl in my setup.

Burt

On Fri, Jun 2, 2017 at 6:27 PM, Luke, Chris <chris_l...@comcast.com> wrote:

> It should be possible to set the shm permissions such that vpp_api_test
> can be run as a non-privileged user; that being the case, don’t use the
> vppctl wrapper script, just invoke vat directly.
>
>
>
> Note I’ve not tested this in a while; but we did make it possible last
> year iirc.
>
>
>
> Chris.
>
>
>
> *From:* Burt Silverman [mailto:bur...@gmail.com]
> *Sent:* Friday, June 2, 2017 17:54
> *To:* Damjan Marion (damarion) <damar...@cisco.com>; Dave Barach <
> d...@barachs.net>
> *Cc:* Kinsella, Ray <ray.kinse...@intel.com>; Luke, Chris <
> chris_l...@cable.comcast.com>; Alessio Silvestro <ale.silver...@gmail.com>;
> vpp-dev <vpp-dev@lists.fd.io>
> *Subject:* Re: [vpp-dev] VPP/How To Build The Sample Plugin
>
>
>
> OK, I figured out how to patch code to add a vat_plugin_path option to
> /etc/vpp/startup.conf, but that was not the answer to the immediate issue,
> regarding my failure to get output from "show pci" under vppctl, when
> running from /home/burt/vpp/build-root/install-vpp-native/vpp/bin.
>
> The issue is that vppctl wants to run a command in this directory as sudo.
> The command is not found because of sudo. There are two fixes in addition
> to building and installing packages:
>
> 1. Copy the program vpp_api_test from the aforementioned directory to
> /usr/bin.
>
>     The problem with this approach is that you have to know each time you
> build whether you have changed vpp_api_test and hence need to recopy it to
> /usr/bin.
>
> 2. Use sudoedit to add your bin directory (like 
> /home/burt/vpp/build-root/install-vpp-native/vpp/bin)
> to the secure_path in the /etc/sudoers file.
>
>     Then  you are good for as long as you do not change the location of
> your tree.
>
> Forgive me for hijacking this sample vpp-plugin thread for a slightly
> different discussion.
>
> Perhaps someone can let me know if this appears usable, or close to
> usable, or far!
>
> [burt@localhost ~/vpp/src/vpp]$git diff .
> diff --git a/src/vpp/vnet/main.c b/src/vpp/vnet/main.c
> index ade32aa..1bc190f 100644
> --- a/src/vpp/vnet/main.c
> +++ b/src/vpp/vnet/main.c
> @@ -20,6 +20,7 @@
>  #include <vnet/ethernet/ethernet.h>
>  #include <vpp/app/version.h>
>  #include <vpp/api/vpe_msg_enum.h>
> +#include "vat/vat.h"
>
>
>  static void
> @@ -162,6 +163,11 @@ main (int argc, char *argv[])
>           if (i < (argc - 1))
>             vlib_plugin_path = argv[++i];
>         }
> +      else if (!strncmp (argv[i], "vat_plugin_path", 15))
> +       {
> +         if (i < (argc - 1))
> +           vat_plugin_path = argv[++i];
> +       }
>        else if (!strncmp (argv[i], "heapsize", 8))
>         {
>           sizep = (u8 *) argv[i + 1];
> @@ -252,6 +258,16 @@ plugin_path_config (vlib_main_t * vm,
> unformat_input_t * in
>
>  VLIB_CONFIG_FUNCTION (plugin_path_config, "plugin_path");
>
> +static clib_error_t *
> +vat_plugin_path_config (vlib_main_t * vm, unformat_input_t * input)
> +{
> +  clib_error_t *error;
> +
> +  error = plugin_path_config (vm, input);
> +  return error;
> +}
> +VLIB_CONFIG_FUNCTION (vat_plugin_path_config, "vat_plugin_path");
> +
>  void vl_msg_api_post_mortem_dump (void);
>  void elog_post_mortem_dump (void);
>
>
> Burt
>
>
>
>
>
> On Thu, Jun 1, 2017 at 1:43 PM, Burt Silverman <bur...@gmail.com> wrote:
>
> Oh, man, that (referring to my last post) is some tricky stuff. My
> reaction reminds me of one of my colleagues reaction years ago when I
> created some firmware that would only fit in flash by using an AIX C
> compiler optimization trick that discarded uncalled functions. After I told
> him the solution he required, he exclaimed loudly, "OH, I THINK IT STINKS."
> Now, one of my issues, not the primary question, but the "stinks" issue, is
> that there are at least two unique load_one_plugin functions that behave
> differently but both show up in the log as "load_one_plugin."
>
> OK, the function in vlib/unix/plugin.c will not accept my
> vpp_api_test_plugins even though I have them in the plugin path I
> configured in /etc/vpp/startup.conf, because they do not have section
> vlib_plugin_registration in the ELF. I think there is a separate
> vat_plugin_path that is hard coded to /usr/lib/vpp_api_test_plugins in
> vpp/api/plugin.c. How can I configure this so that I can have these vat
> plugins in $TOP/build-root/install-vpp-native/vpp/lib64/vpp_api_test_plugins?
> As I have mentioned earlier, I am trying to come up with a developer work
> flow that does not require building and installing packages.
>
> Burt
>
>
>
> On Wed, May 31, 2017 at 3:56 PM, Burt Silverman <bur...@gmail.com> wrote:
>
> Damjan,
>
> I have a related question, but it does not involve the sample-plugin. I
> wish to "make build-release" and then adjust my plugin path in
> /etc/vpp/startup.conf to use the plugin directories underneath
> TOP/build-root/install-vpp-native/vpp/lib64. Well it seems that the
> plugins in directory vpp_plugins are acceptable, but the ones in
> vpp_api_test_plugins are not. I end up with a result like:
>
> [burt@localhost ~]$source ./vpp.sh
> [sudo] password for burt:
> vlib_plugin_early_init:356: plugin path /home/burt/vpp/build-root/
> install-vpp-native/vpp/lib64/vpp_plugins:/home/burt/vpp/
> build-root/install-vpp-native/vpp/lib64/vpp_api_test_plugins
> load_one_plugin:184: Loaded plugin: acl_plugin.so (Access Control Lists)
> load_one_plugin:83: Not a plugin: acl_test_plugin.so
> load_one_plugin:184: Loaded plugin: dpdk_plugin.so (Data Plane Development
> Kit (DPDK))
> load_one_plugin:83: Not a plugin: dpdk_test_plugin.so
> load_one_plugin:184: Loaded plugin: flowperpkt_plugin.so (Flow per Packet)
> load_one_plugin:83: Not a plugin: flowperpkt_test_plugin.so
> ...
> load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/
> acl_test_plugin.so
> load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/
> dpdk_test_plugin.so
> load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/
> flowperpkt_test_plugin.so
> load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/
> gtpu_test_plugin.so
> ...
>
> [but I want it to work without installing the vpp-plugins package]
>
>
>
> Can it be fixed easily? It seems that I cannot use the vppctl program
> ("show pci" for example) without the test plugins (or I am missing
> something else.)
>
> Thanks.
>
> Burt
>
>
>
> On Wed, May 31, 2017 at 12:31 PM, Damjan Marion (damarion) <
> damar...@cisco.com> wrote:
>
> >
> > On 31 May 2017, at 18:18, Kinsella, Ray <ray.kinse...@intel.com> wrote:
> >
> >
> > Ok - but that doesn't get us any closer to helping newbies use the
> sample plugin with 'make build' and 'make run', right? They still need to
> install vpp, then the sample-plugin - lots of hoops.
>
> make run is not built for running out-of-tree plugins but this should work:
>
> make bootstrap
> make pkg-deb
> dpkg -i build-root/*.deb
> cd src/examples/sample-plugin
> autoreconf -fis
> ./configure
> make
> sudo make install
>
> >
> > I disagree with a documentation heavy approach in principle, the wiki
> suggests, that it similarly goes 'out of sync' quiet quickly.
> >
> > BTW - I wasn't advocating PLUGIN_DISABLED, I provided build-data configs
> in the same way we do enabling/disabling dpdk features.
>
> ok
>
> >
> > The updated patch provides the separation between example/sample plugins
> and plugins that was asked for. It re-uses all the same autotools configs
> as src/plugins, so shouldn't go out of sync.
>
> i still disagree, sample-plugin should be stand-alone autotools project,
> you are removing configure.ac so for me it is no-go.
>
>
> >
> > Ray K
> >
> >
> > On 31/05/2017 17:05, Damjan Marion (damarion) wrote:
> >>
> >> I do not agree with that proposal, I think we need to have one sample
> of out-of-tree plugin as it is today.
> >>
> >> Still, I agree that we need to help newbies and my proposal is that we
> just document build process for out-of-tree plugins with simple README.md
> inside src/examples/sample-plugin.
> >>
> >> btw I consider use of PLUGIN_DISABLED (as default choice) as evil, as
> it mens that plugin will go out of sync sooner or later.
> >>
> >>
> >>> On 31 May 2017, at 17:37, Kinsella, Ray <ray.kinse...@intel.com>
> wrote:
> >>>
> >>>
> >>> Ok, typically example/sample code is intended to be used by the newest
> of the new, newbies. So the sample plugin should work with 'make build' and
> 'make run' with the minimum of hoops to enable. Asking these users to
> install and configure VPP, then do the same for the sample plugin is too
> much. I think that this thread exists, is testament that the UX could be
> better - too many hoops.
> >>>
> >>> So here I what I suggest to fix.
> >>>
> >>> We create src/examples/plugins, put the sample plugin in here.
> >>>
> >>> The examples plugins (src/examples/plugins) are in-tree plugins and
> build in exactly the same way as src/plugins from a build PoV
> (PLUGIN_ENABLED etc), with the exception that the examples plugins are
> disabled by default. They also live in the sample directory with no
> symlinks etc to src/plugin. We then provide a way to explicitly enable them
> with a build-data config.
> >>>
> >>> I reworked the patch along these lines, does it make sense?
> >>>
> >>> Ray K
> >>>
> >>> On 31/05/2017 10:15, Damjan Marion (damarion) wrote:
> >>>>
> >>>> The idea of sample plugin is to show people how to build out-of-tree
> plugin. As that plugin was broken several times due to changes we made I
> created special ebuild package which builds sample plugin as part of verify
> job to ensure that plugin will not be broken again due to changes in vpp.
> >>>>
> >>>> Saying that, I strongly disagree that we move sample plugin into
> src/plugins, as that is place for in-tree plugins which actually do
> something useful.
> >>>> If people want to create additional in-tree plugin, there is many
> samples already in src/plugins so I don't see an need for additional one.
> >>>>
> >>>> So to continue discussion on this particular change, what do you
> think that it is broken?
> >>>>
> >>>> For me sequence:
> >>>>
> >>>> autoreconf -fis
> >>>> ./configure
> >>>> make
> >>>> make install
> >>>>
> >>>> Works perfectly fine. Off-course you need to have install vpp-dev
> package on your system...
> >>>>
> >>>>
> >>>>> On 30 May 2017, at 13:30, Kinsella, Ray <ray.kinse...@intel.com>
> wrote:
> >>>>>
> >>>>> The UX for the sample plugin is broken. Especially when you consider
> that the people most likely to try it and use it, are those least familiar
> with VPP.
> >>>>>
> >>>>> I tried the use it a few months ago in training and found the UX
> similar then. So I put together a number of changes to integrate the plugin
> into the VPP build system, provide a build var to enable and disable it,
> and then added documentation for anyone new to VPP.
> >>>>>
> >>>>> https://gerrit.fd.io/r/#/c/6920/
> >>>>>
> >>>>> Thanks,
> >>>>>
> >>>>> Ray K
> >>>>>
> >>>>> On 27/05/2017 18:27, Luke, Chris wrote:
> >>>>>> Wishes often come true when you turn them into patches. :)
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> Chris.
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> *From:* vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-bounces@lists.
> fd.io]
> >>>>>> *On Behalf Of *Burt Silverman
> >>>>>> *Sent:* Saturday, May 27, 2017 10:33
> >>>>>> *To:* Kinsella, Ray <ray.kinse...@intel.com>
> >>>>>> *Cc:* Alessio Silvestro <ale.silver...@gmail.com>; vpp-dev
> >>>>>> <vpp-dev@lists.fd.io>
> >>>>>> *Subject:* Re: [vpp-dev] VPP/How To Build The Sample Plugin
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> Thanks, Ray, this is exactly what I needed, by coincidence. I wish
> your
> >>>>>> item 2. was placed commented out and almost word for word into the
> >>>>>> standard $TOPDIR/src/vpp/conf/startup.conf -- that would make
> things
> >>>>>> self documenting.
> >>>>>>
> >>>>>> Burt
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> On Sat, May 27, 2017 at 8:30 AM, Kinsella, Ray <
> ray.kinse...@intel.com
> >>>>>> <mailto:ray.kinse...@intel.com>> wrote:
> >>>>>>
> >>>>>> So there is an easier way
> >>>>>>
> >>>>>> 1. make -C build-root PLATFORM=vpp TAG=vpp sample-plugin-install
> >>>>>>
> >>>>>> 2. adjusting the plugin path depending on where the VPP src is, add
> >>>>>> the following to your startup.conf
> >>>>>>
> >>>>>> plugins
> >>>>>> {
> >>>>>>        path
> >>>>>> /root/src/vpp/build-root/install-vpp-native/sample-
> plugin/lib64/vpp_plugins/:/root/src/vpp/build-root/
> install-vpp_debug-native/vpp/lib64/vpp_plugins
> >>>>>> }
> >>>>>>
> >>>>>> Ray K
> >>>>>>
> >>>>>>
> >>>>>> On 26/05/2017 12:53, Alessio Silvestro wrote:
> >>>>>>
> >>>>>>    Hi all,
> >>>>>>
> >>>>>>    I am trying to build the sample vpp-engine plug-in as explained
> here
> >>>>>>    (https://wiki.fd.io/view/VPP/How_To_Build_The_Sample_Plugin
> >>>>>>    <https://wiki.fd.noclick_io/view/VPP/How_To_Build_The_
> Sample_Plugin>).
> >>>>>>
> >>>>>>    I already tested my vpp installation, for instance it works when
> I
> >>>>>>    created a Source NAT.
> >>>>>>
> >>>>>>    I downloaded the most updated version of the sample-plugin and
> >>>>>>    run the
> >>>>>>    following commands:
> >>>>>>
> >>>>>>       sudo sh
> >>>>>>       cd /usr/share/doc/vpp/examples
> >>>>>>       cd /tmp/sample-plugin
> >>>>>>       libtoolize
> >>>>>>       aclocal
> >>>>>>       autoconf
> >>>>>>       autoheader
> >>>>>>
> >>>>>>    ERROR 1:autoheader: error: AC_CONFIG_HEADERS not found in
> >>>>>>    configure.ac <http://configure.noclick_ac>
> >>>>>>    <http://configure.ac <http://configure.noclick_ac>>
> >>>>>>
> >>>>>>       automake --add-missing
> >>>>>>       chmod +x configure
> >>>>>>       vpp_plugin_configure
> >>>>>>
> >>>>>>    ERROR 2:vpp_plugin_configure: command not found
> >>>>>>
> >>>>>>
> >>>>>>    So, first I have an error from the command autoheader.
> >>>>>>
> >>>>>>    Second, I do not have the command vpp_plugin_configure.
> >>>>>>
> >>>>>>    Any hints?
> >>>>>>
> >>>>>>    Best regards,
> >>>>>>    Alessio
> >>>>>>
> >>>>>>
> >>>>>>    _______________________________________________
> >>>>>>    vpp-dev mailing list
> >>>>>>    vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
> >>>>>>    https://lists.fd.io/mailman/listinfo/vpp-dev
> >>>>>>    <https://lists.fd.noclick_io/mailman/listinfo/vpp-dev>
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> vpp-dev mailing list
> >>>>>> vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
> >>>>>> https://lists.fd.io/mailman/listinfo/vpp-dev
> >>>>>> <https://lists.fd.noclick_io/mailman/listinfo/vpp-dev>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>> _______________________________________________
> >>>>> vpp-dev mailing list
> >>>>> vpp-dev@lists.fd.io
> >>>>> https://lists.fd.io/mailman/listinfo/vpp-dev
> >>>>
> >>
>
>
>
>
>
>
>
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to