Hi Venu, Probably going through [2] lower would be advisable at this point as you’ll find more info there.
LDP can only be used when the application is ld_preload-able and it works by intercepting app syscalls and redirecting them to vcl. Note that even if the app is ld_preloade-able, the ldp shim is not guaranteed to always work correctly (it has to do with they way the app uses sockets and socket options). VCL is just a library that simplifies interaction with the host stack in vpp, therefore both ldp and vcl depend on vpp. Regards, Florin > On Dec 8, 2020, at 7:45 AM, Venumadhav Josyula <vjosy...@gmail.com> wrote: > > Also does either are independent or require vpp host stack ? > > Thanks and regards > Venu > > On Tue, 8 Dec, 2020, 9:13 pm Venumadhav Josyula, <vjosy...@gmail.com > <mailto:vjosy...@gmail.com>> wrote: > Hi Florin, > > What's difference between ldp and direct vcl ? I mean in terms of use cases > > Thanks and Regards > Venu > > On Tue, 8 Dec, 2020, 8:47 pm Florin Coras, <fcoras.li...@gmail.com > <mailto:fcoras.li...@gmail.com>> wrote: > Hi Venu, > > Those are used for ldp tests. That is, they use normal sockets which go > through our ldp (LD_PRELOAD) shim and eventually through vcl. vcl_test_client > and vcl_test_server are the tests that use vcl directly. > > Regards, > Florin > >> On Dec 8, 2020, at 2:11 AM, Venumadhav Josyula <vjosy...@gmail.com >> <mailto:vjosy...@gmail.com>> wrote: >> >> Hi Florin, >> >> The below are vcl based, my understanding it is based normal sockets >> build-root/rpmbuild/vpp-21.01/src/plugins/hs_apps/vcl/sock_test.h >> build-root/rpmbuild/vpp-21.01/src/plugins/hs_apps/vcl/sock_test_client.c >> build-root/rpmbuild/vpp-21.01/src/plugins/hs_apps/vcl/sock_test_server.c >> These files use normal socket(s) right now VCL >> >> Thanks, >> Regards, >> Venu >> >> On Tue, 8 Dec 2020 at 01:07, Florin Coras <fcoras.li...@gmail.com >> <mailto:fcoras.li...@gmail.com>> wrote: >> Hi Venu, >> >> You’ll find documentation regarding the host stack in general and vcl in >> particular here [1] (see for instance [2]). As for code examples, check here >> [3] the vcl test client/server apps. >> >> Regards, >> Florin >> >> [1] https://wiki.fd.io/view/VPP/HostStack >> <https://wiki.fd.io/view/VPP/HostStack> >> [2] https://wiki.fd.io/images/9/9c/Vpp-hoststack-kc-eu19.pdf >> <https://wiki.fd.io/images/9/9c/Vpp-hoststack-kc-eu19.pdf> >> [3] https://git.fd.io/vpp/tree/src/plugins/hs_apps/vcl >> <https://git.fd.io/vpp/tree/src/plugins/hs_apps/vcl> >> >> >>> On Dec 7, 2020, at 11:24 AM, Venumadhav Josyula <vjosy...@gmail.com >>> <mailto:vjosy...@gmail.com>> wrote: >>> >>> Hi Florin, >>> >>> This is nothing to do with the subject being discussed. >>> >>> Can you please direct me to the following >>> i) example(s) of VCL ? >>> ii) Any tutorial explaining the working of VCL ? >>> >>> Thanks & Regards, >>> Venu >>> >>> On Fri, 4 Dec 2020 at 01:28, Florin Coras <fcoras.li...@gmail.com >>> <mailto:fcoras.li...@gmail.com>> wrote: >>> Hi Ravi, >>> >>> VCL is not part of the vpp app/process, it’s a library that applications >>> can link against to be able to interact with the session layer in a more >>> posix-like manner. So if your app needs a binary api connection to vpp, it >>> needs to set it up independent of vcl. >>> >>> With regard to the “vpe-api” region, it’s worth nothing that the binary api >>> can work over two “transports”. Namely: >>> >>> 1) posix shared memory, and this is the one that relies on the vpe-api >>> region for bootstrapping and >>> 2) an af_unix socket which is configurable in startup.conf, i.e., by doing >>> something like socksvr { socket-name <filename> }. >>> >>> This is somewhat further complicated by the fact that a binary api >>> connection bootstrapped over a socket (option 2) can be switched to a >>> shared memory transport. Although similar to option1, in this case, the >>> memory is allocated and negotiated per binary api client using memfds and >>> the socket. This is what VCL uses underneath if configured to use the >>> binary api with the socket transport. >>> >>> Previously, VCL could also be configured to use option 1, but support for >>> this has been recently dropped. >>> >>> Regards, >>> Florin >>> >>>> On Dec 3, 2020, at 7:22 AM, RaviKiran Veldanda <ravi.jup...@gmail.com >>>> <mailto:ravi.jup...@gmail.com>> wrote: >>>> >>>> Hi Florin, >>>> Thanks for your response, however I have a question, If I want to use >>>> another Binary API initialization do we need to do at our Application or >>>> in VPP code. >>>> When I check VPP source code, the initialization always with "vpe-api" >>>> vpe_api_init calls always vl_set_memory_region_name ("/vpe-api"); so >>>> wondering do we have any other region present? >>>> >>>> FYI: We are using 20.05 stable version. >>>> Regards, >>>> Ravi. >>>> >>>> >>>> >>> >>> >>> >> >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#18288): https://lists.fd.io/g/vpp-dev/message/18288 Mute This Topic: https://lists.fd.io/mt/78677945/21656 Mute #binapi:https://lists.fd.io/g/vpp-dev/mutehashtag/binapi Mute #vapi:https://lists.fd.io/g/vpp-dev/mutehashtag/vapi Mute #vppcom:https://lists.fd.io/g/vpp-dev/mutehashtag/vppcom Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-