Cool! Thanks for the info, John!

Xyxue, could you try it out and see if it works?

Florin

> On Sep 27, 2017, at 11:25 AM, John Lo (loj) <l...@cisco.com> wrote:
> 
> I am able to use memfd with 14.04 by updating its kernel to 3.19 (my 14.04 
> kernel was 3.13 before the update).  
>  
> I also had to add the following to 
> /usr/include/x86_64-linux-gnu/asm/unistd_64.h
> #define __NR_memfd_create 319
>  
> Hope this works for you,
> John
>  
> From: vpp-dev-boun...@lists.fd.io [mailto:vpp-dev-boun...@lists.fd.io] On 
> Behalf Of Florin Coras
> Sent: Wednesday, September 27, 2017 10:46 AM
> To: 薛欣颖 <xy...@fiberhome.com>
> Cc: vpp-dev <vpp-dev@lists.fd.io>
> Subject: Re: [vpp-dev] Failed to use vcl_test_client
>  
> Hi xyxue, 
>  
> VPP now has a dependency on memfd which is not available in 14.04. 
> Unfortunately, that means you’ll have to switch to ubuntu 16.04. 
>  
> Florin
>  
> On Sep 27, 2017, at 1:34 AM, 薛欣颖 <xy...@fiberhome.com 
> <mailto:xy...@fiberhome.com>> wrote:
>  
> Hi Florin,
>  
> There is a compile error:not support ‘__NR_memfd_create’
> /home/vpp_communication/vpp/build-root/../src/vppinfra/linux/syscall.h:45:19: 
> error: '__NR_memfd_create' undeclared (first use in this function)
>    return syscall (__NR_memfd_create, name, flags);
>    
> Is the kernel version of the problem ?  What is your kernel version?
>  
> The Kernel version of mine:
> root@ubuntu:/home/vpp_communication/vppsb/vcl-ldpreload/src# uname -a
> Linux ubuntu 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 
> 2016 x86_64 x86_64 x86_64 GNU/Linux
> 
>  If I change ‘return syscall (__NR_memfd_create, name, flags);’ to ‘return 0’.
>  Will the vcl function  be affected?
>  
> Thanks,
> xyxue
>  
> From: Florin Coras <mailto:fcoras.li...@gmail.com>
> Date: 2017-09-20 13:05
> To: 薛欣颖 <mailto:xy...@fiberhome.com>
> CC: dwallacelf <mailto:dwallac...@gmail.com>; vpp-dev 
> <mailto:vpp-dev@lists.fd.io>
> Subject: Re: [vpp-dev] Failed to use vcl_test_client
> Hi xyxue, 
>  
> I just tested the stack with linux and everything seems to be working fine. I 
> tested the stack with linux using uri_tcp_test and nc and the cut-through 
> path with the vcl test tools. How are you running the server?
>  
> Florin
>  
> On Sep 19, 2017, at 8:29 PM, 薛欣颖 <xy...@fiberhome.com 
> <mailto:xy...@fiberhome.com>> wrote:
>  
> Hi Florin,
>  
> The server is started on the peer vpp . And through  
> 'sock_test_client/sock_test_server' can be normal communication.
>  
> Thanks,
> xyxue
>  
> From: Florin Coras <mailto:fcoras.li...@gmail.com>
> Date: 2017-09-20 10:52
> To: 薛欣颖 <mailto:xy...@fiberhome.com>
> CC: dwallacelf <mailto:dwallac...@gmail.com>; vpp-dev 
> <mailto:vpp-dev@lists.fd.io>
> Subject: Re: [vpp-dev] Failed to use vcl_test_client
> Hi xyxue,
>  
> What you’re getting is a connect fail because, I assume from trace, the 
> server is not started on the peer vpp. Because the server is not started, 
> i.e., bind wasn’t called, when the peer vpp receives the syn it replies with 
> a reset. That reset finally results in a connect fail notify. 
>  
> As for your other questions:
>  
> 1. Obviously, the one in vpp is for handling connect requests from 
> applications while the one in vppcom is for cut-through session. That is, vpp 
> acts as introduction mechanism for the two apps which afterwards exchange 
> data via shared memory fifos. 
> 2. For exchanging control messages, e.g., bind, connect, accept, they use the 
> binary api. For exchanging data, that is, moving data from vpp to vcl and 
> vice-versa, they use shared memory fifos. 
> 3. That message is a notification from vpp to the application (vcl in this 
> case) regarding a previous connect attempt. As you’ve discovered, if 
> is_fail=1, the connect attempt failed. 
>  
> Hope this helps, 
> Florin
>  
> On Sep 19, 2017, at 7:30 PM, 薛欣颖 <xy...@fiberhome.com 
> <mailto:xy...@fiberhome.com>> wrote:
>  
> 
> Hi ,
>  
> There are still problems:
> root@ubuntu:/home/vpp_communication/vpp/build-root/install-vpp-native/vpp/bin#
>  ./vcl_test_client -U 1.1.1.2 22000
> 
> CLIENT: Connecting to server...
> vl_api_connect_session_reply_t_handler:697: [9478] connect failed: Session 
> failed to connect (-115)
> 
> 
> Breakpoint 1, send_session_connected_callback (app_index=1, api_context=0, 
> s=0x0, is_fail=1 '\001')
>     at 
> /home/vpp_communication/vpp/build-data/../src/vnet/session/session_api.c:157
> 157     {
> (gdb) bt
> #0  send_session_connected_callback (app_index=1, api_context=0, s=0x0, 
> is_fail=1 '\001')
>     at 
> /home/vpp_communication/vpp/build-data/../src/vnet/session/session_api.c:157
> #1  0x00007f35c658459c in stream_session_connect_notify (tc=0x7f358585e3f8, 
> is_fail=<optimized out>, 
>     is_fail@entry=1 '\001') at 
> /home/vpp_communication/vpp/build-data/../src/vnet/session/session.c:489
> #2  0x00007f35c6456972 in tcp_connection_reset (tc=tc@entry=0x7f358585e3f8)
>     at /home/vpp_communication/vpp/build-data/../src/vnet/tcp/tcp.c:258
> #3  0x00007f35c6429977 in tcp46_syn_sent_inline (is_ip4=1, 
> from_frame=<optimized out>, node=<optimized out>, 
>     vm=<optimized out>) at 
> /home/vpp_communication/vpp/build-data/../src/vnet/tcp/tcp_input.c:2023
> #4  tcp4_syn_sent (vm=<optimized out>, node=<optimized out>, 
> from_frame=<optimized out>)
>     at /home/vpp_communication/vpp/build-data/../src/vnet/tcp/tcp_input.c:2184
> #5  0x00007f35c6962d14 in dispatch_node (last_time_stamp=204974335045786, 
> frame=0x7f35858596c0, 
>     dispatch_state=VLIB_NODE_STATE_POLLING, type=VLIB_NODE_TYPE_INTERNAL, 
> node=0x7f3584da06c0, 
> 
> 
> 
> 
> code segment:
> int
> send_session_connected_callback (u32 app_index, u32 api_context,
>                      stream_session_t * s, u8 is_fail)
> {
>   vl_api_connect_session_reply_t *mp;
>   unix_shared_memory_queue_t *q;
>   application_t *app;
>   unix_shared_memory_queue_t *vpp_queue;
> 
>   app = application_get (app_index);
>   q = vl_api_client_index_to_input_queue (app->api_client_index);
> 
>   if (!q)
>     return -1;
> 
>   mp = vl_msg_api_alloc (sizeof (*mp));
>   mp->_vl_msg_id = clib_host_to_net_u16 (VL_API_CONNECT_SESSION_REPLY); 
>   mp->context = api_context;
>   if (!is_fail)
>     {
>       vpp_queue = session_manager_get_vpp_event_queue (s->thread_index);
>       mp->server_rx_fifo = pointer_to_uword (s->server_rx_fifo);
>       mp->server_tx_fifo = pointer_to_uword (s->server_tx_fifo);
>       mp->handle = stream_session_handle (s);
>       mp->vpp_event_queue_address = pointer_to_uword (vpp_queue);
>       mp->retval = 0;
>     }
>   else
>     {
>       mp->retval = clib_host_to_net_u32 
> (VNET_API_ERROR_SESSION_CONNECT_FAIL);  
>     }
>   vl_msg_api_send_shmem (q, (u8 *) & mp);
>   return 0;
> }
> 
> 
> ruturn message to VCL, connect failed: Session failed to connect 
>  
> I have two question :
> 1.  there are two function "vl_api_connect_sock_t_handler", one in 
> session_api.c,  another in vppcom.c, 
> How to work ?
>  
> 2.  How to VCL and VPP communication ? 
>  
> 3. Why the message of VPP to VCL  is "send_session_connected_callback" 
> function send ?
>  
> thanks,
> xyxue
>  
> From: Dave Wallace <mailto:dwallac...@gmail.com>
> Date: 2017-09-19 01:29
> To: 薛欣颖 <mailto:xy...@fiberhome.com>; vpp-dev@lists.fd.io 
> <mailto:vpp-dev@lists.fd.io>
> Subject: Re: [vpp-dev] Failed to use vcl_test_client
> Hi Xyeue,
> 
> I believe this patch fixes this issue:  https://gerrit.fd.io/r/#/c/8315/ 
> <https://gerrit.fd.io/r/#/c/8315/>
> 
> Can you please pull the latest source code and try again?
> 
> Thanks,
> -daw-
> 
> On 9/18/2017 2:43 AM, 薛欣颖 wrote:
>  
> Hi,
> 
> When I test vcl ,there is some error :
> root@ubuntu:/home/vpp_communication/vpp/build-root/install-vpp-native/vpp/bin#
>  ./vcl_test_client -U 1.1.1.2 22000
> 
> CLIENT: Connecting to server...
> msg_handler_internal:429: no handler for msg id 424
> ..........
> ...................
> ...................
> ERROR in main(): Bad file descriptor
> ERROR: connect failed (errno = 9)!
> Segmentation fault
> 
> The msg id 424 is VL_API_CONNECT_URI_REPLY .The VL_API_CONNECT_URI_REPLY is 
> registed in vat.
> Is there anything wrong in my test?
> 
> The gdb information is shown below:
> (gdb) bt
> #0  vl_msg_api_send_shmem (q=q@entry=0x302891c0, 
> elem=elem@entry=0x7faafab32cc8 "\344o\006\060")
>     at 
> /home/vpp_communication/vpp/build-data/../src/vlibmemory/memory_shared.c:584
> #1  0x00007fab3c053b55 in send_session_connected_callback 
> (app_index=<optimized out>, api_context=3472551422, 
>     s=0x0, is_fail=<optimized out>) at 
> /home/vpp_communication/vpp/build-data/../src/vnet/session/session_api.c:186
> #2  0x00007fab3c03cc44 in stream_session_connect_notify (tc=0x7faafa776bd8, 
> is_fail=<optimized out>, 
>     is_fail@entry=1 '\001') at 
> /home/vpp_communication/vpp/build-data/../src/vnet/session/session.c:489
> #3  0x00007fab3bf0f642 in tcp_connection_reset (tc=tc@entry=0x7faafa776bd8)
>     at /home/vpp_communication/vpp/build-data/../src/vnet/tcp/tcp.c:257
> #4  0x00007fab3bee4077 in tcp46_syn_sent_inline (is_ip4=1, 
> from_frame=<optimized out>, node=<optimized out>, 
>     vm=<optimized out>) at 
> /home/vpp_communication/vpp/build-data/../src/vnet/tcp/tcp_input.c:1938
> #5  tcp4_syn_sent (vm=<optimized out>, node=<optimized out>, 
> from_frame=<optimized out>)
>     at /home/vpp_communication/vpp/build-data/../src/vnet/tcp/tcp_input.c:2091
> #6  0x00007fab3c4159e4 in dispatch_node (last_time_stamp=1926897640132334, 
> frame=0x7faafb34a000, 
>     dispatch_state=VLIB_NODE_STATE_POLLING, type=VLIB_NODE_TYPE_INTERNAL, 
> node=0x7faafa86a600, 
>     vm=0x7fab3c668320 <vlib_global_main>) at 
> /home/vpp_communication/vpp/build-data/../src/vlib/main.c:1011
> #7  dispatch_pending_node (vm=vm@entry=0x7fab3c668320 <vlib_global_main>, 
>     pending_frame_index=pending_frame_index@entry=5, 
> last_time_stamp=last_time_stamp@entry=1926897640132334)
>     at /home/vpp_communication/vpp/build-data/../src/vlib/main.c:1161
> #8  0x00007fab3c4177a5 in vlib_main_or_worker_loop (is_main=1, 
> vm=0x7fab3c668320 <vlib_global_main>)
>     at /home/vpp_communication/vpp/build-data/../src/vlib/main.c:1622
> #9  vlib_main_loop (vm=0x7fab3c668320 <vlib_global_main>)
>     at /home/vpp_communication/vpp/build-data/../src/vlib/main.c:1641
> #10 vlib_main (vm=vm@entry=0x7fab3c668320 <vlib_global_main>, 
> input=input@entry=0x7faafab32fa0)
>     at /home/vpp_communication/vpp/build-data/../src/vlib/main.c:1799
> #11 0x00007fab3c44f433 in thread0 (arg=140373429486368)
>     at /home/vpp_communication/vpp/build-data/../src/vlib/unix/main.c:534
> #12 0x00007fab3ba4dbf8 in clib_calljmp () at 
> /home/vpp_communication/vpp/build-data/../src/vppinfra/longjmp.S:110
> #13 0x00007ffe9df58600 in ?? ()
> #14 0x00007fab3c44ffb5 in vlib_unix_main (argc=<optimized out>, 
> argv=<optimized out>)
>     at /home/vpp_communication/vpp/build-data/../src/vlib/unix/main.c:597
> #15 0x0000000000000000 in ?? ()
> 
> 
> Thanks,
> xyxue
> 
> 
> 
> _______________________________________________
> vpp-dev mailing list
> vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
> https://lists.fd.io/mailman/listinfo/vpp-dev 
> <https://lists.fd.io/mailman/listinfo/vpp-dev>
>  
> _______________________________________________
> vpp-dev mailing list
> vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>
> https://lists.fd.io/mailman/listinfo/vpp-dev 
> <https://lists.fd.io/mailman/listinfo/vpp-dev>
_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to