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/

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

_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io<mailto: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