Hi xyxue, 

I think the issue may be the way you build your topology. You may actually want 
to use 2 veth pairs, one per vpp instance. So something along the lines of:

Linux:
ip netns add vppns
ip link add veth_vpp1 type veth peer name vpp1
ip link set dev vpp1 up
ip link set dev veth_vpp1 up netns vppns
ip link add veth_vpp2 type veth peer name vpp2
ip link set dev vpp2 up
ip link set dev veth_vpp2 up netns vppns

vpp1:
create host-interface name vpp1
…

vpp2:
create host-interface name vpp2
...

Hope this helps, 
Florin

> On Sep 28, 2017, at 5:11 AM, 薛欣颖 <xy...@fiberhome.com> wrote:
> 
> 
> Hi,
>> 
>> I have added  '#define __NR_memfd_create 319' to 
>> /usr/include/x86_64-linux-gnu/asm/unistd_64.h.
> The following error still occurred during the test:
> 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)
> 
> Are we missing the configuration? Or are there any problems with our testing 
> methods?
> 
> The kernel version:
> 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
> 
> 
> Test topology:
> <CatchAA2A(09-28-19-39-54).jpg>
> 
> 
> Server vpp configure:
> create host-interface name eth1
> set interface mac address host-eth1 00:0c:29:4c:35:65 
> set interface state host-eth1 up
> set interface ip address host-eth1 1.1.1.2/24
> 
> start VCL server :
> root@ubuntu:/home/vpp_communication/vpp/build-root/install-vpp-native/vpp/bin#
>  ./vcl_test_server 
> 
> SERVER: Waiting for a client to connect on port 22000...
> 
> vcl Client:
> create host-interface name eth1
> set interface mac address host-eth1 00:0c:29:db:3c:8f 
> set interface state host-eth1 up
> set interface ip address host-eth1 1.1.1.1/24
> 
> start VCL client:
> 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
> 
> 
> 2. Run the test script 'socket_test.sh' directly.The error is shown below: 
> -----(missing a software?)
> root@ubuntu:/home/vpp_communication/vpp/test/scripts# ./socket_test.sh -U nv
> Warning: This program is an suid-root program or is being run by the root 
> user.
> The full text of the error or warning message cannot be safely formatted
> in this environment. You may get a more descriptive message by running the
> program as a non-root user or by removing the suid bit on the executable.
> Warning: This program is an suid-root program or is being run by the root 
> user.
> The full text of the error or warning message cannot be safely formatted
> in this environment. You may get a more descriptive message by running the
> program as a non-root user or by removing the suid bit on the executable.
> xterm: xterm: Xt error: Can't open display: %s
> Xt error: Can't open display: %s
> xterm: xterm: DISPLAY is not set
> Warning: This program is an suid-root program or is being run by the root 
> user.
> The full text of the error or warning message cannot be safely formatted
> in this environment. You may get a more descriptive message by running the
> program as a non-root user or by removing the suid bit on the executable.
> xterm: Xt error: Can't open display: %s
> xterm: DISPLAY is not set
> DISPLAY is not set
> 
> Thanks,
> Xyxue
>  
> From: Florin Coras <mailto:fcoras.li...@gmail.com>
> Date: 2017-09-28 02:31
> To: John Lo (loj) <mailto:l...@cisco.com>
> CC: 薛欣颖 <mailto:xy...@fiberhome.com>; vpp-dev <mailto:vpp-dev@lists.fd.io>
> Subject: Re: [vpp-dev] Failed to use vcl_test_client
> 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 
>> <mailto: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> 
>> [mailto: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 <mailto:xy...@fiberhome.com>>
>> Cc: vpp-dev <vpp-dev@lists.fd.io <mailto: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