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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to