From patchwork Fri Dec 5 01:46:28 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Zhang, Helin" X-Patchwork-Id: 1767 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 24BBE7E75; Fri, 5 Dec 2014 02:46:47 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id AE3D48041 for ; Fri, 5 Dec 2014 02:46:41 +0100 (CET) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga102.fm.intel.com with ESMTP; 04 Dec 2014 17:46:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.07,519,1413270000"; d="scan'208";a="642702301" Received: from shvmail01.sh.intel.com ([10.239.29.42]) by fmsmga002.fm.intel.com with ESMTP; 04 Dec 2014 17:46:40 -0800 Received: from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com [10.239.29.89]) by shvmail01.sh.intel.com with ESMTP id sB51kbMU032070; Fri, 5 Dec 2014 09:46:37 +0800 Received: from shecgisg004.sh.intel.com (localhost [127.0.0.1]) by shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP id sB51kZlc015652; Fri, 5 Dec 2014 09:46:37 +0800 Received: (from hzhan75@localhost) by shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id sB51kZfP015648; Fri, 5 Dec 2014 09:46:35 +0800 From: Helin Zhang To: dev@dpdk.org Date: Fri, 5 Dec 2014 09:46:28 +0800 Message-Id: <1417743988-15604-3-git-send-email-helin.zhang@intel.com> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1417743988-15604-1-git-send-email-helin.zhang@intel.com> References: <1416982032-28519-1-git-send-email-helin.zhang@intel.com> <1417743988-15604-1-git-send-email-helin.zhang@intel.com> Subject: [dpdk-dev] [PATCH v2 2/2] mbuf: assign valid bit values for some RX and TX flags 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Before redefining mbuf structure, there was lack of free bits in 'ol_flags' (32 bits in total) for new RX or TX flags. So it tried to reuse existant bits as most as possible, or even assigning 0 to some of bit flags. After new mbuf structure defined, there are quite a lot of free bits. So those newly added bit flags should be assigned with correct and valid bit values, and getting their names should be enabled as well. Note that 'RECIP' should be removed, as nowhere will use it. Signed-off-by: Helin Zhang --- lib/librte_mbuf/rte_mbuf.c | 9 ++++----- lib/librte_mbuf/rte_mbuf.h | 19 +++++++++---------- 2 files changed, 13 insertions(+), 15 deletions(-) v2 changes: * Removed error flag of 'ECIPE' processing only in mbuf. All other error flags were added back. * Assigned error flags with correct and valid values, as their previous values were invalid. * Enabled getting all error flag names. diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c index 87c2963..3ce7c8d 100644 --- a/lib/librte_mbuf/rte_mbuf.c +++ b/lib/librte_mbuf/rte_mbuf.c @@ -210,11 +210,10 @@ const char *rte_get_rx_ol_flag_name(uint64_t mask) case PKT_RX_FDIR: return "PKT_RX_FDIR"; case PKT_RX_L4_CKSUM_BAD: return "PKT_RX_L4_CKSUM_BAD"; case PKT_RX_IP_CKSUM_BAD: return "PKT_RX_IP_CKSUM_BAD"; - /* case PKT_RX_EIP_CKSUM_BAD: return "PKT_RX_EIP_CKSUM_BAD"; */ - /* case PKT_RX_OVERSIZE: return "PKT_RX_OVERSIZE"; */ - /* case PKT_RX_HBUF_OVERFLOW: return "PKT_RX_HBUF_OVERFLOW"; */ - /* case PKT_RX_RECIP_ERR: return "PKT_RX_RECIP_ERR"; */ - /* case PKT_RX_MAC_ERR: return "PKT_RX_MAC_ERR"; */ + case PKT_RX_EIP_CKSUM_BAD: return "PKT_RX_EIP_CKSUM_BAD"; + case PKT_RX_OVERSIZE: return "PKT_RX_OVERSIZE"; + case PKT_RX_HBUF_OVERFLOW: return "PKT_RX_HBUF_OVERFLOW"; + case PKT_RX_MAC_ERR: return "PKT_RX_MAC_ERR"; case PKT_RX_IPV4_HDR: return "PKT_RX_IPV4_HDR"; case PKT_RX_IPV4_HDR_EXT: return "PKT_RX_IPV4_HDR_EXT"; case PKT_RX_IPV6_HDR: return "PKT_RX_IPV6_HDR"; diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index 2e5fce5..c9591c0 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -84,11 +84,6 @@ extern "C" { #define PKT_RX_FDIR (1ULL << 2) /**< RX packet with FDIR match indicate. */ #define PKT_RX_L4_CKSUM_BAD (1ULL << 3) /**< L4 cksum of RX pkt. is not OK. */ #define PKT_RX_IP_CKSUM_BAD (1ULL << 4) /**< IP cksum of RX pkt. is not OK. */ -#define PKT_RX_EIP_CKSUM_BAD (0ULL << 0) /**< External IP header checksum error. */ -#define PKT_RX_OVERSIZE (0ULL << 0) /**< Num of desc of an RX pkt oversize. */ -#define PKT_RX_HBUF_OVERFLOW (0ULL << 0) /**< Header buffer overflow. */ -#define PKT_RX_RECIP_ERR (0ULL << 0) /**< Hardware processing error. */ -#define PKT_RX_MAC_ERR (0ULL << 0) /**< MAC error. */ #define PKT_RX_IPV4_HDR (1ULL << 5) /**< RX packet with IPv4 header. */ #define PKT_RX_IPV4_HDR_EXT (1ULL << 6) /**< RX packet with extended IPv4 header. */ #define PKT_RX_IPV6_HDR (1ULL << 7) /**< RX packet with IPv6 header. */ @@ -99,6 +94,10 @@ extern "C" { #define PKT_RX_TUNNEL_IPV6_HDR (1ULL << 12) /**< RX tunnel packet with IPv6 header. */ #define PKT_RX_FDIR_ID (1ULL << 13) /**< FD id reported if FDIR match. */ #define PKT_RX_FDIR_FLX (1ULL << 14) /**< Flexible bytes reported if FDIR match. */ +#define PKT_RX_EIP_CKSUM_BAD (1ULL << 15) /**< External IP header checksum error. */ +#define PKT_RX_OVERSIZE (1ULL << 16) /**< Num of desc of an RX pkt oversize. */ +#define PKT_RX_HBUF_OVERFLOW (1ULL << 17) /**< Header buffer overflow. */ +#define PKT_RX_MAC_ERR (1ULL << 18) /**< MAC error. */ /* add new RX flags here */ /* add new TX flags here */ @@ -141,13 +140,13 @@ extern "C" { #define PKT_TX_IP_CKSUM (1ULL << 54) /**< IP cksum of TX pkt. computed by NIC. */ #define PKT_TX_IPV4_CSUM PKT_TX_IP_CKSUM /**< Alias of PKT_TX_IP_CKSUM. */ -/** Tell the NIC it's an IPv4 packet. Required for L4 checksum offload or TSO. */ -#define PKT_TX_IPV4 PKT_RX_IPV4_HDR +/** Tell the NIC it's an IPv4 packet. */ +#define PKT_TX_IPV4 (1ULL << 55) /**< TX packet is a IPV4 packet. */ -/** Tell the NIC it's an IPv6 packet. Required for L4 checksum offload or TSO. */ -#define PKT_TX_IPV6 PKT_RX_IPV6_HDR +/** Tell the NIC it's an IPv6 packet. */ +#define PKT_TX_IPV6 (1ULL << 56) /**< TX packet is a IPV6 packet. */ -#define PKT_TX_VLAN_PKT (1ULL << 55) /**< TX packet is a 802.1q VLAN packet. */ +#define PKT_TX_VLAN_PKT (1ULL << 57) /**< TX packet is a VLAN packet. */ /* Use final bit of flags to indicate a control mbuf */ #define CTRL_MBUF_FLAG (1ULL << 63) /**< Mbuf contains control data */