Hi Florin, Thank you for clarifying. You said that when the LD_PRELOAD env variable is set just before I start the application then only that application syscalls are intercepted. Can you explain how is that mapping is done ( To determine which application socket API needs to be intercepted) ? For example, I have application A started initially which is using standard socket API. Also, I have application B which I started after setting the LD_PRELOAD variable and then I have application C which wants to use standard socket API which I started after application B. So I unset the env variable. Can you explain which system calls are intercepted and which are not... I would expect Application A to still used traditional socket API (not intercepted) and even after setting the LD_PRELOAD variable and Application C to use traditional socket API after unsetting the variable and Application B to continue to use the LDP path (Socket calls intercepted). Is it possible?
Thanks, Satish K Amara On Thu, Jul 22, 2021 at 1:29 PM Florin Coras <fcoras.li...@gmail.com> wrote: > Hi Satish, > > If the LD_PRELOAD env variable is only set when starting the application, > only that application’s syscalls are intercepted. Also note that we don’t > intercept all syscalls (check ldp.c for more details). So yes, the > architecture in your diagram should be possible. > > Regards, > Florin > > On Jul 22, 2021, at 9:35 AM, satish amara <satishkam...@gmail.com> wrote: > > Hi Florin, > Thanks! It mentions setting some config files and env variables. The > LDP_PATH sets the path libvcl_ldpreload.so > I am trying to understand the logistics. Once I do that does mean all > networking applications on the host try to use LDP if they can. > I don't have any application-specific config. Please look into my attached > diagram. Do I have the ability to tell only specific apps to use LDP. > This is for cases where I don't want to rewrite the socket API. > > Thanks, > Satish K Amara > > > > On Thu, Jul 22, 2021 at 10:36 AM Florin Coras <fcoras.li...@gmail.com> > wrote: > >> Hi Satish, >> >> You can find an example of how to use Nginx with LDP here [1]. In general >> you can find host stack documentation here [2]. >> >> Regards, >> Florin >> >> [1] https://wiki.fd.io/view/VPP/HostStack/LDP/nginx >> [2] https://wiki.fd.io/view/VPP/HostStack >> >> >> On Jul 22, 2021, at 7:27 AM, satish amara <satishkam...@gmail.com> wrote: >> >> Hi, >> I see we have a couple of options for user applications to use the VPP >> TCP/IP stack. Either by VCL or LD_PRELOAD. I am trying to understand if we >> can selectively intercept syscalls and injects them into VLS for >> specific applications. Is LD_PRELOAD can application specific. If so >> what is the procedure? >> >> Thanks, >> >> >> <PacketFlowpng.png> > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#19852): https://lists.fd.io/g/vpp-dev/message/19852 Mute This Topic: https://lists.fd.io/mt/84380120/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-