<div dir="ltr"><p class="MsoNormal" align="left" style="font-size:14px;word-break:keep-all"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">Hi,</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">I want to check the performance of DPDK OVS in aspect of forwarding as below URL.</span></p><div style="font-size:14px"><br></div><div style="font-size:14px"><a href="https://drive.google.com/a/os.korea.ac.kr/file/d/0BxEx0xE0gw2ETjhkaUpzN3YxSVU/view?usp=sharing" target="_blank">https://drive.google.com/a/os.<wbr>korea.ac.kr/file/d/<wbr>0BxEx0xE0gw2ETjhkaUpzN3YxSVU/<wbr>view?usp=sharing</a><br></div><div style="font-size:14px"><br></div><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">There is a similar experiment at &#39;Intel® Open Network Platform Release 2.1 Performance Test Report&#39;. Also, there is the result of this. the result shows that when DPDK OVS use multi poll-mode thread and receive multi flows packet, it can achieve amazing throughput. Thus, it can achieves high performance in multi-flows environment.  </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">However, I couldn&#39;t make this result in my experiment environment. when I made 10 types of packet by DPDK pktgen machine, the throughput dropped by 2Gbps. with single flow and multi threading, the throughput is 8Gbps in my machine. Thus, it is a big problem to me.</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"><br></span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">What makes these the problems in my experiment?</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"><br></span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">Please Help me.</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">My setting is as below:</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">Hardware(both is same)</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> - cpu: Xeon 2630 v2 *2 (NUMA)</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> - mem: 48G (sum of hugepage(1G) :16G)</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> - nic: 82599 ES</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">Software(DPDK OVS)</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> - OS: ubuntu 16.04</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> - kernel 4.8.0-54 generic(default kernel)</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> - DPDK :2.2 OVS :2.5.2 [I installed this from ubuntu package(ex. apt-get install ovs-vswitch-dpdk)]</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> - the way to set flow table :</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"><br></span></p><p class="MsoNormal" style="font-size:14px"><font color="#444444"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">&quot;i=0</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></font></p><p class="MsoNormal" style="font-size:14px"><font color="#444444"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">j=1</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></font></p><p class="MsoNormal" style="font-size:14px"><font color="#444444"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">while [ $i != 1 ]</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></font></p><p class="MsoNormal" style="font-size:14px"><font color="#444444"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">do</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></font></p><p class="MsoNormal" style="font-size:14px"><font color="#444444"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">        while [ $j != 255 ]</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></font></p><p class="MsoNormal" style="font-size:14px"><font color="#444444"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">        do</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></font></p><p class="MsoNormal" style="font-size:14px"><font color="#444444"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">                ovs-ofctl add-flow br0 ip,nw_dst=192.0.&quot;$i&quot;.&quot;$j&quot;,<wbr>actions=mod_dl_dst:90:e2:ba:<wbr>5b:88:2c,in_port</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></font></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"><font color="#444444"> </font></span></p><p class="MsoNormal" style="font-size:14px"><font color="#444444"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">                j=$((j+1))</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></font></p><p class="MsoNormal" style="font-size:14px"><font color="#444444"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">        done</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></font></p><p class="MsoNormal" style="font-size:14px"><font color="#444444"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">        j=1</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></font></p><p class="MsoNormal" style="font-size:14px"><font color="#444444"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial">        i=$((i+1))</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></font></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif;background-image:initial;background-position:initial;background-size:initial;background-repeat:initial;background-origin:initial;background-clip:initial"><font color="#444444">done&quot;</font></span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> - used commands for multi queues &amp; threads:</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=0x3f</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">ovs-vsctl set Open_vSwitch . other_config:n-dpdk-rxqs=4</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">ovs-vsctl set Open_vSwitch . other_config:n-dpdk-txqs=4</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">Software(Pktgen)</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">- multi flow command (lua):</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_mac(&quot;all&quot;,&quot;start&quot;,&quot;<wbr>90:e2:ba:5a:78:30&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_mac(&quot;all&quot;,&quot;inc&quot;,&quot;<wbr>00:00:00:00:00:00&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_mac(&quot;all&quot;,&quot;min&quot;,&quot;<wbr>90:e2:ba:5a:78:30&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_mac(&quot;all&quot;,&quot;max&quot;,&quot;<wbr>90:e2:ba:5a:78:30&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_mac(&quot;all&quot;,&quot;start&quot;,&quot;<wbr>90:e2:ba:5b:88:2c&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_mac(&quot;all&quot;,&quot;inc&quot;,&quot;<wbr>00:00:00:00:00:00&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_mac(&quot;all&quot;,&quot;min&quot;,&quot;<wbr>90:e2:ba:5b:88:2c&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_mac(&quot;all&quot;,&quot;max&quot;,&quot;<wbr>90:e2:ba:5b:88:2c&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">--pktgen.delay(1000);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_ip(&quot;all&quot;,&quot;start&quot;,&quot;<wbr>192.0.0.1&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_ip(&quot;all&quot;,&quot;inc&quot;,&quot;0.<wbr>0.0.1&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_ip(&quot;all&quot;,&quot;min&quot;,&quot;<wbr>192.0.0.1&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_ip(&quot;all&quot;,&quot;max&quot;,&quot;<wbr>192.0.0.10&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">--pktgen.delay(1000);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_ip(&quot;all&quot;,&quot;start&quot;,&quot;<wbr>10.0.0.1&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_ip(&quot;all&quot;,&quot;inc&quot;,&quot;0.<wbr>0.0.0&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_ip(&quot;all&quot;,&quot;min&quot;,&quot;10.<wbr>0.0.1&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_ip(&quot;all&quot;,&quot;max&quot;,&quot;10.<wbr>0.0.1&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">--pktgen.delay(1000);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_port(&quot;all&quot;,&quot;start&quot;,<wbr>9);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_port(&quot;all&quot;,&quot;inc&quot;,0)<wbr>;</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_port(&quot;all&quot;,&quot;min&quot;,9)<wbr>;</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.src_port(&quot;all&quot;,&quot;max&quot;,9)<wbr>;</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">--pktgen.delay(1000);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_port(&quot;all&quot;,&quot;start&quot;,<wbr>10);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_port(&quot;all&quot;,&quot;inc&quot;,0)<wbr>;</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_port(&quot;all&quot;,&quot;min&quot;,<wbr>10);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.dst_port(&quot;all&quot;,&quot;max&quot;,<wbr>10);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">--pktgen.delay(1000);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.pkt_size(&quot;all&quot;,&quot;start&quot;,<wbr>64);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.pkt_size(&quot;all&quot;,&quot;inc&quot;,0)<wbr>;</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.pkt_size(&quot;all&quot;,&quot;min&quot;,<wbr>64);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.pkt_size(&quot;all&quot;,&quot;max&quot;,<wbr>64);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.set_proto(&quot;all&quot;,&quot;tcp&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">pktgen.set_type(&quot;all&quot;,&quot;ipv4&quot;);</span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"><br></span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"><br></span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif">- Use 10 core  </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></p><p class="MsoNormal" style="font-size:14px"><font face="굴림, sans-serif"><span style="font-size:16px">./app/app/x86_64-native-<wbr>linuxapp-gcc/pktgen -c 0x7df -n 4 --  -f multiflow.lua -N  -m &quot;[1-5:6-10].0&quot;</span></font></p><div style="font-size:14px"><br></div><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:10.5pt;font-family:굴림,sans-serif">Please let me know if you have any insights.</span><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"></span></p><p class="MsoNormal" style="font-size:14px"><span lang="EN-US" style="font-size:12pt;font-family:굴림,sans-serif"> </span></p></div>