diff --git a/Makefile b/Makefile index 9576739e52f4a4cb5e5c6a8d74f145c4a2f7cb2f..a8e3fded0e08fcce6f8b4d8bb324d3debdfdbda1 100644 --- a/Makefile +++ b/Makefile @@ -90,4 +90,4 @@ help: @echo " doc-spellcheck - Spellcheck the Sphinx documentation" @echo " dpdk - Build DPDK" @echo " vpp - Build VPP" - @echo " traffic-gen - Build traffic generator tools, e.g., wrk2" + @echo " traffic-gen - Build traffic generator tools, e.g., wrk2,trex" diff --git a/patches/trex/trex_pcap_yaml.patch b/patches/trex/trex_pcap_yaml.patch new file mode 100644 index 0000000000000000000000000000000000000000..f96b301f8e875e754321803d05de3006c2f96708 --- /dev/null +++ b/patches/trex/trex_pcap_yaml.patch @@ -0,0 +1,282 @@ +diff --git a/scripts/pcap_yaml/tcp_1024.pcap b/scripts/pcap_yaml/tcp_1024.pcap +new file mode 100644 +index 0000000000000000000000000000000000000000..f7c97bcbc8db3a18b7097d4551b41a355d39b577 +GIT binary patch +literal 4692 +zcmca|c+)~A1{MYcU}Rtfa+2QGr{12$$lwKJgYXXfOKWDky?A|DfL)4%!Igo*hJnF> +zp`K0c*MSubydn$?ykea46O0-|kAX~Dz{GrvNr!=fiG}$XBQrAt3lj%dcDL(QkQ~V5 +zd*~+H0Zq1DI|pHM9h*8?CiBigxEW$5*yVNzlR<6z0Ns6jfe`aC +z`%Y9h3n_3M0=XOHW+7CQf#CoN6NJeiHGtguwV905!daaOEu4=7-Tkvc +zfcaQX0s{jhBP4u5?ghCOWa1xY1~5i9k@+3OL}d@GCQ2|L+y52SM8i=q8UmvsFa$#Y +zR2ED@FI|w!T5#!7$EHD2=>jqlrF20u5mLI;v8jxfE<-TAj5>KV1c(m-Q0Y=V7f}|V +zx3>^24YXF#Pou`j#s*+ZV~;hYr2%Va5pVaX%Fz%Q4S~TE0-&;B7HV05(nCVD3r5R= +P!4qqvE*T90>W2UT>TTFm + +literal 0 +HcmV?d00001 + +diff --git a/scripts/pcap_yaml/tcp_1518.pcap b/scripts/pcap_yaml/tcp_1518.pcap +new file mode 100644 +index 0000000000000000000000000000000000000000..d115410ee9ba636f6d07e6d6a23207c76c429b58 +GIT binary patch +literal 18908 +zcmeI3PfHt76vgjMGBGI#BBI4j+Ah?BPz+gF6Gcc%3c-c6CAyF-;=(Qj7cLWLYd67d +zvq=0~Xal7Tq`QiO?zOt=2PpLmR12l=X3&=z6`mn6vp53-874V%@_XUj_wG!7?0+rm +zgW$rf@q9rg7SfZi`|dZ*+bOX8wwX9 +z=IaAiD(QyxZ;D9w8Q;^msTS#YqKNM-iih;n8_qe(%A_iLP^ +zHs?Xz#raV9K40lFtc4{aO|$v3U-rt1zYVJGZbjp#t@wE6M#YDQmDq49j$i`;5C8!X +z@H7EV{#AD^sjsZHT9OM4-KmzaqNA47DcZFp7kGkN;^|)o%z*$1fPgvyt|c!wW%9e% +zQgRjHTJfAm%-O{iv5FY~Yp)_M*HG%$#ydd(1V8`;+ChMmf7+S+j$W6X^CS7&F+R8^ +z2!H?xG@k$`|5{!0tKK=7T})Ny$~@;EoyMJm=8p>$K>!3mpmhW|`MNEA{!2{LLK) +zsDS_ofWZ9`;N*Y1E$95Ief~^es+vvmod21A)#pFu=X>tYJFWx*AOHd&&L%-o1&zN^am8Xs)JZRhJw;b +zH={VV7KsvFlrHK*5DJ4X+*tDmx)4F^qT595IZ^Lrrd>>z7j9r6A>ql(%fq`khu^<^ +z)F1@n#em_5-=iO1M9wuB!1wfg>pRFVJUu@7QCrzm1y2AT0VH6&BAVUFX^BSA65(uQ +z-Zq~m?JF=#lww)^eH; +zkv_Cs&)nHvFL^Ze{u9xOd{UvqWBeC-{>t2SnR(Hdc?jtRqn5c}mjDQvSS$c4eEa3Sa}#B|$C +zC&`6dNxlo~xC>LVHlcEp3q3L6LeO1ECoQLSn_TF8%XeW0cVS(1Dr*DeLfZ}DLeO1k +z-L}n4kzDB5A+3Mw8xcGzaU<=24O&crso1hHqwfe*2$qX1?#!>t~O> +zzz;gl-W~uR*4cn(Mz_a3;0p7(g@Cw&V<7qH^!*1RFbTi~-`gZe20x&+r$=|zj=zg6 +zWkGs%`r0lh)x6Qhw>toM{ecy~Hza_~8I_NFd_I>veA3?~cbJ^tBCj6-KnY&|$*G(U +z(o5M(qaQaJy;&QI))wyVldskTr#QVs{-XN9IQtW~1Da#Lbyst|Pji#ew-zJO#*-nY +z(c|h(aWapBGvNn60>HI?V&JQ<&WZKAehc|B)h+p-KipVLiTzy-^s +zmO)^JjnUqoCLsl>#XN=Tc}-Un=MbAOPGvG_EF(EAOj)!tBF3Z#oS<-xhv|L{dy` +zLKa%BCL;+s#6U7s1{}POE*3ObpnQn5<#9eo=iEk9kQC3u1d<0FFMcT;QmyFjg=l+P +z97!-fU}Xdor9^GVD${+B?WU@pWlaobFQ=g*Nh%8@QU-tUO1Pw(#a1A@o)$wgQY1L& +zT`uGDZQXVo9zhg`!vo%38{5R;nV+)E|B}@aZvB}bJojzz%>RC+H}lUfyS3z4wDIe6 +zZ{{~R)`0U?v1$;?&T)dBWI3Vb4C8+!biSZh--F%ac%baYUIcmBEjRnh?$+w`?DAsd +R#P-8mtp%~dxXVgz>JMpEj5h!P + +literal 0 +HcmV?d00001 + +diff --git a/scripts/pcap_yaml/traffic_yaml.yaml b/scripts/pcap_yaml/traffic_yaml.yaml +new file mode 100755 +index 000000000..ada982dff +--- /dev/null ++++ b/scripts/pcap_yaml/traffic_yaml.yaml +@@ -0,0 +1,18 @@ ++- duration : 0.1 ++ generator : ++ distribution : "seq" ++ clients_start : "16.0.0.1" ++ clients_end : "16.0.255.255" ++ servers_start : "48.0.0.1" ++ servers_end : "48.0.255.255" ++ clients_per_gb : 201 ++ min_clients : 101 ++ dual_port_mask : "1.0.0.0" ++ tcp_aging : 0 ++ udp_aging : 0 ++ cap_info : ++ - name: cap2/udp_1024.pcap ++ cps : 1000 ++ ipg : 1000 ++ rtt : 1000 ++ w : 1 +diff --git a/scripts/pcap_yaml/trex_cfg.yaml b/scripts/pcap_yaml/trex_cfg.yaml +new file mode 100644 +index 000000000..0be00df3a +--- /dev/null ++++ b/scripts/pcap_yaml/trex_cfg.yaml +@@ -0,0 +1,15 @@ ++- port_limit : 2 ++ version : 2 ++ c : 30 ++ interfaces : ["17:00.0","17:00.1"] ++ port_info : # Port IPs. Change to suit your needs. In case of loopback, you can leave as is. ++ - ip : 10.10.1.2 ++ default_gw : 10.10.1.1 ++ - ip : 10.10.2.2 ++ default_gw : 10.10.2.1 ++ platform : ++ master_thread_id: 0 ++ latency_thread_id: 32 ++ dual_if: ++ - socket: 0 ++ threads: [2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 95, 87, 89, 91, 93] +diff --git a/scripts/pcap_yaml/udp_1024.pcap b/scripts/pcap_yaml/udp_1024.pcap +new file mode 100644 +index 0000000000000000000000000000000000000000..69981d93c89b72f909327ba241dd04909f23d361 +GIT binary patch +literal 4168 +zcmeI#sjenP7=Ym(4kXw~@FU%&snx1dbsdguO|(oBDrmZ79XZpgrEZOg +z*dFs4xSRs#*|rv0vxHbNb!GQ>q)xrFDFKr+HRip6#?@rh5%6oNH?8ei`v*TgD0G_27p!wec)snsQ!( +zG|zY2B0i5ot>!gz=^Cs_r>OZ56OhURc$v@RAS!Vz*u73lrye{Hz}) +z;fS4Fv>2m;nuf8icvy2WRedXtMp;4;2hUUxQK_^8RaPxnL^QREIh`66waF6NyhCf) +z@B?DoGdM0waW>Inx1njNj1ogOw*#aK?hi1q(j_>oB9~jX3wSZv#X>vrOLp;qo$3QW +zhE6nqYDxnzB&O6lbnChxJfJ-4pd72%;hKhY5!dtGQMx;)8Ct4aPJOwG&)N=+s5O>2G1NpX%?vsAK^0Tf8!((pcsbppbAw?~ +zSur7Yk#7~d(6U-Nk)Dg=^FV-e<0KdvUMqwrB&XhWQZQ=mo)Hu~n@lqvN#zi6fnJJL +zl*T}VQ>59xTpXxo)7&)--(O2_^>DtJeg;`++xD#mw-(%5aBIQ8E%@le2N%2)!Al)H +qxZwTAZ$>Xn@WKX9o;|<2x!~r4n+yJnF8KJ?g4>R8+Y$cvJHp>$U+oJ3 + +literal 0 +HcmV?d00001 + +diff --git a/scripts/pcap_yaml/udp_1518.pcap b/scripts/pcap_yaml/udp_1518.pcap +new file mode 100644 +index 0000000000000000000000000000000000000000..8890d8dab2d8d57c6c1f1b66d9e9dc5413d5b84c +GIT binary patch +literal 24504 +zcmeI4yUy%Z8HOi2*@7ZMi9{8OTmeW(sUi{Z^7(8pAD4xYY>&@gKA(#q?jU`3Lq|cH +zRFp_G)FdSrz~LsCKPi5}9kBmzBo|ZInz3hIJ$k?Q{l5Ln*S~*td++xAdgu1eSeAN=5>AKv)e>%ZS_zqr{pp2HdoaRzJ@+P~+QOgLIX-SI|W+I(AsL?2G +zl#lF)qIJJ)zlrnA50$O-JTAp-QIbR$l+z0Hft0!z(Q(4Or;WW4@j-ynQK_;d9t8;* +zT|Wel-1Om@Wm;NdfnD@XI*j8gw{g99275896q2i$8HBgYofy40=Ne0lb6zg8cCq07 +zDwZ_f>7(4=9qu?Sm&uSMd&j=Gd*FzcX!VR7XnLx~`$VvO#8W*+Rug2$m?ODXu2S!q +zsJC`L(S~#D9n#djV^PgWCe@c)XSKFzr909%taH>zh(A_sI$meLdf{mf^L>`)>C{jk +z8G5{TI0;h1%tdr9=rB8uT>>?$kIr1YK;EnrGn4(ePRB8er3ua5wgPvUu90ax$u*^= +zt1a5@oI!N9NCmElG+z^!EpMkKm?J^M(Q>erVIT{XZBgmtn?XT?4nVv|p&hjpU36CBNG@k~}xt2aZ6=Plb?P{DL +z-u*2}_?kahFDq;87qz%>mS~h1MOHG#w4j336!m;^`Mx0CtnOrEqX^Y$8LNyz^DbSN +z#}l#29jBwK`jciZgKO92Xsw-Dk-osmr5l5)xP4p5J&UA0y=Gr)lcMFiEw2loR;i|H +zb>^~8GxG`FmAn;A$JtReCdjQ)zt%lBC@D6{wQgp}ZI2t8wnMm$p1fBLht9|(tv)%` +z(BmMarq0@Gq?uA76PjH2+$OVuCxmFvh0z?+tXPuJIxjt(&8f-2@H)Vsz`lS$(uo7TKZ0xOxidsvNPt!XQ2!j5_}MpEP&o8@|3 +zei>;eB;nbLt~FISTyi;9)uRtJ%g{Qh)H+0(OvRZjx>~o&5f1XXD^ce(zE0YxwbeMo +zw3D=)fBaPi8WS{2V{zO&TDzlPT0+EB)lrzfEO1tToTns3$>!`n>m7Gtt7UB}+fmoq +zz1KA^-bGP=d`y)nE6pDd)n@x3#f0+Bs98ATmXk>hQCkfEO2Wn*B#c(#cuEsaX~4u$ +zFM594C`wM*xY|5PH`G%z2N_RH{`kF_7K-V1zb3YGT-}TD+C)aqSTQy9ri|m9&nc0N +z=2`0W5Wrh{VmRoXUT|-5`J5AkGd!5EK(HJrB +zhp6AMjrpF7FSB&HgIC73D!7#7r<130Q24c@)Z#Ws6<2n{W_rSD +zn5UyH7phSY$`8s9$`8s9%Ks9T|7XDb!2H1c!2H1cFO2y?`N8c0w+GxFaC=^w+XKoE +z$`8s9$`8u_(v-jZU$^J8$AtG6U%h#r@P7W`Phi3e6JD6`!h{zlyl>Hj7nC2EADADQ +zADADQADACfosjB;R41f5-|kc=Fh4LqFh4LqF#k(q{vLdONOeN06H=X!>U?3T&R0Kr +z?(lx^^L*Fj{p@+d`_$om>hC`Fct8H)(;Ygz(BXv+FLZdJ!~6f;;RWRfw+GxFaC^Y* +zd1-DBC_gAaC_gAaDE~`Se)+%Mp2x1X@AtMnyFE{NesFtWV;gL2gN<#lvF+{I*apfE +d%n!^D%n!^D%n!^Dd49#P;-v-um(6(Zlf8 +z+dlDg{n*@B_dYy-%zgd#@%q)9*9eyAoe;z!@nGln=hx5rhc}4+;qLL?QSZz5AGMXR +zlFH>uXSYtpF)R%!^`QP_0JJZIso8gty3 +zG1)G5n?hlx#?V$)nvT36ZNb8HMN&eY!(|Cy3RwjMFwOKZkX?~!l8Fr*Z$O0z2DFjM +z#<-9sG^5mkVWQZXLrOzjkVf;7Z%AVi3=)1wtMfYd3%VY&ap(K1*02mDw|3k_xyHky +zloCrriQc8&oKERTSZSHSV>)hvGJQlAGSng2Xtl?9Rw@g^(zO&3Hk08DEbU4zBaLeSnmei+&a|;8n}yFd +zKuN^~u(?v9tDJ7O*1IpS=Nz*@jsz*@k3;UZtazJPt<%opCB +z>yD?b@i%=u*mlPacib??4SU=>+C9eH@qgux@39szgZ{&yu@-PfoMptx-@dTkN}X<~ +bwi&VE3pgV#!)^*|0s8{>1w2!ppDBL<^DX;! + +literal 0 +HcmV?d00001 + +diff --git a/scripts/pcap_yaml/udp_64.pcap b/scripts/pcap_yaml/udp_64.pcap +new file mode 100644 +index 0000000000000000000000000000000000000000..2a160a235080825b9c50b1c6d165de3ea232a0a2 +GIT binary patch +literal 1544 +zcmca|c+)~A1{MYcU}RtfavC}sQzZ{`GuQyxAiTr=(wffjRdoD(Zh>^^i_mz76oDd=LjO*Lt+q|`t1<$2uk;$G!IJq@)N{3ai{xH +hvtZ=}apA>q6ea9|r46LyL4-Xh4~?1yD_5x%UH~e@+Ohxu + +literal 0 +HcmV?d00001 + +diff --git a/scripts/pcap_yaml/udp_imix.pcap b/scripts/pcap_yaml/udp_imix.pcap +new file mode 100644 +index 0000000000000000000000000000000000000000..04cfcab841def15ad14e73475f8aaa8fc92a6c7e +GIT binary patch +literal 2530 +zcmaKtc{J2}AIE=V-v(i96~o9{WXL)~$RNTXBxDKM?zI($DBBHPj6KT;*~&6@$~Gv= +zr7V+?Fd|cyi^;w{rgM7EbDneRd(P*N?>XP|Iq&c5kJoz)k1L=7=zyQ+_!s~{Cl{o+ +zw5HW82(YIIehd=;U6)e?Xf81S{gnyO1L#e`3;+;uDr2~#ljT0014M!tryG?)mNBzLw3gJvXAB{76KE&FoE47@ez2AQ8U*fg`OhIDYzeSr`c+` +zQ?DF%Ie0L;%^gMW*@G1t+ATa?Bz>#Xp{A~4(3+E9VbKm}0K0NFU;Apt3Y%?`#fjERhY(yf!m2&y&HnA^WWyZx3y!8LIjW~ +z8RY|tOs;F@w>wt3cZvII-Zu55PwK5-VmxG_AyeB*0_LTXm2shhb|N@@q?7zj{{)DC +z2Q;K%_rT{lNlc~ph?Rhj!uf)G`O_U|d&iG+7tk2+G*6sXPONrcw(eoMNDof*pWJ`T +zJ}*3Nxj((#A$2>|bY58XOuJ*mO#%NaS}NjaR=qy+z~^Tt2lCkxTy6; +zOi(_~HD@UxW`4w= +zq+%dgV#b8TNfPsF10}3FrpT5!?QPNLgfl-rIQ=AbM^2~gT6wAQQIqk$F^4?v!6*rc +zw%pD&EX=RSSJ*>W)9A-aDehP;b{2$9*njr8k&J{6;Wy5wWIuv3YR91^R;=U9F>ST8 +z3&R&FPkCFMQEAAwluDvIzI$3=Ns%0F#UQ$(OUz9D$IRahgX*`EjYOyfD>Y)AVjk-F +ziY2}FC!W2_e_ao(S)S=J%&xTT-t?L4xbrHjy_J4arAkYPmhaJP3(rK% +zp!}CGLi%P^;v3>|*%^344Lla&Dq@*qUNtQ1w*t6Lq}cH#W7Jl|yihhiF#CZca$Bsr +z6?uvyvOyDJ +z{p|1jmR#`pBc|>>8X)efeezwEqNW#BHpwi;iElf3@5tEd4sM)v-BCpNzlbs{k6$0P +zp6bi5;fw$Fa18$~*ur#a^96}+`<0yeUZ938bDverJ+MUDM3yx1&EntKeq3ybbN340 +zM)#n1i<=|p=w$?l77|(9qvDCCU#YrrKiq8KA(=lx#@u6!c}ub%>!$d=GzeTL$Vdo& +zT&t<;B8%LW?3IbDNQLjXS)tqDW?p=WJyOPW_v!=VD(08}%3V@D4jk;REZa&;U>U<8 +zKdjAS(Ejfps?ZS`#R051Ymo8GM=`b4m_=c>__feJWL3hkNAO@?;@dR +z<_c@_qwC1c*4a}}RxIY@yNYtYH|f%W;A+o5R|5^X^M`sP5s#Eh+f$gdlSW4&0qEB) +zs?s{jd*v{Q8WD!J^wCu;7K6`rBtiX(Ybs*+6#GiR*79-(9g`SC%e}D&1W}eSt85PY +zuHjLB|Q5UgW459rVtST;HM_)s69db0ktcD +zC;$ke%#5782Xz!eBrfB+IU`cnyGh$9gs_N{WBkD7*9h+{uU9WIonm`*tn>`drKi{K +z%P7y0F`irYD%Z&H*SnFctpp`Rbs*TNk&kwaLBIsg#@5){z96>S+bc?^kmU6TV||C2 +zM&rePL?i*rCiFc^&2tG+A3{*!rlwxCqWv9nrXS41e!-mfCkqqh0W6IFC5s{B{9UAp +zwy+j&$=$VB$rNjeS4yUMu4fieg7?_#*hE~@XbvYQ9q%=GMY?ZPU(oPmz21^{Zn{72 +z=>?sD2Yq9h*P=SAHF}vYx7!MKn^QDU-BlzHyCJ4gQOn$*1qT)azN_weI&s;7(l1YtQ|Z&I +zkxB0JpJpNrZTKEk3WDV?l#NuGK!N)`Ss$A;#Ay5+RA9hMvDYCOU@9}lthp-$U5GXntD@%>37VTe=tY?f;rt!79QSurGZWl +z%IvO99!D9rh=h0Wp5}w*tYm&5$t5`fCLh|lt5DT)qZKkH=XAOZ_cyR?mZORmX5}T# +zE~G3>2|J2X?U_hvAlS8|$^1bsjhpLDWd@h$gh{pr&Z8suiv)cc>>tfMzZrnnk +zg|@6>+p}Kh9G(SFZmM7%B`;j(+7_bpi5Q6rfTSOEc|1M91?=Lbmf&T$l{bqy! + +literal 0 +HcmV?d00001 + diff --git a/tools/traffic-gen/Makefile b/tools/traffic-gen/Makefile index 8af527efe6716cd9d502541465c1c91d6b34cd39..ccdd8df4102a70061472f0258d4599bb12e38f48 100644 --- a/tools/traffic-gen/Makefile +++ b/tools/traffic-gen/Makefile @@ -3,10 +3,23 @@ # SPDX-License-Identifier: Apache-2.0 .PHONY: all -all: +all:wrk2-aarch64 trex + +.PHONY: wrk2-aarch64 @$(MAKE) -C wrk2-aarch64 all +.PHONY: trex +trex: + @(\ + cd trex/linux_dpdk; \ + ./b configure; \ + ./b build; \ + cd ../; \ + git apply --whitespace=nowarn ../../../patches/trex/*.patch; \ + ) + .PHONY: help help: @echo "Make Targets:" @echo " all - Build traffic generator tools" + @echo " trex - Build trex traffic generator tool"