From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-f173.google.com (mail-wr0-f173.google.com [209.85.128.173]) by dpdk.org (Postfix) with ESMTP id CB5225599 for ; Wed, 5 Apr 2017 23:00:37 +0200 (CEST) Received: by mail-wr0-f173.google.com with SMTP id w11so30630163wrc.3 for ; Wed, 05 Apr 2017 14:00:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:user-agent:in-reply-to :references:mime-version:content-transfer-encoding; bh=nIgbTXoRLCHN7kbZI2znaU49uStmK5o0QMS+fZs/3gA=; b=wzvJA45NbE8kuSHM7cQggYFW9s83qFmhKD6hhxbBDM/oZr7bc2eZrblCZmN3xdqm6X XeqA5NzytThTy3eQIThZ+zxQMwjFft3RAdPZbgtGxybsTg3SRNZziykefo75h53wd5QW iG/0yxKipWHYiKNUW2KzFp33v/UnMnlo12G3psOoIXD+5Jq1hS3Px3fMDLUaZll/mCqQ ZwUo2IYlH42pFRkSKytUpvS2AHkWYX3ZIQ+K9z1YdlYt68fPlKImFQqgfUPkTE0x29CY 2Apfgi/hkM0CpntJBbty2B3WJxnIBEbowvvkVoEyz5n3dvMxWARmK2C+hBwLmLdu+BY3 rRJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:user-agent :in-reply-to:references:mime-version:content-transfer-encoding; bh=nIgbTXoRLCHN7kbZI2znaU49uStmK5o0QMS+fZs/3gA=; b=M/yKlmb02l/5OHG9I4YQYmues3eXsdlEv7KcL/dNE1R7DrBD6JtbWVK4BEZnoirRbc FlN5ZU7KMWV+bs6fo1TeYAiJ2tPHousqg81L78OW3duSipF2I/ghKNZji/8hsmX0/BDa Maf7jQ/7faB2MWChy/rRc7WhSWm3QIjWqsHzw3oo4gcPADleyUjVPGlGD+JshxBvJWkx V+Riy31IzsFOByWiOSFwrxNR9Yi6/yLNR2ZOvMyyyK4OizC+0NkEUl7aMPNIJTy6B+ir zdI82/YuxjBCY5YeVGhFuhcY69R+eeEMl5sbSrNIKpwjFivlsk9r2gFxAzNqkLclZWFQ W09A== X-Gm-Message-State: AFeK/H2M3f2qf4eVd42x13JuYrQsi5vyd1+Ap/dwei0b+yTmdfu/aZHpqH/Ecm/K46YmKLFu X-Received: by 10.223.139.80 with SMTP id v16mr25421739wra.133.1491426037327; Wed, 05 Apr 2017 14:00:37 -0700 (PDT) Received: from xps13.localnet (184.203.134.77.rev.sfr.net. [77.134.203.184]) by smtp.gmail.com with ESMTPSA id g63sm23850900wme.11.2017.04.05.14.00.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 05 Apr 2017 14:00:36 -0700 (PDT) From: Thomas Monjalon To: Jasvinder Singh Cc: dev@dpdk.org, olivier.matz@6wind.com, declan.doherty@intel.com, pablo.de.lara.guarch@intel.com Date: Wed, 05 Apr 2017 23:00:36 +0200 Message-ID: <18643891.0Xm9KDEz26@xps13> User-Agent: KMail/4.14.10 (Linux/4.5.4-1-ARCH; KDE/4.14.11; x86_64; ; ) In-Reply-To: <1491425390-71783-1-git-send-email-jasvinder.singh@intel.com> References: <1491404326-89256-2-git-send-email-jasvinder.singh@intel.com> <1491425390-71783-1-git-send-email-jasvinder.singh@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Subject: Re: [dpdk-dev] [PATCH v11 0/2] librte_net: add crc computation support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Apr 2017 21:00:38 -0000 2017-04-05 21:49, Jasvinder Singh: > In some applications, CRC (Cyclic Redundancy Check) needs to be compu= ted > or updated during packet processing operations. This patchset adds > software implementation of some common standard CRCs (32-bit Ethernet= > CRC as per Ethernet/[ISO/IEC 8802-3] and 16-bit CCITT-CRC [ITU-T X.25= ]). > Two versions of each 32-bit and 16-bit CRC calculation are proposed. >=20 > The first version presents a fast and efficient CRC generation on IA > processors by using the carry-less multiplication instruction =EF=BF=BD= PCLMULQDQ > (i.e SSE4.2 instrinsics). In this implementation, a parallelized fold= ing > approach has been used to first reduce an arbitrary length buffer to = a small > fixed size length buffer (16 bytes) with the help of precomputed cons= tants. > The resultant single 16-bytes chunk is further reduced by Barrett red= uction > method to generate final CRC value. For more details on the implement= ation, > see reference [1]. >=20 > The second version presents the fallback solution to support the CRC > generation without needing any specific support from CPU (for example= s- > SSE4.2 intrinsics). It is based on generic Look-Up Table(LUT) algorit= hm > that uses precomputed 256 element table as explained in reference[2].= >=20 > During intialisation, all the data structures required for CRC comput= ation > are initialised. Also, x86 specific crc implementation (if supported = by > the platform) or scalar version is enabled. Applied (with one last fix), thanks