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> 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
> 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