Hi Klement,
    I do not understande your mean.    VPP cmdline?

I want to make my ext-program who can initialize the running vpp-service not by 
vppctl-shell

"systemctl start VPP"    without any change for vpp-code and startup.conf.
Can you describe their relationship?
 My executable program name is "test", and how can i  connect to vpp?



wangchuan...@163.com
 
From: Klement Sekera
Date: 2018-09-14 19:55
To: wangchuan...@163.com; Ole Troan
CC: Dave Barach (dbarach); vpp-dev
Subject: Re: [vpp-dev] VPP's C-type-api example
And what is your vpp cmdline? is vpp running with "my-api-test" api
prefix?
 
Quoting wangchuan...@163.com (2018-09-14 07:25:06)
>    sorry,
>        That my carelessness.  Whole cmd as root  is :   #./test "/my-api"
>    "my-api-test"
>    And vpp_api_test can connect to vpp.
> 
>    --------------------------------------------------------------------------
> 
>    wangchuan...@163.com
> 
>       
>      From: [1]Ole Troan
>      Date: 2018-09-14 00:35
>      To: [2]wangchuanguo
>      CC: [3]Klement Sekera -X (ksekera - PANTHEON TECHNOLOGIES at Cisco);
>      [4]Dave Barach (dbarach); [5]vpp-dev
>      Subject: Re: [vpp-dev] VPP's C-type-api example
>      > 1、as root, install the rpm(vpp-selinux, vpp-lib, vpp-18.04,
>      vpp-plugins),  start service vpp and I come into vppctl.
>      > 2、I copy test/ext/vapi_c_test.c to main.c(a new file, a new dir).
>      >            compile using: gcc -std=gnu99 -g -Wall -pthread 
>      -I/usr/include/ -lvppinfra -lvlibmemoryclient -lsvm -lpthread -lcheck
>      -lrt -lm -lvapiclient -lsubunit main.c -o test
>      > 3、then,    #./test        
>      >            But it shows vl_map_shmem:639: region init fail
>       
>      That’s an indication that it cannot connect to VPP.
>      Can vpp_api_test connect?
>       
>      Cheers,
>      Ole
>       
>       
>      >
>      > wangchuan...@163.com
>      > 
>      > From: Ole Troan
>      > Date: 2018-09-13 21:44
>      > To: wangchuan...@163.com
>      > CC: Klement Sekera -X (ksekera - PANTHEON TECHNOLOGIES at Cisco); Dave
>      Barach (dbarach); vpp-dev
>      > Subject: Re: [vpp-dev] VPP's C-type-api example
>      > > i am be root
>      > 
>      > Then you must provide more details.
>      > 
>      > Cheers,
>      > Ole
>      > 
>      > 
>      > >
>      > > wangchuan...@163.com
>      > >
>      > > From: Ole Troan
>      > > Date: 2018-09-13 21:26
>      > > To: wangchuan...@163.com
>      > > CC: Klement Sekera -X (ksekera - PANTHEON TECHNOLOGIES at Cisco);
>      Dave Barach (dbarach); vpp-dev
>      > > Subject: Re: [vpp-dev] VPP's C-type-api example
>      > > > But I got some error when using vapi - vapi_connect as "
>      vl_map_shmem:639: region init fail “.
>      > >
>      > > Permission error?
>      > > Run client as root, or configure VPP to set permissions on API
>      shared memory.
>      > >
>      > > In VPP startup:
>      > > api-segment { uid <foo> gid <foo> }
>      > >
>      > > Cheers,
>      > > Ole
>      > >
>      > > > And my mem : MemFree:          220036 kB      |          
>      HugePages_Total:     679       |       HugePages_Free:      627
>      > > > Help please!
>      > > >
>      > > > My code:
>      > > >     int main()
>      > > > {
>      > > >   vapi_ctx_t ctx;
>      > > >   vapi_error_e rv = vapi_ctx_alloc (&ctx);
>      > > >   vapi_msg_show_version *sv = vapi_alloc_show_version (ctx);
>      > > >   rv = vapi_connect (ctx, app_name, api_prefix,
>      max_outstanding_requests,
>      > > >                      response_queue_size, VAPI_MODE_BLOCKING);
>      > > >   rv = vapi_send (ctx, sv);
>      > > >   vapi_msg_show_version_reply *reply;
>      > > >   rv = vapi_recv (ctx, (void **) &reply, NULL, 0, 0);
>      > > >   if(reply != NULL)
>      > > >       printf("ret[%d] program[%s] version[%s] \n build_date[%s]
>      build_directory[%s]\n", reply->payload.retval, reply->payload.program,
>      reply->payload.version, reply->payload.build_date,
>      reply->payload.build_directory);
>      > > >   else
>      > > >     printf("show version return none\n");
>      > > >   rv = vapi_disconnect (ctx);
>      > > >   vapi_ctx_free (ctx);
>      > > >  printf("end\n");
>      > > > return 0;
>      > > > }
>      > > >
>      > > > wangchuan...@163.com
>      > > >
>      > > > From: Klement Sekera
>      > > > Date: 2018-09-13 17:02
>      > > > To: Ole Troan; wangchuanguo
>      > > > CC: Dave Barach (dbarach); vpp-dev
>      > > > Subject: Re: [vpp-dev] VPP's C-type-api example
>      > > > You can also check out the test/ext directory for vapi_c_test.c
>      and
>      > > > vapi_cpp_test.cpp, which are unittests for these bindings and
>      there is
>      > > > also an example of _dump API call.
>      > > >
>      > > > Regards,
>      > > > Klement
>      > > >
>      > > > Quoting Ole Troan (2018-09-13 09:33:14)
>      > > > > Hi again,
>      > > > >
>      > > > > >     I am in the beginning of using-c-api.  Should I not
>      follow  (src/vpp-api/client)  ?
>      > > > > > Can you please show me a fun-name and a example of the higher
>      level C API?
>      > > > >
>      > > > > That’s right, I wouldn’t recommend using the src/vpp-aoi/client
>      API unless you are building a new language binding.
>      > > > >
>      > > > > If you need a C interface you should use VAPI.
>      > > > >
>      > > > > See interface.api.vapi.h (auto-generated) for
>      sw_interface_dump()
>      > > > >
>      > > > > static inline vapi_error_e vapi_sw_interface_dump(struct
>      vapi_ctx_s *ctx,
>      > > > >   vapi_msg_sw_interface_dump *msg,
>      > > > >   vapi_error_e (*callback)(struct vapi_ctx_s *ctx,
>      > > > >                            void *callback_ctx,
>      > > > >                            vapi_error_e rv,
>      > > > >                            bool is_last,
>      > > > >                            vapi_payload_sw_interface_details
>      *reply),
>      > > > >   void *callback_ctx)
>      > > > >
>      > > > >
>      > > > > src/vpp-api/vapi/vapi_doc.md for documentation.
>      > > > >
>      > > > > To get a feel of how the API works, at even higher level you can
>      play with the Python language binding.
>      > > > >
>      > > > > Best regards,
>      > > > > Ole
>      > > > >
>      > > > >
>      > > > >
>      > > > > -=-=-=-=-=-=-=-=-=-=-=-
>      > > > > Links: You receive all messages sent to this group.
>      > > > >
>      > > > > View/Reply Online (#10481):
>      https://lists.fd.io/g/vpp-dev/message/10481
>      > > > > Mute This Topic: https://lists.fd.io/mt/25510961/675704
>      > > > > Group Owner: vpp-dev+ow...@lists.fd.io
>      > > > > Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub 
>      [ksek...@cisco.com]
>      > > > > -=-=-=-=-=-=-=-=-=-=-=-
> 
> References
> 
>    Visible links
>    1. mailto:otr...@employees.org
>    2. mailto:wangchuan...@163.com
>    3. mailto:ksek...@cisco.com
>    4. mailto:dbar...@cisco.com
>    5. mailto:vpp-dev@lists.fd.io
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#10507): https://lists.fd.io/g/vpp-dev/message/10507
Mute This Topic: https://lists.fd.io/mt/25510961/21656
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