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