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