From c54235776c08ec1e10d80d8c91e6e45e2d2f6831 Mon Sep 17 00:00:00 2001 From: jdenisco Date: Tue, 30 Jul 2019 08:54:01 -0400 Subject: [PATCH] docs: Add Ray's ACL use case Change-Id: Id99f16953a23a4be4cc1fb94419ea8282fa720e8 Signed-off-by: jdenisco --- docs/_images/ip4-2n-iacl.png | Bin 0 -> 48858 bytes docs/_images/ip4-3n-oacl.png | Bin 0 -> 50280 bytes docs/_images/ip4-acl-features-ndr.png | Bin 0 -> 43792 bytes docs/usecases/acls.rst | 488 ++++++++++++++++++++++++++++++++++ docs/usecases/index.rst | 1 + 5 files changed, 489 insertions(+) create mode 100644 docs/_images/ip4-2n-iacl.png create mode 100644 docs/_images/ip4-3n-oacl.png create mode 100644 docs/_images/ip4-acl-features-ndr.png create mode 100644 docs/usecases/acls.rst diff --git a/docs/_images/ip4-2n-iacl.png b/docs/_images/ip4-2n-iacl.png new file mode 100644 index 0000000000000000000000000000000000000000..35cc08688987c8b8313584168f9613f439f015d1 GIT binary patch literal 48858 zcmeFa2UL^Wwl-`*R1i=RQ4z3X15|`a*R9A#1Qey0sECmo0b@c*q9UNuwjxFhMMXtw zL`oo}AfTuSY@~#m5D}0P5=ufK349B5AHDb6NAEr7{^S4eKO93HGx6>3T64|$JkOlD zam>=JM~BRpB6D+as|pTW zIIzt5p!3zOhy&>8W7$W1B$Re+=J1paV&mSvH_!@T!fFiTY6D!Hr)kxr!WzSr+5~2M zZGx88c<}{RSy;I0qWyE`ExkNPV%?m%i?X&|5gtR)8+Ib4|MA`aQ~NKMRb2u9``3og znp^BVv-g^}f>F>^l@$8rz%$=H;QBB5>ku>N(w-~DaUAHb zIq>cL$56VGGuQETv!?rV!jRcK|K9Ju+e%(L|F6phn|WDWE>n6m&Ld#a0iC5+dfJNv zs`>0Te5z@zjuX*W#;iBiZ?HMH=hNG`(3ipELq7b$mM+?|Ejc@{)TdcN7Rsr3%c>f+ z4}$&NIh7_^+%fx+k?fzBj)wed9-dEPYw38E#f12J)(Sp@viAROj z4{Q9~Rxor=RZnJ?yZh#8`xK+=@r*;PjwMaYrzq-|}<)%92 zbP57BM;4YVF}UG9c9?Fv`!lD9Pfesu7Z-EToHnwsgcdy7k|J)YR>OQ$(-|*eitp|Z z9hQ8^yO39Qd*!f#a>WsAttwt5RP?cjGd;z@gTK=%1}#`R5^Wd2YqX0^ z3Iv0x2Zx=&;T6f93#!vF{b{ZjvF%~R5pkWWxUQ4$Tf#0pK;0hw>T?xMRHaE`A{l|O zJnZyT4{0DrsR|{id0!U1{=vpb44aP0o=E0QB=`8hgWF!yic|(tCvK}MNmVs@Rev72 zCKqOxo8RiSjjSw4<@(BM^OkV7uVAn?SX(_GUCAiSO4LJmW<9H&%&PUI_GeNvia*}m zp`+MR2j66zu4#>`YQc&sv3rfDx{QtX$?r>F(hm^|xaPsi$VvWV= zYM=3NYH?u2MwQ+B0tA0V7(7mY#0#d42Um}ynd34wTQTEE?0EaDcL-Ilnhc|KdIGiA zkP}#4pUltiaWm$-X>LCct4;3Mzc-yb#e+`sI^&a(m|mnWwcCm6ek?iT!c>Em_~huQ z@${&Lu<{LhC?F-_0zIKVsEhF|yhevrr-wtk zJ{~k4JE(71E>y#gs9EF+-`9%X_n;ZQ==(zE^i;JnvVHf~X#(oij{CJja;+D2WCzXv zX<6IKGzV0zgkKyqsLF}42etXLA#>CaV%RlUM6p48?;9#{lZ2s^SJ(weh9MU-R&FCB z(Ct;O{1-hXP?ojP=SkzMmPFQ&cJ^+CMroWkS_Tf*xh(MR5c%9F&!5b&Q{A|GI2%8A2(6~ateBmRt|P-EI9kXB+c7bNBi{1btM*=I zzz~?SJ$+W#$6D~~8IHd>s=+xtz z$@XymC=n|pR%;~>N6qc>AE{=Fs&URnyF$W=F;`TDxvENQ%Xue?X_J{WQgP3HFP)Nf zi)ji!6+ZbCzD6{BESAXOv*1 zxY+K~$dTnp#~1Uv>Es@5`SFZt;4M8cJuu9X#Ml@pq-6_K{e?+5mAk*y1eFR#)mN@YFPgZ>1JXk&pt!k z7i#o5RA<9UMl0TR?2)33MnZZ@Yi0lLiK0qF-=|(=HHzo4+AHzd8k}_F_XF{1lU;0c z+L$?B4vZu6`B?9OhJpsfT6(RJ$`R^7xeK7X1YJ~(M#slo%ht?FLruDmZ4Bw!v#C=` z)Sc-uxS*XxocH^Wr|K6jrtQ)KE9m=YE2m!tO2Z8w3}9_GL|{EP=J?ynjnq{Wq`ZAj z+N=wQw3}(d3In{(8Qy9-cg#2vc*+5@wBz?rq6TC%5zq(%Hd8lc%q*qBpnIFuYH#bf zWczS9;aw>N(*=>0YTlZ{QhV^Y%&GgSzhXHnCFn(_mUnDWL#obHfYTwP@c?7uL{zOH z>ZQE7Vi=Ke@_6?{^_@NwA)WJ8o7>Uj9g5vq#+KV*!6I+|*7UC2cPE8s_YRqr#6;AU zwI#RYynvcy)tqd~ZA*UXJ-zfibJIyH9bO5-_CnDjt9QNkPQ;D|UB$n4%gYO}Inpl| zqgQS;`9YA6RYKBkwv1z^$00PH6HS}zfIaEUA0RCxL%Xu@W?J_%tSa@+ zGfHjTT5foU1M+4ICbmppNv)6AqfX{^W~n8#UKp5roL(oM@u=&{x#q#;0mhT5#-xdG zxFGyxLK}a{1w$@o%oKa^f=)K3Kk9T+ce>ic);IkYRt2{j&9C!5jahQWETt6~L05CM zKCm5b=(X9x?hT~XtZH(IoJ;^iz}r_LPS4F=Go@*ZZ8ycW$p`AFiaC>h+Xfcw>7o#? zr)5VsX|gg*C&Eg%B;86riSiQf#O>Wz%Wc{+c}sQTR%o6A@AmoKq8b17vLrC`&|LzF zhUfu4mfa=^bLk&+5HI_4%I~9IxzhsDlpr0F-MIP_f1hVULt1!4+(l(C-a?1?cV}Ew z`kV3H?tH!Sla)s(ewj^;;%92Dq-eeQwv{zSU|EP@y=XJq+IHJ^8d;4Q#WM|xRCy)p znGPzY?-KR2?6DyYN-z5h2X6Sa*XGY_Qo#|K7-2JnEduMnh0zZ<>ct);POf%GlTFBg zLh@v~Ryd;PxpN_`ci{aA%8l&Ad|0TOi)LHRR3uFh`LcU2&(wr%*!{x4sVleUeUoZ- zWAR_v*0$ z!tAiJJg?}PI74H7MrHL(z@ftwQkeSt+ML{<7ex!xDGzGy(=qnKav4bbEP#WDvb=;`RpM6`l~2`2_^!PlRdL%Any4t>l$)z}kOV+HF$ zlseVjIi0O`+uzP=Q@N(ORgk~Zxa5Q5=TgTXst2bMce584QZD7zhzd1X@Jnro#Yd7@ z*=pRN;*h&%>*|gPu6AQo@Op;sG8(enkz5lnH~iH#^YJm&6qvE#V1Z4 ze0I~NdM!HcQ-0Nz*1WU4g~5T@#!_vnb}XM*W-H{WLaiTcRYdKS<+~Huc7=MqE&XT9 zxmJd<{mUOtj`Nqe$5)Ufo=ojZH_V>8kZJr|KTL2aqJ-PjmFXJ)ta6xZ{{h1LtOt$4nUzN?x7qjkF9nyBYzjjL=_wc!~YH|B*jC9il! z=F$Af5qYsjG3Q#8w#0wp+Y_{M*_#9E{i85D9fI59*6ti}F2Da4)^H28Yh%#Z%8#gr1~|K6n2SGrZ3uL=*3djc#FWZ<)<=MGDvc~v)1&7 zjd2$7&-oUy^|Ew625zfo3d@JZ4lKcnS-XN>dwh@|EK++`?HerE{3*!nMUEQZA+3yQGsN zbynel9^L`FsIk^yCJ8Ci6qR)fG?Nj0KSASs@S=Jfx|Ql(AKK@0ElHwN_xyzSItD-F zv5aMBa+WCJ&hBa>pYtfJ3iV>DYkHq4~ewh@}RY(GvH#tK)X;U-DT z2yqher$5BzabxsXrlFgL9+&CAeR(d{bP8<*^56-S`dAz81WQ?bJr2?vghcyPHt476lW*VCG4rI z6v2E$KechkQk%U4n_o_5wQN7a_PJXdlu(>(-#<8%7V<7FigNMHtw(wq1LT1I_eUv{ z)>d!I>2#3xv>7iQ7-W7jZa2Ms-Y|SzymLGW&@FF9Pa9aK^1{aLcVZ7vp*` z$sQGXoYImLQ%hR$IL9nIub$VOUDbVV;#r|z7?I+f!ytZe<=Z&-`#~mOsqviierI*O zhl_=ewa6bA;xv$}rgo5x#z%{5(L<+3eN@MMhCOTd z0Ax}H}3q4f^ztyd%XK4)u={uBEs8t*eB9e_}Epmn2ui>dC)MSv3qH` zCY+czuoES2lTYSei?)(ph4H}TEs3m2$0cWOZBk2a@T0ZB6ycXFJaqlgM-B>`y=g7! zDz$7Yh0j5uE|eWKip2S~sU{j8TVri(jal+Wr@K-s&at4_q9(s%l{UqRW9s&K$qCtQ ziLXoEolQz0;NGXXe0c7__W(~|%7Jb|gzrt>>t*er1Sz3dl?wy)$5p3Ts*+d{-R-G( z6_L+;iat_aq($Z}Jg%%-UON|`yUK{#I_}nBS{;3EH3Zgxi)l6Wkx;3@i`4Q2NeiY>9b&K2v7y=ODw z%?ug$QyupUb@Oe4N8^!}!nd+E6)^Gr57knfqFPq=fY-p1&J8K$`XS+28gkFPb`QiR zZQsaSEXymp$M=xJgMexqHHH~<@PzU~w$h9K6Z>>Zk^==O4Go?k%Wh4-T)i3mQ-(HT z=gIWUl%S2h`I;Z^y$(iU2S+Tt5N2k|5xm{5yj28B_e`cJiR*8`*uabj+=Z>CUYvBV z#(^|+o=toWD>fmkD;q6Gv=}mD}U?uEpureHOsJ+1QF*YwSLSY4InYFB>i|M}^zV*Ho?q63{(t=Ou z$H+0EFjf+O4~GjON0(F={?Qa?8XWB#Y;i$+#r9Qp%oUH6O#QxQhqIPK2`5!`8xA*R z%(Q$jBNcuuiErUmu4<({P-ydn9Fx0!QL1rjtk_QrvV$B)%_bNXpH8-VbFa61`pn6c zDQlDG;+DYxR2x&NyF=v!&wh?T(6Bme2g$oNE46qQ#CT9Y8+88F)EuBJ-N|c5NXufrYyco_NZhR&11N# zLdOFIX^c~L*f&iHqlH^7g{Y&ImA9)MQEKQ0mw^XUyVAHdq|iWYY}r7!?j=Vk4Ar)4 zG-UWtb~^6ffcxX1+gaB3@cqxU7V{LRrCqsKUpChv?d=w)<4RjK<)2087(w!y@^Sh_ zQgEM3yxr!A@E77^9KIXkFf;2IOxVBVK>YA_5-*sy{*%qTR<(h;+8bF31y98f1g+2d zy-!ny(~@_!!%z_%^Y}l4{4=%G>TCStLv41F5t1b_nR;8ojW=Yz^G#asXfYAgej750P%utMXV4b<>hWoTro+%PH?hRjQSh{vXJFO|oqyBSG&3f$^?7VPb_jtK1CB%a!!1h>Y# z_==3%hJldW=IDanEZX~l)+*A|!W^?qtvDXDf2U0nIx}w`FFZj{UWXl2;(@$XrW7(~ zsmvEZf2k$F%Qem`e6*O1s@Dm2S$<5D*l2z#FGPu6Bs|J;3EOxj>I=MnUoatGD+&o_NwilOeeket$X3LYb$vN;`gO1zaHNN9REq^uJ0gv z-+3!sA;){ZgZU3Fd%!*1w{FQS=P-Lmm+^DL=oWVZzuWCN2vCpfEt>xiHeg-nmi;V* zyt~S`-S)4TD+RwJTlV#-%+Lfyi;tl?4kdg?O)UL?|B@;c7;cp@+GYOT=7Qa@4w{I=Cxm%m4t97E!hCc2YtrYQ%gSnTm|0FBv&Sb?6 z`RZ&UBk1_8Z2#a&W#rxnS!K^c@0LCGj$wh*Q{w8Ggp?n}<%S@{@2^dm{Kd$un{&l= zan?~5rTeba{f(wEd-X33p07zUX0~6fx2V>pI|tM`FwLgXcb=1|c5dzazFmE(v&2Vf zxRWKECgw+Lk?U(d#pnmv-#bO_G zzq|@(@4NfL>0bE^@T42+rsXNr=f9s;=9Aw{LMVL}xV78k2^zUY z&KQQM2Le&la6Ydh>RbrbKu)|Mr3hT$9fDV!AbEREaAlX>xRMj9?L{!%1?l5l(#CM% z-IhS0@u@ep!t9I}CH!&VvW#~5LA!0-Hied`VnH?cPa7#w|JjYwoctF~NC$L%0x7wy zYPGBQAr5jyM!WWg)-p`e-qCX`$gGLD?-z#r;JzdkX(P7ZjX-y^mJl#=_N$-m1=|rgahF^E((un3C?c@r$B<$*tsh z2c-yeVxRa)G#~4_V?Uoozp3TB3NvfkRhqFBR#~GKpms)YEDc|iRRCz=O8+R^QR?QgcCJptzRgYh1qC0Yl){;_W}_e2HGGBZTov=KMb96;-j*v_Mo@sY z?-G46W8%to?0U?V;@Yn<1#iIehW1iS_P(xg7G%~$B(8A1vOdi2a^;78;2!;sWL@EU zy;==fLYp-+yTGnXwvp!<+L9*e3X5CT#>h3RSGY7!PVSm&~7H>8Gqa=H{^-IMb6_ z$<6}ag`-JVnX_i2?!WI$Py4gb4ER*^h1%DeGX}3ymCBN5FpY#tMlA85*6Mw#;LH=K z>{fUevN5U}r$`$eb}V4NCiq4HSAA52%;puAbvX4~=SaJ5AIgQi4sWG}YRGpI%}L_g z*YIgs($UM%B#p0*H+tt2?xekj-VGVVasSL*Sz0E`qwbEtLo}u|7RYQ(dA{E5qpF7g-0qpGl`W-3Sx7EVhu2sNj@+wmq{R zgRlUr0}H4F(5jpg9e#4~(CQFbPQ0D#wqqrzzFZtl?C2&%km)N6Z9b-Wn7CYexMcbL zm9jUOVRhLRzlr+qe_i=FSe!Kq5uUTy`}8eEZS zT(Z}DEvEe1y{=CBtch6v^&)B~pR>yh$*4Xj=A?0``I;f@^up$IRDo5E>^VQP&>vq$ zxy@Gc>{FHESo_6NcIz}uDPK&OLv#7S#_C{%$UoiZiTW>s<*NKsnJ`dOG@q3m4V^T_ zPCtEV98wW%++ZZ^O%@#ICoD;foukwrLbhcShf6$P_f$nPzr0L4$YHRMZ&7q*`C2%) zViFd>+)5s_O&|TIXZl~gFlrLZgf5za>`r`Ba-s0n&nBO%%7wC*FXovKm(06;?Ycmr zGrQDUlyiC0`VE)`sOgeBzk-xs@!7A?^jB1l`IV6T%Ef-Ap}#V4fJ6KOAAaF3{{rNc zD$U7ttCSqSz@(ya?e*L73uV`yuSwEJzNN8S3o>;tem<7xUUfJ9+F_VClS zzdDoUqDu#~VOuZ(&KGY<(DWLCvWxL#w6_)l>9}|z0N}^X(wxUF_>P{fzEVE|M{`10 z%GB`jjLaO*n6Sz3NiQFLvmW52vsfzos%OnnQBTq54T~{| zj2%v>$`0Q4On}ADDE|$3B!(ZIQ#jgF9E1Dej$SsXHZ39mhdY|9);T%@9VLW19F6;v zDjX`oM;LrsPYP2=xWJ)|%iebNd!?}B_Pu+fOG`Nh`L-P7a7j>2k69Em@O(Cd;~Ile zQPiGxLZ0Ps#P=H7<963~5L|Bo`kM;>E;D#(*Dp&M3_yH$l zHC|H_)7zyzM0Bg=_9L@}i$iugj7JrRbp!0yMPT-yj8NN*1Bj z=IWeOt0p@LsslbAy#}2%89z3S+Ve=xReBC}>SBjLKc zXt`X`5;>PArEt5mT0I{j-w~aShBJpx{MR|MZ3?d99=qUqVaNjUt*JABr5ivW>Qtl+ zSe&A8lw+YCnm^&-*kR){gf%FUnjwTCLO$EeGR3H4tpV!79~U_cN_Dbf@L0oo`K{#j z8?K)Q3%}>fRr(UNT+f{^xn8p-X^j_<8lhPY=_jgL#Lm*+g9OW`q*L+$Bma`*PL zWd7JMp#&bT(z`bY1knv=q{E=IW@CZ9G+b!1LLrlS?2**zq>gOOd#Kl1$#paJU%ox! zMOtEwOOPvNZOTqtG*bYuI+CC{x^lSWXloTsU8IpRu?N14rpLCFf;)LaCqLkPof+H; zH6uTDqhRDJUBE2QN%-R+;592v6wSD83mOv>1YaVh{*(IZWX%wkG(JwvN;anhE$ULW zVl|?9dRG=Y69oD+KhdR_BDzv3{QD1t7^Wj?M-7M{?}LKFy|sZg0rzJr#a2_2iI_AE zWHSkonN00noXBE3%z?lG;p_P=Rr|u5l9mUvl&4OH-?XE1WTCYsUi6$|YPdZuvcuv5 z_fqBEw^eGT;iQnBDzb@4BaS};m!?(0sPCOB2$pTGs2$eAy0g4#f|WaJrZ}xA@nH== zr`|N~IEpv_kHxxxN&FK0xg4ubxWQbj=(6c0!LlH(EVI%v8qm;<+(YkL01aI8+QSAb zP0RH3Eo>JgMb~Fct;8S#{ynM}rWQsN&$|hv7rvXkX`c46iCS06@Lg9o>4Ep2bb3TW zw56>sk7WnDXE2vWQU*^!d?%cBovo&mRc?B_QT&M8zi^$rKe)Ot!DPvU`&#m}SymmI zlu^JQ{vuW4r}X9KEEzCqLOiRii~D<4V@hEm8Vs? zbyTXeh;sc^B^Dx$ScEF^8Z?Piz%9h>ZNJp!BQMP<^l1}3)$VZ8lt-2FuA)64H#j!6 zQOb~U|FlkY*fTe*j4*5VJ7$F;+beHbL>Bd@wC?{=24M3OX@H|NK?PQ@-5n|mxZW3+zX7<|-hT#Y+ zo1Q$j?3|19d>toEQ;A7G!Nq?wGx51AU8#=tink5G)O(?9sDwd;zm@0Wy-jPwp|b<0 z|5DcMQNlJ^funr;{`&!yWGSTyRnLkvODvtQQFl{Q9)sQ~uf~FWGwq0H)X5R%G4)(L5eNtU7Mm48|+Xk-I-^oj-UXMLCcwJSx%vgP{FnGTxEq zbYJQi+U5VlOztOiWxXqkKFtu zMGIg#7DHbXasd6P@K9WK<3yUJ&!*M_FS~%xe?B}{byq#;-Jig}9NS&tcpZ4@-Yx$v`CnRqu%SJjME%0Wal@HTpR>5hMre{Qircvk2woK9cY)D(_1hNsQx8j)2-q<` zWoJeGD+j?8RBGNzCOx~h*r0Ry&WpIYw2oYhdr?dY=??c&Ao-Tx(q%_HrA|(z57`

Ok-7i3Vl0BEri$8`e6{) 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 B5{Cc) literal 0 HcmV?d00001 diff --git a/docs/usecases/acls.rst b/docs/usecases/acls.rst new file mode 100644 index 00000000000..36023571779 --- /dev/null +++ b/docs/usecases/acls.rst @@ -0,0 +1,488 @@ +.. _aclwithvpp: + +Access Control Lists (ACLs) with FD.io VPP +========================================== + +This section is overview of the options available to implement ACLs in +FD.io VPP. As there are a number of way's to address ACL-like functionality, +it is worth a separate survey of these options with some commentary on +features and performance + +All performance numbers and examples from this document are reused from +the `FD.io CSIT v19.04 performance report `__ +All information and performance is accurate for +`FD.io VPP 19.04 `__ release. The +sections *performance* & *operational data* below correlate directly with +those sections from the FD.io CSIT performance report. + +Summary +------- + ++---------------------+-----------+-----------------------------------+ +| Option | Relative | Features & Notes | +| | Performan | | +| | ce | | ++=====================+===========+===================================+ +| :ref:`aclplugin` | Lowest | Match on restricted L2-L4 fields, | +| | | stateful & stateless | ++---------------------+-----------+-----------------------------------+ +| :ref:`vppcop` | Highest | Match on Layer 3 IPs, stateless | +| | (software | | +| | only) | | ++---------------------+-----------+-----------------------------------+ +| :ref:`vppflow` | Highest | Match on restricted L2-L4 fields, | +| | (accelera | stateless, limited number of | +| | ted) | flows | ++---------------------+-----------+-----------------------------------+ +| :ref:`classifiers` | TBD | Match on any field in the first | +| | | 80 bytes, Not measured | ++---------------------+-----------+-----------------------------------+ + +FD.io VPP ACL Options +--------------------- + +.. _aclplugin: + +The FD.io VPP ACL Plugin +~~~~~~~~~~~~~~~~~~~~~~~~ + +The plugin was originally developed as part of FD.io VPP and OpenStack +integration. The plugin needs to be enabled on specific interfaces. + +Supports stateful and stateless ACLs on … +"""""""""""""""""""""""""""""""""""""""""" + +- MACs +- IPS +- UDP Ports +- TCP Ports & Flags +- ICMP Messages + +Directional +""""""""""" + +* Input ACLs + + * Run before the IP flow classification. + +* ACLs + + * Run before interface output. + +Actions +""""""" +- Permit (sl) +- Drop (sf) +- Permit+Reflect (sf) + +Stateful (sf) +""""""""""""" + +- Actions: permit+reflect +- Most heavily optimized, as are the most common use case. +- Faster because stateful uses a flow cache, it means the ACL hit is only taken once, up front for the flow and then becomes just look-up. +- Uses more memory, less deterministic as the flow cache makes it + more susceptible to the effects of the memory hierarchy and + locality. + +Stateless (sl) +"""""""""""""" + +- Actions : permit, drop +- Less optimized, less common use case. +- Slower as there is no flow-cache, every new packet incurs the same + amount ACL processing. +- Uses less memory, and are more deterministic (compared to + stateful). + +Operational Data +---------------- + +Input/Stateless +~~~~~~~~~~~~~~~ + +Test Case: 10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdr +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +.. code-block:: console + + DUT1: + Thread 0 vpp_main (lcore 1) + Time 3.8, average vectors/node 0.00, last 128 main loops 0.00 per node 0.00 + vector rates in 0.0000e0, out 0.0000e0, drop 0.0000e0, punt 0.0000e0 + Name State Calls Vectors Suspends Clocks Vectors/Call + acl-plugin-fa-cleaner-process any wait 0 0 14 1.29e3 0.00 + acl-plugin-fa-worker-cleaner-pinterrupt wa 7 0 0 9.18e2 0.00 + api-rx-from-ring active 0 0 52 8.96e4 0.00 + dpdk-process any wait 0 0 1 1.35e4 0.00 + fib-walk any wait 0 0 2 2.69e3 0.00 + ip6-icmp-neighbor-discovery-ev any wait 0 0 4 1.32e3 0.00 + lisp-retry-service any wait 0 0 2 2.90e3 0.00 + unix-epoll-input polling 7037 0 0 1.25e6 0.00 + vpe-oam-process any wait 0 0 2 2.28e3 0.00 + + Thread 1 vpp_wk_0 (lcore 2) + Time 3.8, average vectors/node 249.02, last 128 main loops 32.00 per node 273.07 + vector rates in 6.1118e6, out 6.1118e6, drop 0.0000e0, punt 0.0000e0 + Name State Calls Vectors Suspends Clocks Vectors/Call + TenGigabitEtherneta/0/0-output active 47106 11721472 0 9.47e0 248.83 + TenGigabitEtherneta/0/0-tx active 47106 11721472 0 4.22e1 248.83 + TenGigabitEtherneta/0/1-output active 47106 11721472 0 1.02e1 248.83 + TenGigabitEtherneta/0/1-tx active 47106 11721472 0 4.18e1 248.83 + acl-plugin-fa-worker-cleaner-pinterrupt wa 7 0 0 1.39e3 0.00 + acl-plugin-in-ip4-fa active 94107 23442944 0 1.75e2 249.11 + dpdk-input polling 47106 23442944 0 4.64e1 497.66 + ethernet-input active 94212 23442944 0 1.55e1 248.83 + ip4-input-no-checksum active 94107 23442944 0 3.23e1 249.11 + ip4-lookup active 94107 23442944 0 2.91e1 249.11 + ip4-rewrite active 94107 23442944 0 2.48e1 249.11 + unix-epoll-input polling 46 0 0 1.54e3 0.00 + +Input/Stateful +~~~~~~~~~~~~~~ + +Test Case: 64b-1t1c-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdr +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +.. code-block:: console + + DUT1: + Thread 0 vpp_main (lcore 1) + Time 3.9, average vectors/node 0.00, last 128 main loops 0.00 per node 0.00 + vector rates in 0.0000e0, out 0.0000e0, drop 0.0000e0, punt 0.0000e0 + Name State Calls Vectors Suspends Clocks Vectors/Call + acl-plugin-fa-cleaner-process any wait 0 0 16 1.40e3 0.00 + acl-plugin-fa-worker-cleaner-pinterrupt wa 8 0 0 8.97e2 0.00 + api-rx-from-ring active 0 0 52 7.12e4 0.00 + dpdk-process any wait 0 0 1 1.69e4 0.00 + fib-walk any wait 0 0 2 2.55e3 0.00 + ip4-reassembly-expire-walk any wait 0 0 1 1.27e4 0.00 + ip6-icmp-neighbor-discovery-ev any wait 0 0 4 1.09e3 0.00 + ip6-reassembly-expire-walk any wait 0 0 1 2.57e3 0.00 + lisp-retry-service any wait 0 0 2 1.18e4 0.00 + statseg-collector-process time wait 0 0 1 6.38e3 0.00 + unix-epoll-input polling 6320 0 0 1.41e6 0.00 + vpe-oam-process any wait 0 0 2 7.53e3 0.00 + + Thread 1 vpp_wk_0 (lcore 2) + Time 3.9, average vectors/node 252.74, last 128 main loops 32.00 per node 273.07 + vector rates in 7.5833e6, out 7.5833e6, drop 0.0000e0, punt 0.0000e0 + Name State Calls Vectors Suspends Clocks Vectors/Call + TenGigabitEtherneta/0/0-output active 58325 14738944 0 9.41e0 252.70 + TenGigabitEtherneta/0/0-tx active 58325 14738944 0 4.32e1 252.70 + TenGigabitEtherneta/0/1-output active 58323 14738944 0 1.02e1 252.71 + TenGigabitEtherneta/0/1-tx active 58323 14738944 0 4.31e1 252.71 + acl-plugin-fa-worker-cleaner-pinterrupt wa 8 0 0 1.62e3 0.00 + acl-plugin-in-ip4-fa active 116628 29477888 0 1.01e2 252.75 + dpdk-input polling 58325 29477888 0 4.63e1 505.41 + ethernet-input active 116648 29477888 0 1.53e1 252.71 + ip4-input-no-checksum active 116628 29477888 0 3.21e1 252.75 + ip4-lookup active 116628 29477888 0 2.90e1 252.75 + ip4-rewrite active 116628 29477888 0 2.48e1 252.75 + unix-epoll-input polling 57 0 0 2.39e3 0.00 + +Output/Stateless +~~~~~~~~~~~~~~~~ + +Test Case: 64b-1t1c-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdr +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + + .. code-block:: console + + DUT1: + Thread 0 vpp_main (lcore 1) + Time 3.8, average vectors/node 0.00, last 128 main loops 0.00 per node 0.00 + vector rates in 0.0000e0, out 0.0000e0, drop 0.0000e0, punt 0.0000e0 + Name State Calls Vectors Suspends Clocks Vectors/Call + acl-plugin-fa-cleaner-process any wait 0 0 14 1.43e3 0.00 + acl-plugin-fa-worker-cleaner-pinterrupt wa 7 0 0 9.23e2 0.00 + api-rx-from-ring active 0 0 52 8.01e4 0.00 + dpdk-process any wait 0 0 1 1.59e6 0.00 + fib-walk any wait 0 0 2 6.81e3 0.00 + ip6-icmp-neighbor-discovery-ev any wait 0 0 4 2.81e3 0.00 + lisp-retry-service any wait 0 0 2 3.64e3 0.00 + unix-epoll-input polling 4842 0 0 1.81e6 0.00 + vpe-oam-process any wait 0 0 1 2.24e4 0.00 + + Thread 1 vpp_wk_0 (lcore 2) + Time 3.8, average vectors/node 249.29, last 128 main loops 36.00 per node 271.06 + vector rates in 5.9196e6, out 5.9196e6, drop 0.0000e0, punt 0.0000e0 + Name State Calls Vectors Suspends Clocks Vectors/Call + TenGigabitEtherneta/0/0-output active 45595 11363584 0 9.22e0 249.23 + TenGigabitEtherneta/0/0-tx active 45595 11363584 0 4.25e1 249.23 + TenGigabitEtherneta/0/1-output active 45594 11363584 0 9.75e0 249.23 + TenGigabitEtherneta/0/1-tx active 45594 11363584 0 4.21e1 249.23 + acl-plugin-fa-worker-cleaner-pinterrupt wa 7 0 0 1.28e3 0.00 + acl-plugin-out-ip4-fa active 91155 22727168 0 1.78e2 249.32 + dpdk-input polling 45595 22727168 0 4.64e1 498.46 + ethernet-input active 91189 22727168 0 1.56e1 249.23 + interface-output active 91155 22727168 0 1.13e1 249.32 + ip4-input-no-checksum active 91155 22727168 0 1.95e1 249.32 + ip4-lookup active 91155 22727168 0 2.88e1 249.32 + ip4-rewrite active 91155 22727168 0 3.53e1 249.32 + unix-epoll-input polling 44 0 0 1.53e3 0.00 + +Output/Stateful +~~~~~~~~~~~~~~~ + +Test Case: 64b-1t1c-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdr +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +.. code-block:: console + + DUT1: + Thread 0 vpp_main (lcore 1) + Time 3.8, average vectors/node 0.00, last 128 main loops 0.00 per node 0.00 + vector rates in 0.0000e0, out 0.0000e0, drop 0.0000e0, punt 0.0000e0 + Name State Calls Vectors Suspends Clocks Vectors/Call + acl-plugin-fa-cleaner-process any wait 0 0 16 1.47e3 0.00 + acl-plugin-fa-worker-cleaner-pinterrupt wa 8 0 0 8.51e2 0.00 + api-rx-from-ring active 0 0 50 7.24e4 0.00 + dpdk-process any wait 0 0 2 1.93e4 0.00 + fib-walk any wait 0 0 2 2.02e3 0.00 + ip4-reassembly-expire-walk any wait 0 0 1 3.96e3 0.00 + ip6-icmp-neighbor-discovery-ev any wait 0 0 4 9.84e2 0.00 + ip6-reassembly-expire-walk any wait 0 0 1 3.76e3 0.00 + lisp-retry-service any wait 0 0 2 1.49e4 0.00 + statseg-collector-process time wait 0 0 1 4.98e3 0.00 + unix-epoll-input polling 5653 0 0 1.55e6 0.00 + vpe-oam-process any wait 0 0 2 1.90e3 0.00 + + Thread 1 vpp_wk_0 (lcore 2) + Time 3.8, average vectors/node 250.85, last 128 main loops 36.00 per node 271.06 + vector rates in 7.2686e6, out 7.2686e6, drop 0.0000e0, punt 0.0000e0 + Name State Calls Vectors Suspends Clocks Vectors/Call + TenGigabitEtherneta/0/0-output active 55639 13930752 0 9.33e0 250.38 + TenGigabitEtherneta/0/0-tx active 55639 13930752 0 4.27e1 250.38 + TenGigabitEtherneta/0/1-output active 55636 13930758 0 9.81e0 250.39 + TenGigabitEtherneta/0/1-tx active 55636 13930758 0 4.33e1 250.39 + acl-plugin-fa-worker-cleaner-pinterrupt wa 8 0 0 1.62e3 0.00 + acl-plugin-out-ip4-fa active 110988 27861510 0 1.04e2 251.03 + dpdk-input polling 55639 27861510 0 4.62e1 500.76 + ethernet-input active 111275 27861510 0 1.55e1 250.38 + interface-output active 110988 27861510 0 1.21e1 251.03 + ip4-input-no-checksum active 110988 27861510 0 1.95e1 251.03 + ip4-lookup active 110988 27861510 0 2.89e1 251.03 + ip4-rewrite active 110988 27861510 0 3.55e1 251.03 + unix-epoll-input polling 54 0 0 2.43e3 0.00 + +Performance +----------- + ++---------------------------------------+-------+-------------------+ +| Test Case | MPPS | Cycles per packet | ++---------------------------------------+-------+-------------------+ +| ethip4-ip4base | 18.26 | 136 | ++---------------------------------------+-------+-------------------+ +| ethip4ip4udp-ip4base-iacl1sl-10kflows | 9.134 | 273 | ++---------------------------------------+-------+-------------------+ +| ethip4ip4udp-ip4base-iacl1sf-10kflows | 11.06 | 226 | ++---------------------------------------+-------+-------------------+ + +Input ACLS (SKX) +~~~~~~~~~~~~~~~~ + +.. figure:: /_images/ip4-2n-iacl.png + +Output ACLs (HSW) +~~~~~~~~~~~~~~~~~ + +.. figure:: /_images/ip4-3n-oacl.png + +Configuration +------------- + +Stateful +~~~~~~~~ + +.. code-block:: console + + $ sudo vppctl ip_add_del_route 20.20.20.0/24 via 1.1.1.2 sw_if_index 1 resolve-attempts 10 count 1 + $ sudo vppctl acl_add_replace ipv4 permit src 30.30.30.1/32 dst 40.40.40.1/32 sport 1000 dport 1000, ipv4 permit+reflect src 10.10.10.0/24, ipv4 permit+reflect src 20.20.20.0/24 + $ sudo vppctl acl_interface_set_acl_list sw_if_index 2 input 0 + $ sudo vppctl acl_interface_set_acl_list sw_if_index 1 input 0 + +Stateless +~~~~~~~~~ + +.. code-block:: console + + $ sudo vppctl ip_add_del_route 20.20.20.0/24 via 1.1.1.2 sw_if_index 1 resolve-attempts 10 count 1 + $ sudo vppctl acl_add_replace ipv4 permit src 30.30.30.1/32 dst 40.40.40.1/32 sport 1000 dport 1000, ipv4 permit src 10.10.10.0/24, ipv4 permit src 20.20.20.0/24 + $ sudo vppctl acl_interface_set_acl_list sw_if_index 2 input 0 + $ sudo vppctl acl_interface_set_acl_list sw_if_index 1 input 0 + +Links +~~~~~ + +- `FD.io Security Groups overview `__ +- `Reflexive Access Control Lists `__ +- `Andrew Yuort's Blog on ACLs `__ + +.. _vppcop: + +FD.io VPP COP +------------- + +IPv4/IPv6 white-lists using the FD.io VPP FIB, with support for multiple +nested white-lists. + +Design notes: +~~~~~~~~~~~~~ + +- The cop graph nodes (input & white-list) make reuse of the FD.io VPP in FIB 2.0 implementation. Essentially + a successful lookup in the FIB, indicates that a packet has been white-listed and may be forwarded. + +- cop-input: Determines if the frame is IPv4 or IPv6, and forwards to ipN-copwhitelist graph node. + +- ipN-copwhitelist: uses the ip4_fib_[mtrie,lookup] functions to confirm the packet's ip matches a route in the white-list fib. + +- Match: if it matches, it is then either sent to the next whitelist or to the ip layer. + +- No Match: if it there is not match, it is sent to error-drop. + +Operational Data +~~~~~~~~~~~~~~~~ + +Note: the double-pass of the ip4-lookup and ip4-rewrite. + +.. code-block:: console + + DUT1: + Thread 0 vpp_main (lcore 1) + Time 3.9, average vectors/node 0.00, last 128 main loops 0.00 per node 0.00 + vector rates in 0.0000e0, out 0.0000e0, drop 0.0000e0, punt 0.0000e0 + Name State Calls Vectors Suspends Clocks Vectors/Call + api-rx-from-ring active 0 0 53 4.20e4 0.00 + dpdk-process any wait 0 0 1 1.75e4 0.00 + fib-walk any wait 0 0 2 1.59e3 0.00 + ip4-reassembly-expire-walk any wait 0 0 1 2.20e3 0.00 + ip6-icmp-neighbor-discovery-ev any wait 0 0 4 1.14e3 0.00 + ip6-reassembly-expire-walk any wait 0 0 1 1.50e3 0.00 + lisp-retry-service any wait 0 0 2 2.19e3 0.00 + statseg-collector-process time wait 0 0 1 2.48e3 0.00 + unix-epoll-input polling 2800 0 0 3.15e6 0.00 + vpe-oam-process any wait 0 0 2 7.00e2 0.00 + + Thread 1 vpp_wk_0 (lcore 2) + Time 3.9, average vectors/node 220.84, last 128 main loops 20.87 per node 190.86 + vector rates in 1.0724e7, out 1.0724e7, drop 0.0000e0, punt 0.0000e0 + Name State Calls Vectors Suspends Clocks Vectors/Call + TenGigabitEtherneta/0/0-output active 94960 20698112 0 1.03e1 217.97 + TenGigabitEtherneta/0/0-tx active 94960 20698112 0 3.97e1 217.97 + TenGigabitEtherneta/0/1-output active 92238 20698112 0 9.92e0 224.39 + TenGigabitEtherneta/0/1-tx active 92238 20698112 0 4.26e1 224.39 + cop-input active 94960 20698112 0 1.98e1 217.97 + dpdk-input polling 95154 41396224 0 4.58e1 435.04 + ethernet-input active 92238 20698112 0 1.59e1 224.39 + ip4-cop-whitelist active 94960 20698112 0 3.24e1 217.97 + ip4-input active 94960 20698112 0 3.13e1 217.97 + ip4-input-no-checksum active 92238 20698112 0 2.23e1 224.39 + ip4-lookup active 187198 41396224 0 3.08e1 221.14 + ip4-rewrite active 187198 41396224 0 2.47e1 221.14 + unix-epoll-input polling 93 0 0 1.35e3 0.00 + +Performance +~~~~~~~~~~~ + ++-------------------------------+-------+-------------------+ +| Test Case | MPPS | Cycles per packet | ++-------------------------------+-------+-------------------+ +| ethip4-ip4base | 18.81 | 132 | ++-------------------------------+-------+-------------------+ +| ethip4-ip4base-copwhtlistbase | 15.12 | 165 | ++-------------------------------+-------+-------------------+ + +.. figure:: /_images/ip4-acl-features-ndr.png + +Configuration +~~~~~~~~~~~~~ + +Note: a new VRF 1 is created which holds the whitelist, which then +applied to the interface 1. + +.. code-block:: console + + $ sudo vppctl ip_add_del_route 10.10.10.0/24 via 1.1.1.1 sw_if_index 2 resolve-attempts 10 count 1 + $ sudo vppctl ip_table_add_del table 1 + $ sudo vppctl ip_add_del_route 20.20.20.0/24 vrf 1 resolve-attempts 10 count 1 local + $ sudo vppctl cop_whitelist_enable_disable sw_if_index 1 ip4 fib-id 1 + $ sudo vppctl cop_interface_enable_disable sw_if_index 1 + +Links +~~~~~ + +- `FIB 2.0: Hierarchical, Protocol Independent. `__ + +.. _vppflow: + +FD.io VPP Flow +-------------- + +FD.io VPP Flow adds the ability for FD.io VPP to support matching of +flows and taking an associated action. This information is then used to +program hardware accelerations such as those available on network cards, +e.g. Intel® Ethernet Flow Director technology on the Intel® Ethernet +Controller X710/XXV710/XL710. + +Supports +~~~~~~~~ + +Actions +""""""" + +- Count: don't now what this does, presume it count's matches. +- Mark: Associate a matched flow with arbitrary data such as vxlan tunnel, for a lookup in the redirect graph node. +- Buffer Advance: Can be used advance to an encapsulated ethernet or ip header. +- Redirect to node: When you see a packet from flow xyz, the next node in FD.io VPP is the indicated graph node. +- Redirect to queue: When you see a packet from flow xyz, is to redirect to rx queue n. +- Drop: When you see a packet from flow xyz, drop the packet (next node is error drop). + +Design Notes +~~~~~~~~~~~~ + +- Currently the only place in FD.io VPP that this is used, is to accelerate VXLAN bypassing the Ethernet and IP Layers. +- Flow uses DPDK rte_flow API under the hood for those network interfaces programmed through DPDK. +- Redirect to node: worth remember that if you are bypassing a graph, you are bypassing all the checks in the graph node, e.e time-to-live, crcs and the like. + +Operational Data +~~~~~~~~~~~~~~~~ + +FD.io CSIT numbers for VXLan do not use FD.io Flow support. + +Performance +~~~~~~~~~~~ + +FD.io CSIT numbers for VXLan do not use FD.io Flow support. + +Configuration +~~~~~~~~~~~~~ + +- `Flow API `__ + +.. _classifiers: + +FD.io VPP Classifiers +--------------------- + +The most flexible form of ACLs in FD.io VPP enable the user to match anywhere in the first +80 bytes of the packet header. + +Configuration +~~~~~~~~~~~~~ + +Match an IPv6…. + +.. code-block:: console + + $ sudo vppctl classify table mask l3 ip6 dst buckets 64 + $ sudo vppctl classify session hit-next 0 table-index 0 match l3 ip6 dst 2001:db8:1::2 opaque-index 42 + $ sudo vppctl set interface l2 input classify intfc host-s0_s1 ip6-table 0 + +Links +~~~~~ + +- `Overview of classifers `__ +- `FD.io VPP Classifiers Overview `__ +- `FD.io VPP Classifiers CLI `__ +- `Sample Code from Andrew Yourt `__ diff --git a/docs/usecases/index.rst b/docs/usecases/index.rst index 94135ea472f..3bcc129f6ae 100644 --- a/docs/usecases/index.rst +++ b/docs/usecases/index.rst @@ -13,6 +13,7 @@ extensive list, but should give a sampling of the many features contained in FD. simpleperf/index.rst vhost/index.rst vmxnet3 + acls vppcloud homegateway contiv/index.rst -- 2.16.6