From 1482bf952151f8ff1089547520f0844ff6f60768 Mon Sep 17 00:00:00 2001 From: Deepak S Date: Wed, 18 Oct 2017 13:16:11 -0700 Subject: [PATCH] Fix all the config files alignment issues Change-Id: I087c9a9acf412a99f8425fd65d07db6c3b7a4af7 Signed-off-by: Deepak S --- .../developer/design/04-SampleVNF_Design.rst | 7 +- .../developer/design/images/l2l3-components.png | Bin 0 -> 14832 bytes .../developer/design/images/state-machine.png | Bin 0 -> 95685 bytes docs/testing/user/userguide/04-installation.rst | 13 +++- .../user/userguide/05-How_to_run_SampleVNFs.rst | 85 +++++++++++---------- .../user/userguide/06-How_to_use_REST_api.rst | 2 + docs/testing/user/userguide/07-Config_files.rst | 2 + tools/vnf_build.sh | 2 +- 8 files changed, 64 insertions(+), 47 deletions(-) create mode 100644 docs/testing/developer/design/images/l2l3-components.png create mode 100644 docs/testing/developer/design/images/state-machine.png diff --git a/docs/testing/developer/design/04-SampleVNF_Design.rst b/docs/testing/developer/design/04-SampleVNF_Design.rst index 2bcf6252..a3332e27 100644 --- a/docs/testing/developer/design/04-SampleVNF_Design.rst +++ b/docs/testing/developer/design/04-SampleVNF_Design.rst @@ -20,6 +20,9 @@ Introduction L2L3 stack comprises of a set of libraries which are commonly used by all other VNF's. +.. image:: images/l2l3-components.png + :width: 800px + It comprises of following components. * Interface Manager @@ -27,7 +30,6 @@ It comprises of following components. * ARP/ND & L2 adjacency Library * L3 stack components - Interface Manager ----------------- @@ -56,7 +58,8 @@ ARP/ND & L2 adjacency Library The ARP/ND state machine is given in the following diagram. -.. image:: state-machine.png +.. image:: images/state-machine.png + :width: 800px This library provides api's for handling ARP/ICMPv4 & ND/ICMPV6 packets handling. It provides api's for creating/deleting & populating an entry. diff --git a/docs/testing/developer/design/images/l2l3-components.png b/docs/testing/developer/design/images/l2l3-components.png new file mode 100644 index 0000000000000000000000000000000000000000..751c4b7c2062b521b2ee82392e3ab3e87fdf7815 GIT binary patch literal 14832 zcmeHuYgm(4);6tUnM#%ED9{#_c0^Dkpr{-LTCE~-h=L@9V}$^63L=D4An{Oj3L-TT zkW*+CL`gzQVu%Dn6b%?ch;j&qQv`tsAp{5nav=F0)NwlBkMHMuz1MvH;Np7r&R);n z_qx~GYpuPXUrzYAuV44gIz2tT^&ZE5^wrb*%Y>fZn$3Ux6lg*1ak&Qk`y|=d{g7U5 z=jKV^;V;oYc>kcMSC?;~IlUHm{`~AQShAj;@%GifPdt3hXZ7?PFMIs>!>RO8=}<;T zr1%F>(zmC{JAU8w_o{;LPaRueT_O4$dUmJ_d;VBd@DJ=T|J<5&J;wL{j_KKl|Jw5A zr{SR+&2QHq{dLo!f0jDrQXNvm^%Idf5tgCYx(NQ$x#nwh;c#STXTuUx<|xLaM5u{_ z$(_k~W!A#>k_Jgb+N}&(;!Jj%D9IR@-fcJqSjpdZ;tJ&9afBV}3+5gXfxYP^j2(K} zVJ{i;hU#SkziEY&5r}f;6L^97cBmbUA0Hn{puHsNEwsV6Uz?VsDg3jtBe+0s70?UD z3lB1z9ka>3@oV4Ya*lr`G?|?yEEngI$b+dk&MuGR#CVEp+BugXk`T(^jlO=Yx9|jz zLn2Xya2I5h9Hi@86$P<_Rb(Wsu)9sW?E|aBR`eWXUXV|3W&IeN9U-Y)l~V`ES!_`m zRM%S)UaWg=f-BIwi$m_KAks^T*vheX3ki;2kufvYx)W#gTbKptlUqRZ1FnT+qXp>E z-vD8IVB0-nqA8z#!G>?w!}()xrUD%&K6ZSBK)z-`}`5S_g)ZVjp*F;2vrE`jxl7(6sony#|_TXJn?ZLAHjALP^Xi6)IX7f ziKQF|{aep>5S&MiOZC(s`ifwonk8>GF-d&E*_1U8KJHc?vNzas18oqS>wUc&UeF)) z!C>wn*jsMVma(kGF-jUFH~H}HmoqpTma~gg##yJU>CkUT~q4k;$}_;TIvb9Uvq z;*5UU@zxZ-K@z|MO>#@L8%j1fNlnZs52NA=f@)IS$7R{15c)YmrwhaosVuin|B-D4 zCR1EsxornXS#fMBd@0mxhA5m0Jv$~ZvOzSYnm_)msVDk_@gA5eT;Jr&X4kU}Qkpqw zj0s+1|CJksqQJ>ZPYYt8U$h9fj28_yBa|mBos-ezC@a*Di<}bCv+3qox?{$(algBk z)(-PmxF%rFaSxE$`Tck=$ob!I5&!ZNCAP=PG<^Vs=xSj)krwy{&}K67@{&>7-H@bh zT{QadfhE`C-x?22b?r!CWUY*Bavxsyp>0C`d8%N6FOJ_h zlgW{eFsR-AUIHb3yQjC^=@*nIXZFD)CLnNo0lruTCxta@kE3Cthp70Xri5u-vs#4_b&3l6fjpK z*U_L;OrA21S5DcdDI7X78I_xBwS4z^Wd1!@Se*RfIhi+|I`+&&BpdS~2iCV%J=+KS zx+C+X?0#^uBXQan9u^&(uEmQzb-UUf=b~RObS}9OJFZi(Ij{ zVa&{lsybj-eZN0+Sr=4O_P2cC!tuaRWf&6Mdg}v}9-gIY_tMI`$bXNaWbF!g&4;i3 zDu;7i&w^mSQ~K}m*sjix9Umci>sXHeSCgSJT_KESu@Tp|a8a`_=`*NTFB9yC&&n&d zFk+aX(GL-^T-PjYI z)X?oA*i&`Ma9a1oa7K5@FjS>BJGkKHrgGCx`I)J>;Ou1^w?%uM+RyBUd5mU-r|&uk zWvMTS)J(%B@seBm9(5*E?Q~CxXi_GE@dpc-H*JG2T=x=Ow!l1#!Yzt4OLUpz>~Ske z7gXvvJLRGu)+l~us@R$-ALeSu*)rvLu1GzTi&+}Y6`|(XEH&BOU+O(kRm++)u)#Yt6k{a6zF3z6_+_s4EU*9N zpe+nK)2l3+y+jtF-gu)7nc1>P*`RtjOsK}Eg_RW~Ks~TWUk($Onk1uHb zY#wSuGlKsE4!K0(s5H5j0(-iJNEKKAskj54P`J{-Xh14DS_R$~k{V`gqISCm2}n+o z{Z6027?o!uF??qmG~Y(b^uku2gk%|^#KTM=S+Qbk)4k=OKpe6NklrD; z!8=hKn(GSk1(TrN=LKGZD4`h%h})UX$ZjhONsdv)de^fr@Rt%_ChrL%B@UzBm;k5^ z409>N)*fAd<+5_5oaV9+g}~+Na2W>ayv%UX4~?VL`U27ZLG9=-`%0tja)5ZB{D)rP zK3J)@t5H^Lb~ikP#-UTUrY{c1)3&B(YrRRz>gwT#;^%x%?0&&K>t`#iz0N?`H?E7l z#AF19HO(31yU0i7)pkDQM4#q6NYyt6zir3Seo$PE6{sczzwEP!Bitn*`4{>oo*dA< zIVF$)`b%KTmiL5A!z_MvwliAFVx!zhg9t{_{|DOyTIwEX}AsM9x;)``un$td^c415PYqZ zEzA^1M9e)xY+)BpcnLlOHU$sgA}`3dn^wo{^1$|N#~J;V4Nv%qavW=p%&VsT1*z_2O?QLA)9wnb@-WlIYVM})Q}&AFA0hXO ziQn(Ah+Bj6ccP=!SMIPMG@=t`h*Jts<|rS7nrom3!x#wKXlOmOU120Cvhfi)CTWLF z4JnW$lJv`E3DosQNL&%}lwMM_71HZDJtDGZ5JWUOaD4oWgt3F@f3B20^N<&S=W<9H4se-WtWedy5eblz>al^7uw26Y5%p zo`L(?_nFKTH_hWl!VE9mAx>UuS?^ zacnY?vx^PHjXwjfS{!S(+z%}hfc<~T-;pU`~*a9K_Oe}LD zr_+Pn64P4{yK6+~p5UnQ;avTIhOz1EHEAas$EJ&gu2mz-#D~JE3*$yb zWthw&7u-0Z$1s8s5^e8*ifT`*8~Z%wp{BiU_kAE4eUEd!zkVy6d1|Ru@!*z!20Ls> zkJh`F;E;{lJ|X`>!16%a$&5f_|4c@S zHEU|G=Pn>gdB@WGkvMOf{2$FDNKE92mn#yM`68?=s3wUpt(uUI?a7fqd@9tFscglW z;UnW$PXxy+&X#P5XpB4@*FPAMc&1NGefYiftM+|JHit1CzTS}Pa7}ury`pPsTgYTo z9QY*KCa)-1;Z=w^AU3??v=h2)R9rz^a~n8#Ffs_~FS5G#Y`xzv6=D~1g#Xe_N2+-@x>rDyRswbgTP<@#~1DngxTf9<}%KWQof^)*-609S|FLO zTmo_A(}L&D%kLl6a=5`Wk8lXD%Nq^-%)UyTp0fhqk0T{@@At(ih;GRV2U z>tZy;fv(BL>l_;A`qvPLd=?$##;)HPSXa;`eCaz`%U3-mu2>n0`bZw>R)VRq2C zAHu2Dz&UMfA$YBRXZ6LZ!VflqHNWrq;T7f{Q`mobkL?~<22c!mXTBcTO6!k9-fin2 z5&Lf=O#2Q?$qW7b!3?#xnCz^zmMK_`liaXoq0kB{nH?a+}YxK~yM&Rur_7_S(|gF?Bi!XM!7Ey!_?Y18^5qYI2<9`aoj4c2L1A|(4S(nEn@iak?vLIg{ zjqt)D=b_<3v;AqBA!Rx7h!CDVDK^CDq6J#5WgmLsb&(F2AEL#Xg{bfAl9g^N_kgvQ zw1@2^t@N}B(4(*8bjyBmy4ihKF>gv}vPQ+M=Rb;xhMQedW3!VZ_F)X3hF`AxN(kpE zrdH3@7WTqe`_!)&u*|ytlxVzXZ3^ z{=^fVVMa;Su4&8qZdApR8&g36lUJTq_h}zj+Z4SAO|#g=bxmHrN?~U5Mr2m5Mw$?I zT1amgVlmhbmY*emBe%2%QhYf(_Cd>zYf%&*Z2(O4O!s6TUB{BU!l;zq%%O$Xk44GA z=tkgeZou0pu8oRI0N+Xy=fiiRdQW9-T}Dy*P6CYkYB-z+ob>g{+?AkNrATjC391CG4rn1K>#^+LoP|FO43HFGP>y7Mu0+D+1h-qLPQ;m*-Yb z5wSPXY`E2M5RTUHW_^#Ffuw8ukS^1mC)oiqe<@tHul%`odX zw5lO(vG+pa32f$jKE&8^Iw6@;v!ns>FtRce(y)znvOzUgoor-k%X$<6?c=wvYu*E8 zJw8%Ywt3co9=hL!4KLWQeb2kQrPK$OnAde#r$e**ra$er&U|&hy`;RJnl2_|{eyvX z`^q2QldPnI=v_T#RZ7es%3QuY-$5utja>*bP26MC!U^R6NoL7sQ~KX5iMu$NNO^-& zoI~9xmW4Y5B+q>Ij>Gq3D0Vg-<2YK(C!Kd?4PZez-^j$@4HY~XFC|W`_aP6@)W*4& z>h`k&lmnU3Vq<&k(BfEkPgUX@(&nIXy$Q1K;5q5BoMe+M)F0+F-aDx=h~JHzsi#Y3 z>|oW<-6Wzk!7k0D%6O)=DZIX5rp{KHGf>7fDiir6^^KdBUF&F7^8(ZRXm_m8fz9N3 zp0T|zt4Qs@VOKy(WGHK@{~@ z3jY~$c2AWlaXnjUJdBi{$*q96Sum+pmTGF|OmOd!{*(gMlbFnDY|6}galOXwymTa(KTmBY~mag0yZPg_C8;<6XO)0CksvwT%``aAc z=TuVvk?%m}M19iMhc7&8m?8tBGmmb*RXm-96F0TbNmDmNb4|)>f6=VzJRuov349=%qG=>s4 zaFy#F8!oSv1a^YWngXz)-J?F&JZk)>qt zRy?DF$hk}?kfqg+=F}{OG7%Z=g^1I(4qSCcI86P>-O_v?_J^voWP2gl50%yLq{k>a$G3NIe z+xf5Qe00qpx4HlE{k`Ti1%W`gs;8-K`6iKW|GX1@UF@Rlm}|p3X~zee7php=-gw&E z$UFrIi5uiI+uY5vRWGWqyD1mus`Je-Q8R1B8M0+6-(^X&aKQeL5*2)?-%0%{JB+n* zg^yljY!X)fOd+3g4 zHAr8C?0X!hQdK3QX1naOQKBRHGpOE;>QL=ib5URDS;cb~GmP#|z6&0++tEJz%MH6v zmJ_4-!1Xnkb7@Vu#kqLO3`+W9#Vt)#mB?IrWP_HzvJqwM2qMWChgSnk5bF0^%wWyb z<1mK!mGkw@%a`w{Ma$9^6PJ2ffzW_EJsv4t8*LbgTO4sW3la^sha!VWf8>;NoRnED ztrG(KndW^hoRWf-y7}d1=s||8SJbal>04)a+iz%+;@7a!moB6YX3v(VZTS^g)>Nd; zCYkH<_30z8f&P`!qGn}~S~UAi+XuJVd9{R?hS97Tx@cZbB6WY+M69ueQJI-h5pqcy z+X=SB)XZt9kI9+ox+87Y*@x=`Wvm6#Qiw{hO&|Tks)~BDi<-BiCeu@Nd;qFAstHc$ z+5Uqf7PwoN@4E0Nx7xlFxXVXo=0RTi$50UC6<`Nub4KD*9Bny%7Bt_>kkJgKm?64? z^_}{T`>MpQx|PKAGdhXca0SLhvS20nuKC6R$qZpw_vmnb^V!(fJ;l6miceV1n%q+s zaf*S79+iL@mYYI}io`rTSeH0I_X=vnRNYu1-vCx$c$0aiBh+a^MxH^jPv~a5D&r|= zc~Jhrv~#cFa}`&47KGk)+yYC9FpozSCgN{d#tFul0!zip^lPQA`5)@!x0CYK-mXjk z#4!Vdya!$z4X8#Nk-yok4i6TLhCpyeg#<6bVjgMZ3$TDV4KCL3OGfie0p}I7R3GLd z2n|pGd5LTv?DxErKC7X7%(bBds^ANB*OV8~bN_rY@M0VZB;^4@p~o~c##!!lT@qjQ`FAZJ_;L~X0Y zw7wPy7W^$vo{gzbQcSllvLJ3NO?DZTeKrpznn8VVu-miqMdko?OE|kGTizThC7M|e zdzY)d<`*utlPcDG_}=n@oB=X{l+&k7W0YVypEt45TD@kE?D0lfDc)I);5SfHwN_Qc z`7ux}cIcI2?F^$bg?og$7_gZ`R3V6EL0Y)1rLmU2axC|7f5wRn>gORSJBslZf3&K_ zvL>Zi*icYfjQ9rl)NYe4{z;s!q27vn+xx6$ z5bD&44HLn5u*WwT3(x}~2WRZ5x&A-}Hubp=7KC3buun*8R|J-N5mnd9N{NfROwMR` zBnsvmYoVFn_JWM*ZW%wy4Ozj;d#RY)HPT>uO4<=xM5y++l8XNjxt^q{?lpWU5Jx6Z zI+>GB<^J6-{4?B>AOsF$wxw|p$(-L7GTtUH$cHak*7SEaa4jW{E*03-yzB$ijW%_6 zIsGRjoWNkpxozDByUQ-Fj%?p%RU7mLyFDD3ph12t5VyWz6o@P5CKH~)3vQ_DvZQu-fBaxl;x<(v}%GS?17v z)$`6t<;_aq!rY-C3qqyAomw1n#J_QSRU1&$BYYw-3D{_P-t9!6W~?gh>;^4f&@nYm0TpCm4^%l!j?%uPbN>$L|79T6 z6A~SefRF-tOT9ikG*zjo9yjoUNK(gTkdXAg#VH&zvvk~V!kW6gs;a`!G=wFzBCn8N zZJzhud_2UzX9)#%(R&d^*AhG!dbY6Nt$-wTQ}bv-*L>qs7#mfy3V`!FV*`FY8u4iS zLZFU*dHdwWj(1b)QpQjM(`uNLyF5(7-ysidgf5Y9!2|ZN9>0%`9|2jlr2io@@NkQ9 zP^QilGZzLF9?jQIE8@tzEF=uhI#7+5;9a29R)L<80QcOMZs@ZVdHOS&%oj{RN!U)> z=n#hf&^1$2$yrALfdwR>bUkg)r&`+M)3qJ+{0djq7)Kv}P|0fpXUTuTy&YKB z28NRf`L4+M0e)GgrePl+AK-SH(h@s`TU<~HfSN8obEM-AACG=B=?A1E1?&5!(}0pN zwlaB|gA+=ouHqe6p3QZGT`?0%KhtV~J+*IGv1__!KMXh?Ko67&UuMoNOw4VR2xV1m zcxU-Ds!~R{TH(05#z`Q|J{e6Wm}T3E2yNi_ru59$z)O#6jS0MUjrY6+JQ8V0cI2=IH@)`y4we$0>XJhTW%>;v$QR z^_^&4S*Yk>hJ{(JP3!>KvHAeigFn&J`zH{9>gjzC z)PaGfe*m|O-+t#~q^EZtC?^9=Kem4y@)5C*g!yPM|Nps*$!Vd^umipaW4s)&2k?b@ O9!GqBtUdJ8#s337=T!Fq literal 0 HcmV?d00001 diff --git a/docs/testing/developer/design/images/state-machine.png b/docs/testing/developer/design/images/state-machine.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b06199ca295c437db7f6a18ed77d55d05a18ab GIT binary patch literal 95685 zcmX_n18`jb7jNvwwrw`HZCj1g*lE}}P14v&qs=z9ZQHhOyzTG*-kaH-oqK2Ydynxs z=SHe1Nq<4WM*sr@`ywkNp#}y9bpQqinE(d?y0c8o7X|tOcU6-X1FM)IJO*7rS&J%) zf`L`XBfgnJgRbG7WprJ^z_6+QeZghbD6hc4K8s`}L^ZsO&e~y32=~)Jg&kf2z(2_r zvRd_)qhHKr?A2q~V9?>X2f)Q3DD(Gne~rGA#)cTU5KVZ>4jGQDLyMu4O5?MAO%-Du zz>RU}8fe0y9CgvGJ&{}Cz75QI^!Kc9)%&aEuk9m5TxqqD?p@N(F?s7>ZjT!-feI!1 ze?MhE$v@El|CL0PXks!cT=4%sGODF!tfDbruBhETJmhNj?tT1?D&dm4DWkTUn%s{dX1{p`TEolQGMfTaXPh8r%t!!+SJanu4BViaMiA zq80nHJ$KqL)U5q4N$QBZC{o>VGUDLDj~z^1TNH8ap}J zNjFX&&ic25i=QKuRy{01cVMA&?%fLF;^IWx?&*e@i6$Cw_dCpfAK2rt(B#nP$ny9( zpOugfFNHVHh-Vp`Mk`Z;E}?dJcNZ*a?|6Q6e#-UcFC=~o_4@_6d6k9h5#V4{M8i4| zjyMN26u;H|O~$V%wPbP7%wAg~(q%SS15Q>eKEPdtT z_~Pb7PCV78K-~5gFy5Xt3zwCt@TAnCiwb-YH zznA^qt&v+7n+-hAFq$aghAUIf7(SRZqD(@XW@&HYmg!uyvZUV{Jl$uYFwUFopZ|R>P7?CLW+;G*Ze!rdf=cg2sSn zJ7PRKawGdxAd{O(sJOULx1R9ysB3)HpjPKn0hk$%m@melTj!C>LpaTV&ifS9D1_u3Ih0MI*SlxY9Lp8v$VN|kt7%D-4QaAEA zZ1PZeamnk#PrX%pV;xS8>)h4(XP?7t>K-fu#~WTc9#xp5wi0r>EXXm*v5t<;?7#X~ zl$Vz`%-#jmCI-i93}PE$*naOwu$#YK_ok8zqpnRyVi!e%2Z^X<>-JSShi`Ui?IqxL zZmgRq@x=a9@_7KMguUFam|+l_%!2x#W+P$!CL10aT9T~wTHc*?_rb%9zViqsKMzbvSVh5U_JBIXYk8a(mq+s9`omS*?yeTk=V<-pM7x&weZOfs4CmWVi zuoM9<%;(xVoGt}u39eaX9GG#TqgKcxLhh&gSS~A|SAa~r&kORy%2ob0GRb=4QAS_c zCW))Z+ZLk7UGh6A14khM*mseqgaJ>Eoe1ok>zkd0G^=l~^i?0?h6^nfl>usD}%jK%S^z93LMqLf8JsumTuKZF}MSQ8mg*Yn_92u{jGm zMIJkc^Zghp++xNFebTZ-PckXkKk~q5ZidxMlyjXnW<<=~mzKD8Ti64e)2=Im);Idmt_H zn5Voey?kwLZ5c8qTQ*1+e*}d(KXn}5n-?mC7c$HEe@;Vk--ts8$=^V_T4}ZzSWx^k z8Vm3ebUTQ}9KXx9y4yFm%Yr}!XWhH_->_B(D~A(+JfEJvx-d$HgaMHqLEn$JNcF=F zfkMJ>MHyY@k%k7V#wEi}dc5bYk|OOXL6HMZmK1j_@aQOqkRoh?h6 znyOI;33`nn+fXp?@)uZket9Y@-Xv_C!sW(LcK2|0_jVR_*OZci0r96!4C2oRZ1`?2 z-F1*)qVp*zlFvO&A_eP3*nrZwE^okohSnSuwak2WZeLM|c{>hcKI>a)f^tuIhwJq;!$fkh~X#saMx3(Vq zFsJ#@DOa)Fl9f)5Wr&89k5WK99G}(*qld>(#{v-~hf#s_wj%rNOprdH(On?dICi5- zWeTz;8|bE(dK!G8ud^?$C}SFUU)^clVH|--%vt==|L@Ny5VEzkg}dwGG)8Yfq`c%M zLCjQ^RxzjX>uYuisZB70l&=93bMqlS=$Ui2>=8~6SwiSB{^V7Exx>5f&8q<(l@<&N zU}~5$sZ2~b8-gw;je|Bz^K(T5SWS)%#|0V7)QVKoa;Q*jn(!wt8<5fsbI_Yk`PKVs zn3~*-AXP<)6bQIhT(_f4d_LgDS|pulSiuPEQ5m{S3nU=` zl3hGNj#7-dMFVrc1v-s~=*xn8qLHGzW5taz->9LUT4+Xc#yP4wG)OWd;B+^A!?V6h zbsbOOnu2mDYuxV(yxq|_WA%EBfAszxgjA{>66Cod{IryLQ4>I6CbX)iyp6;FgTOr0oT+=4p$MWtTSK+qj1>W=c?%bk(ctIrm z2D>})g^hFML(i)qnjr$|AQR(hYEA7wK91p@!US`23}53ub|S)j&XhgrIYR6XY;neO z3+WKbw8;JQGl={4AQ!H;5>^&ZWGa=QgTvoicZ=T#m3;&RVJsujKxANDO+P$%dy;&W z@^QBX%b6#MhkhX8EA9;rnoK2~K?6l>8WwKC7Yz@-Ced}2cSw9#!&5YI5TIfH3#9Q~psetEr;#3x|& z#IvB4?j1oPAt8zipWgtq8SApP#;sXAy?<`o9zY1_>}+h*W^_i{HBc{4BN1W6)rk3_ zgZl&cEj8c>T{hKX8P}gd^6M+dA-*Ru@2444Y$qRA_qE<3ekwCynlpLjKdmrssT}z@ zPX=Up+|sG9YM)28<{70C;$RXaVYo^+Ak_Klw2>ISdh ziMI57o+wE+oxG*hRdMr**-6DOP+_ELO8m3h`g1!q4ysH&vTVFXw`0^+?q_+?eT#>+sTdsEGxinQpeQ9qZ%D;45f{NA4wa;$XpNfC9O9bYZ zyW_{%3^@biAO=D-7(h-H1->!#(M!_i2aM-SPP@4>dS}VjKbdeJo*5b?Zh|Z)n5j2b zq|_Zm{nbJGL;N;C97k>mVD<$(?fB><-1z6b!S7UPj@yy7WhKNW;Oz*a30px|3Y3GM zSfV?5L_%>^+{8uBh7hw{uVkV0M4j(@w@_!m0mQ;V`_#GJ?GtO%92lkDeJ~YvQUM*i z!mohe+oM`dIPHS%tq(;07ggy#o@vwuXUGP^gKSPpSSzsqxd0s`?!I~b7bm}|j(bdZ zdNw8#iqco1Hs^-kZ4=(%UYK<~p#4t@Ory{GT%{NbMf6`aTY9|;Qz##`6(cpW$RhNQ zuvJ|tIP=*1mMJ(E2iE+Et{gHW#fTs_)2jH+kB`CKPp-ZAS_A|I+Y@H$ipnn)%6|^4 z1_B~y`hHk2{nfSSDZ^Hr)|e{qW&Re{S_pgZ`Ec>sPgXxJ-_EZEwR*I9#Gt`jOtQY;jaSO8(h z;*a`UGxuF0bo#s$G&G|^m5jMII&aF%^7JB!?iyFEuymWVv*V*mlUxl@A>jRR9uLQ) z((&02%F;G`xTLz)V|o^irCLd5TsBcL$v#PeNzGZp&U+!kgvY#7atq&m@<#@&4_}!L zSqH5e6Kp{ZQJPy9_2d10`|U?UE=hr$@@$++W_EL%__!&ah4W$6a2XkN@W2<8k|YbF z7#TV{P0?sr{#L=Z%hJ(7!YgM8P_f5B7Q z0Q)_OtD6ev+TIXAtN_Z9Ha~7lK$3nWdK))A_Cw(^&5koL#%?lmG_tvl*?!;zkAxNA zGfedpeK!xht)(N?-R+UIpW3w6vgn6%^Y!6Wq#O4fXK+o$u^OizE=*jC45d6p&6D8T ztGG~7DI>~WC(6!No7!A1$%SzD={Ow=+o*MDZ|^uxG zM+UjUJYHq{O9%Q)DHt*<>SOP{IHlR;Y75G%>g=F(|5JNkH-jKinc(xt_CzB=8T=`y zWOA&sY2kt{9v&V-i%svOV0kDrS34?w*7VD#_pi%2OcJdo!eBR9bY`|riqp3J zTTpS?))bY^uXKxKknhrKAQ7{PcJkoDeNz)jhFD)0tU!7N?qo$j@@zmK;L~=&C}C7dfpa=UkSl`Ss1Ch%ak!UEzW2+; zMv$>7HF!aE+xY0CV`$g({8e~+>Hb?x4V0j4Q)QT32&)q(ar)Pef@cxf_Q>`9h}ApX zOG&|`S}skdv`d8Y^A`=w)tqi^6@2E!Bgs*3%OfY*vr`KHa!ES8xXs#5$zZ_fl;*Q7 zrf=?AzIj>hbiwOVylcTRGC#Dw2xyNY5mC6q@e3 zUqI(rK|%jKjY%$UUtdAR?2q+&Ch1AjLs>IKa$b=dt7K-d;gh;=3N>;%EMCsT2sY6? zrtkA;_06du`Kkgl_w|j`)wU*zr2Z9W7+|>jh&aq`&7IpkgX828q`08qRDu5q3Qj>z zJQjsoiNHb$l$Uq^b}g!@_49P~lMY+e=bv^_@`#|S9)mTRiorn7T6?kiR?)%1p}nK4 z+SL#wc_Q9b+2jCe1)UncF~B;IDg`LO^ElRgn~B2d;Fw3>Ex`yXlgHXR6Dri~Xs{c+JN<}& zY!Ba^6=hIzfE2_0x-qE6D%PNjEB6$1CtjjuhjN2pfukWUSiE(jq+H8GA ze&72M#-0$_4eCV}CTFq7E5Q$$Mej`#fxA)pu>S4DwV~!>0ruYaCsfI86IYy`zh;bT zdY)lJq~z^DAVrB!`$zVmp2wo$x0Ac5`MxxEq+wg!^K&96qSC+*TCOxQbk%Pt8+?m8 zF4JP1zcd8@by7f6h~A~v&nqVsX#5sBjC7g47W&PZjGdl00mp>h42wh{MhG#|NrxlV zR(-~t@?WF6lO4H|b@av49OOUW&0(HCe0+T4iC;|?`7hg^US2l?j<+`7eLiy^awyvQ zj=LI>ge;`(ls}qt6e!rB4t?idJa+xeF)~EBLFF*2IW)Ecu9UC-YZ*7mv8I`fk&un; zw{LJz?y^1Xk!5N)989Vjnzfd6c+dXDVug*m@%qq=~FZYN{QkW6X>TDGJSWM1{6c3=G$4pFZ9 z#9=^?soB^sUFsWH_rR~BAm_|Kh97F3u)C)ra3cb;xw9vr(*k50EM?=`9HjL-?%str zYE5@j9&O38Y!;7qIEs=Aew09%-QT6x@^1#bDm!(2ZUzpR%@Ymk`}&JkLnol)w)^{+ zOmMY-4|j2m`~wF0yr5fD(Gf(a|qQ0R&R8|v##iMDu<-)=9F zKfG>Xr6)Zi-6cl4VhY`W4FR{Zv3y>niHGml>a$^SjwrY?3gYUYv+|&9iiVq$lf$8i zvtjc`!Gc`3EAVwx_T0;%-BCtoPL7+mUqunS_WHJ`bteNR5v$Ku z+WL^+cf;3m@MDmN_-+2-rNXFFNBR$b`1I`T>cYHyI}}E*LshOZr;KSP9{ZdLK?sFO`exbT3xb|o5U5~#B3i)Hohk6>$j zO5-g58uQSukpWN)!R6IgwxdzXnVH5_7gi{XE&zm&&zG%!-ly_^bkcBV+uMh9(LGnG zY1H&&=AX_q-^R9XcwY_%3SC`hB4^tlqn$?l4%L+|8{D-yJs~@liHZ4JQrD7H(hHLa z`_FfKVT1}24YUJKVmXfI?BEmlI3MW`TVfv?xKDo4-K#2E_2#%P6bjuHrUurYlZNJL z3)R1sYP|jGW-=b3^4r+QYSKlP8i8^|1DH1e7{0BQ{D$xb~?Ax>gywr zLt39h1{aJ=_Xc@#`^?wcYR5lBi$SqB&T$eMK5Ozz^-U!y`?oZQ{ukei$_Ap(na9t{ z`dS>Z;u#8g-eJJ0ny>HcM5E{DV=l^v#VG6?fwNxMUka>h^unJwbuObV_rA-`}YhO@3)E4OV*3ehv>j%L)g)=^bCXz4Fp-O zru-JlY$4x^dP7*^O|M^kP)amu?gHK~Yx>q@SPX3R5~6nTtiRN^8UEQ^H*Wakp`ESG z`l>?uP+w_R4qA0y@-Q*`uuZU4!*Rpf=ku;Fi=%MQ{RyVZ-!gLDZ7uv7zn8n_zpe2C z*FSsbXq@qboWRR}%q>iR2WA5)*!0Ah^p;_{--T;Hs=$D+9cBk{WezbZ{ZK`Aq%%W4 z1F5U(CjY=<#D6#QP`HGN_g;1v;6q2IOL2dalo=nbV#Z#TJ`aF6G)Y>bg#rAKh@mqf z?dE&%ZcqCw|6h2}Q9)y1D-K1_OK5r?0yo|?Ny=A$?HHysnee-)7ym~rUxR|vJiYSE z@-6}CXo*s;zyG7^OgRNLkVe!MyBX+5JXDn~zh13Y`*oG^00x!SqLR48r8369e>h_~ z(OB)cjutuEmZJ@L6yp5}u(v;^3BT6#V#iv(x1irIah3uOD}_ zGYj*lL~ed^C9`A)JwqA7bbTzROQUF z|L~61$M@UI2iV{wKlZZl;t@;lCn4*lx;F*Hu|10=t0sHix{Bn>-og1}8eW}D z`5@$&APT_HL?OPmk!N+tk+6xa@+ZXIw1T!tOq1$YnNsvY6|GXa)jZ~x9@QFr8YS+x zYmwE}*bsWtU|ei~{hDy6({%wfcC>Dog;WM;Mo13dRR&3R{c!OZ;4!p8a2P!h{n$31ey-6Nr^8~bs{Hn9hvuV<%LL33Qmfib7=$Yxjy<9NnHr13Gf_# zmOT2|(d44YuZ0gZJUC)DT4$~Vw^YzZt;azN)BvB5JO-j7yyOU^%Z3I;nU;bEGzv`Y3e2#9`I;X77UIV{5nUtgP0HnT6O zP$5!7uD5O@5RWvyp1Gi@%Ey6Aihyxoh9YV>TSKE~o9k7dt8|ZLGZY(4lfw(m0St>? zor=1pyUESJ*}gxp(kh zlDUwU&~rmwKFn8%AZ|iR2A+fWRo0)}W;i;1-bh<3SRb`whB{WQyWD84wGKK+YdiT;f7$kW(dj6#bbwb^?7Na+%CT>)7v*YypmBlc;7m zjRehvz(ORMo7J9_uMx^ZGqw%!!S!3^#Ed|KG5ix3rh%U0kK$ zCQ4u*n##>i{&xF*`H~YQDg;`uuAa^|VEm5`XaAoX@!^qeia{Qt6W%o`2dfCSgN|o^ zobgJJrE{Gre5Gqp2<-!F;#oYrJuj}Hiuj&4hu2gjrO)bAQCuJnS3yC^tMNBa+kLL0 zE%y_u075&23a15fmS)ocN&*a=@s|x|10u?Hly)D6-uUNDAS&?+5-L9IXKn1%qGfBH zhnF5-%l4yKiFMxZdCM~e4K7`cznxU)m|asLF3P8_n@#gD6#}h6$NSomgS^*AeAHzV z6%~ye>z|b@#F+Uua5Cy8nhc}0w>7gn_O&du&s2)_Uoqzi=h8$h={k%vY93+hDKPxO z#%kw65Lr z2b1@^sxX!QtpR|YHC7NkJ)RAf}m_GGkKqQR*X_+8cg_`eg0V7r}j#{QO5XQ+gQES*E z@-?*vWNCaYuW_85*Bymb@w8gRh~!!+n)AOWG%tLa{q`3uM{TWoX60KGe+(x8omIZt zl77n)^nF;=fA|P^)U77p-+m_xQec{#q#dq5T$Ze~=o`uE5;u&L#i$<-^Kgtn1@=H#i1oncs{_@;Ib$yyy0|gbNLx)C(&B*b%38T0%zQ3Tn)dO#!{1fHJV&So7^u{ATnrlbVpd>baHa+;CSk?bY5e1bBZvu zcz1F>e0tnwWx8#=-iDMz`gDtmjtyNlxhJEw5T$u@`tlJX9Z zGj;9|Q=NxV>m9U>L>uEVJ@Y{;r@A)J&+SbjWKK8rOguA#r#ZsQL~pER-E__s(7*&V znaqZ%y|})+SPtA94&lUxV`Byd%yVEoJVwJp5ZDERi!d4*hb->NuNPFQY#XU+f(mrB zLLE!8r;unrmWw_!u!$mo(Gbx@VyWt;&I3>hCEq zhh_0k6Sl`zC92doG1aQkSgj;6hQ5U8s4-p{nry|$Ga&5Un8wPa_^1neeTo(qIQ(HyHwlb_u7q1y%vs1uk!Lw@? z^1@)~6>hpP{o2H~?zen~*Y5S+p3v4NKjP2u9jQ+3Qr!k{Vnh2b9_t`8<0sR=D;%*U zAMBxnZDIAQCbrz|VC)U*HBuiI1Ivh=+$;L8!>)g`5B2$#cnvwfRMGtkIv1vP&`#252sV@)X1u^hnC`n+~5GGwx zu?`)MbaLoBj!5$HlECFoqJwwtA9NMIy-f+1Z5SNb!IOJ77^9n1)fBz>rD=Kq?T(OxW(Uj zd~{v!8EG0!gPy6It^S*>@oQ^MSGt3`@0Z%)6Qm46(eV*3`oNegMBz2%aFGYMFJt<_ zq?n~oh_zQM!8-ere*xrBWcCC54A_P2!w9Q4dOc@cgG9P@Ug|2=HEa0H@!$FV_?Pq^ z=tDzkE5eS%D`B1b@xc)-efzxmtDpME$k5kM?cxI|Gu18P=gGye2dAj*_SWs{T!3 zm7!_4LwrJ>cHo`GY_)pq&(ln$9J^}0zcsc9^wi__(X>VxUqxzQ1aWd+SCw@X0kTQe ziY_l-HIt}y-&?>F@1r-L9ppW?^HsHm@7uvSm_#N>5$dr0bkuR_T3&$~x)ILufK2Cb+T-s+!C)}IS$2*$0VnKSny z{|byzopNk;MRjW>_3SIOG-)J(`rzl|kG!>0lz`*bPC?K7K^!=csi`S>5L9t9@2W!44_<4Lw(s@ zU%wP|U0OTN3@soq)2jwfdA_%0C8kpyFAYizRa#k(DYtIUVykfz{@|$kg4iFKTmV6< zF^z{@u5J*0ll*@3;nPEQl?$)81`WA1AhMpGQurm-iNyAs&1KEXS-|q2^z$gb4u5~w z;g?$J>fiGP!&gw-FHK&u{?wF?k@-(zr7@rOXaRS`O+Xzx7|CVN) zyN)NiSVNzCCt9)5E#2s-Q`Q#iaY5%~^;52ngUakBri^u&>lNE*Mt=!#V|{Mp5bME69fD55be z8+mgWDn33wY}epp8mMKx6^i^h!}@nSz2)CqDggz}4?!i$S!fJDzeMn$&G$xYiD?i# zT%y|*<8L#(ZzCL@67UE&^-^fXASyZ$rTh^Xl!5+FDHv8`AQ1B-Pt+$l4NS?s%z=og zhaq&o?gpxPlCjO)DYDxCDQa&}TXZCpBEb@imTZX3FQ};0J&)ngkSCtT* zqzLv_8rWLIJq>KTMokoFanF}E2AYYUy*JN+o|n=*e&5$=v{{S{QkWj=VEFJM1&Ms7 zCMT@hL=49T=-zUL;+Q7(C? zfEqhOqrAMsFP9mEx&?z3$@wP`3Vj2>Yygc8^p4QpSDxSq|(8h7j% zveaC6C$!L55pGEIv`OV-oro|-cSWynEJ^Wc8ZR8LZ^AsAi!fGC22`^eeU#+X!hHXv z@{X)Weuq|Un_HfD9}qXMM#t!WCZ;;Ng$WV8gAPkde}E%N_3c?}59hrQsMTdQn=V3$ z)X}3anhe?{;E7n9XCP4q1UH2Gc~UWFdeDNWJy=QNhe78ST+9p zzLLFYP+z5U>jBl8(Vn9uh>Lm1Q{0s#K8)|<`0iRZZXvS};F&ZzY*h{kMUY9t%U$bZ zQ*@diKQG|Iky5sT0D$1FEsBBA2%+CeG^_n+0-Tng*FO%?s6OEq16wQM3S&Gq~_U+E2D+lHQ^%5 zx6D`3A7A#vTsKxdQJ`dSuNZ9>{z0&B166;8&vtciYy?9BA~<~QLS2wJen?_~JKVni zcL@LFkx8LpuOv1hmD%(s3Ou+`@W{x(o(i6Qr@|K-?YDg@>rz8aVA`-G%h1oAHehC@ z!CfT^@Hw#2uo<`lvfPs#Y-6X?{P?0?qPgls4u)@GG^yO1vBTd+N230`gBK1~e%@nr zI`Cv=EYGa_Oe`+))VR`()*5qlIxDG4snn0gt>syTxj}A=k&DUo;6X+UQo&=E6pOH% zM=JDp1XgPT`Z#IqR!1l;zsYFI!~t#jLro-{FY+A|dz5jxcOQRI?SCMe&=E#7Q6?;i zOBmXpCD$&gp*86|$z%(-zbL=zduEk%Z$?Cd7Goz_&aykV$jk9I%sJ8NUV~AWj;@`% z3sG1M=poE99g$ZYlN_+?JxpXIXhcNpHPB$${|vd}`c+1VS8;f5_;1$SH=9vyezzMh zP+@cFDXbkRzqiNM->yjh5H!_a7+Rk^TYB!|jwHz#=O^}W+G6rxEc`s0b_g$IM#Xhw zGFaUGxlCw&h23*)F5}~Ah7Ps}PKbI{wz1y+IvnCLB27&l-tXN(fMb!InjADG*2uee zqa>aN1=srabuvsqo70|o?g7i4+}AXnVm#24ZD_6#Zrc0nDzRrmT#o(P_o|O~^AfIF zO`c`xWo-gag-ym77@_g7<{mIuh zp%1?#@Qa(BnzMLjIyM{X{&XBx>pTVm`Z0}dCJ1F5h9fzAj9mOvR`>wZUe`7@M?aJA!8 zXFA$z?LcmgJ+i$|)Lg3{s7R=Mrx!qCLQUVmnlMdXij|wtmmK~WJ69(rAiWlQ#Gmf< z_iKCTIu1>Y>Ct-RFt|PYSB>?Y9MB?|kRs6&21eLw@um<@lXEu&M$_z(Op+)zt0q>t zN%L)tutKUB>0*)TFhZArt@iX3=D{|LBN9Ou6vri@VX|NzI`rH8mgP;y>15?uDgnP*HotOzGu&L{i7Isr05sUI zpA7kXI#ddhVF`?2QK+dQq=v$kLiKa0 zq$Y6bNTa&C<9C+TTxo$i6-R@5|3^~QDkZcVn>^K3`L~*G{`)YfK0bvW4e09cfnWb{ zs1`=u4Hi3_^}!!(_PCk;}%RWCTY5s?;J^>9{;|!;AsNLLtS z#@ngG+V-y_eB|7wxe7~67^V1g6=+|KMZ2ReGBBIJ@|@Q4F#EqD+BxY7>EC+b3gU#X zN@57m`q}2|HSB;FLzZc(Sk>^J={8$M!*dyP;&IRZ9Ubjxu`-hF2bxSU4j-shYiOFa zlUK+2aS;|!Lk^ahvd;tZ)aq&5M6gJBM>I4VsJ*V*B<*yH&00j$M`p1Fx>a}qs3kkf zU%_%4(nwYu30bBK+Zf*;zJScsAE*;X-{u`tVzfG^4m=av}gxyF|3WaLhWudAv zDhjrKCuiR*B@ly127u3~7kfGrn%moRv!TU{tUe|J~0sI{!PSXC0X+WMAB~pZ{`9fdEz~Uq6 zj=xahhpWVvU(??Z>k_{1cAt0>=x;J!qQ#Qps~5X5vHdt1N;4yziTuZ4U1{8`(HbXh zytwKv#M-sDUy@V{XMPO%KtrAyHn0MygLO+>1yL0?|50Dcn$%tXVXOCz7N1e8-_Y4Y zLxHw!hGldwBDt(-C^tI|5jvC$Kr3|Vc5>5MH3_!z*c6MD;y19RsXH|d9EoeZ z0i&}#{rJ3%4fj8)E;x+Qs7Vz3e4;TVS6FAq=jZThupfOAt^S&mo=>R`;I zV(1XRp+~e;@8}DeEmyF(=qq{0?vdkuLl%Vp-4CmfKlttUD$lc7RX1~02lXn_bV5E7 z%F2}#fWm~8Ndcg)rLYcPwhxl#DWTofKgD5g{nn7kqu>M0^;Vb)Tbo{qi+zs?2svJV}z<0X= zGffS^(jfZ6mjO*3WgTwQbb77#FvBeb$smAAPN{6K9Mk>{yW&5SKP?h8#hhZg;4#`=b#uNPHW^$Frh+Kkbs%&Z6 zxB;v!Cr+62&`SmPiW`u>%->f4Q3orq+>)BSMhw`uPWs!wQ7%t~lgwY20e!yxg)Jsj zM|+B~`bEL~FRuysv8Xrtu?1MYT=L{Ke;3mW z(A#@P6`fRJlW@G@EBt2PhsTLlqZS>~1?CoMV(pWc{$e&}v7Cd8ZX zQh{QFh$8CNKajaSoHX}Vdn%Z<%S5jt)9(}Tqcs~m??W?q`j!hLv;2xJ$8zpf2;+-& z&{EO)b9*V@_}5am-jWXEc7iI!0HY*%m|5_5-NFa_y}WpmxY(?Oqa!~`TsCHgibRv$ zB-t-67|;fiUNH;b3gU@YV8Y31`FE$5vzI`T5md z&j7Vzt>vMuRb~XOMAstDmBG_Ts*`&S0suP+P*#A;axd#Xj9{V_)X1=C)8c=hID*#< zBs5^BiyDzCHcdx`8I9~J#S)^9RRJ{lcB<`nzHLnZa$Z2dL5x0u^0N-Kk+m{oi1>Tgai ze_<&u;;(OR3)fKn_-lsw%S%-i_D@=A*RU}t6Ad3;vlHryM20y+4ZQS(NyQmJ4}Gm1 zI8*20mt2(fjG*kf;&cne5GO+H*wva0pM8?IhuF`jal7>#BLV^iEcsq6Jn1qtMNO&= zrR4SJ4=Dg+#Cy&JM-1Ibh>mJBf#1Y7Uq-fE>`bbhEaT_Z4aIl7~h>Y8+5YaFyl86;?0{k!fj?DKum|MQ_$_~Ppf zvKiO5;$lcQU7_Brnr|s~Nk;nTOa8#5aP_fM?#A22bi{X9k&K;QiXy&+E<;PFFv7b8 z3o7bp*Y)tl)lH3%F$z)CS&SSz*v;NzVo>q2*QI}Yu{ zYWVq9j?+N&?fmKq(ucj#Z=`hL?tNw$z$HFPzvNkbXdL*wK=X0En7P3hQ&?H0dFH8i z+scEIZFi18Yew5t4%$t0%2gs_K}(WqRX#qum~J+uY?njryMtOMeB0bVwkg=4iWn{& zt$etD2(vAU)3wXKFxt%B6k^6M=Ghv4d=3uud3`$nd>WPhINU#nC1~;W3;4VW&w!f8 zzq)^UO~kF?3X^>u<4u}3U2=U3r|T z`MgCrTorIelnNy9LUNY&H*zB20tqIbyYggEb&ECO)*h1>G?-=kYmzHkSd!|KN=luC zoV)Yron9UpF{KKY;O67^=^vI(-o6=eWwW>GRRa-M&6GH?dJ*^Ly=D zPSWsOp>l)&d7zQd;z}5z-#l%X8I$$eZvB66Yzswz zA5wKzR%V0JviH>j-x{iU24S}Bf_qu{P6W`(tJhstKOCtRjMTU6<9R1C?k6s+l z^_#!O0yn}epU3Cs*~CuT@t$>$U91p6KN`yo8H>r(PvmL-?GAzj8nTcj+~N5mzxg?P z{&`it+0pSSrp+So&1-3vblSXA{VNRIh*$lrbHMpvAn&LhT>L?{^k{@XOZQ>#PX}x` zGnXqEGBTKJ!*J-Fc(MI|W-i>7*K4i9?dJ3gM6=D4+cFNEh+3abpAt3XosFl{X6lFe zY-BA?Q}QEh3>ZOx8(*nbQ&%lcOJJ@0r^DyfXs3_aEaED1UEO1y=Y7u?RQ(wItL+fc zP8}I>>T`LX3L=Uiy;=KoIjMkLy4&TygBLz$jh;detDn!Eo}isPGnV-CQ?})0<;l!UPIK|rS#xEbA-`f$oDve=>>7hky^T%_84~Q$GJOOu` znHwLVCCG!1z}NMp&qv4Iu!^_~p#?qnP~z7-5kGUHeF^r+bl0V_OE2H7C|fmqT`O(X z634*f>~JT6_y5DwSvW-1h2381?gl|xO1et~q(x$epgcPIxO;2k9l_< z@rpLj{VE48Xr%bGOU=p9$f#0D8UA~CN{Z3dEBwgKog6~5)alVXL9W+7eMT|YF?hY! zW_m$9*heJ86cl(3Vk40$MUmh-7Z63NrJ06w;vWKV1aLSlaKUVh5o*OFDC;eVEnnTC zbF-Hk*!(ZKP!h3mq+bpm5W)g+Nd#Bs<~Wd8R4|}xkox5}-e4%o9{z#9)RxMcZ?T%^ zS4#*;_?e=G_UtN$>God}-!TVS1_Gl%sPF&QM1lQ82uQ}{j_^JdG&LH z8iF25sd>}sf6_wP{CRc31eA#xjUq)!aQthlzEgVHwTWv*47ZBY+XGORwOc0~xYan0 z`=3R^Nud5|0X^Br--R8vu0OJ@(v0-3xMR6ee%~3Z=Le{S$vZC|cpJYXzvw#QitNxC z+*!c9QCd*hl%-_bWsV^#kv5o(Z|+DJL6g)^|BB7opq$B^hvD8*9V!libf4%FD`>p$9GVY(ck=@Knl(J^OB;> zz)g=80JOIK7W+Sym8bay#=3)#ZSw$droj>GO83$e4+PYFjZxClme-t~ zlSc1KzP`V@Ih<(sJUW_?#oc}HW*sv{xwLD@Ay+?8w<6LZYeDp+*9e2~fIu>6LpKjwIJWdyfb?KHF@;~?URD)+Z__4*gO)>x~0 z5mk@rVV+!ux(9;)#o%XnM~PS!JkI+kF*@(GRw$#h0V}DBlfpLKA z%s1(m-NMf6N66`Xe*4tS;pwFpE2tXDNjY3}(YoS^wVI0~N5nwa@pXF^l(vJZ~^4+PFA!27;|cIDxsX14W6!iZy?JiCY`9Gtl1QS8^nMA84Ge z<+J~9Zqc@t@eL0&d)XH;ZYwMp%^dOp=A*adX8tcTy=^7+=D`;#qBRb?sD*36FYJ5>?D~VDr%{#MwW~c z%G(mz>qJPr2Y6M2Q)1M=nhE+)Azrwb3~MMq^>;cEuBN+vC~Wsxl72j|8Vso42sB=6 zI$qx|yOwe+YNu}1qVlRCMvIyq*)$jfbs4+}T*#VTIeP-Vp*EE{u zjvldNfm}Ui-KAQu7Nnmy;}f68`5RxhsyprxU(1Wkn-AS!dMRIiR{s9@G>xA?FVJn< zxIoZj>#Cd`F0#3+tX!l8BV+qN2_*nRr_H#zIvri+>o+9+R$w9mZ?%Q zVsjB-WYAt2zWn*EeC%Zd1+ahpUD)2X`-}AjiOT&-C-A)Thp_bBgJ;80xosN)pV~Uy zJIOW3ri$*j8yR+i?e-&UZq=oj@iB3eKk#Q<7>8gR^2^nPN)c^1KX1jm>uMesCAb zen2#!N7R?Tg3$USXr=gmqLFF8vL%a1&!}?9*Tqv_8|@D%4*p;euBn+yR~HmR>tcrdd-)e{n?{UC+eeQ zXmk9HW;b~I#3c_Et2Nslr@n5-D}Owb!uYEYiGl8RB*$DclOj;L%6j(XgP+qZ!dy6n z_}}ec+3-)G`CD!Mz2jS?)M6Xn?r1g;(^=!aKiaXzyJ7ABNQ6_a^BTkQdm|5Z=lMDc z@;pYJ+vWMk-!H3|*Sj4Tn`((tzK7C}NCF3w&vm{J-Dp!k0|H^~kj$$Rlqi2KbTxqT zxna>0sJpnp2(>a*dn6`$>I=zt_`7+BUm?$b(|ehUezK&_Iyjq$hScwna8TYMcnQQ; z*@X9~cIo6ka}9wQ7Y0Q=4X6wKw>4K6bnwe5HQ748rv5ZTmoDSun-yaYs|cEBv2lDh zJg@iA^K-^*FVz5y2vQ!%RE2tb8@@EEb$K4Qs?AKBgXA>U^|C z{K+YE#P|+&0?U9#K((N-i9v6~nEC9tdTV%XZW(4QYT=0HpeLLgWx&`-E% zHHFjWZTm_nC*Q|y-WMiA-kB8OPzsvZ6gmqG>)^iOzkQ7yL5Q*E|N3eC30M8ey3uab zlw&46sCsfL)Mv^OQ1b_@pd*ZuLHajK?Vyd%vtdSab7Ew;j(o?Qq$STT@#m5h%N>oA z*#=#k*}8Y&zI0$AwUL=Nmm+Pn*m_s#XE8-lML z$6K|qt5}fv3MtFUBKPOV5LZG;G*$^LMk9&jdA_ge5weCRRL=c4Yl0UphY|_WZ@${^ z(|#X22OiU1AZ{ZSWfD5`G=5cFnXLbhh z$R+O2dcHFRh1cOsLwNRWNAcP zEFqfJh4-4kt~y7ayAqQ_Q+-SnzwO$2`{uOqL_A(7A&WDsIrA~VIAZxBAeQB$7MW$x zy&B*zL!;Vq&?kGLQd70M*N5gJ=8}vh78|BZgK>5bU9y7(Jg0Dxwyd9nCIO-veOY=Q zU)aim9r(n{-W%&J2>Ny-5OT1l`O&0pNvqD)d$vHI(GSU}BpTw$p7)x?MxzY4LejuUj0Dy~kj~-J7+| zoOl>Izxy0}AiyCMYxB$8!?;%znQgpO5hzjurHrox&67keh8 zXbqcubR@|g65=vVhjDocrliuT<>^J`8go*^<|l-cMZLIfb~M1)Xg?1oL!a*-UNS*& zB&7;q!G|Vu|G-J{wY9?TkeQfw7ro+ri9%?+JM3gtv=5%9WTQlyxtu)sihBp zOM#Pe`xH!ZqF60+`%>J`uvJ;5@=ohT`HZ9qTUh)4I*$?wtAb72qKRBo`<0Rz?2D>; zHK))UL^rXUVQo-{nCWa@9GagjpE5u3eSqW9{4F!qPf&)RtE7HR-a=zVZw+%^A6%Mn z5GSjqh|O{$p`q*@ zWBZkMo?cS6F~rS~7CPu7U}|W?pSzytZg_JUy=sG&D43tTtr~eneY28gF_ULGYdU*$ zlx+G5!JK!mD+n-&68!dmjetN_mjloDGjB?LWe#EMHW}kVyYbD!1~WaXpg9*BpsR*a zplHO5gON7x*JJJ|O)ImX&(`z2)fv2hgBpi_A{GHjEEVc|BjG)DqShK5Wfms`1=5V@ z!H%uuaz4>AK=_ zlh`$MX8QQXD|BUb{duO~k7b=brXowveyDhF-frGcjU2Nu1E`za;NwXQa+sf zkOom0=w3s}CXv)oc_AQ@A*!GKeRdQI)OvbizI`Q3h!)VnziXXNxW4M6c@sl8rHI?! z9x-h_cAQk(?Ao?7qw+%an5ypv>N{ zaUU|8;~12gV~Je7M#^X{hG zqFBRXU-O9H>OOp{kjO6r^YfB!qzDoSc{K=`6 z@CZKiPD5yt%E9mHL8EUOKIY{El?6n{EbRjT!*A$xEoaT4q;`N~%kdIZN7W;tACczy zbtjqYJ6&%=d`l7L7&n1-*1@v8NJcfU2|og10ghgqZ)BMHnZM}-6J8IbtwtqarBY|6 z-?S2lrip$QInOn3uEX*V56&0EDJ)J*N#fnF7I_*P83j}njP8L{um z5mV6QKgPf`fIE24!7ymyp4P%#-tQX0-9LRfXR1_D9;bzuefTc5lz5zxg3anoM0SWb zpDEf9YoN4$f4ceT+*6?a7boEN-&CV~V3Ca=4qzs)tlXq}?axY_kehQF?we`YdB7FA zhY07VK}w!mTm>3ie@wdz2YXG_S8_-+EV7w3+0^Q(ukaJiQG7@-(BjQm=JqwDOLfqZ zG)Ip|nk;4`wTF4i`4A?Bda+{N`@QC*nKCIoHalLU=9Ekw6^h2seagA35cI*KU3D;s zsag+^%4Viaq40I-N86S5B+57mCbF|3~n3eR`B)ZKj z{@>JxLF_@Y*39bbGC9jveBp>s)z&_n<$rv53j>$1e)xGA|2^X$jweffI}vcuc#LtQ z*JeA@QJHdaGKy}$$cqvB)7j&$+7W`#87vbvMrFO74sX~YNAHl3rJ8G*Sz9>Fukiww z=C|8jwFTlfFuH_cX6mCB5DZFiSU-uBAY z)q76{hZqW;EIx8XrD0)rRs)=KLy}8(2J-z3vX^5{CELC- zQ+KAR;|u6Su+NCit<^p{cy4WR`W;8KOh06-ksb(Fc-_J2s+>AHG>+;$zFqFUt&jbt zM8Z0lghlJ^b(bFLd6xCfh7cdQc%YMlDpL?8#{Np}>VJ8RCz0C2O2noi zsn~l^iOh>yVdHd*#vFk~C>t4o&rAjqA`e~A0E(rrB4$i~ z!4`3Z@=VvZ6?@b)6=p6;7`*p%24yfqacEO9Fu`%r_E*ZP*j@g7AoPra)s820{HNPj z34$L8Qa{!(HaR2+wEDca9gW#m-)MlA>adb~VWE0w7q)D~v~m8>O|@s~Pk4h00j6U0 zkQR^-SDu-yoA#gba?EDc1-LD&$b{pUQ|H#gD`txx_}}aVHk~p$*nT;`xq0csgbZ5koXuvA=#QBK&9DjQL6KUZW)Ke zZVF#Wg&;MQJ@ijERoOCLWGdtS?6CaI@9c2Vn-xF7JwPhEzF>a|8!**w2N0s0Z*unU zZos-&Cs-*J`f8P-%>wEJi}Ohr#E$T-ko38!2RP*Zo;Uqa!OD_^A{aKqtcGxzQ;a#= z?sChXA_$ovaW(79QcxuLX2L1%$}o+2`^tI4(?W$c)150yozCeRtW_KP&U)xvsfZ7?eTrK)VUo&`~uY)a!F!iWb1zN z9eQC((=MEG$4fD$a_Z_5q0i5(&xY!O5O&9y z^hYfJ`ad@uN(pr4r6Vc71=?GV+oV+H*a&Tuf-6m?jEdT(p;4q+N1AhAL@^bCw-7dv zFhy$}AKMxBA3@>XdtpyQju?I4)*;z^9`J~sbD9qF5?pLNwa_xk8XGiNR0^L&>*?9c z{eTz`ee`?1LHzRzI&q&lcm}q}lqtQ=?sM-KsOIAy^7^Wjt_`fa;daZu0*Oh0oBVjd15tq4I4AOoJG`^;Kq9E*@~d@eGp zDdb#6z1~uPCn<)7m&(p;c~piuTft5=q+J^$oWJHnOxF14q~lrk#c54}d}8d}J@4i! zrh75kIUF(<`Coq@J4?&NU8Ghmpd;ojOM!&#)Q(dWDq>V=jRl!!rSyO>�!PX9@7B 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 [9] and - select option [8] to build the vnfs. + Follow the steps in the screen from option [1] –> [10] and + select option [9] to build the vnfs. It will automatically download selected DPDK version and any required patches and will setup everything and build VNFs. + Options [8], If RestAPI feature is needed install 'civetweb' + Following are the options for setup: ---------------------------------------------------------- Step 1: Environment setup. @@ -177,13 +180,14 @@ Auto Build - Using script to build VNFs [5] Download DPDK zip [6] Build and Install DPDK [7] Setup hugepages + [8] Download and Build civetweb ---------------------------------------------------------- Step 3: Build VNFs ---------------------------------------------------------- - [8] Build all VNFs (vACL, vCGNAPT, vFW, UDP_Replay, DPPD-PROX) + [9] Build all VNFs (vACL, vCGNAPT, vFW, UDP_Replay, DPPD-PROX) - [9] Exit Script + [10] Exit Script * non-Interactive options: :: @@ -193,6 +197,7 @@ Manual Build ^^^^^^^^^^^^ :: + 1. Download DPDK supported version from dpdk.org * http://dpdk.org/browse/dpdk/snapshot/dpdk-$DPDK_RTE_VER.zip * unzip dpdk-$DPDK_RTE_VER.zip and apply dpdk patches only in case of 16.04 (Not required for other DPDK versions) diff --git a/docs/testing/user/userguide/05-How_to_run_SampleVNFs.rst b/docs/testing/user/userguide/05-How_to_run_SampleVNFs.rst index b087312a..7ba25fe1 100644 --- a/docs/testing/user/userguide/05-How_to_run_SampleVNFs.rst +++ b/docs/testing/user/userguide/05-How_to_run_SampleVNFs.rst @@ -126,6 +126,7 @@ Step 0: Preparing hardware connection Connect Traffic generator and VNF system back to back as shown in previous section :: + TRex port 0 ↔ (VNF Port 0) ↔ (VNF Port 1) ↔ TRex port 1 Step 1: Setting up Traffic generator (TRex) @@ -155,9 +156,13 @@ Auto Build * Interactive options: :: + ./tools/vnf_build.sh -i - Follow the steps in the screen from option [1] –> [9] and select option [8] to build the vnfs. + Follow the steps in the screen from option [1] –> [10] and select option [9] to build the vnfs. It will automatically download selected DPDK version and any required patches and will setup everything and build VNFs. + + Options [8], If RestAPI feature is needed install 'civetweb' + Following are the options for setup: ---------------------------------------------------------- Step 1: Environment setup. @@ -173,7 +178,7 @@ Auto Build [5] Download DPDK zip [6] Build and Install DPDK [7] Setup hugepages - [8] Download civetweb + [8] Download and Build civetweb ---------------------------------------------------------- Step 3: Build VNFs @@ -186,6 +191,7 @@ Auto Build * Non-Interactive options: :: + ./tools/vnf_build.sh -s -d= if system is behind the proxy ./tools/vnf_build.sh -s -d= -p= @@ -194,45 +200,41 @@ Manual Build ^^^^^^^^^^^^ :: + 1) Download DPDK supported version from dpdk.org - http://dpdk.org/browse/dpdk/snapshot/dpdk-$DPDK_RTE_VER.zip - unzip dpdk-$DPDK_RTE_VER.zip and apply dpdk patches only in case of 16.04 (Not required for other DPDK versions) - cd dpdk - make config T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc - cd x86_64-native-linuxapp-gcc - make + * http://dpdk.org/browse/dpdk/snapshot/dpdk-$DPDK_RTE_VER.zip + * unzip dpdk-$DPDK_RTE_VER.zip and apply dpdk patches only in case of 16.04 (Not required for other DPDK versions) + * cd dpdk + * make config T=x86_64-native-linuxapp-gcc O=x86_64-native-linuxapp-gcc + * cd x86_64-native-linuxapp-gcc + * make 2) Download civetweb 1.9 version from the following link - https://sourceforge.net/projects/civetweb/files/1.9/CivetWeb_V1.9.zip - unzip CivetWeb_V1.9.zip - mv civetweb-master civetweb - cd civetweb - make lib - - 3) Setup huge pages - For 1G/2M hugepage sizes, for example 1G pages, the size must be - specified explicitly and can also be optionally set as the - default hugepage size for the system. For example, to reserve 8G - of hugepage memory in the form of eight 1G pages, the following - options should be passed to the kernel: * default_hugepagesz=1G - hugepagesz=1G hugepages=8 hugepagesz=2M hugepages=2048 - 4) Add this to Go to /etc/default/grub configuration file. - Append “default_hugepagesz=1G hugepagesz=1G hugepages=8 hugepagesz=2M hugepages=2048” - to the GRUB_CMDLINE_LINUX entry. - 5) Setup Environment Variable - export RTE_SDK=/dpdk - export RTE_TARGET=x86_64-native-linuxapp-gcc - export VNF_CORE= - or using ./tools/setenv.sh - 6) Build VNFs - cd - make - or to build individual VNFs - cd /VNFs/ - make clean - make - The vFW executable will be created at the following location - /VNFs/vFW/build/vFW + * https://sourceforge.net/projects/civetweb/files/1.9/CivetWeb_V1.9.zip + * unzip CivetWeb_V1.9.zip + * mv civetweb-master civetweb + * cd civetweb + * make lib + + 3) Add this to Go to /etc/default/grub configuration file to setup higepages. + * Append “default_hugepagesz=1G hugepagesz=1G hugepages=8 hugepagesz=2M hugepages=2048” to the GRUB_CMDLINE_LINUX entry. + * execute update-grub + * Reboot after grub setup + + 4) Setup Environment Variable + * export RTE_SDK=/dpdk + * export RTE_TARGET=x86_64-native-linuxapp-gcc + * export VNF_CORE= or using ./tools/setenv.sh + + 5) Build VNFs + * cd + * make + * or To build individual VNFs + * cd /VNFs/ + * make clean + * make + * The vFW executable will be created at the following location + * /VNFs/vFW/build/vFW Virtual Firewall - How to run @@ -456,14 +458,17 @@ Step 3: Bind the datapath ports to DPDK ./build/vCGNAPT -p 0x3 -f ./config/sample_swlb_2port_2WT.cfg -s ./config/sample_swlb_2port_2WT.tc d) Run UDP_replay to reflect the traffic on public side. + + :: + cmd: ./build/UDP_Replay -c 0x7 -n 4 -w -w -- --no-hw-csum -p --config='(port, queue, cpucore)' e.g ./build/UDP_Replay -c 0x7 -n 4 -w 0000:07:00.0 -w 0000:07:00.1 -- --no-hw-csum -p 0x3 --config='(0, 0, 1)(1, 0, 2)' step 4: Run Test using traffic geneator - On traffic generator system: - + On traffic generator system: :: + cd Update the bench.py to generate the traffic. diff --git a/docs/testing/user/userguide/06-How_to_use_REST_api.rst b/docs/testing/user/userguide/06-How_to_use_REST_api.rst index 64c68a4f..b8c0cbea 100644 --- a/docs/testing/user/userguide/06-How_to_use_REST_api.rst +++ b/docs/testing/user/userguide/06-How_to_use_REST_api.rst @@ -158,10 +158,12 @@ need to be set before launching the application(To be run from samplevnf directory). :: + ./build/vFW (Without the -f & -s option) 1. When VNF(vCGNAPT/vACL/vFW) is launched it waits for user to provide the /vnf/config REST method. :: + e.g curl -X POST -H "Content-Type:application/json" -d '{"pci_white_list": "0000:08:00.0 0000:08:00.1"}' http:///vnf/config Note: the config is mostly implemented based on existing VNF's. if new parameters diff --git a/docs/testing/user/userguide/07-Config_files.rst b/docs/testing/user/userguide/07-Config_files.rst index 4f3811ec..d5564e8d 100644 --- a/docs/testing/user/userguide/07-Config_files.rst +++ b/docs/testing/user/userguide/07-Config_files.rst @@ -29,6 +29,7 @@ of the VNFs. 1. SWLB, IPv4, Single Port Pair, 1WT: :: + [EAL] w = 05:00.0 w = 05:00.1 @@ -100,6 +101,7 @@ of the VNFs. This configuration doesn't require LOADB and TXRX pipelines :: + [EAL] w = 05:00.0 w = 05:00.1 diff --git a/tools/vnf_build.sh b/tools/vnf_build.sh index f60a3644..0a085a6a 100755 --- a/tools/vnf_build.sh +++ b/tools/vnf_build.sh @@ -135,7 +135,7 @@ step_2() FUNC[4]="install_dpdk" TEXT[5]="Setup hugepages" FUNC[5]="setup_hugepages" - TEXT[6]="Download civetweb" + TEXT[6]="Download and Build civetweb" FUNC[6]="download_civetweb_zip" } get_agreement_download() -- 2.16.6