From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [dpdk-users] Why packet_type is zero? Date: Tue, 10 Nov 2015 15:55:06 +0100 Message-ID: <2072134.jEP6IvT7ZX@xps13> References: <563CBFE3.5080804@epfl.ch> <563CC1D6.3030703@epfl.ch> <5642034D.8070406@epfl.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org, users@dpdk.org To: Arseniy Zaostrovnykh Return-path: Received: from mail-wm0-f43.google.com (mail-wm0-f43.google.com [74.125.82.43]) by dpdk.org (Postfix) with ESMTP id E80568DED for ; Tue, 10 Nov 2015 15:56:17 +0100 (CET) Received: by wmdw130 with SMTP id w130so74492581wmd.0 for ; Tue, 10 Nov 2015 06:56:17 -0800 (PST) In-Reply-To: <5642034D.8070406@epfl.ch> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Thanks for reporting. 2015-11-10 15:46, Arseniy Zaostrovnykh: > Is the pcap driver obsolete? No > L3fwd example(http://dpdk.org/doc/guides/sample_app_ug/l3_forward.html) > check the mbuf field packet_type, and in the zero case (which is a > default value, as far as I know) it does nothing. At the same time, only > few drivers even mention this field: > > dpdk-2.1.0 $ grep packet_type drivers -Rl > drivers/net/enic/enic_main.c > drivers/net/e1000/igb_rxtx.c > drivers/net/ixgbe/ixgbe_rxtx.c > drivers/net/mlx4/mlx4.c > drivers/net/i40e/i40e_rxtx.c > drivers/net/mpipe/mpipe_tilegx.c > drivers/net/vmxnet3/vmxnet3_rxtx.c > drivers/net/fm10k/fm10k_rxtx.c > drivers/net/cxgbe/sge.c > > And a PCap driver (drivers/net/pcap/rte_eth_pcap.c) specifically, does > not alter the field, so L3fwd application drops all packets. The zero value is acceptable. #define RTE_PTYPE_UNKNOWN 0x00000000 Maybe a fix is required in the l3fwd example? Or maybe it should be explicit that it works with only few drivers. More generally, the packet type is not mandatory for drivers. At a time we were talking about implementing a generic callback to fill it. Or it can be filled in an application fallback with parsing.