<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
span.EmailStyle18
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.EmailStyle19
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle20
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:1472822883;
mso-list-type:hybrid;
mso-list-template-ids:1704380774 -121753262 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;
mso-fareast-font-family:SimSun;
mso-bidi-font-family:"Times New Roman";}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:o;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:"Courier New";}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0A7;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Wingdings;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Yong, Thanks for your feedback. <o:p>
</o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal">All-in-one configuration file just a thought that we could combine crb.cfg/port.cfg/pktgen.cfg/ixia.cfg configuration files. Generally, users have to change these configurations for a specific test bed. For making easy use, let users are
able to change those information at one place. YAML is similar to current cfg format. Basically, it will not replace current configurations, just add an option for users.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">“Global resource management”, yes we will consider all dependencies.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">/Zhaoyan<span style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Liu, Yong <br>
<b>Sent:</b> Wednesday, July 24, 2019 11:17 AM<br>
<b>To:</b> Chen, Zhaoyan <zhaoyan.chen@intel.com>; dts@dpdk.org<br>
<b>Cc:</b> Chen, Zhaoyan <zhaoyan.chen@intel.com><br>
<b>Subject:</b> RE: DTS Enhancement Plan<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi Zhaoyan,<o:p></o:p></p>
<p class="MsoNormal">This is great overall idea. It will be nice to see the roadmap of DTS enhancement work, since all works can’t be done in one day<span style="font-family:Wingdings">J</span><o:p></o:p></p>
<p class="MsoNormal" style="margin-left:5.15pt"><o:p> </o:p></p>
<p class="MsoNormal">One comment for “All-in-one configuration file”. It is nice at first glance, but configuration file may will be too huge for reading and modification after add things continuously.
<o:p></o:p></p>
<p class="MsoNormal">And json format has been supported in DTS, is there any special reason for replacing it?<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:5.15pt"><o:p> </o:p></p>
<p class="MsoNormal">In my mind “Global resource management” will manage all the resources for test cases. We also need to add test binary into consideration, as it is also shared between suites.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal">Marvin<o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><a name="_____replyseparator"></a><b>From:</b> dts [<a href="mailto:dts-bounces@dpdk.org">mailto:dts-bounces@dpdk.org</a>]
<b>On Behalf Of </b>Chen, Zhaoyan<br>
<b>Sent:</b> Wednesday, July 24, 2019 10:52 AM<br>
<b>To:</b> <a href="mailto:dts@dpdk.org">dts@dpdk.org</a><br>
<b>Cc:</b> Chen, Zhaoyan <<a href="mailto:zhaoyan.chen@intel.com">zhaoyan.chen@intel.com</a>><br>
<b>Subject:</b> [dts] DTS Enhancement Plan<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi, DTS developers/users,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">With DPDK development rapidly, more and more test suites were developed in DTS. (150+ test suites and 3k+ test cases in DTS). Meanwhile, paralleling execution tests for NICs/crypto/other device on same DUT become important for reducing
execution time for covering all test cases. So we plan to enhance the DTS, for<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo2"><![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>Improve test suite quality <o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo2"><![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>Unified test capability/function into framework<o:p></o:p></p>
<p class="MsoListParagraph" style="text-indent:-.25in;mso-list:l0 level1 lfo2"><![if !supportLists]><span style="font-family:Symbol"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]>Paralleling execution<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">So we draft a DTS development plan, and share with you. <o:p>
</o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Looking forward to hear your thoughts, ideas and suggestions.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">/Zhaoyan<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">DTS framework enhancement<o:p></o:p></p>
<p class="MsoNormal">=========================<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Unified packet sending for functionality test<o:p></o:p></p>
<p class="MsoNormal"> * Implement all packet sending features in Packet Class<o:p></o:p></p>
<p class="MsoNormal"> * Remove others sending functions in DTS framework<o:p></o:p></p>
<p class="MsoNormal"> * Sending packet from Tester only<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Generic EAL options generator for DPDK based application<o:p></o:p></p>
<p class="MsoNormal"> * Generate EAL options for DPDK app, and consider the assigned hardware resource for test, instead of whole DUT<o:p></o:p></p>
<p class="MsoNormal"> * Test suite can overwrite the options, in restricted range<o:p></o:p></p>
<p class="MsoNormal"> * Define hardware resource in crb.cfg, port.cfg and pktgen.cfg<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Global resource management<o:p></o:p></p>
<p class="MsoNormal"> * Global driver load or unload, vfio-pci, igb_uio, uio_pci_generic<o:p></o:p></p>
<p class="MsoNormal"> * Define a parameter to decside if insmod/rmmod, if the module updated. otherwise, keep this module on host.<o:p></o:p></p>
<p class="MsoNormal"> * External_memory setup<o:p></o:p></p>
<p class="MsoNormal"> * Define DUT's cores mask in crb configuration<o:p></o:p></p>
<p class="MsoNormal"> * Define DUT's ports mask<o:p></o:p></p>
<p class="MsoNormal"> * Define physical ports in crb config<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Clean up unused APIs, unused imported libraries, and unused APIs<o:p></o:p></p>
<p class="MsoNormal"> * plotting.py, plotgraph.py, numpy, matplotlib<o:p></o:p></p>
<p class="MsoNormal"> * e.g. self.tester.run_rfc2544, has been replaced by pktgen class<o:p></o:p></p>
<p class="MsoNormal"> * Replace private texttable.py with public version<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">All-in-one configuration file<o:p></o:p></p>
<p class="MsoNormal"> * Support configure all information in one configuration file for easy using<o:p></o:p></p>
<p class="MsoNormal"> * yaml file is better<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Prepare to move to Python 3, make code be compatible with py2 and py3<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Generate auto-script for all DTS dependencies<o:p></o:p></p>
<p class="MsoNormal"> * Update requirements.txt<o:p></o:p></p>
<p class="MsoNormal"> * Generate script for binary dependencies for compilation python packages<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Release DTS container version<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Test Suites cleanness<o:p></o:p></p>
<p class="MsoNormal">=================<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Move to new packet sending API<o:p></o:p></p>
<p class="MsoNormal"> * Update all tests, which generate packets and send packets<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Move to generic EAL generator API<o:p></o:p></p>
<p class="MsoNormal"> * Update all tests which use DPDK based application with new EAL string<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Clean up "sleep"<o:p></o:p></p>
<p class="MsoNormal"> * Replace "sleep" with a stable checking mechanism
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Replace "pktgen app" with "testpmd app" for testing<o:p></o:p></p>
<p class="MsoNormal"> * pktgen app needs be built for special DPDK version and too heavy for a simple function test, replace it in test case with testpmd app<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Clean up absolute path<o:p></o:p></p>
<p class="MsoNormal"> * Replace "/tmp" with "/tmp/<dts_pid_random>/", or relative path "tmp".
<o:p></o:p></p>
<p class="MsoNormal"> * Replace specific OS path in test case<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Clean up test case dependencies, (files, libraries or tools)<o:p></o:p></p>
<p class="MsoNormal"> * Check all test suites, and add dependencies into auto-script or requirements.txt<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>