Vpp seems to be its dispatch loop, waiting for an input node to inject work into the forwarding graph. What you call cust_main() is the moral equivalent of a while(1) loop. It won’t return.
D. From: Akash S R <akashsr.akas...@gmail.com> Sent: Thursday, June 10, 2021 7:38 AM To: Akash S R <akashsr.akas...@gmail.com> Cc: v...@barachs.net; vpp-dev@lists.fd.io; srilcha...@gmail.com Subject: Re: [vpp-dev] Quick question on VPP on : How to Embed VPP as library Hi Dave, As per your suggestion, we have compiled a shared library and renamed main in vnet/main.c as cust_main (). Invoking the cust_main() from our application results in a hang. Bt as below: Thread 1 "vpp_main" received signal SIGINT, Interrupt. 0x00007ffff519d888 in clib_time_now_internal (c=0x7fffb3115680, n=287541441385032) at /home/soundarya/june4/vpp/src/vppinfra/time.h:219 219 if (PREDICT_FALSE Missing separate debuginfos, use: debuginfo-install check-0.9.9-5.el7.x86_64 keyutils-libs-1.5.8-3.el7.x86_64 libgcc-4.8.5-44.el7.x86_64 libselinux-2.5-15.el7.x86_64 libstdc++-4.8.5-44.el7.x86_64 libuuid-2.23.2-65.el7_9.1.x86_64 mbedtls-2.7.17-1.el7.x86_64 numactl-libs-2.0.12-5.el7.x86_64 pcre-8.32-17.el7.x86_64 pkcs11-helper-1.11-3.el7.x86_64 (gdb) thread apply all bt Thread 2 (Thread 0x7fffac0de700 (LWP 10052)): #0 0x00007ffff6ad0fd3 in epoll_wait () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007fffb03dae84 in eal_intr_thread_main () from /home/soundarya/june4/vpp/build-root/install-vpp_debug-native/vpp/lib/vpp_plugins/dpdk_plugin.so #2 0x00007ffff7b53ea5 in start_thread (arg=0x7fffac0de700) at pthread_create.c:307 #3 0x00007ffff6ad09fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 1 (Thread 0x7ffff3218940 (LWP 10048)): #0 0x00007ffff51a57f9 in vlib_main_or_worker_loop (vm=0x7fffb3115680, is_main=1) at /home/soundarya/june4/vpp/src/vlib/main.c:1764 #1 0x00007ffff51a599e in vlib_main_loop (vm=0x7fffb3115680) at /home/soundarya/june4/vpp/src/vlib/main.c:1794 #2 0x00007ffff51a69f6 in vlib_main (vm=0x7fffb3115680, input=0x7fffae6c3fb0) at /home/soundarya/june4/vpp/src/vlib/main.c:2083 #3 0x00007ffff52118c1 in thread0 (arg=140736197645952) at /home/soundarya/june4/vpp/src/vlib/unix/main.c:671 #4 0x00007ffff7e5d638 in clib_calljmp () at /home/5G/vpp/src/vppinfra/longjmp.S:123 #5 0x00007fffffffafa0 in ?? () #6 0x00007ffff5212010 in vlib_unix_main (argc=37, argv=0x46a3c0) at /home/soundarya/june4/vpp/src/vlib/unix/main.c:751 #7 0x00007ffff7f2774e in cust_main (argc=37, argv=0x46a3c0) at /home/soundarya/june4/vpp/src/vpp/vnet/main.c:339 #8 0x000000000041757c in main () at /home/soundarya/june4/ViNGC/upf/DataPlane/packetProcessing/vpp/dp/sim/src/altvppsim.c:119 (gdb) Any points to resolve it? Thanks in Advance! Regards, Akash On Wed, May 19, 2021 at 5:48 PM Akash S R via lists.fd.io <http://lists.fd.io> <akashsr.akashsr=gmail....@lists.fd.io <mailto:gmail....@lists.fd.io> > wrote: Thanks Dave, Will check it out and get back here if any query is to be addressed. Regards, Akash On Wed, May 19, 2021, 4:51 PM <v...@barachs.net <mailto:v...@barachs.net> > wrote: Long ago, we decided to strictly separate the vpp data plane process from its control plane process(es); as a matter of fault containment if nothing else. As a practical matter, if you want to build vpp as a library you could change .../src/vpp/vnet/main.c in trivial ways, and adjust .../src/vpp/CMakeLists.txt to build a shared library instead of a standalone binary. Bottom line: I wouldn’t go there myself for any number of reasons, but it wouldn’t be difficult. HTH... Dave From: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> <vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> > On Behalf Of Akash S R Sent: Wednesday, May 19, 2021 6:31 AM To: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> Cc: srilcha...@gmail.com <mailto:srilcha...@gmail.com> Subject: [vpp-dev] Quick question on VPP on : How to Embed VPP as library Hi All, We are using VPP version 21.06 (Latest) We understand that vpp package consists of libraries , plugins,dev and debugs utilities and runs as exe . But as per our current usage , we have a control plane application layer from which we have included VPP packages as libraries from our Makefile . We launch VPP as a separate process and we invoke VAPI's using socket. What is the way to embed VPP directly as a library (Instead of a separate process ) and directly invoke VAPI's from control plane applications ? This is important since we need to know how to deliver VPP as a library to our client. Please Reply Back if any Related Solution is known. Thanks in Advance! Regards, Akash
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#19550): https://lists.fd.io/g/vpp-dev/message/19550 Mute This Topic: https://lists.fd.io/mt/82933046/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-