test suite reviews and discussions
 help / color / mirror / Atom feed
* [dts] [PATCH] test_plans: add crc generation and computation
@ 2017-04-05 20:46 Peng Yuan
  2017-04-20  6:09 ` Liu, Yong
  0 siblings, 1 reply; 2+ messages in thread
From: Peng Yuan @ 2017-04-05 20:46 UTC (permalink / raw)
  To: dts; +Cc: Peng Yuan

Signed-off-by: Peng Yuan <yuan.peng@intel.com>

diff --git a/test_plans/unit_tests_crc_test_plan.rst b/test_plans/unit_tests_crc_test_plan.rst
new file mode 100644
index 0000000..6a5f87e
--- /dev/null
+++ b/test_plans/unit_tests_crc_test_plan.rst
@@ -0,0 +1,86 @@
+.. Copyright (c) <2014>, Intel Corporation
+      All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions
+   are met:
+
+   - Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+   - Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in
+     the documentation and/or other materials provided with the
+     distribution.
+
+   - Neither the name of Intel Corporation nor the names of its
+     contributors may be used to endorse or promote products derived
+     from this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+   COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+   OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=====================
+Algorithm Description
+=====================
+
+In some applications, CRC (Cyclic Redundancy Check) needs to be computed
+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.
+
+The first version presents a fast and efficient CRC generation on
+IA processors by using the carry-less multiplication instruction PCLMULQDQ
+(i.e SSE4.2 instrinsics). In this implementation, a parallelized folding
+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 constants.
+The resultant single 16-bytes chunk is further reduced by Barrett reduction
+method to generate final CRC value. For more details on the implementation,
+see reference [1].
+
+The second version presents the fallback solution to support the
+CRC generation without needing any specific support from CPU (for examples-
+SSE4.2 intrinsics). It is based on generic Look-Up Table(LUT) algorithm
+that uses precomputed 256 element table as explained in reference[2].
+
+During intialisation, all the data structures required for CRC computation
+are initialised. Also, x86 specific crc implementation
+(if supported by the platform) or scalar version is enabled.
+
+============
+CRC Autotest
+============
+
+the unit test compare the results of scalar and sse4.2 versions individually
+with the known crc results. Some of these crc results and corresponding test
+vecotrs are based on the test string mentioned in ethernet specification doc
+and x.25 doc
+
+This section explains how to run the unit tests for crc computation. The test
+can be launched independently using the command line interface.
+This test is implemented as a linuxapp environment application.
+
+The complete test suite is launched automatically using a python-expect
+script (launched using ``make test``) that sends commands to
+the application and checks the results. A test report is displayed on
+stdout.
+The steps to run the unit test manually are as follow::
+
+  # cd ~/dpdk
+  # make config T=x86_64-native-linuxapp-gcc 
+  # make test
+  # ./build/build/test/test/test -n 1 -c ffff
+  RTE>> crc_autotest
+
+The final output of the test will has to be "Test OK".
-- 
2.5.0

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [dts] [PATCH] test_plans: add crc generation and computation
  2017-04-05 20:46 [dts] [PATCH] test_plans: add crc generation and computation Peng Yuan
@ 2017-04-20  6:09 ` Liu, Yong
  0 siblings, 0 replies; 2+ messages in thread
From: Liu, Yong @ 2017-04-20  6:09 UTC (permalink / raw)
  To: Peng Yuan, dts

Thanks, applied.

On 04/06/2017 04:46 AM, Peng Yuan wrote:
> Signed-off-by: Peng Yuan<yuan.peng@intel.com>
>
> diff --git a/test_plans/unit_tests_crc_test_plan.rst b/test_plans/unit_tests_crc_test_plan.rst
> new file mode 100644
> index 0000000..6a5f87e

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-04-20  6:20 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-05 20:46 [dts] [PATCH] test_plans: add crc generation and computation Peng Yuan
2017-04-20  6:09 ` Liu, Yong

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).