From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailfilter02.viettel.com.vn (unknown [125.235.240.54]) by dpdk.org (Postfix) with ESMTP id 0E48E1B2D2 for ; Mon, 30 Oct 2017 12:16:47 +0100 (CET) X-IronPort-AV: E=Sophos;i="5.44,319,1505754000"; d="scan'208";a="65495203" Received: from 125.235.240.44.adsl.viettel.vn (HELO mta1.viettel.com.vn) ([125.235.240.44]) by mailfilter02.viettel.com.vn with ESMTP; 30 Oct 2017 18:09:37 +0700 Received: from localhost (localhost [127.0.0.1]) by mta1.viettel.com.vn (Postfix) with ESMTP id 6308761783D; Mon, 30 Oct 2017 18:09:25 +0700 (ICT) Received: from mta1.viettel.com.vn ([127.0.0.1]) by localhost (mta1.viettel.com.vn [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id Ek3qipk3bvLy; Mon, 30 Oct 2017 18:09:25 +0700 (ICT) Received: from localhost (localhost [127.0.0.1]) by mta1.viettel.com.vn (Postfix) with ESMTP id 41AB5617835; Mon, 30 Oct 2017 18:09:25 +0700 (ICT) X-Virus-Scanned: amavisd-new at Received: from mta1.viettel.com.vn ([127.0.0.1]) by localhost (mta1.viettel.com.vn [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id EF6kArcfqyNg; Mon, 30 Oct 2017 18:09:25 +0700 (ICT) Received: from ANMLONGTB5 (unknown [27.68.241.28]) by mta1.viettel.com.vn (Postfix) with ESMTPSA id C0FE4617838; Mon, 30 Oct 2017 18:09:19 +0700 (ICT) To: Cc: Message-ID: <001701d3516f$b8b02e50$2a108af0$@viettel.com.vn> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Outlook 16.0 Thread-Index: AdNRZU0AfksVr0G1Rj22fexWs4wgnA== Content-Language: en-us MilterAction: FILTER0 MilterMessageID: <001701d3516f$b8b02e50$2a108af0$@viettel.com.vn> Date: Mon, 30 Oct 2017 18:09:25 +0700 (ICT) From: longtb5@viettel.com.vn Subject: [dpdk-users] IP PIPELINE tap device X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Oct 2017 11:16:48 -0000 Hi, I'm writing a new pipeline type called pipeline_tap, which has one input and two outputs. The outputs are simply duplications of the input, so basically like a l2fwd but with two outputs. There has already been great suggestions [1] on the mailing list to use the l2fwd sample app as a starting point, but I want to implement this using IP pipeline/packet framework as I would like to use this device in my IP pipeline application. As I understand here's what I must provide in order to make my pipeline_tap: an input port, at least one table, and two output ports. I have a couple of questions: First, according to the doc [2], my input port can only be connected to one table. Moreover, a packet coming from my input port can only hit one table entry. However it's not clear whether that one table entry can be connected to TWO output ports. Second, I'm having trouble understanding the implementation for table user actions and table reserved actions in rte_pipeline_run() [3], with all the mask thingy. Any pointers would be highly appreciated! Regards, BL [1] http://dpdk.org/ml/archives/dev/2015-July/021293.html [2] http://dpdk.org/doc/guides/prog_guide/packet_framework.html#connectivity-of- ports-and-tables [3] http://dpdk.org/browse/dpdk/tree/lib/librte_pipeline/rte_pipeline.c?h=v17.11 -rc2#n1344