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