Hi, I have a simple UDP recvfrom() application (using LD_PRELOAD). When I just use recvfrom(), I can receive packets played from a small PCAP file. However, when I wrap the recvfrom() in an epoll_wait(), I only receive one packet. The second packet appears to be in the Rx fifo (tail is greater than head). Subsequent PCAP replays show the tail increasing by the size of the packets.
VPP release is 21.06 DBGvpp# show app server Connection App Wrk [0:0][CT:U] 0.0.0.0:2055->0.0.0.0:0 ldp-83368-app 0 [0:1][U] 0.0.0.0:2055->0.0.0.0:0 ldp-83368-app 0 root@3355a029760b:/opt/project/vpp/vcl# VCL_DEBUG=2 LDP_DEBUG=2 LD_PRELOAD=/opt/project/vpp/vpp-repo/build-root/install-vpp_debug-native/vpp/lib/libvcl_ldpreload.so ./udp_rx VCL<83368>: configured VCL debug level (2) from VCL_DEBUG! ldp<83368>: fd 3: calling libc_close VCL<83368>: allocated VCL heap = 0x7f2eb0cf2000, size 268435456 (0x10000000) VCL<83368>: configured app_scope_global (1) VCL<83368>: configured app_scope_local (1) VCL<83368>: configured app-socket-api (/var/run/vpp/app_ns_sockets/default) VCL<83368>: completed parsing vppcom config! ldp<83368>: fd 3: calling libc_close ldp<83368>: calling libc_socket ldp<83368>: fd 3: calling libc_connect(): addr 0x7ffcb7750368, len 110 vppcom_app_create:1377: vcl<83368:0>: app_name 'ldp-83368-app', my_client_index 1 (0x1) ldp<83368>: configured LDP debug level (2) from env var LDP_DEBUG! ldp<83368>: LDP initialization: done! ldp_constructor:2690: LDP<83368>: LDP constructor: done! ldp<83368>: calling vls_create: proto 1 (UDP), is_nonblocking 0 vppcom_session_create:1436: vcl<83368:0>: created session 0 Created a socket with fd: 32 ldp<83368>: fd 32 vlsh 0, cmd 3 socket flags are: 2 ldp<83368>: fd 32 vlsh 0, cmd 4 ldp<83368>: fd 32: calling vls_bind: vlsh 0, addr 0x7ffcb774f500, len 16 vppcom_session_bind:1571: vcl<83368:0>: session 0 handle 0: binding to local IPv4 address 0.0.0.0 port 2055, proto UDP vppcom_session_listen:1603: vcl<83368:0>: session 0: sending vpp listen request... vcl_session_app_add_segment_handler:1033: vcl<83368:0>: mapped new segment '14609-27' size 134217728 vcl_session_bound_handler:665: vcl<83368:0>: session 0 [0x1]: listen succeeded! ldp<83368>: fd 32: returning 0 vppcom_epoll_create:2668: vcl<83368:0>: Created vep_idx 1 ldp<83368>: epoll_create epfd 33 vlsh 1 ldp<83368>: epfd 33 ep_vlsh 1, fd 32 vlsh 0, op 1 ldp<83368>: epfd 33: calling vls_epoll_ctl: ep_vlsh 1 op 1, vlsh 0, event 0x7ffcb774f4f4 vppcom_epoll_ctl:2788: vcl<83368:0>: EPOLL_CTL_ADD: vep_sh 1, sh 0, events 0x1, data 0x20! Let us wait for a remote client to send some data About to epoll_wait() fd=32; events: EPOLLIN Received data (len 132 bytes): About to epoll_wait() DBGvpp# show session verbose 2 [0:0][CT:U] 0.0.0.0:2055->0.0.0.0:0 LISTEN [0:1][U] 0.0.0.0:2055->0.0.0.0:0 LISTEN index 0 flags: OWNS_PORT, LISTEN Rx fifo: cursize 1073 nitems 1048576 has_event 1 min_alloc 65536 head 177 tail 1250 segment manager 3 vpp session 1 thread 0 app session 0 thread 0 ooo pool 0 active elts newest 4294967295 Tx fifo: cursize 0 nitems 1048576 has_event 0 min_alloc 65536 head 0 tail 0 segment manager 3 vpp session 1 thread 0 app session 0 thread 0 ooo pool 0 active elts newest 0 Thread 0: active sessions 2
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#20943): https://lists.fd.io/g/vpp-dev/message/20943 Mute This Topic: https://lists.fd.io/mt/89513626/21656 Mute #vpp-hoststack:https://lists.fd.io/g/vpp-dev/mutehashtag/vpp-hoststack Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-