[dts] [PATCH v2 24/28] tests: uni_pkt - taking into account cavium NICs

Angela Czubak aczubak at caviumnetworks.com
Mon Apr 10 19:09:18 CEST 2017


Enabling following uni_pkt test cases by modifying
conf/dpdk_support_test_case.xls:
- NVGRE_tunnel
- NVGRE_in_IPv6_tunnel
- NVGRE_tunnel
Testpmd must be run with hardware VLAN filter disabled as thunder
driver does not support this feature - --disable-hw-vlan-filter is
appended if NIC is Cavium device. What is more, Cavium has hardware
packet type detection only for L3 and L4, therefore L2 is never checked
and inner layers are skipped as well.

Signed-off-by: Angela Czubak <aczubak at caviumnetworks.com>
---
 conf/dpdk_support_test_case.xls | Bin 25600 -> 8704 bytes
 tests/TestSuite_uni_pkt.py      | 219 +++++++++++++++++++++++++++-------------
 2 files changed, 147 insertions(+), 72 deletions(-)

diff --git a/conf/dpdk_support_test_case.xls b/conf/dpdk_support_test_case.xls
index 8f38c84ce8ff3338394944fa67c478d711ebe56a..2d8a342baf869d782921ad32e5c11cfa46f06a48 100644
GIT binary patch
literal 8704
zcmeHMU2IfE6h3$VdJB}@@~0LdHz at xrwiE$_Ncp!3lnMwhBxSq3g at x_zX1lFmG%gBn
zkYIT5g+xhs(3pTmgAbZmUW^YI4GD=DABrLVL?0HTQ4*kj-^{(;yGt8(kr=^FduHaG
znfd0-Id{&?-TU=d^@FEAXt*L}X@&UZ)=;g4JaPl|i7p=z8IL+;w}ys>TrsL+={~Z+
zO-ENh92fuvLG*bI$OP4b#)0T#Qk_!|JLP?})G<{@u)tPH<1Z(ctd|tZtQ>@AD^Jt#
z#CTyV8R?A|mGr+;pRxIi7PynG*zUD|t%*P$3d$#S7r5os-oGL~c|UL-xybjRU6NsJ
zSQ|^mt$!=6Q98s7>M(#qW~C9rS>wa0bQ1YQIjdSeRryMpgkDH3Vl7t{L$3H+&`;!;
z%4ey3B634MR%5<Zk|voc-=UW&$9a%pK#j3hVv>}EbYd?gq)8g&3p5SAs(PRnG*+t?
z_PU3ynA?jyGcZ9;GYW6CQ+76%9F!@T`?UNqWTAA^fJHe~SMuL0lhZCE^&d at 6)RFo>
zxboAmsm0|v$+h!BZHGd+eEul%=qU09qsVJVlm}hEd;ELChaH)hA(oN6UzPRwkSZtT
z1FD>yuTkZcd=O=wOy!B*md^IXlGftgY8xEER{G1?_}li{cCLw%aXjS_3Y26qB}di0
z&yh4AML00<ciu2TBHND{@{8;fTnY-E$~K|GJeCvmrGl3W5+76&A2gP(tXakvxP?E1
zf~FiYaOp4yj27fAGV>Y&lt3X9VCF-hKSd%pq`|)k@&*uk$78*=m5TM)K;E(qux+ht
zaf`{tvU}_t+IK#0we|IM+F2MNp6=<fQ at LKiB^PJ*=Q_IVoE^_$(CST_5I(xo*<61j
znY26X*q)>vE%LpYL^hGTP0-PsNTK87#IrK7_<lQQX-q4fN*=U&`!X3|g0VL2*i<jl
z+TM{!b+oqkFX_njrBZgX*(<ZO?9ND&IjVnY85ZoANxx`k)e at qqL@bp{#MhK|t!#=m
zJ=Th)x~xR=Q;lBDmyV$M(#l|A1DL*T$HuMe9gz0BH+nQ4>reFcbTl?LHM#XzWAhR`
z8)}A%RYG*tDrwKS>s#vLBvMu)(_i@#ac3?rFshh}b%A+y97x7ej(MJRSgT at yA?&aQ
ziJMbF*dR`t>Xbg-=k>WCDLMBiU|1J6F;B^QwMiq`jyK-Dc5!oO`>GBl&ohQNX*Oe!
zM2$meIUiV{Ml4kMYpO3#EKd5mk{wq09E|T)>4#NwJ at t9RxIe9$@2Q`XS<t2nC=570
z%oa7qpWBW9!BuW)$O~wBR9<1cL7F{>ZzrO7j!Mob@;+*@qR9Ihgv=t36&Y at S@#(i+
zz60r-k?CVFVm-?Eg}z~-j7+(VL9Seexo(ruhUNYATUhBFd at C#O$H-kSqkls3%&>kp
z)%%+;I3sD!0LKoR^C_RZoF5$Z)NKK9)KGIlaMX<)$A>YK%Mp|M=r&?f6U`B`*hUoE
zlx?(9SZSy^FA9BCMB&}9h~k4DVf70H$5G#~^1kN0D1L>)6HT{yQTz&pUS=ED8OEQ>
zc~Jr-x&%se2`Cgk8APFd!q`79=S2xB6drZDr&pJtLP1bhZM17x-TBy)ci-aLLnSDo
z5?w+Hg}aX9X!Ed48|J(yH6<uDB`7rt1&6Idp&!HY at G$2^F-z=XmY|pl<q?egRoa2z
zD?EofVoHIC>H&qx at w62h!Q(komj**>3woD9=t({qr^eAuwDGgPNpg;6k``vNLFI3w
zxdtnrL0l at wiFm8<`S#%Uu!l1{31N=!P2}#kh*(=uM8sO12<9%i)DxE16X;yECopE%
z6KaZ<;zZg5n%A*NVEr)<l<b8 at uLp2=RqX+cxtAXBxNofbzpwzeru*A2&p$p*45~ai
zDCarNax6WV7BJvlKaM}HE at JYy6d6#tY?zL6b0VHi_olmZ*7^f+J83<=?1}BMP8+Ys
z>M>c9=<e1(x#=-g=Xn0~q*ag918(8`=6gYT;&VNC<gMSXZ`m7p?+sHH&i(K*Zy6>U
zco$@Q2E>sEK)gX725}D at 2XP;q1aU9C1LA)82!ta~*@ye$0*E(<Z$SJOb```okOGKv
z+yD{(=bM7x8J!ys%6nNS{xVPtDF5S20qV`Vn_5^Ic)9Me%by#pPpdmS<La4<T)s-9
z*^jusOJ80(xoCRi#G9~R^!k}~kOj+RyCCDukbtBJh-10t(d1|zOaBoI+{^Dj%Kv3C
zWTa(skL3A~AnnB0r>yM9ukHK}wO<RX$S2`xBNX>7V^}3a*?%G*R3t;zV%{Faf-TTt
zpB7e;bAHAS&dpTm&{n6Tfq9c+S32yretd)0Gwb}e4kHM-e*QMY6qIe!hxPa1s|UaR
zwc;yaxAF-kIeY<0Lo#}r=giNzQ|bC?ujNhz3d%an5LY_b>I-Cb`YgYT^)rU&Mqg6Z
TE!EoJ`~9uz$wnCPPv-v{JrESQ

literal 25600
zcmeHQeQ;FQbw6*lE3L$b5MRb%;34rLKwu$(48=x##Mn%Ppf)jNj7Kce6R1eLn$-%!
zj2YzC=^wS5I*{Vp&?au;W}3K3{n0v|x;38h*lkB{Gj15y4&yo<*ON4zw5E02c<gL{
zzkB!XzIXTS({7w(+R471_x9cM?){x}&pG$pkG)U&*55U~{rFQ0zbnSEO={%F*?Ot<
z&@J4zyXjei=h-Zi?)Qzj2dR4eKhi*b9EPlo$+3=C>;8Jel3E!2yAqK<j=qSi$Uosc
zETg=)f1bxqB}2lZ442_}w^+4efmS1zaBY(7DUr-p*E#C?4VCwKb-e{o{vGwWvgNfU
zn~_gY_E2QI%J-Y<+N`cKakb<*Rpw1a*&s{gD)PtWVY+)nj at DVbBq75xBu6EU>(494
zLisBQkUi_l5wmtE{*<MB8S1C3$J{A$Sh7)`r?N}x!jk$aazy01DY!&M%K=lA)Ob at U
zMw?~H=1 at 7JQ|7n|ZwSY at Dp8rP<Oq{=Td1V;uZ>gYxOs{kmUM^K_IN;TM{+)#$a#<j
zKM%L9NJB|EmPBum7%VHz%bQ!;T3XusR&PDr>Lw1aUJ_k~{^JJU^SkeG2JZ1^YL+@#
zT*$P(-H(Gbp;kfEW;2(8mdkpRtdS0pK8mu&b|uRt54S49;niDngywb4kh`ySdmp&0
zm(}>7sJGl2+goUj?JLnOZSqTgX1WG`eo8bC%kJ(1(=J&HdlZ<u<@0>q!iu%G<UIMZ
zAbvN0+8Jx!n!EO<nwLZu$`djV4-TZq9X!c>?M at 7jIe0o({y-Y>bYBwB^kr}m^n2th
zsEu{EESD$kb<p8Gi2b&-fY^dhyR66AE`3nZR=Hd55Jv`7o>rv7%N$0Tx6#IVyq~qz
zx4vAqN#{7DO8 at EUfx5L|yZjL`^!#k at N%RYT{paa_RD%B167;W^pkFLO|3(S=lO^cC
zTY~;z33 at 4cO5s1FaO$8I<%fAa{9XyVmZvzsmZzBh<q|kgm7qUcg8r8!=)X~d{%0lV
zmCExc3MXEqAMGdgF8%XOO^-}_WST at TsQe9i`rzOTOJ7(j(dQJs7BNrh`G1f>9j<?_
zE<tZAL0=O{p9V~Y|DQQ{(fHF#&}X>xyxp~*&vfbEmi at S0iqWW&AK_EuYdY9zI-;>l
zw{eSX2HlXS$<1%jXS?*gK6QJU<I=w^M{v8)#h>fa^YVX9$r*F$27W%?UTSKZKW#qj
z^_a?!PD9HNzS>^ej<p!$1=(x9o8Q34sKC`jLS$QBZwp+yksoAmu=%AA#H;(_bLBod
zT>jW8bH<<f&YAc+Ipd=<LqukvAF08e#bmCdnu!rgq__aHR8&9 at fGglYK`P=9t+W75
zTM-A^yrKeil at _2;D&oMfQBeWLlZpy35L8rv5u&033>_5}U`(l~0E10vfgMJBU=*q;
z-5xmEsu5?9F6R#1&csa+hNdz==!T_17{|&0p=*`~VbCiBgzj1zWNvvNbm7t<43A|<
zLbomr!k9TF$Yf8rbr at jF013Aaqj4D^;numnJdkkfpd%|sl5p!RDi0*wI+(9|BtgR8
zm*}?B(HU+X%xB913AfIY@<76^gPyk>Ny4pTmj at DVon_^Lgj)wo08>{-ut*cu09(of
z3AfJj@<76^v!XnZaO<or4<y_=tI7ijw at zywgyW@4Qk(US!`OECAp6SSW((o*b4KU2
z8ae7z=f%7qoRMIVYuB#jLF#hAXV0F^x+ at iN56#XU^&T3q)zJ_ at I}<mBT7$e=C=Tq@
z;T>VRHGATTCyIpX?(QxUiZoLw(p+p;C at -ye6uTDLL&pW?IJvFT0_!R*u)fj)H|7h_
z+BBfgWr{1^o-aU4aCm1FFvl at iTFZqDa===?pMz_<m;cS{lqLw)6FqT9`GD8{bT$&h
z<4$KeAldG4kd5VlnEjLK2%7*>@SLLR6l=Z9SAe5%L+fUPxd}N6t+>1UWU$t=laCfP
zn4exNHm$fBLh12NU}$keMs~u=3spQW-r at tf<dpEI><=z^Kuq;)&8vsXFPgEsPMOV4
z=0V&b_w>_G7sV6O%y>c?u+`zl6ECee$lZ**UYj8vd7a!9Dk$>)?1J1a5USv+MVcyh
z)os24rf*wk;-4})oNg3|mYyw9?`GTfws*I~DVAh=UJ|++jN#X3ae*EA0)bv}J~A82
z{g`idw6Cz&**p6Con&Uix%gf=$Id->SkWcf8Cbk;mla~mI-EPCA0J1OlHm^xsEvgm
zvFf7E;MI5E%f@)G^eWjETrMG-CX-D^F`MQPHacD^HZf=L+STs_vzcwO=`3cmGK7te
zsESRkGx&q|-U?<j$7Hjyn9Z6HHag}iHg(S6JOB8v!EEN5Y&I3MSs%iNQ8{OuxHI_X
z5C0>W%{-G$S23H85H^hEIX3mq;78woBbd#6ve_8!X-mOoV;P<{+4IfGcY at hmXR-<K
zw3ZMyUQe6sdH0*o1+!UTvI+3CRUvG=o;KO at 5AQr5%;tKNO at ODZ4PoQ;w8@^y%Wnp=
zS!l8e at U$C4*myl{vgf(Cz8B19k;x{&(>g=gcs*^h=ff+{2D7<=Y`Vfd%?6vUGCZxL
z^S7UQU9*9kb0<zdrY$zv1bEu=5H?;<>*##*!smn8EHT*xcv@=+8?UEzbiVZZ#b7o|
zO*R3Z))vCX>uDXGPkr%~U^ceNCcx9$L)dsdt)uhYt5<{BEHl{zc-qDgHeOHb==|V?
z-wI+g9XkjxmCpB at JB)sFakj2xUn#Qh{=WzYZ7G1lqfF3c2B_DI at axU~y}_W%3!v~H
z6Lf_E>h&3si+}#<V9*r>P<V?8y4nEsdWgux!0!ixt}KAUH%!oV2B_B`L_YcC%fX<l
z3ZU==6Lf<C>b1Vee_z-g1R9rCj^lPF2F}H|_$_ZO%GStEObrL}U1N;HHLO!`bi{iu
zX5=EtEbL{#ymMD#xPN>&kr_%Q&&BWe14ia&r-|M-)-U7Ov6aBkYe-TUf^mq=kpw|G
zl6Dzzp+hmK75r$0hnxmk$m~tUeW`k1>U^XT8(%Or+jZROKVk23hKJ9^&l+-Fmu-Mt
z$1xb}mlGHo?!w(LK3=J~h at l3B-T>-K#esfpUMih(rP3)^DxEqXiOSlEn(Vo_?H46h
z117tmk`a6oU?sx5Z4<S~+iK*k#a7fpUK at ++?bvwYmRUCuMVXaGnP at hSGUM1ZmsVrn
zemR{lv3{ZsCDt1y>ax>|O89xrlN-6==GIfA!-- at flS-eq4>+eX=i;~dp(2~Iv*cDe
zg`JbMeNx#!1wl?j=LaCpDfk2DHLmq(?3{Z=rG26v(tXl^tk2Gt-Ov}!m6Ce_G61mK
z0Xd5MG^j&hbRrL12Oph~2^Y2=Lw~F++?Gng|F`<Ft%cdB+y>N?(E_+A;);kmxL7kW
zy}(M~?M`A~D0$4r6vU{1%`6z~c8J9$MX`=SR6X at jo`rU}bk7+LM-Q)qWIDc{kIa-#
zFE~P~3EmU{uES~x at ND;2Uf|S#;2XW*2(2dg>;P~bUQ2-M5l2LUZ}Ng8#2Rs?W=;S&
z!>o3MI<H#T7`i6na0CM+5?3H4&8`+_^2446xd~1tdy=E$aMN+W-6M0Mlsz!dDB1}f
zvJjfMFymUDt2ZArG|j at kO88^XQ1XN`kc&;GgD*hL?8!N?cJ4xSs>!#Me4KP6BUfu`
zq5bKy1 at cR;GoDE&5c-Tx!@2>TMlW2FHBG}Y8T9ltNX2?A*SPh)gf*RfV?-N*4Lbdb
zvji-A(Ol9hco8aRLJPO(Ida8kU~eF%=Dn%(NMhLTI3KCU&N=vcZz|)Qiy!raMjFrx
z37UbFf(pCc1XqFF_{$ZXLa(4xZv53LH~#9>`N%Z6S at 0{wzVVE5fqM<6^8me1DW%v6
zy!{iyxz7nmC`h7Ht|U6;N}^MA=vyXYQ08*K2(cI}vtPw9ca?%VJRfP0ZS>s(Lz!V{
zYlFX3O(X1e0Pd23C8 at 9CHe?Z^TS25UbO~djq~>}BL4|8~h$=7hErw9<ZgkSMbyM`Y
zCfSazTn;AENd`jQ7j*jtjZ8zgau6KSXlQOM4C(_o;!qm?Z2XXX*0ZAXFlyI?&jElO
zRkghnBA- at wdr^0W*l{@G7HDxuPAU&7<Y1FJhAy9LKV5PJ`<6vMgIc}Ds0Pot^SI+=
zHjwf|E^WG$4pK5)r*tWukHr_rV;;G*uj}Q at FX2UkFL|D^+(U463!fLQI8Ko(n<Mg}
zyb|G$1pL()T}Xdo%(0V+5eHK3yA$!Rch4?3YbKFC=41fZpBfp#BG(w6?C9yi`t4vU
zojEx)JnZy2iDSb~TOmC*I+PyD6cPHyV3}bDybk`d-8(*V)Jel)!yTh1GJOM1#_7*2
zXVM-`^q+7twkFxB<nU>GY<zSS?2xc`-_?Wt5PSCb4JG^b>_54&FEgG at I>U2FJK1GW
zXN!!c?sd{i&bH)GBAFTLhqepFZC!k7rruIrWtZCN7puH-y;@E?ksPpxIybd@>)Vy9
zFErPC*KK#)noGivDp?)_=y0xEUaQfC#rR$03?=QM(Uav at 6n$Mmnl_avTNc#iu2UGs
z<?4bTqEyl at 8z776WL(bR2Pr_w`}lqU--|F3`6`^f0j7HtUOg>78>h%BbT&uu{QDo_
zBK`6CIC-a!`S?P=fFO1O4e5gC$<BYa<RWMnJv27Fhd_JCLn98me*H$zEZ-YF(;`rO
z?m$D3zrif*SJ2pJfFC=V2tr7sx^Kc&FvN|^hky9qYkQCG at 9tCdHHyAgU4K<kCfKp%
zjui;)B5l_Fc=95)mkT$a%de^252))(<Q`PVyWQN%@7}lOQNGu`+H=2G-pXNroG&XX
zwS3#62F7I|`j>`Od;s5#cpHc{KNR5rpa&r|gAWJMAOG+MMe34iE<>5fkHdQ`=$&%$
z&89<<Ly=B({C&6kZOJ7}Yc3TOZGy<n at G^aT3K;N4<%=TASJIxM(!?KG%uQrE9pRI$
zh37S#7RL)|*wS+I3r5U5=r!yJkTHS at kh*WvRka!wjfq<LfO?ptQ38_&UPUx|kC_i0
ze-VxR&3xP&VbZ8DFYP1MGSqflJkcq70fp76i1L3oRf81e)X$<wk&8~nkfOXyu{>&@
zPZ5)H>t_)xCQ)LYB4*(kQK(Zsqm~+#ggWI#p{)uieE+S0!U0bs*Uc0P<!w~IhZBW<
zUC3Djlt$$l`k5DnBkM+dGzx3h$SJPEWcOV_iTY%T`efnAsSyJPU5 at o^#DK+3c~S5K
zlcz>8A4*K2p!-zZsk=s*lTUe3YJDiRK9pL8!YIVr(sGR|9_f at 9rOt;^=R>JeD2&T2
zM;kZtU8h{iixT&t#C<4ng~EMyugiSd3?qFJ!?@kP&o=zt_NT0 at Z07~fcsz*s{-Cer
zM^HA3`ZVBmDflO$8D8S}#A1&^h>^v|;@8PBPay<3#-5r_g!K)&Ju9ZXV957>w_jk?
zWKW}`COy*1y3x}8#$sKCQPYibc^!zdiAruS5Cd(ZY at ze$*e9^S$F{<+<G1*#6 at Hdh
z at R;=%`1Z#bm(;2$p<fAf<+nfcg=;_BcYM~@J{Om at tDboS16=tXoQ$Y^z8xp~i`#KB
z<{ZGu*nI>iN5rRavUhp_C!_eoIN8^|gF at Wf%CbDnd&Z-^L;dO0SZXk1-+HRw8P<{U
z at _jQ}-gw#Cj^`84I{)?3``@zI>s61c2C5pUYM`otss^eWsA{09fvN_o8mMZZs)4Eo
zsu~E_K-m00a^=-4m)0+ub^Z~||J#1_b<Y1^!pXTl=l`7db47GNPVDWFLpV8iKZ29<
z{o^>femaVi>i}F2;JU!$INfysJ%696%7a|;dkKJ<munCD2kXLZN8z?prXwT4xu`&)
z4yMv4#`p{Om?~dgFMv*}M^yt=4OBHy)j(APRSi@%P}M+H162)FHBi;SFPsKAkLPrm
z^J4xU&n-pVio|&~=lR^D#$BbHN^|bcc|3P{alaVn`rPBi-~2h>clUjA&d+s$1vt6Q
zn}6Gjf0~PbS&M%di&Jy{&j1_W%WyX1Y{9u4=L(!Faq at X9zE|U1gL5s;Hk|8lV%M>H
z{t at ypU-kIOHE;)B7U262Hr`g_pNHTZYLy)GC8l<mQ3Cpr9p_c#vbyHBvg!N$)%|}F
zBpd|yG+tUes^mD4&r|LV{sTasKV>Ml+z0$yCpcnqr+RgQuOPDSd>Lv`$wW%wolTv)
s_}U8oY(s26<?>%j7&aapG5G|z at g30->_4UjDwAjPPf-6=WSrywzkQe=82|tP

diff --git a/tests/TestSuite_uni_pkt.py b/tests/TestSuite_uni_pkt.py
index 6975f2d..882b758 100644
--- a/tests/TestSuite_uni_pkt.py
+++ b/tests/TestSuite_uni_pkt.py
@@ -46,9 +46,19 @@ user applications
 import utils
 from test_case import TestCase
 from exception import VerifyFailure
-from packet import Packet
 import time
 
+# so as to bind GRE for GRE testing
+from scapy.packet import *
+from scapy.fields import *
+from scapy.layers.inet import UDP,IP
+from scapy.layers.inet6 import IPv6
+from scapy.layers.l2 import Ether
+from scapy.layers.l2 import GRE
+IPPROTO_GRE=47
+
+# to override the one from scapy
+from packet import Packet
 
 class TestUniPacket(TestCase):
 
@@ -63,8 +73,10 @@ class TestUniPacket(TestCase):
         self.dut_port = valports[0]
         tester_port = self.tester.get_local_port(self.dut_port)
         self.tester_iface = self.tester.get_interface(tester_port)
-        self.dut.send_expect(
-            "./%s/app/testpmd -c f -n 4 -- -i --txqflags=0x0" % self.target, "testpmd>", 20)
+	cmd = "./%s/app/testpmd -c f -n 4 -- -i --txqflags=0x0" 
+	if "cavium" in self.dut.nic_type:
+		cmd += " --disable-hw-vlan-filter"
+        self.dut.send_expect(cmd % self.target, "testpmd>", 20)
         self.dut.send_expect("set fwd rxonly", "testpmd>")
         self.dut.send_expect("set verbose 1", "testpmd>")
         self.dut.send_expect("start", "testpmd>")
@@ -121,6 +133,9 @@ class TestUniPacket(TestCase):
         elif "niantic" in self.nic.lower() or "i350" in self.nic.lower():
             outerL4Type = ""
             ipv4_default_packet_type = ["L2_ETHER", "L3_IPV4"]
+	elif "cavium" in self.dut.nic_type:
+            outerL4Type = ""
+            ipv4_default_packet_type = ["L3_IPV4"]
         pktType = {
             "MAC_IP_PKT":                ipv4_default_packet_type + [outerL4Type],
             "MAC_IP_UDP_PKT":            ipv4_default_packet_type + ["L4_UDP"],
@@ -139,6 +154,8 @@ class TestUniPacket(TestCase):
         elif "niantic" in self.nic.lower() or "i350" in self.nic.lower():
             pktType.pop("MAC_IP_ICMP_PKT")
             pktType.pop("MAC_IPFRAG_TCP_PKT")
+	elif "cavium" in self.dut.nic_type:
+            pktType.pop("MAC_IP_ICMP_PKT")
 
         self.run_test(pktType)
 
@@ -152,6 +169,9 @@ class TestUniPacket(TestCase):
         elif "niantic" in self.nic.lower() or "i350" in self.nic.lower():
             outerL4Type = ""
             ipv6_default_packet_type = ["L2_ETHER", "L3_IPV6"]
+        elif "cavium" in self.dut.nic_type:
+            outerL4Type = ""
+            ipv6_default_packet_type = ["L3_IPV6"]
 
         pktType = {
             "MAC_IPv6_PKT":          ipv6_default_packet_type + [outerL4Type],
@@ -245,36 +265,55 @@ class TestUniPacket(TestCase):
         checked that whether NVGRE tunnel packet can be normally detected
         by Fortville.
         """
-        self.verify(("fortville" in self.nic or "fortpark_TLV" in self.nic),
+        self.verify(("fortville" in self.nic or "fortpark_TLV" in self.nic or "cavium" in self.dut.nic_type),
                     "NVGRE tunnel packet type detect only support by Fortville")
-        nvgre_base_packet_type = ["L2_ETHER", "L3_IPV4_EXT_UNKNOWN", "TUNNEL_GRENAT"]
-        # INNER IPV4 not with vlan
-        nvgre_ipv4_default_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER", "INNER_L3_IPV4_EXT_UNKNOWN"]
-        # INNER IPV6 not with vlan
-        nvgre_ipv6_default_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER", "INNER_L3_IPV6_EXT_UNKNOWN"]
-        # INNER IPV4 with vlan
-        nvgre_ipv4_vlan_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER_VLAN", "INNER_L3_IPV4_EXT_UNKNOWN"]
-        # INNER IPV6 with vlan
-        nvgre_ipv6_vlan_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER_VLAN", "INNER_L3_IPV6_EXT_UNKNOWN"]
-
-
-        pktType = {
-            "MAC_IP_NVGRE_MAC_IPFRAG_PKT":              nvgre_ipv4_default_packet_type + ["INNER_L4_FRAG"],
-            "MAC_IP_NVGRE_MAC_IP_PKT":                  nvgre_ipv4_default_packet_type + ["INNER_L4_NONFRAG"],
-            "MAC_IP_NVGRE_MAC_VLAN_PKT":                nvgre_base_packet_type + ["INNER_L2_ETHER"],
-            "MAC_IP_NVGRE_MAC_VLAN_IPFRAG_PKT":         nvgre_ipv4_vlan_packet_type + ["INNER_L4_FRAG"],
-            "MAC_IP_NVGRE_MAC_VLAN_IP_PKT":             nvgre_ipv4_vlan_packet_type + ["INNER_L4_NONFRAG"],
-            "MAC_IP_NVGRE_MAC_VLAN_IP_UDP_PKT":         nvgre_ipv4_vlan_packet_type + ["INNER_L4_UDP"],
-            "MAC_IP_NVGRE_MAC_VLAN_IP_TCP_PKT":         nvgre_ipv4_vlan_packet_type + ["INNER_L4_TCP"],
-            "MAC_IP_NVGRE_MAC_VLAN_IP_SCTP_PKT":        nvgre_ipv4_vlan_packet_type + ["INNER_L4_SCTP"],
-            "MAC_IP_NVGRE_MAC_VLAN_IP_ICMP_PKT":        nvgre_ipv4_vlan_packet_type + ["INNER_L4_ICMP"],
-            "MAC_IP_NVGRE_MAC_VLAN_IPv6FRAG_PKT":       nvgre_ipv6_vlan_packet_type + ["INNER_L4_FRAG"],
-            "MAC_IP_NVGRE_MAC_VLAN_IPv6_PKT":           nvgre_ipv6_vlan_packet_type + ["INNER_L4_NONFRAG"],
-            "MAC_IP_NVGRE_MAC_VLAN_IPv6_UDP_PKT":       nvgre_ipv6_vlan_packet_type + ["INNER_L4_UDP"],
-            "MAC_IP_NVGRE_MAC_VLAN_IPv6_TCP_PKT":       nvgre_ipv6_vlan_packet_type + ["INNER_L4_TCP"],
-            "MAC_IP_NVGRE_MAC_VLAN_IPv6_SCTP_PKT":      nvgre_ipv6_vlan_packet_type + ["INNER_L4_SCTP"],
-            "MAC_IP_NVGRE_MAC_VLAN_IPv6_ICMP_PKT":      nvgre_ipv6_vlan_packet_type + ["INNER_L4_ICMP"]
-        }
+	if "cavium" in self.dut.nic_type:
+        	nvgre_base_packet_type = ["L3_IPV4", "TUNNEL_NVGRE"]
+		pktType = {
+       		    "MAC_IP_NVGRE_MAC_IPFRAG_PKT":              nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_IP_PKT":                  nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_PKT":                nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPFRAG_PKT":         nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IP_PKT":             nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IP_UDP_PKT":         nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IP_TCP_PKT":         nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IP_SCTP_PKT":        nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IP_ICMP_PKT":        nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6FRAG_PKT":       nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6_PKT":           nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6_UDP_PKT":       nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6_TCP_PKT":       nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6_SCTP_PKT":      nvgre_base_packet_type,
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6_ICMP_PKT":      nvgre_base_packet_type
+       		}
+	else:
+        	nvgre_base_packet_type = ["L2_ETHER", "L3_IPV4_EXT_UNKNOWN", "TUNNEL_GRENAT"]
+        	# INNER IPV4 not with vlan
+       		nvgre_ipv4_default_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER", "INNER_L3_IPV4"]
+       		# INNER IPV6 not with vlan
+       		nvgre_ipv6_default_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER", "INNER_L3_IPV6"]
+       		# INNER IPV4 with vlan
+       		nvgre_ipv4_vlan_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER_VLAN", "INNER_L3_IPV4"]
+       		# INNER IPV6 with vlan
+       		nvgre_ipv6_vlan_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER_VLAN", "INNER_L3_IPV6"]
+
+       		pktType = {
+       		    "MAC_IP_NVGRE_MAC_IPFRAG_PKT":              nvgre_ipv4_default_packet_type + ["INNER_L4_FRAG"],
+       		    "MAC_IP_NVGRE_MAC_IP_PKT":                  nvgre_ipv4_default_packet_type + ["INNER_L4_NONFRAG"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_PKT":                nvgre_base_packet_type + ["INNER_L2_ETHER"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPFRAG_PKT":         nvgre_ipv4_vlan_packet_type + ["INNER_L4_FRAG"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IP_PKT":             nvgre_ipv4_vlan_packet_type + ["INNER_L4_NONFRAG"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IP_UDP_PKT":         nvgre_ipv4_vlan_packet_type + ["INNER_L4_UDP"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IP_TCP_PKT":         nvgre_ipv4_vlan_packet_type + ["INNER_L4_TCP"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IP_SCTP_PKT":        nvgre_ipv4_vlan_packet_type + ["INNER_L4_SCTP"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IP_ICMP_PKT":        nvgre_ipv4_vlan_packet_type + ["INNER_L4_ICMP"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6FRAG_PKT":       nvgre_ipv6_vlan_packet_type + ["INNER_L4_FRAG"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6_PKT":           nvgre_ipv6_vlan_packet_type + ["INNER_L4_NONFRAG"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6_UDP_PKT":       nvgre_ipv6_vlan_packet_type + ["INNER_L4_UDP"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6_TCP_PKT":       nvgre_ipv6_vlan_packet_type + ["INNER_L4_TCP"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6_SCTP_PKT":      nvgre_ipv6_vlan_packet_type + ["INNER_L4_SCTP"],
+       		    "MAC_IP_NVGRE_MAC_VLAN_IPv6_ICMP_PKT":      nvgre_ipv6_vlan_packet_type + ["INNER_L4_ICMP"]
+       		}
         self.run_test(pktType)
 
     def test_NVGRE_in_IPv6_tunnel(self):
@@ -282,45 +321,76 @@ class TestUniPacket(TestCase):
         checked that whether NVGRE in IPv6 tunnel packet can be normally
         detected by Fortville.
         """
-        self.verify(("fortville" in self.nic or "fortpark_TLV" in self.nic),
+        self.verify(("fortville" in self.nic or "fortpark_TLV" in self.nic or "cavium" in self.dut.nic_type),
                     "NVGRE in IPv6 detect only support by Fortville")
-        nvgre_base_packet_type = ["L2_ETHER", "L3_IPV6_EXT_UNKNOWN", "TUNNEL_GRENAT"]
-        # INNER IPV4 not with vlan
-	nvgre_ipv4_default_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER", "INNER_L3_IPV4_EXT_UNKNOWN"]
-        # INNER IPV6 not with vlan
-        nvgre_ipv6_default_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER", "INNER_L3_IPV6_EXT_UNKNOWN"]
-        # INNER IPV4 with vlan
-	nvgre_ipv4_vlan_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER_VLAN", "INNER_L3_IPV4_EXT_UNKNOWN"]
-        # INNER IPV6 with vlan
-        nvgre_ipv6_vlan_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER_VLAN", "INNER_L3_IPV6_EXT_UNKNOWN"]
-
-        pkt_types = {
-            "MAC_IPv6_NVGRE_MAC_PKT":               nvgre_base_packet_type + ["INNER_L2_ETHER"],
-            "MAC_IPv6_NVGRE_MAC_IPFRAG_PKT":        nvgre_ipv4_default_packet_type + ["INNER_L4_FRAG"],
-            "MAC_IPv6_NVGRE_MAC_IP_PKT":            nvgre_ipv4_default_packet_type + ["INNER_L4_NONFRAG"],
-            "MAC_IPv6_NVGRE_MAC_IP_UDP_PKT":        nvgre_ipv4_default_packet_type + ["INNER_L4_UDP"],
-            "MAC_IPv6_NVGRE_MAC_IP_TCP_PKT":        nvgre_ipv4_default_packet_type + ["INNER_L4_TCP"],
-            "MAC_IPv6_NVGRE_MAC_IP_SCTP_PKT":       nvgre_ipv4_default_packet_type + ["INNER_L4_SCTP"],
-            "MAC_IPv6_NVGRE_MAC_IP_ICMP_PKT":       nvgre_ipv4_default_packet_type + ["INNER_L4_ICMP"],
-            "MAC_IPv6_NVGRE_MAC_IPv6FRAG_PKT":      nvgre_ipv6_default_packet_type + ["INNER_L4_FRAG"],
-            "MAC_IPv6_NVGRE_MAC_IPv6_PKT":          nvgre_ipv6_default_packet_type + ["INNER_L4_NONFRAG"],
-            "MAC_IPv6_NVGRE_MAC_IPv6_UDP_PKT":      nvgre_ipv6_default_packet_type + ["INNER_L4_UDP"],
-            "MAC_IPv6_NVGRE_MAC_IPv6_TCP_PKT":      nvgre_ipv6_default_packet_type + ["INNER_L4_TCP"], 
-            "MAC_IPv6_NVGRE_MAC_IPv6_SCTP_PKT":     nvgre_ipv6_default_packet_type + ["INNER_L4_NONFRAG"],
-            "MAC_IPv6_NVGRE_MAC_IPv6_ICMP_PKT":     nvgre_ipv6_default_packet_type + ["INNER_L4_NONFRAG"],
-            "MAC_IPv6_NVGRE_MAC_VLAN_IPFRAG_PKT":   nvgre_ipv4_vlan_packet_type + ["INNER_L4_FRAG"],
-            "MAC_IPv6_NVGRE_MAC_VLAN_IP_PKT":       nvgre_ipv4_vlan_packet_type + ["INNER_L4_NONFRAG"],
-            "MAC_IPv6_NVGRE_MAC_VLAN_IP_UDP_PKT":   nvgre_ipv4_vlan_packet_type + ["INNER_L4_UDP"],
-            "MAC_IPv6_NVGRE_MAC_VLAN_IP_TCP_PKT":   nvgre_ipv4_vlan_packet_type + ["INNER_L4_TCP"],
-            "MAC_IPv6_NVGRE_MAC_VLAN_IP_SCTP_PKT":  nvgre_ipv4_vlan_packet_type + ["INNER_L4_SCTP"],
-            "MAC_IPv6_NVGRE_MAC_VLAN_IP_ICMP_PKT":  nvgre_ipv4_vlan_packet_type + ["INNER_L4_ICMP"],
-            "MAC_IPv6_NVGRE_MAC_VLAN_IPv6FRAG_PKT": nvgre_ipv6_vlan_packet_type + ["INNER_L4_FRAG"], 
-            "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_PKT":     nvgre_ipv6_vlan_packet_type + ["INNER_L4_NONFRAG"],
-            "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_UDP_PKT": nvgre_ipv6_vlan_packet_type + ["INNER_L4_UDP"],
-            "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_TCP_PKT": nvgre_ipv6_vlan_packet_type + ["INNER_L4_TCP"],
-            "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_SCTP_PKT":nvgre_ipv6_vlan_packet_type + ["INNER_L4_NONFRAG"],
-            "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_ICMP_PKT":nvgre_ipv6_vlan_packet_type + ["INNER_L4_NONFRAG"]
-        }
+	if "cavium" in self.dut.nic_type:
+		#cavium recognizes only L3 and L4 by hardware
+       		nvgre_base_packet_type = ["L3_IPV6", "TUNNEL_NVGRE"]
+       		pkt_types = {
+       		    "MAC_IPv6_NVGRE_MAC_PKT":               nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IPFRAG_PKT":        nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IP_PKT":            nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IP_UDP_PKT":        nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IP_TCP_PKT":        nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IP_SCTP_PKT":       nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IP_ICMP_PKT":       nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IPv6FRAG_PKT":      nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IPv6_PKT":          nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IPv6_UDP_PKT":      nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IPv6_TCP_PKT":      nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IPv6_SCTP_PKT":     nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_IPv6_ICMP_PKT":     nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPFRAG_PKT":   nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IP_PKT":       nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IP_UDP_PKT":   nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IP_TCP_PKT":   nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IP_SCTP_PKT":  nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IP_ICMP_PKT":  nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6FRAG_PKT": nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_PKT":     nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_UDP_PKT": nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_TCP_PKT": nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_SCTP_PKT":nvgre_base_packet_type,
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_ICMP_PKT":nvgre_base_packet_type
+       		}
+	else:
+       		nvgre_base_packet_type = ["L2_ETHER", "L3_IPV6_EXT_UNKNOWN", "TUNNEL_GRENAT"]
+       		# INNER IPV4 not with vlan
+       		nvgre_ipv4_default_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER", "INNER_L3_IPV4_EXT_UNKNOWN"]
+       		# INNER IPV6 not with vlan
+       		nvgre_ipv6_default_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER", "INNER_L3_IPV6_EXT_UNKNOWN"]
+       		# INNER IPV4 with vlan
+       		nvgre_ipv4_vlan_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER_VLAN", "INNER_L3_IPV4_EXT_UNKNOWN"]
+       		# INNER IPV6 with vlan
+       		nvgre_ipv6_vlan_packet_type = nvgre_base_packet_type + ["INNER_L2_ETHER_VLAN", "INNER_L3_IPV6_EXT_UNKNOWN"]
+
+       		pkt_types = {
+       		    "MAC_IPv6_NVGRE_MAC_PKT":               nvgre_base_packet_type + ["INNER_L2_ETHER"],
+       		    "MAC_IPv6_NVGRE_MAC_IPFRAG_PKT":        nvgre_ipv4_default_packet_type + ["INNER_L4_FRAG"],
+       		    "MAC_IPv6_NVGRE_MAC_IP_PKT":            nvgre_ipv4_default_packet_type + ["INNER_L4_NONFRAG"],
+       		    "MAC_IPv6_NVGRE_MAC_IP_UDP_PKT":        nvgre_ipv4_default_packet_type + ["INNER_L4_UDP"],
+       		    "MAC_IPv6_NVGRE_MAC_IP_TCP_PKT":        nvgre_ipv4_default_packet_type + ["INNER_L4_TCP"],
+       		    "MAC_IPv6_NVGRE_MAC_IP_SCTP_PKT":       nvgre_ipv4_default_packet_type + ["INNER_L4_SCTP"],
+       		    "MAC_IPv6_NVGRE_MAC_IP_ICMP_PKT":       nvgre_ipv4_default_packet_type + ["INNER_L4_ICMP"],
+       		    "MAC_IPv6_NVGRE_MAC_IPv6FRAG_PKT":      nvgre_ipv6_default_packet_type + ["INNER_L4_FRAG"],
+       		    "MAC_IPv6_NVGRE_MAC_IPv6_PKT":          nvgre_ipv6_default_packet_type + ["INNER_L4_NONFRAG"],
+       		    "MAC_IPv6_NVGRE_MAC_IPv6_UDP_PKT":      nvgre_ipv6_default_packet_type + ["INNER_L4_UDP"],
+       		    "MAC_IPv6_NVGRE_MAC_IPv6_TCP_PKT":      nvgre_ipv6_default_packet_type + ["INNER_L4_TCP"], 
+       		    "MAC_IPv6_NVGRE_MAC_IPv6_SCTP_PKT":     nvgre_ipv6_default_packet_type + ["INNER_L4_NONFRAG"],
+       		    "MAC_IPv6_NVGRE_MAC_IPv6_ICMP_PKT":     nvgre_ipv6_default_packet_type + ["INNER_L4_NONFRAG"],
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPFRAG_PKT":   nvgre_ipv4_vlan_packet_type + ["INNER_L4_FRAG"],
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IP_PKT":       nvgre_ipv4_vlan_packet_type + ["INNER_L4_NONFRAG"],
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IP_UDP_PKT":   nvgre_ipv4_vlan_packet_type + ["INNER_L4_UDP"],
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IP_TCP_PKT":   nvgre_ipv4_vlan_packet_type + ["INNER_L4_TCP"],
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IP_SCTP_PKT":  nvgre_ipv4_vlan_packet_type + ["INNER_L4_SCTP"],
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IP_ICMP_PKT":  nvgre_ipv4_vlan_packet_type + ["INNER_L4_ICMP"],
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6FRAG_PKT": nvgre_ipv6_vlan_packet_type + ["INNER_L4_FRAG"], 
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_PKT":     nvgre_ipv6_vlan_packet_type + ["INNER_L4_NONFRAG"],
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_UDP_PKT": nvgre_ipv6_vlan_packet_type + ["INNER_L4_UDP"],
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_TCP_PKT": nvgre_ipv6_vlan_packet_type + ["INNER_L4_TCP"],
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_SCTP_PKT":nvgre_ipv6_vlan_packet_type + ["INNER_L4_NONFRAG"],
+       		    "MAC_IPv6_NVGRE_MAC_VLAN_IPv6_ICMP_PKT":nvgre_ipv6_vlan_packet_type + ["INNER_L4_NONFRAG"]
+       		}
 
         self.run_test(pkt_types)
 
@@ -328,9 +398,13 @@ class TestUniPacket(TestCase):
         """
         checked that whether GRE tunnel packet can be normally detected by Fortville.
         """
-        self.verify(("fortville" in self.nic or "fortpark_TLV" in self.nic),
+	bind_layers(IP, GRE, frag=0, proto=IPPROTO_GRE)
+        self.verify(("fortville" in self.nic or "fortpark_TLV" in self.nic or "cavium" in self.dut.nic_type),
                     "GRE tunnel packet type detect only support by Fortville")
-        IPv4_packet_type = [" L2_ETHER", " L3_IPV4_EXT_UNKNOWN", "L4_NONFRAG"]
+	if "cavium" in self.dut.nic_type:
+        	IPv4_packet_type = ["L3_IPV4", "TUNNEL_GRE"]
+	else:
+        	IPv4_packet_type = [" L2_ETHER", " L3_IPV4_EXT_UNKNOWN", "L4_NONFRAG"]
 
         pktType = {
             "MAC_IP_GRE_IPFRAG_PKT":          IPv4_packet_type,
@@ -342,6 +416,7 @@ class TestUniPacket(TestCase):
             "MAC_IP_GRE_PKT":                 IPv4_packet_type
         }
         self.run_test(pktType)
+	split_layers(IP, GRE, frag=0, proto=IPPROTO_GRE)
 
     def test_Vxlan_tunnel(self):
         """
-- 
2.7.4



More information about the dts mailing list