From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vc0-f172.google.com (mail-vc0-f172.google.com [209.85.220.172]) by dpdk.org (Postfix) with ESMTP id CE6A51F5 for ; Wed, 24 Sep 2014 22:04:18 +0200 (CEST) Received: by mail-vc0-f172.google.com with SMTP id hy10so7251388vcb.3 for ; Wed, 24 Sep 2014 13:10:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=vhmToU2EhBJrfaqqPmf0x3olsAF8SqRDa1cYlQcfDHA=; b=fF4HAV93whLbO8inxwj7Q2I09+015tdA2xT1tHn2Ya1lFiXdSx13jTEiemoqwSgXk0 ECH40UysxzdyNn0Z3Y2LFjPeKEo1p7toIQBnwrGkPjg6MXnB+lJljdWYnMPs5CIeslbX GbeQgF2BjKdstBSZSMH/5rhJW8RDcCo+Wc1H2peV3HNA2V7t/GMu/yG8TKZ/6jvgDZQs Gwzhyuxi+aCaUPKfYOftmoCP/CTF2LHNzMqYn0CM6Czk8F8Z4YGnB7ute8XnhqnvDlut wKmAoXRl+z4v5G1uVhgCB2Ly8jP7XuzOMR+ntqexSujb/h1zweHFzK2a1ry3vQsXYlG4 s6uQ== MIME-Version: 1.0 X-Received: by 10.220.184.70 with SMTP id cj6mr7564872vcb.5.1411589432440; Wed, 24 Sep 2014 13:10:32 -0700 (PDT) Received: by 10.52.175.35 with HTTP; Wed, 24 Sep 2014 13:10:32 -0700 (PDT) Date: Wed, 24 Sep 2014 13:10:32 -0700 Message-ID: From: Malveeka Tewari To: "dev@dpdk.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-dev] LD_PRELOAD libraries for DPDK to run unmodified applications with DPDK? X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 Sep 2014 20:04:19 -0000 Hi all, I've been trying to run unmodified applications with the DPDK framework. I used the KNI module and while it allowed me to run stock applications with DPDK infrastructure, it was not optimized for performance. There is already a rump-kernel based TCP/IP stack for DPDK https://github.com/rumpkernel/dpdk-rumptcpip/. and another userland IP stack http://ipaugenblick.net/ But these solutions are again too heavy weight. I am looking for something much simpler -- a lightweight library that can intercept the "sendto" calls made by the application (through LD_PRELOAD), create corresponding rte_mbuf structures from the data buffer and pass it to the NIC directly using the DPDK API, completely bypassing the kernel. I realize this bypassing will not work for TCP, but perhaps such an interposing library can be hooked to a user-space TCP implementation in order to support TCP. Does this approach sound reasonable or am I missing something? And has this been done already? Any thoughts/suggestions are welcome. Malveeka