Hi All, I am not getting reply for punt socket register for the following code
*C-Code* volatile int sigterm_received = 0; volatile u32 result_ready; volatile u16 result_msg_id; /* M_NOALLOC: construct, but don't yet send a message */ #define M_NOALLOC(T,t) \ do { \ result_ready = 0; \ clib_memset (mp, 0, sizeof (*mp)); \ mp->_vl_msg_id = ntohs (VL_API_##T); \ mp->client_index = am->my_client_index; \ } while(0); void wrap_vac_callback (unsigned char *data, int len) { result_ready = 1; result_msg_id = ntohs(*((u16 *)data)); vl_api_punt_socket_register_reply_t *rmp = (vl_api_punt_socket_register_reply_t *)data; printf(" vpp punt socket path \n", rmp->pathname); printf("message id : %d\n", result_msg_id); } static void test_connect () { static int i; int rv = vac_connect("vac_client", NULL, wrap_vac_callback, 32 /* rx queue-length*/); if (rv != 0) { printf("Connect failed: %d\n", rv); exit(rv); } printf("."); vac_disconnect(); i++; } static void test_messages (void) { api_main_t * am = vlibapi_get_main(); vl_api_show_version_t message; vl_api_show_version_t *mp; int async = 1; int rv = vac_connect("vac_client", NULL, wrap_vac_callback, 32 /* rx queue-length*/); if (rv != 0) { printf("Connect failed: %d\n", rv); exit(rv); } printf("Connected to vpp...: %d\n", rv); double timestamp_start = unix_time_now_nsec() * 1e-6; /* * Test vpe_api_write and vpe_api_read to send and recv message for an * API */ int i; long int no_msgs = 10; mp = &message; for (i = 0; i < no_msgs; i++) { /* Construct the API message */ M_NOALLOC(SHOW_VERSION, show_version); printf(" writing show version message: \n"); vac_write((char *)mp, sizeof(*mp)); #ifndef __COVERITY__ /* As given, async is always 1. Shut up Coverity about it */ if (!async) while (result_ready == 0); #endif } if (async) { vl_api_control_ping_t control; vl_api_control_ping_t *mp; mp = &control; M_NOALLOC(CONTROL_PING, control_ping); printf(" writing control ping message...: \n"); vac_write((char *)mp, sizeof(*mp)); while (result_msg_id != VL_API_CONTROL_PING_REPLY); } double timestamp_end = unix_time_now_nsec() * 1e-6; printf("\nTook %.2f msec, %.0f msgs/msec \n", (timestamp_end - timestamp_start), no_msgs/(timestamp_end - timestamp_start)); printf("Exiting...\n"); vac_disconnect(); } #define READ_PATH "/tmp/strongswan-uds-socket" #define PUNT_SOCKET_REGISTER_REPLY "punt_socket_register_reply" static void test_punt_socket_register_message(void) { api_main_t * am = vlibapi_get_main(); vl_api_punt_socket_register_t *mp; char *read_buffer; int msg_length; char *read_path = READ_PATH; int async = 1; int rv = vac_connect("vac_client", NULL, wrap_vac_callback, 32 /* rx queue-length*/); if (rv != 0) { printf("Connect failed: %d\n", rv); exit(rv); } printf("Connected to vpp...: %d\n", rv); double timestamp_start = unix_time_now_nsec() * 1e-6; if (async) { mp = vl_msg_api_alloc(sizeof(*mp)); memset(mp, 0, sizeof(*mp)); mp->_vl_msg_id = ntohs(VL_API_PUNT_SOCKET_REGISTER); printf(" message id VL_API_PUNT_SOCKET_REGISTER %d",VL_API_PUNT_SOCKET_REGISTER); printf(" message id VL_API_PUNT_SOCKET_REGISTER %d",VL_API_PUNT_SOCKET_REGISTER_REPLY); mp->header_version = ntohl(1); mp->punt.type = PUNT_API_TYPE_L4; mp->punt.punt.l4.af = ADDRESS_IP4; mp->punt.punt.l4.protocol = IPPROTO_UDP; mp->punt.punt.l4.port = ntohs(4500); mp->client_index = am->my_client_index; strncpy(mp->pathname, read_path, 107); printf(" writing punt socket register...: \n"); vac_write((char *)mp, sizeof(*mp)); while (result_msg_id != VL_API_PUNT_SOCKET_REGISTER_REPLY); } printf(" message id VL_API_PUNT_SOCKET_REGISTER %d",VL_API_CONTROL_PING_REPLY); if (async) { vl_api_control_ping_t control; vl_api_control_ping_t *mp; mp = &control; M_NOALLOC(CONTROL_PING, control_ping); printf(" writing control ping message...: \n"); vac_write((char *)mp, sizeof(*mp)); while (result_msg_id != VL_API_CONTROL_PING_REPLY); } double timestamp_end = unix_time_now_nsec() * 1e-6; printf("\nTook %.2f msec, %.0f msgs/msec \n", (timestamp_end - timestamp_start), 1/(timestamp_end - timestamp_start)); printf("Exiting...\n"); vac_disconnect(); } int main (int argc, char ** argv) { clib_mem_init (0, 3ULL << 30); #if 0 test_stats(); #endif int i; /* for (i = 0; i < 10; i++) { test_connect(); } */ /* test_messages();*/ test_punt_socket_register_message(); exit (0); } *Compilation Options used* gcc vpp_api_client_vac_layer.c -o vpp_api_client_vac_layer.o -lpthread -lvlibmemoryclient -lvppinfra -lvppapiclient -I/usr/include/ *Output* [root@8f57181df3a1 vpp_c_api_examples]# ./vpp_api_client_vac_layer.o Connected to vpp...: 0 message id VL_API_PUNT_SOCKET_REGISTER 538 message id VL_API_PUNT_SOCKET_REGISTER 539 writing punt socket register...: It is stuck, can you please suggest how to debug this ? Thanks, Regards, Venu On Fri, 1 Oct 2021 at 14:12, Venumadhav Josyula via lists.fd.io <vjosyula= gmail....@lists.fd.io> wrote: > Thanks, my mistake, it worked... > > On Fri, 1 Oct 2021 at 13:34, Stanislav Zaikin <zsta...@gmail.com> wrote: > >> You need to uncomment clib_mem_init >> >> On Fri, 1 Oct 2021 at 10:01, Venumadhav Josyula <vjosy...@gmail.com> >> wrote: >> >>> Hi Ole, >>> >>> So instead of the code below, I tried the code from >>> "src/vpp-api/client/test.c". I directly copied this into my .c file. And >>> following commands i used >>> >>> compilation + linking : - gcc vpp_api_client_vac_layer.c -o >>> vpp_api_client_vac_layer.o -lpthread -lvlibmemoryclient -lvppinfra >>> -lvppapiclient -I/usr/include/ >>> code is below >>> #include<stdio.h> >>> #include<stdlib.h> >>> #include <vnet/vnet.h> >>> #include <vlib/vlib.h> >>> #include <vlib/unix/unix.h> >>> #include <vlibapi/api.h> >>> #include <vppinfra/time.h> >>> #include <vpp/api/vpe_msg_enum.h> >>> #include <signal.h> >>> >>> #include<vpp-api/client/vppapiclient.h> >>> #include<vpp-api/client/stat_client.h> >>> >>> #define vl_typedefs /* define message structures */ >>> #include <vpp/api/vpe_all_api_h.h> >>> #undef vl_typedefs >>> >>> >>> volatile int sigterm_received = 0; >>> volatile u32 result_ready; >>> volatile u16 result_msg_id; >>> >>> /* M_NOALLOC: construct, but don't yet send a message */ >>> >>> #define M_NOALLOC(T,t) \ >>> do { \ >>> result_ready = 0; \ >>> clib_memset (mp, 0, sizeof (*mp)); \ >>> mp->_vl_msg_id = ntohs (VL_API_##T); \ >>> mp->client_index = am->my_client_index; \ >>> } while(0); >>> >>> void >>> wrap_vac_callback (unsigned char *data, int len) >>> { >>> result_ready = 1; >>> result_msg_id = ntohs(*((u16 *)data)); >>> } >>> >>> static void >>> test_connect () >>> { >>> static int i; >>> int rv = vac_connect("vac_client", NULL, wrap_vac_callback, 32 >>> /* rx queue-length*/); >>> if (rv != 0) { >>> printf("Connect failed: %d\n", rv); >>> exit(rv); >>> } >>> printf("."); >>> vac_disconnect(); >>> i++; >>> } >>> >>> static void test_messages (void) >>> { >>> api_main_t * am = vlibapi_get_main(); >>> vl_api_show_version_t message; >>> vl_api_show_version_t *mp; >>> int async = 1; >>> >>> int rv = vac_connect("vac_client", NULL, wrap_vac_callback, 32 >>> /* rx queue-length*/); >>> if (rv != 0) { >>> printf("Connect failed: %d\n", rv); >>> exit(rv); >>> } >>> >>> double timestamp_start = unix_time_now_nsec() * 1e-6; >>> >>> /* >>> * Test vpe_api_write and vpe_api_read to send and recv message >>> for an >>> * API >>> */ >>> int i; >>> long int no_msgs = 10000; >>> mp = &message; >>> >>> for (i = 0; i < no_msgs; i++) { >>> /* Construct the API message */ >>> M_NOALLOC(SHOW_VERSION, show_version); >>> vac_write((char *)mp, sizeof(*mp)); >>> #ifndef __COVERITY__ >>> /* As given, async is always 1. Shut up Coverity about >>> it */ >>> if (!async) >>> while (result_ready == 0); >>> #endif >>> } >>> if (async) { >>> vl_api_control_ping_t control; >>> vl_api_control_ping_t *mp; >>> mp = &control; >>> M_NOALLOC(CONTROL_PING, control_ping); >>> vac_write((char *)mp, sizeof(*mp)); >>> >>> while (result_msg_id != VL_API_CONTROL_PING_REPLY); >>> } >>> >>> double timestamp_end = unix_time_now_nsec() * 1e-6; >>> printf("\nTook %.2f msec, %.0f msgs/msec \n", (timestamp_end - >>> timestamp_start), >>> no_msgs/(timestamp_end - timestamp_start)); >>> printf("Exiting...\n"); >>> vac_disconnect(); >>> } >>> >>> >>> int main (int argc, char ** argv) >>> { >>> #if 0 >>> clib_mem_init (0, 3ULL << 30); >>> test_stats(); >>> #endif >>> >>> int i; >>> >>> for (i = 0; i < 1000; i++) { >>> test_connect(); >>> } >>> >>> test_messages(); >>> exit (0); >>> } >>> >>> It compiled successfully, i got following assert for heap >>> [root@8f57181df3a1 vpp_c_api_examples]# gdb ./vpp_api_client_vac_layer.o >>> GNU gdb (GDB) Red Hat Enterprise Linux 8.3-3.el7 >>> Copyright (C) 2019 Free Software Foundation, Inc. >>> License GPLv3+: GNU GPL version 3 or later < >>> http://gnu.org/licenses/gpl.html> >>> This is free software: you are free to change and redistribute it. >>> There is NO WARRANTY, to the extent permitted by law. >>> Type "show copying" and "show warranty" for details. >>> This GDB was configured as "x86_64-redhat-linux-gnu". >>> Type "show configuration" for configuration details. >>> For bug reporting instructions, please see: >>> <http://www.gnu.org/software/gdb/bugs/>. >>> Find the GDB manual and other documentation resources online at: >>> <http://www.gnu.org/software/gdb/documentation/>. >>> >>> For help, type "help". >>> Type "apropos word" to search for commands related to "word"... >>> Reading symbols from ./vpp_api_client_vac_layer.o... >>> (No debugging symbols found in ./vpp_api_client_vac_layer.o) >>> (gdb) r >>> Starting program: /root/vpp_c_api_examples/vpp_api_client_vac_layer.o >>> Missing separate debuginfos, use: debuginfo-install >>> glibc-2.17-324.el7_9.x86_64 >>> [Thread debugging using libthread_db enabled] >>> Using host libthread_db library "/lib64/libthread_db.so.1". >>> vpp_api_client_vac_layer.o: >>> /vpp/build-root/rpmbuild/vpp-21.06.0/src/vpp-api/client/client.c:295: >>> vac_connect: Assertion `clib_mem_get_heap ()' failed. >>> >>> Program received signal SIGABRT, Aborted. >>> 0x00007ffff7827387 in raise () from /lib64/libc.so.6 >>> (gdb) bt >>> #0 0x00007ffff7827387 in raise () from /lib64/libc.so.6 >>> #1 0x00007ffff7828a78 in abort () from /lib64/libc.so.6 >>> #2 0x00007ffff78201a6 in __assert_fail_base () from /lib64/libc.so.6 >>> #3 0x00007ffff7820252 in __assert_fail () from /lib64/libc.so.6 >>> #4 0x00007ffff7f57bcd in vac_connect (name=0x402010 "vac_client", >>> chroot_prefix=0x0, cb=0x4011d2 <wrap_vac_callback>, rx_qlen=32) >>> at /usr/src/debug/vpp-21.06.0/src/vpp-api/client/client.c:314 >>> #5 0x0000000000401227 in test_connect () >>> #6 0x0000000000401687 in main () >>> (gdb) >>> >>> Startup.conf >>> [root@8f57181df3a1 vpp_c_api_examples]# cat /etc/vpp/startup.conf >>> unix { >>> #nodaemon >>> #interactive >>> log /var/log/vpp/vpp.log >>> cli-listen /run/vpp/cli.sock >>> gid vpp >>> #exec /etc/ipsec-setup.txt >>> } >>> >>> cpu { >>> main-core 2 >>> } >>> >>> dpdk { >>> dev default { >>> num-rx-desc 512 >>> num-tx-desc 512 >>> } >>> socket-mem 1024 >>> dev 0000:00:04.0 >>> uio-driver uio_pci_generic >>> } >>> >>> logging { >>> default-log-level debug >>> default-syslog-log-level info >>> } >>> [root@8f57181df3a1 vpp_c_api_examples]# >>> I >>> Is there some setting i need to do in the startup.conf ? >>> >>> Please suggest a way to fix this assert. >>> >>> Thanks, >>> Regards >>> Venu >>> >>> On Thu, 30 Sept 2021 at 21:08, Benoit Ganne (bganne) <bga...@cisco.com> >>> wrote: >>> >>>> You should remove -lvlib it is not needed here. >>>> If you really want to link with vlib, you must fix the link ordering: >>>> vlib depends upon vppinfra (where os_exit is defined) so you'd need link as >>>> -lvlib -lvppinfra instead of the opposite (the C linker scan libraries >>>> symbols in reverse order, so symbols declared in a library are available to >>>> libraries listed *before*). >>>> >>>> Best >>>> ben >>>> >>>> > -----Original Message----- >>>> > From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of >>>> Venumadhav >>>> > Josyula >>>> > Sent: jeudi 30 septembre 2021 16:09 >>>> > To: Akash S R <akashsr.akas...@gmail.com> >>>> > Cc: Benoit Ganne (bganne) <bga...@cisco.com>; Ole Troan >>>> > <otr...@employees.org>; RaviKiran Veldanda <ravi.jup...@gmail.com>; >>>> vpp- >>>> > dev <vpp-dev@lists.fd.io> >>>> > Subject: Re: [vpp-dev] VPP Socket API how to use from the application >>>> > #socket-api #vpp #sock-api >>>> > >>>> > Hi Akash, >>>> > >>>> > Thansks, now after devtoolset, >>>> > >>>> > >>>> > @Benoit Ganne (bganne) <mailto:bga...@cisco.com> , @Ole Troan >>>> > <mailto:otr...@employees.org> >>>> > >>>> > i am getting following error >>>> > >>>> > [root@8f57181df3a1 vpp_c_api_examples]# gcc vpp_api_client_test3.c -o >>>> > vpp_api_client_test3.o -lvlibmemoryclient -lsvm -lvppinfra -lvlib >>>> > /opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: >>>> > /lib/../lib64/libvlib.so: undefined reference to >>>> > `classify_get_trace_chain' >>>> > /opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: >>>> > /lib/../lib64/libvlib.so: undefined reference to >>>> > `stat_segment_register_gauge' >>>> > /opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: >>>> > /lib/../lib64/libvlib.so: undefined reference to `os_exit' >>>> > collect2: error: ld returned 1 exit status >>>> > [root@8f57181df3a1 vpp_c_api_examples]# >>>> > >>>> > Let me paste the code again, >>>> > #include<stdio.h> >>>> > #include<stdlib.h> >>>> > #include <vlibapi/api.h> >>>> > #include <vlibmemory/api.h> >>>> > #include <vpp/api/vpe_msg_enum.h> >>>> > >>>> > #define vl_typedefs >>>> > #define vl_endianfun >>>> > #include <vpp/api/vpe_all_api_h.h> >>>> > #undef vl_typedefs >>>> > #undef vl_endianfun >>>> > >>>> > int main() >>>> > { >>>> > char *name = "vpp-test-app"; >>>> > >>>> > clib_mem_init_thread_safe (0, 64ULL << 20); >>>> > >>>> > if (vl_client_api_map("/vpe-api")) >>>> > { >>>> > printf("unable to map....\n"); >>>> > goto quit; >>>> > } >>>> > if (vl_client_connect("vpp-test-app", 0, 32) < 0) >>>> > { >>>> > printf("unable to connect \n"); >>>> > vl_client_api_unmap(); >>>> > goto quit; >>>> > } >>>> > printf("successfully connected... \n"); >>>> > quit: >>>> > return 0; >>>> > } >>>> > >>>> > Is this wrong way, i am trying to use APIs ? >>>> > >>>> > Thanks, >>>> > Regards >>>> > Venu >>>> > >>>> > >>>> > On Thu, 30 Sept 2021 at 19:00, Akash S R <akashsr.akas...@gmail.com >>>> > <mailto:akashsr.akas...@gmail.com> > wrote: >>>> > >>>> > >>>> > Hey Venu, >>>> > >>>> > Try "scl enable devtoolset-9 bash" inside your docker or update >>>> your >>>> > gcc version. >>>> > >>>> > >>>> > /Akash S R >>>> > >>>> > On Thu, Sep 30, 2021, 18:54 Venumadhav Josyula < >>>> vjosy...@gmail.com >>>> > <mailto:vjosy...@gmail.com> > wrote: >>>> > >>>> > >>>> > Hi Benoit, >>>> > >>>> > Thanks for quick reply. >>>> > >>>> > I have docker with following >>>> > [root@8f57181df3a1 vpp_c_api_examples]# rpm -qa | grep >>>> vpp >>>> > vpp-lib-21.06.0-4~g0d9d3a0.x86_64 >>>> > vpp-api-lua-21.06.0-4~g0d9d3a0.x86_64 >>>> > vpp-api-python3-21.06.0-4~g0d9d3a0.x86_64 >>>> > vpp-debuginfo-21.06.0-4~g0d9d3a0.x86_64 >>>> > vpp-selinux-policy-21.06.0-4~g0d9d3a0.x86_64 >>>> > vpp-21.06.0-4~g0d9d3a0.x86_64 >>>> > vpp-plugins-21.06.0-4~g0d9d3a0.x86_64 >>>> > vpp-devel-21.06.0-4~g0d9d3a0.x86_64 >>>> > >>>> > This will vpp running in it. >>>> > >>>> > [root@8f57181df3a1 /]# cat /etc/redhat-release >>>> > CentOS Linux release 7.3.1611 (Core) >>>> > [root@8f57181df3a1 /]# >>>> > >>>> > > Eg. use devtoolset-9 (gcc-9). >>>> > >>>> > >>>> > How do I use it ? >>>> > >>>> > Thanks, >>>> > Regards, >>>> > Venu >>>> > >>>> > >>>> > On Thu, 30 Sept 2021 at 18:47, Benoit Ganne (bganne) >>>> > <bga...@cisco.com <mailto:bga...@cisco.com> > wrote: >>>> > >>>> > >>>> > You should upgrade your compiler... GCC-4 is >>>> way too >>>> > old. >>>> > Eg. use devtoolset-9 (gcc-9). >>>> > >>>> > Best >>>> > ben >>>> > >>>> > > -----Original Message----- >>>> > > 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 >>>> > Venumadhav >>>> > > Josyula >>>> > > Sent: jeudi 30 septembre 2021 14:49 >>>> > > To: otr...@employees.org <mailto: >>>> otr...@employees.org> >>>> > > Cc: RaviKiran Veldanda <ravi.jup...@gmail.com >>>> > <mailto:ravi.jup...@gmail.com> >; vpp-dev <vpp- >>>> > > d...@lists.fd.io <mailto:d...@lists.fd.io> > >>>> > > Subject: Re: [vpp-dev] VPP Socket API how to >>>> use from >>>> > the application >>>> > > #socket-api #vpp #sock-api >>>> > > >>>> > > Hi Ole / Others, >>>> > > >>>> > > >>>> > > >>>> > > Thanks for your email, i getting following >>>> compilation >>>> > error >>>> > > [root@8f57181df3a1 vpp_c_api_examples]# gcc >>>> > vpp_api_client_test3.c -o >>>> > > vpp_api_client_test3.o -lvlibmemoryclient >>>> -lsvm - >>>> > lvppinfra -lvlib >>>> > > In file included from >>>> > /usr/include/vppinfra/error.h:41:0, >>>> > > from >>>> /usr/include/vlibapi/api.h:24, >>>> > > from >>>> vpp_api_client_test3.c:3: >>>> > > /usr/include/vppinfra/clib.h:43:18: error: >>>> missing >>>> > binary operator before >>>> > > token "(" >>>> > > #if __has_include(<vppinfra/config.h>) >>>> > > ^ >>>> > > In file included from >>>> > /usr/include/vppinfra/mem.h:49:0, >>>> > > from >>>> /usr/include/vppinfra/vec.h:42, >>>> > > from >>>> > /usr/include/vppinfra/error.h:53, >>>> > > from >>>> /usr/include/vlibapi/api.h:24, >>>> > > from >>>> vpp_api_client_test3.c:3: >>>> > > /usr/include/vppinfra/string.h:92:34: error: >>>> expected >>>> > ';', ',' or ')' >>>> > > before 'dst' >>>> > > clib_memcpy_fast (void *restrict dst, const >>>> void >>>> > *restrict src, size_t n) >>>> > > ^ >>>> > > [root@8f57181df3a1 vpp_c_api_examples]# vim >>>> > /usr/include/vppinfra/clib.h >>>> > > +43 >>>> > > [root@8f57181df3a1 vpp_c_api_examples]# vim >>>> > /usr/include/vppinfra/clib.h >>>> > > +43 >>>> > > [root@8f57181df3a1 vpp_c_api_examples]# gcc >>>> --version >>>> > > gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) >>>> > > Copyright (C) 2015 Free Software Foundation, >>>> Inc. >>>> > > This is free software; see the source for >>>> copying >>>> > conditions. There is NO >>>> > > warranty; not even for MERCHANTABILITY or >>>> FITNESS FOR >>>> > A PARTICULAR >>>> > > PURPOSE. >>>> > > >>>> > > [root@8f57181df3a1 vpp_c_api_examples]# >>>> > > >>>> > > >>>> > > ----------------- >>>> > > >>>> > > c -code >>>> > > ---------------- >>>> > > >>>> > > >>>> > > #include<stdio.h> >>>> > > #include<stdlib.h> >>>> > > #include <vlibapi/api.h> >>>> > > #include <vlibmemory/api.h> >>>> > > #include <vpp/api/vpe_msg_enum.h> >>>> > > >>>> > > #define vl_typedefs >>>> > > #define vl_endianfun >>>> > > #include <vpp/api/vpe_all_api_h.h> >>>> > > #undef vl_typedefs >>>> > > #undef vl_endianfun >>>> > > >>>> > > int main() >>>> > > { >>>> > > char *name = "vpp-test-app"; >>>> > > >>>> > > clib_mem_init_thread_safe (0, 64ULL << 20); >>>> > > >>>> > > if (vl_client_api_map("/vpe-api")) >>>> > > { >>>> > > printf("unable to map....\n"); >>>> > > goto quit; >>>> > > } >>>> > > if (vl_client_connect("vpp-test-app", 0, >>>> 32) < 0) >>>> > > { >>>> > > printf("unable to connect \n"); >>>> > > vl_client_api_unmap(); >>>> > > goto quit; >>>> > > } >>>> > > printf("successfully connected... \n"); >>>> > > quit: >>>> > > return 0; >>>> > > } >>>> > > >>>> > > >>>> > > ------------ >>>> > > >>>> > > >>>> > > Can you please suggest what can i be doing >>>> worng ? >>>> > > >>>> > > >>>> > > Thanks, >>>> > > Regards, >>>> > > Venu >>>> > > >>>> > > >>>> > > On Thu, 30 Sept 2021 at 13:21, < >>>> otr...@employees.org >>>> > <mailto:otr...@employees.org> >>>> > > <mailto:otr...@employees.org >>>> > <mailto:otr...@employees.org> > > wrote: >>>> > > >>>> > > >>>> > > Hi Venu, >>>> > > >>>> > > > Any examples for VAPI shared to use >>>> binary >>>> > APIs ? >>>> > > >>>> > > Try this for a start: >>>> > > https://git.fd.io/vpp/tree/src/vpp- >>>> > api/vapi/vapi_c_test.c >>>> > > >>>> > > Cheers, >>>> > > Ole >>>> > > >>>> > > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> >>>> >>> >>> >>> >> >> -- >> Best regards >> Stanislav Zaikin >> > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#20300): https://lists.fd.io/g/vpp-dev/message/20300 Mute This Topic: https://lists.fd.io/mt/85796959/21656 Mute #vpp:https://lists.fd.io/g/vpp-dev/mutehashtag/vpp Mute #socket-api:https://lists.fd.io/g/vpp-dev/mutehashtag/socket-api Mute #sock-api:https://lists.fd.io/g/vpp-dev/mutehashtag/sock-api Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-