Hello all, Is there any alternative to memif, that would allow packets from VPP to be passed to another DPDK application process without any memcpy?
The DPDK supports multi-process where the primary process and secondary processes can share the same mempool/bufpool (disabling ASLR is required). Since VPP includes/ DPDK and launches as primary DPDK process (in eal-init), would it not be possible to put the vlib_buffer packets on a rte_ring which would allow the secondary DPDK processes to read/write the packet/vlib_buffer payload (assuming vlib header is untouched). I know this topic has been addressed or discussed in the past. I believe there are use-cases where there are two datapath containers one running VPP and the other a "trusted" datapath engine (DPDK or non-DPDK) and requires a high performance zero copy packet or memory interface between them. The memif performs memcpy on tx and rx to vlib buffer. Is there any way we can avoid such memcpy and share packets between two datapath containers/processes. DPDK supports external buffer/memory management and I believe VPP uses its own buffer/memory management and does not use DPDK default huge-pages mempool. Could you clarify. Can VPP/VLIB support external buffer management? E.g. exporting BSD mbufs to VLIB buffer and then to DPDK mbuf. Could VPP buffer management and memif experts (Damjan, Neale, Dave B, Benoit et al) and anybody else could provide some guidance in this regard? Do you foresee the need for a high-performance zero copy alternative to memif when the processes are trusted and can share memory? If so, what directions can one proceed? Really appreciate your help. Thank you very much - Pranab K Das
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#21426): https://lists.fd.io/g/vpp-dev/message/21426 Mute This Topic: https://lists.fd.io/mt/91252298/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-