From 619bfb334fc7b037708a921f8d05ceae83483e03 Mon Sep 17 00:00:00 2001 From: PatrikBuhr Date: Wed, 20 Apr 2022 17:40:05 +0200 Subject: [PATCH] PM Filter Documentation updates. Signed-off-by: PatrikBuhr Issue-ID: NONRTRIC-743 Change-Id: I4b039029a3316178fcced6c326e21af103b1e4f7 --- docs/Architecture.png | Bin 0 -> 104059 bytes docs/Architecture.pptx | Bin 0 -> 27121 bytes docs/developer-guide.rst | 2 +- docs/overview.rst | 198 +++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 194 insertions(+), 6 deletions(-) create mode 100644 docs/Architecture.png create mode 100644 docs/Architecture.pptx diff --git a/docs/Architecture.png b/docs/Architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4c3ec59b25239d359c1ec9cdbe872f52c1ff9d GIT binary patch literal 104059 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

(~xJfb9V9RSRUO?R1L?<^#B>He|gJReRm#m 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 HAMif_zylSP literal 0 HcmV?d00001 diff --git a/docs/Architecture.pptx b/docs/Architecture.pptx new file mode 100644 index 0000000000000000000000000000000000000000..8c8d76fccfa8ecf2ab5435ebf353f9ca9e739941 GIT binary patch literal 27121 zcmd>mRahNrk}V$Go#5^sAh^4`26uNSxD(vn9fG?A3GVLh?h@c`a=K@_r>9TPcjv8# z2R`Jfs@AGnCI6O_1O-C{f`o(w!s1U*0{WXTB*4#xHU@I`HntA*1~&FabgovGUJBB( zJq)nz*VLsett7jG#7mz;t5C$^FhT5KN)|z^kV)5uUb)R$oW7D-dwbK5JD&`ml$F%N zJ!Ds;AoJ*xfaX~ijM__NqPsjM8v+-U7+S$e4WfgjB#@)*2Gro~t$n^ICN!KJ0Lxj4 zFGtMCW+_HvVT#E8A#}C+B%&YSEuNv2We-)Sd*b)$YfUVLnMrbMcgzV5HLF@neN`NP z0maP3*KWSYkZFJPZnn(>|K4A6pRgO@qa^NkvR|Ry5gV*H&1K_Q?#2&?dtMB%S?3F% zslfBoPq2}O{Dq2ZObMRsJ@y`No{a58hy2jEOt|)wV7%$Znsob)176+MvF^U#8vVrM zi=c)avIw>d=6<9`vZEcf$K`E++1kE`E+bm@J#>BN zo?%o=_0pQ9Ooc2ckanqH!G2B3gm#VDd*6^K+Hqbi53=OKy%mSuy=tYLWEP0LEGcOqReXnDu*6`sT!0C+%F% zkk8h^M`SfLyIoG6Fdw1QgV|2<^ABhJifRiy2e`r;;IM!0ER?@>mVuLlqm9+Ozv|<) zW&IgYgU(;j^6w*l=uUw%C^VSrkHkv1SIRYrn5H$zU~Ky|S{fLKs#3Loei?X9zrL#* zob^~{*DPg0;R1h!1PQ)UP>QHhyr@oXWwfm$Y$J-?U;*bW?N)Yle z?#JY~<rtf88@)5UMo!rGZo zF0^P=gs;kJc3ZPU(cy43S4{f<6V z{MR0F3+m3qtILhJgq2h?;`KWD6kaTTPULeB%1iex{Kf6eNN~1>j>_!iBUps>oY}7o z2*kX2`*9#56heeif&r5>BK$gC>JfSTS1`}Ntksm|J1o`e*;aDZl5x4dcXwXqqKsqb zVE2DvSwrk76qU^kG>uyDda&6LN9Z_CMzAM^)<5W)7{+s_AIWa$=QhnLZm<%Gu)2DD zO~|-iQgmrA$c;ysk}j4tP>&7Lr)I70=HWtO6LRVtnBaQ@UCKzP5{8(BKg)4hLhpOKa9VZemAc;*ov^zvGkDT-)l4XI8W0IMQ& zTZTyDB{?_r_7Fre(G%*fF<9eryCM#rS&ri|JU{TSDbzF4sfLZLR!Hg4qksOn%e~wX z{)B~)u1^9x6iAcFn4ISU#V=HFdwy^xYRR+ql zdaHPHf)pbYGEyjo%x+&HcQ&2K4%YCNUY5mJAwTU=yy~*SMj|t-C>zo#Woku7Q?Y>M z*up}Ea&$F4)oe@3KB~(N){ecflP?^bY+dXb>fM8Sql7e201tYB{h0^f3GxRo)T}J& z%^Z!a7~ctEHTE6ej{&j&aJB~6AL{!2>P-fX zo{apu>xh#{$<^ff<1iVC$2-n z<6L+JB-8#D6b^G>Bq!|52PC)BUy&+II8Jxjeln7`E)eA?n^E2wYv;N(g_wB2NGB&z zlKK?ORP5fyeJh6Hns);xeZ!l#c{da_mgBJ)UW-RVeMCaNcD!*&xIYvf5Lw4Gpv z{o;i zhSmn3CSEgA0EtXh{^~*JXP91th?{XGcC2bH(q@0OCI812uq*6Jtf#=MOuc! zBG;fl(0q8ddV_yAKc_E&wF6*2@t>NH_je%qBeT47g8AJEzf(-)w^8UH42S{eJi-gD z(q#lh(jG`TY%$O}f-P45qX>g4H>Yr!G_Ds-wan`bMlUQV9=ah*>cGN@pn_#uMW+NC zOPO;X#bwHF-Qo&0z4Ffk3jHF$#4)_Kc(WlQ{UdI5htsXPBn8Z{E0Ru0pjXnF=dKUN zeD%6Dg(!%rl|XYHT(3ROUR7v#8L4m@Px9Tf9|u#?QpUOqMCOJV2%shc_K2-&d%-gA zF8jKU;NC4i7n<0w1lWb~|7H2_@c*Obs|_EJ%$C9-+e4Kuu&1nWEWO1PCL7sYYc{&K z$HqK+ltvZDPxyH#EZ9-i;UgmI+L?%hEnJq)a!S}{1C5d5NTr6r6Pd_tll2`x^b(Ly z5gE?Kh-Y=X)9QbI36U9S#e^E>TF-ei=4;olY1rRb?f{x=|M=3=(34GqTcO30@{k9z zi<~>l#+}tJ9a)azoj<@YJcVB}f{em&+B4hr^xN{y8BKxzf6ISohJUnN`j}rx>OW#G z{SPq@-ZLY=>q?Gr0V&M|3zB(UW2fC%%9!IcJ(}J0i_5nZ&w~oxjgSNp$*tb!DnY7{ z3Pd=#GP#(P7&4jR5_3wzek`PEqChr;+i~!YsSJK}dxzwE@H3`hIz9Ip^7f#K9!-DZ;sN*jkrcWP`qX zYz<_2FaNS+pH8OiWg_lT>&u3VKfxvxZaS0{YQJUiV_2lnb(90WD8mnOc7HhOz%fYZ zNo{tj0#Zi`4A8^}GHLuKEs){1)KFpH3ec++;AquKqI3#j-vT-CL$8+^vR0>N)#$f0{b50CV}_PXO{X;-`CcQd~t6gNPd z@NY}dKjhgOcGsH@Zr(`mu|55|Yrn;Kr%L7*s)tJeRg(XdD*u=xf2W62jbrQOPpGe* zMTm9l4J5-Di^-fUcCFwROZs+=FE|u24b5V?R0^Rld>*mw3sGmP!?Edbzzqbi4o>} z*~LJLhgB2RhCdLtCFEWlaN~2%Tw$4TGBzaVRj)>A2&EJsY1xJFVM67j)(wUdeSnkS zc^o0`$PN%aUxVIMWJU}aMy7eXucwiOA9|&gdPd?fq&2w1WWOlKYcN0hWRF?m=;wC0~!e{_$2~% zx_2)91U4c2V|LYUb7(|CrA6K%$hnB(?1TuUnJbvq23D$OTuDPTsqZgtq@4BUU>f^V zziu2J1H_jf2x2!)dA5%$hP?+OyUeM6U-cAs(_VXr;34?si6-& zc5=N~Y;}-oPQ&1{PUh?frn$ROxe?!>KH6tBfj}0Wkq<+ALMqf7^AX>1Z{_0aeBu5W zEqhU=^s&Qsp#8NPPD<=Fs_V*q9m4NLNG1!*sgD3$)t5~yn%14A&EIy3h8XA&vf=@k!LGV3=`R$GpSaMu~ z{`gU0L<{F0p&evBUHtd}#zu#x=@%ZDo(>hKR^|JE(fbjXPlmxDIMAo_K#QnhG(2Bu zsv2KCN!v3c_Lw{h+j7vH7&$79KvTi$tqhm)CoCCuGb3g2mz6(K^!L(sWn&|*3*UjK z%Obw+EER#J1Tn(pb;#9u{m|<)3T&oI2?-`$-z@tk70op+ku6bJ7bjmbk3~4_9WXO< zLr@Uph1RQtBiJAD=}=T!TOPssXhW4>hMDonNWZkp!MU?;G&I0J3O}S3fXrgNsVd1ms;jrZ`*3OhcVwGd0?+VFu9VkxKa|g6CH=i5BPgy%vxROP+FheW$ z<)wp(t|1GGok!2(+&^IWYh8rkUUZ8GOqLlr`0W}ELIfG_&UZY<=q^}+PqI{{LL{TQLgf1PU<)~ zLT|!_^RtH$U&;K7kf3(M%N33$H4Jo+uD4|8Wa_yPiibXUzRE)@g_`_Ac^HGn(`eR| z@upY;)iI={;C?fsb3;AR!CRT}8U$rL!+U7*{wdf~0QH@s99Pp0xX=rw|VD1Z6Z zFX9a#4gA5wl*cCbTJO+lhw$$)tq9pGuyzc+vzd=Y)T+qTl023jA#_<>lfXk$T8`Re za#I{V7>CB3ZsZw{wcK)e_xcN%y4W>6q;_9d5I)8|ATNu5!>uUTRnS0!DAyjj>Av4>j z&yNvNN_;E5iUb$JBQ^pp>|Bkdq`PzAD?v>pXC(49;BJ7H;632 z`Gu}SNXQTcUdQ@AK5EbWXo6l(=$om`{3J=ap=R4f&S8?y`mf)jje!~(Q}6>25EJ#E zwXOd|y8JH074ge5D-4JL>4HkV&KczZPZW+=jjRw;DnM$D>(OSx+CaRlS5n&HkwF8Q zfS!O(=k?Hu^~Sut9p}Mae%9q?BpqxTn~R2N9muo{@727x0g+M8`w_;6L`|1R?L!jq z4b_m;$~Ep%AOjxK)+0R2btrCkub^3mF(KV*q8cSyu){Dp99cAtH1&_7fvHA!zOn%o zBsaIUoO2f1D@%u#?ptB6pzxN0CaXj6$}lS0=?HZ7lo!5Zjx52hae|ks;S@HG*_=`n z>9l>+r26P4F`O{0JP?d#RMIk6l?m(^j9x4C`nnyEdv02NBDfyuxcR0-k8bK{Y3LK- zOMlYsouEFTZYWp=-Zhj|xhwh~Kr+vrRCufNVVuVmuuzSu6ezPnaJ_e1Z;-)LxDsS| z(5`*3%XC$Qo6C@|r-pF8qo=}6kyvTADBsV;aJ4NZFlJf{pTM;5WCU$Xvwq+hP!OLE z{IG^siIW`x2R)-{**du}zrq)>HT-2kvt;AU*;VCY(z#Cl?71lnPui%8UzOBa8_k6y ze)Vfu?G5Z*XR%DfX}k}2EdO*gfeKJ!wziJ+w)RF2M%Ipcj%GI2?|oQC?4V4~dwjWs zcRaS)rKecTr(gsG{7^1{`t7j8U1NS0(8`WG0xO`GZ0)JPj$d0Ce_uHwbWgyGXJys1 z6Cg4Ruu4#$-8sB8R)~cJVWY(_k6~RDCm7x{-=x|n6+?05GYUWjMXM6W_ba0SpOhRW zY>>e&cbc=nW4NJSa_``8!81)I0iV^vvY%>|yxI2g@qdscXgH3Ko>wVnt%*XU4+ceb z-`#K^NqpHbBW(j;4pdX~5|B4xo8l~kXGu(d)_?RNIK&bPmy9qw`!Z+kClzd*Ih+0C zO!pg06Eo(L2R#4N@*Vt-MydRz)O?yWqusgz+w+bklj>OHC7J{LtLuBDSPbIZ8%gdn zFW2y1bXhthhjfH;M zJe3>Z{;5BmGt>OV{SKC9hDOqQ4vt3l4)lMt#DDXr|Ll_b<|NGlVS(82lF_THGU5o` zMjc*^7sxJ)#p7Er(40w($dBKB$MyTD8wko7SGQmr45M5#o}ZzayLNLF zQKVbMy2;Kr!w31si$c1)kLby1w|#_44TbT$$(DkYng%tr1(yDU&=QO2ainX*V*l zT^k>mRGE8*$t`JSyVN0>d%(5S%ZwqhYI5N|ftD28IwZ`%HCPv0D4G8{E60hN+GG%g zGX}xCo@ITMP!tU8o3pxSM)8UaEvFJWU=#lodHp%rbVyUNR(~kHA>I(f8;)25TYV8Y zW^@vo@=>Nfw%kcFXw`vq`;AeYlMJqTPZw_PII_hqa|qXXkiGW#&ee7kT13a~uygq7 z!h15DBNJ;--EExR=0l5)_b#?2Bfah{4^&!6hIP%vGYn# z6w#-1z1onBo9gY5jJs;L-nF~xxDe?e?hBTnI6U@BttrJ8E;{Y0Ie6^`sIXUgbf4d| zKG!d~&vXECCqeuf`2Lz-9Zij_jOc%V|IOx8^=0erPl#UUs)(NJ2~M>cx~IaE6_df} zwEB%+g``I{l8PXMBx#-J(JgB6$-Uw17>@J6$l+Wc$3EhXMGpmk`+@+wDn~dRR#pAx z9fY(io{-4(WwX;I%|$XIpNNaJe9JNLyto&Cp4W>YsWkgTm@a!#l3^fB!I9*6925)6 zV@D}va7Q`vhujVM9UZCx+GK79`sC5QHQ)G;#4_-@x8pR_C}GY^BswnrK1LVe)Fn8` zWDTJycI+TkF^@n5FI$ZWd-7|8Uy}LQ0xB3rQdJr`pOp1_LzE`I|6soE)-mbENd*Fx z;?}p(wJ_jGq~%_5MLXbC*m?GLMeUnR2Wm-~21-udI`A7iZ0oBBiY4g^Ij?Spj4kei z=NnZGK6Q)<>IlSNKp=NTKE{W^$Ge;a%Q6!0IYYw7y}Sg&Kc~MdvEt>~+DG}NFEVAS zw+UCQOZvvdKfdLb>^ONBU9R8Bv58?9PwR*7E#wA@R;j6Oh^C5ge8tD3st;P7lZq)% zDtc5|h$XH&GoDLQKL5>Ej_Ke{h&Rrsax&4@ED!k+Qo@7VncqYCO7(uoJ}0MzxVGs2 z0FLdZ zms!@4PTDEWI+OXWFd$j^TFq$%Dnzk+Ahuj~bG907gLJIn&n2AKsoh8_82J_D!yYK| z29`Az?(3pujBs}g<__0f@qzRri!aU3AB^Z_)zj!Hiu67k6Zn=z5r~-tpj8G?Q5Cy8 z$&=v#V~~hiB69of6o86Kb@oq2OyIP-J9n_m{dA~dqMuPtA(j`wRSC?#p`We!C9U}6 zd%R*jrO4UGjxQrNF*2j5ad#6`lQFjB(9VR3rY)VCzp!cA$Szu;GPbgxc7CRUmEl_E zd6m#_&+~abgT{SB<`cWScAH4D33vI2q6#HM-f6vdvQoY$jE|8LF$`fp^^QRwD_i{9 z1E22EAQk#rjnc}W`?+mv(|hyC=TO>S!cXMArzz6QuJ&}yVFPwMvSk8qcM!+u$`^9V z4&ix(RaypPUPoDLJ8FeC`nz+j{(oUuf=>$nOJvE`nT(CAGDcS=qs|<}ZI4A+D3;FR}FaB=qB6 zqB5o#GhzJL_u%q=Bgkoe@tii+;_?HBgDekKBtlLRjX49 zkHJ3kC|x4YEez-Ef~YlRxp(kaIU^O;W*XQYr?pp3$Vm_AIFRUl=-KuNeW2|rrS6StO` zGm&8G-~R z^C|WSS7a462U;Ma);8Xf)FHnF`iDW9uZqG>8w^J)#Mp8|rA~L{2{IE4m({LEJs8PV zA`2n|hdAbtNKK`800&2KaQx}vyr}|4cE^1NvPkd|YH(+R*}CD!-Fne-gjz{E74Ki_ z<3s!FP!3Gy#ZGpX&D!`MM4vA2mM(`3zr4pSOKTg<3?SrOLH`WP|0-_3XX?Ak%ht;b zuwLt`knXZZt!7hTc46?xEx>))G>ac7YCggwkn$_67=GcEXho{&lvQKhKNn9V?>T!iA zAK=Pnujy({3d*j0i`9vI$rijrVL8=(VF`|srv1Z_Ml6lENPeNfCf!;a`I_2U)76Y% zGkwg$ee^*MYJ|^}r6#DVq<(WmekF20cYHj2*5$09`l;igY;q+hmHrKPqe%EbBH2%` z0+UX`SlpPI6Yj{_nKi3XAa*#GT6Bd6FG~dCPBvS2?_l}(iBHv%mmkMsXpMYPE4r(Z zb?ocnb2lb;M~3Y2R7#s0jLp!UqguX%{F}lF%d5e37o=6llwDt|D=&Hu((+hub zK886V<@T34nkHdN#Kz)JUqQMfja}d=;fBE6fcfwUHQ;)dm0l);YL9Iz;<)I#okqSN z_&etrGI7~}5A+x1k=#6pwX&o{)NWRz5J(3DMIqYjGR-|&R9c{-b2Oy8eLSgaw(AJI zi&l#}rn+kV*0S(n2YW61+pkhBrGYz`b^5s%KPnZohk=wv#?YxG%__-BQu7pjC3#85yk8U@T+{`vjPzrywJflHtAvi&l_ zyI^GCn&*$j<-AlI%eP8(CYyFYx&dVnK#v52)tx`hivhUqRJ5E1QYB$*gU@e3URq0xkHWiP^}{k!K8#8>|4fxT>tbDp>`N;R|19y% zCzynjz-&Ph+oHI6@c`J?+|-!VeA79HJ7Ptq=dfg!Ey6FTFwiV)-!|G(9Ybsi0%ZQj z>@QaLvV2gZAEmSNK@PmJrv;Oe?FLL&U(=lTzqv)!tm$`} zEI8?L+CO-BKmr{t9kkth?<(5L!jWN^Cr{3o8U^%`z;HZ2(kV%cbpXNMlKpxwM{!9< z9V3UEWX7;HY~?PJ${DZOkL^IwC;n526+oMODD&ncEkpG@7)hxPRocfXl9;qYO%YJu z1TL@B8ODU63y zX`RM^3P|2+-a6(4BxbqMrOPeW3Uwlq_rOt%zG#-i&Zae0>-D~cX492RRJTT4U%k9M zJA{^CaxtHy~SNxLE6T*g-RS1Oi*D`V8gk?ebBR@ zdGm(?%po4}Bt2n_x(dUqc#Sl;7F_6F0XeH%&WN^z-mj1wHf@4-G7q~sBt5kRyub7Uoi3l^h zb!v=Ki1?`?wJ;iX&gBDmB=q?4c&%sZ_g3nKyh>&jXm4QalhR%*bWD}l@ti5{c1qLRx4Ce3RawY>W`Zz~42U}~fP1EV_%ri_6zeEcPSja0J;AtGC`F$lO{vmqM<6x0wqAd#ODV#BQ}?ylms z!dcpl5;SM|nWcD5d7K7yv-4Pig^0Z9ZJ4(eX=6r+%71JG3DASpMIiJbD~N30sS&7* z(H%`;M#z|Ox3&a5CEy{SHa2X;H*9ejK;z=ix+-JPv0P=foL6&#qf(>Wv@%h777pNA zS4%-V6@ZHyA6oyKkZ3Wv8H(@-BHWUl>iwZ>2qkGI!?W;=mVRUB8JrVMuwa0~71Se# z6V}NNlnJK!hPJbXlQUqR*MC*&qM6Qgaj5o7j{5xk+N{*)Z(OJG-Hb&-Rhy{fQ=OQk zA0aLY+&AL+eGo;9D&(KGCkLF?#wa4$9B)>4 z4Bsk9M@^bTo!&HR*WdFz|D$AW9e@Jgq5d~{p7r}Q0A0PBssKX&=LN@B&PeC_YG;&s2e8m#B-U`k@%>?BYIvX6l!qQ$5U zT~B*abvr+aCNid|tWbhRZ~GIsL)|kuEhTOj^z>$pI9twI1V+ol#yEgo0=awrBDK>62#-~utJYmD(+Uw>k**8HZ9%8cv4+x9m)zeW(b~xBtB!vgM zsNk4$*po~QohwmN&WPOD25^%ojOq+aQptQ%&?qOq97q@>lexre-IBYt)CBb<@T08g zhdgZ!k|Dks6x}P3iK2{VWe>-ZK@0n@mS0rzY6Xqb_ML9Nx*y2tKG?NhknPKRUxXAe zcu&{m5VD*W!FM1!0NSNe3w0Sj2tQ&} zSFX<-PBg;}C!E5o^}Yq!E2kH=HH==jz`hKEE3}e5n<{B$Dhp^qNMF3Cet&852)?p? z9XzO{`xN$Lr#zmu0JSqg?Npg*-_hn4K)OIX*LF1mq|2~FdGt~LVsMK1ljy)@NQ@(V zoK4dgj6Vif4-l-iIsmX1{OQ%_zY-;%{s8N;!ZO3VC^5akGYkeIL>r>eo zQHaSQt1Moi($4WR}u&P;0FXZ+YpB=Md#W;Manp0S9p(_IWWgn{Q< zu9%NwT}OwbRUYqPjcNc_1%NgAFJP6;hH7jRvgo*HJQ!KB$D^5D)2L;VY~_1FvF~h@ z3>U&`a)+1F0eY$dgaZwkh={6CO8 z`;J_Q%8qq#o+63i zjU0f|u>GwxbUUl6@99Y<@x=S0%*u10+zUQ;m1L&~%cDCVFZT>sqorrI$0UV+F(C>h z7txVw5AqBtvdy*BDHNN4Mpg}^ee^)h`KF+T2;~d9v|td~GL_ycR^DmKs>;kQJUTA# z^<|ueNiUKFlnzwc|ni}r-AvWHJ*vznLPFrsmRs} zUek1X+H((&fSPkklYScQnp_tD=vr+?EN23(`NCARM`CAZZFpOAj91;?W z?HzESX8&SV$2Te)*;QO)|1$EyRb;82lkhdOc?6NmYIFi@$7kQ;%P40(25cd_6-dM& z#;@D~C&}@j?qHJ8?D_pzO~$w!rRFjE=O)m%ESRK)ov--|HG{Rfcn=i4QToFxmb)6d za{*K1=79Sw^;0&aD@!9I6&9RXsSc_)AQcTd;c#-ET^!WI2=gaUAQ)LK1s9A|ClhaY zm(6o9!TIP<&})M-2bH4QTK*#fV_rKhE{&lVPbRjhP(0J%v^Z|goHNf)Ys;D9$1y)M zkRgK0k=p~5(cMt^u%I50O&8&@xYtR3SR||agl>s`)Mzwo5`RfT!v)D_4%Kp-~i$nZ( zDIx>($Tth%$PnOc|Np<`WdAQ50Z5UkZBGiBSu1U}5{*34XJD|n-U>KKvDB0KbH7tE zvsyY0YA1wSf4HQc&9xpzeb)|37yw6h6!O`*VBR@GgAtDUmhNqK%K%X05$FmRs5Z^r z`*{e0tPH}=(v9{;NOF+O*_1jOWe@?F4LhW)CJJ`I1`Z{X<~d~;B-1x|#lwC={L#^| zdm!`Ivy|5fdqFUgwD}$pLRkVt``780M0_^jszCdqZ6LsQt1JL+NH_J1d!t z>T^m$gC3O$Bix#pALr1VUjs=#6HqQv1|}%2S17@-qoFbnhp$+BxnV9=_^rm(F2lq~ zpYM*IpcB&<>Iic65--SqqGTd5h4MAChKb@4*W)JyTmF_?xSt~;&AMMnI;W~3J)`zb z?uEVZ{P??w+g`GTh!h_1k=X~m?`z;eJCq!J=-*WH{71Et5WMh#g(u1SboVMe;(Fve zzK1CHoGh?wu5oc@(bB(-FpzwJYNkq!Z?{e`miCb?cFvn=%8u|!5bkG%_HFi4W~N}! zl5{qSjwXnl#sD%zkPkiRFjqfsaY|F)F6FPu@-Ip8n&Z5T&Bni{0?)PPgwl%f*b3zD z#ObrE;KS?(x3 zLRFIuZkfec+8??h{^E_f?1e}`r@TCU|5gAEpvybICZNMiZv58ep9)i7fx1ReFlI6W zjaO5(eyBfC_sOvaMEd#EptWqv@4FDxMx(4>m9;CdLJce$#P2Cn zI67dxHt2X9E$QmVw`-!;w$x&=Q2G4?Td7*>$MAUhT{xs$a|09gQXn>2RzfE*HLYrH z4+{Pjc$lLI>kIVP0&=<%PDtt1v@hNK55(QS8G=!R(NZgq(FkCO!#hLr01RPX7zO)s zw3Y?S-Z|qbZ2F9m-~LkZ>|GO zT-5f-8rAlkei^iGbk8wQeGgeY4k|POKM72VBbZoU0YyEf31KIU`N7nPjwuQ=-+ds) zR#n*}LK1?7n(Vml>%t+n+8fjj!ZL!tyyM-G+2AfdTC#E8A(djGS~XKtJh*K~Ta^GS zJ=#|zy2`sxzZVY+yMiiZ02|2w%ZGnnE&qpJ_|G$)zk9&)@8X5OyH)yYI{XJLaJ=Wl ze|*vL@8X32AryXBhJRl#{Li59TSWd}cf#+X-v4zc{BF7buRG!QhU5Rb6Ml~k|F1jY zpS*Pacd3#8v+D3~t{MMlPWU&MjQ?th@LMdtFMR>0*T0v(cuvS5a3OL|n)A}7Dl7{h zFn{vR^)^@v=6vb2Ag7#Q3TiN06?7B(qkoo-_<(U-!$(~yO(z`IQwu~)mpo$6D0|sB z_*2C%=DU(%U9?}3YY$upW(QVr2W1UTON?arSAk?6>B}D)v*f+i;PfRNabYl+Y2w-n zFxuSYDTViZ+UO+Eesq*(bhg}IGMK)YSvOVB2($!?-B6O)e;USmBUr2fs|*vm{t=fd zTsdL@So%g(jie-sjGbV`8A$^g=zWdBmER4t-oA@iE_ZBfhJu>-?W#ik`_gy1ZQ!*3 zed$X9So+f26s_Cnb&^{|v?aTPUm_yti7qw`L}!zNku}pkXrkuazt3XDlcycI7K%dw z+uzXH9*$r*{q3Mfnu# zWEdCRwlfWV;;U%&XBjwI#?Tu@_iOuR$FU#`=?PVZ<7(zBrpgb`A)VGJSg9zsvkYT= z_XrtOtIZ+6gK!4VVE@uZpAb+Xt!mPydbuqB9y6u=9y4iPw(!%-0LDz$&TO{AXCW96 z?bj4h7T`Y^AgY6-Y2&8)bsW@*=Ec76jWh?}9Uk>BKritDn&`2C%Jo6Z?Px_;f4;uo zO|;oUA)^(bi4F`v`Ko@3fpleWwo6lmQJU&p$00m>vE(6udzY?0MRxo|mD?i0fdgv7QK$@YDBAE2^*XMY)tj5F|}PK%h6dYS$xx97v} z^UQ|2?N9G-KSuv|Bc?x&#Z@O|mj8MdVHaCSSdmK9!1xI&(!3hM7Pn|r3~&}9*$Oy| zh?9fH6~qC-I}qH`%JKl5MT90qeVcO%RMARP2!jp&04$=#kdmaIxrv{Y@O5)eipki5HpmIkMN1LR0mZR%yrupAI(+TE6iu;_^FyCB}ok9 z(Pg-*fJ9o=tWtAhsaL(M%Km^6YZ{zy{LQSq@X5Ty{e4@ZuAbn${l2Y0J<%addh)zO zA+E~P;iu?DS&(v;-xZs{21zQYcw(#j+z7Ttdc z17r^~8FFxDK6zH-#JRAQDsJBjG0pT`+PFp9%^(99F!gvNH<8(dVnFotP(*3|4L36F z)rr{#s^7U0b#OHDd%z@JSTRt^JK(t;&D`YAH>>(SV8U6jW;lj;=f-`;Z*I7n8Ob-m zumTnpKENs(qr$=DJUck3kMZV!BR6JQEqRx_6y@_Ru(6IWSV5J9mZ)w1?Gw1cEo~qv zfo&JWfYS)>fceg^t0NcR>C9$_YPA8U5%+7iQlI0vbQ8LH%7kR~(2Azs*h!`QToG5l z4`uU)>?XqWrw# zc?4d}-OR}Zt0sQkW$e&vS{Lzj1k3a`Q=a*3-_NS%ci7(Nu<3q%$nVRFF1SA%zx>NN z>~AS?n*1Lxcw(wVGko&DLMk^pt>&8x=6L{ZV}<}o@(K3thSND#VX3aH0oolHBh&!j zhiCtqKJ>?hz9RZsDrE*tX70v_DBiY`AxBox!T#yK41(JdVrGnhZDKC%^nw13HN}UP z0qX&k@`w+}S_ooc==}r0{i$?n;x{SL5j_i1#j%)8N)G9iS1|d*Ai*738?iedXRmi9 z_aysRwu3Om8l{EWg@i_oIgGNvv=g$GLn&0)<=Y1eIwUDW@DCF>lm)_5IP!AK3#w5& zlVgco%zZn*s7}0K#MsK_=hIV`18zKGaVO&CMp)?WYn^rp$1O=u*6Ij6L%H^IH3UV! zic}{!Dj4FClRB>K73!Y1_dZiJ0lTa;B{qgJE^i%MkdoV%i|D-6PIp%P92#b(Rvjkz zMUb7@Fh4rq8b#<$15bDzTo%)9TsYKfF%SCcmWB%4qUq85oM&mkr2#kHVAt~Sdg9sA z+8)9UY}#Ts(HpKW23bUW78d;YV1$oGOv!c%jH`x>Ov2e04mln=2N@kHQ4 zMx4s3GKGSBSu93>W=ask&?`?GZ7HBB-7zC((GziTPDExC76R={v$J(spcwUo}quve(;!`{{_YT^t;e7NI#<705~)R_`Jb?KEfpU+d=N%Ju&)&zAHlLAegqm|m==4CbFr6fVab|qoLCs z!vsH1z6ycgk-Xft$3E1FZ;=@47d>>NZygb>+GuNEKPI)Z@Z(TjCD*3-@~T7R((K5O zSex{BT6biCK@7qCAd0mWG3nbL|0|2M)N+j{GbtnU(B&e}HZ#A&5VS&<&~tQ%SMH9r*~&ui_U^TT$2q5B&4L$nII2%3tmT2aC61ad&e{*)+gm(;tIv5_f+rfQfq zS(e_zFyM=IRBCQnmo|2>#lfWI(|SjEwW+MX(C?vUqvsu=4CP7a2y;Z&G=6N%NwBn$P_yn_8FK3^GXr_8S zI`|9Z8FlH87Du!^qtbc+k=X;I~Q5tqSi8k6db zxrHPLRW`O41}Q0?{KZ9zRT)a&^HBoYuM+Ir93k4l$&tcgNFpk@fV!hFShM%)Qp3I* znSN}%gIQ)aWhwg?#+CA!E2Q1@8_FW?2zwbzQqgQz;D!dY=>}X61ZZQ-Tn4HOKIn+&04`S>@K=d9k~f_^4!y?)opO`s{Jlb#9fr!XuoU zk}Brt|JTTw2SUBIalEpX#&VI$$Z}({O^lRvsE`{?L_(-hmNXS2E!P&}CbWnmOK*il zCd=3g5y_BjS(2tq)-aT!vfST{_wBbdyz|UIGk=`VJm;D7J9C!j`TpQ7+DDA6@EVU3`Wx$*Z+roXvg@~^#W0;#p{=9$A{wOBy@YR3} zCslND%AQA2QkjO8!iU_mJRbgKbgHmjeE4Y9`Yk*LVfJ?wKS-!5K^QyqO*w+t_FRr>RoTmZPD2W(py9rCQGIHLgJlx z`WTml;({ha67|o2*0$)X+q~K9(~e&B8$Z9Q%B~id4)PuIDc+i|_@1&>&FOnVUPAuY zsgE)*zf=1$z!zs<=gvs>Q}@Eqlc#OB|Dbopqz7;zQ$AB z$(JLS64IU-5zf;h68uOuG3$<%J@5PdvA4Sc&QJlwWC4ko9W&O_TB>?*?PBO_rYHOKmjM4~d4WYMK7+L2f#jrf!i$ z9oW2sj5`;lxdne?SNqTEME|YNbV{N^e9)yld(YhFSCZU?rS#w6laDEzcxM}oD~T5x za1|`(rk^&gs{JZZQl=MJR(!61JF2jdh!Wb1>+2xMhv|Mj=Ala+Nt}+>uE&LI69vDZ zQXCwl`Y$r_y(L1s+t=|CMt;atICOMeW5u$e!6zo-!3H?e2ZB{ajU!Rqm+XZRNp3INkrT(KkUN zh&WVoc!q8}H+3zl(I9S(^cs zKRZw8PmHY(cr{2dsId4}lYK3$Kw4|mS1$-l(`mi;AF}@8X3u;ZX=V2*q1@@+(Hk8H zzV6fOId3YJL+3j+p37jIIGLlTaoWUiv&4fYi<#D^LsO{O_S$EI>)Mx`)$;gUMN=Mj zj|ukbayFj74P%|zjM`-d@jU~vrb;+bFo{vtewxq*_#4=Tz!coeGE- zzl6@I3BSchwF#fU!B^#q7T!pTU(~K%nqJ)nM1_ow}rAJ=^9vV4=jfd_eL^ z(KJxAP-nH+!igzFW^d?m!Us^tIJoz$r;E2E^M>cRf3G@P}Pn<7Pv@K&W0oi3}% zw@li&z_7jRiu@Y8ESz#$ec|M~>$an7)JE04=|9)cDs@O(?jqKEs1&-cHS&HiqDu8z zTI;OSZn;(^F6^VHwxDzGoxk}nY_;blpIzr;GWM^{bJsq3XZPQ4ZQ5;O?*1prA7n02RLlPPriV0;o%#&kSH)^&lHU z#bn{%%nyhuuu;lI0-!ppOqC+gzWfFN6=;zZs9Y)BjkSQF2;2?U5d#tcRsCeDnu4|l z$f^MW^PzxioFZ9J9Zfh(gr7YNyg)&+pvshR77F;C*!cx+0+B4JTq8WxyeKG(**jLK z*+vQ~I0X+i9ys~|J^B?Rq#IB*Be)wCfW!tIz;c6i$A+XpMR}OY9H6C&v)4gF5}=YZ z%qt$y6tPDpk0ueC(Ms)wxR+^7_`D0-n)3<axAZvN!n5|mXsRwp=!NGNC>lO%HR^GK29x?YkH>2~C*=7kvt1=D>~xntCulJJ zY%!Xd5SFF#CveGGjX@WH6A~TdEti;dLs;<*|<#DkRgA8tj7--0_fctd}fm~T^xsFyI_FcBfxn( z3IB)3_CFPRIxhoGlfb(u3kVOkMp`&{(9JsYL?5*9Jun(8Y-~FS-H5^0pwI2t?(r?m Vc!1r+k|kK+l?^OYu@1~n{{lu_ZF>L! literal 0 HcmV?d00001 diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst index c9a4026..dfa994a 100644 --- a/docs/developer-guide.rst +++ b/docs/developer-guide.rst @@ -1,6 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 -.. Copyright (C) 2021 Nordix +.. Copyright (C) 2022 Nordix Developer Guide =============== diff --git a/docs/overview.rst b/docs/overview.rst index a45820d..cca8242 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -1,15 +1,203 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. SPDX-License-Identifier: CC-BY-4.0 -.. Copyright (C) 2021 Nordix +.. Copyright (C) 2022 Nordix DMaaP Adapter ~~~~~~~~~~~~~ -Configurable mediator to take information from DMaaP and Kafka and present it as a coordinated Information Producer. +************ +Introduction +************ -This adapter is a generic information producer, which register itself as an information producer of defined information types in Information Coordination Service (ICS). +This is a generic information producer using the Information Coordination Service (ICS) Data Producer API. It can get information from DMaaP (ONAP) or directly from Kafka topics and deliver the +information to data consumers using REST calls (POST). + +The DMaaP Adapter registers itself as an information producer along with its information types in Information Coordination Service (ICS). The information types are defined in a configuration file. -Information jobs defined using ICS then allow information consumers to retrieve data from DMaaP MR or Kafka topics (accessing the ICS API). -The adapter is implemented in Java Spring (DMaaP Adapter Service). +A data consumer can create an information job (data subscription) using the ICS consumer API (for R-Apps) or the A1-EI (Enrichment Information) API (for NearRT-RICs) based on the registered information types. +This service will get data from DMaaP MR or Kafka topics and deliver it to the data consumers based on their created subscription jobs. + +So, a data consumer may be decoupled from DMaaP and/or Kafka this way. + +The service is implemented in Java Spring Boot (DMaaP Adapter Service). + +.. image:: ./Architecture.png + :width: 500pt + +****************** +Configuration File +****************** + +The configuration file defines which DMaaP and Kafka topics that should be listened to and registered as subscribeable information types. +There is an example configuration file in config/application_configuration.json + +Each entry will be registered as a subscribe information type in ICS. The following attributes can be used in each entry: + +* id, the information type identifier. + +* dmaapTopicUrl, a URL to use to retrieve information from DMaaP. Defaults to not listen to any topic. + +* kafkaInputTopic, a Kafka topic to listen to. Defaults to not listen to any topic. + +* useHttpProxy, indicates if a HTTP proxy shall be used for data delivery (if configured). Defaults to false. + This parameter is only relevant if a HTTPproxy is configured in the application.yaml file. + +* dataType, this can be set to "pmData" which gives a possibility to perform a special filtering of PM data. + +These parameters will be used to choose which parameter schemas that defines which parameters that can be used when creating an information job/data subscription. + +Below follows an example of a configuration file. + +.. code-block:: javascript + + { + "types": [ + { + "id": "DmaapInformationType", + "dmaapTopicUrl": "/dmaap-topic-1", + "useHttpProxy": true + }, + { + "id": "KafkaInformationType", + "kafkaInputTopic": "TutorialTopic", + }, + { + "id": "PmInformationType", + "dmaapTopicUrl": "/dmaap-topic-2", + "dataType": "PmData" + } + ] + } + +************************** +Information Job Parameters +************************** + +When an information consumer creates an information job,it can provide type specific parameters. The allowed parameters are defined by a Json Schema. +The following schemas can be used by the component (are located in dmaapadapter/src/main/resources): + +==================== +typeSchemaDmaap.json +==================== +This schema will be registered when dmaapTopicUrl is defined for the type. You can provide two parameters when creating the job which are +used for filtering of the data. + +* filterType, selects the type of filtering that will be done. This can be one of: "regexp", "json-path", "jslt". + + * regexp is for standard regexp matching of text. Objects that contains a match of the expression will be pushed to the consumer. + * json-path can be used for extracting relevant data from json. + * jslt, which is an open source language for JSON processing. It can be used both for selecting matching json objects and for extracting or even transforming of json data. This is very powerful. + +* filter, the value of the filter expression. + +Below follows examples of a filters. + +.. code-block:: javascript + + { + "filterType":"regexp", + "filter": ".*" + } + + +.. code-block:: javascript + + { + "filterType":"jslt", + "filter": "if(.event.commonEventHeader.sourceName == \"O-DU-1122\") .event.perf3gppFields.measDataCollection.measInfoList[0].measValuesList[0].measResults[0].sValue" + } + + +.. code-block:: javascript + + { + "filterType":"json-path", + "filter": "$.event.perf3gppFields.measDataCollection.measInfoList[0].measTypes.sMeasTypesList[0]" + } + + + +========================== +typeSchemaPmDataDmaap.json +========================== +This schema will be registered when dmaapTopicUrl is defined and the dataType is "pmData" for the type. +This will extend the filtering capabilities so that a special filter for PM data can be used. Here it is possible to +define which meas types to get from which resources. + +The filterType parameter is extended to have value "pmdata" that can be used for PM data filtering. + +* sourceNames an array of source names for wanted PM reports. +* measObjInstIds an array of meas object instances for wanted PM reports. If a the given filter value is contained in the filter definition, it will match (partial matching). + For instance a value like "NRCellCU" will match "ManagedElement=seliitdus00487,GNBCUCPFunction=1,NRCellCU=32". +* measTypes selects the meas types to get +* measuredEntityDns partial match of meas entity DNs. + +All PM filter properties are optional and a non given will result in "match all". +The result of the filtering is still following the structure of a 3GPP PM report. + +Below follows an example on a PM filter. + +.. code-block:: javascript + + { + "filterType":"pmdata" + "filter": { + "sourceNames":[ + "O-DU-1122" + ], + "measObjInstIds":[ + "UtranCell=dGbg-997" + ], + "measTypes":[ + "succImmediateAssignProcs" + ],eparate call. + "measuredEntityDns":[ + "ManagedElement=RNC-Gbg-1" + ] + } + } + + +==================== +typeSchemaKafka.json +==================== +This schema will be registered when kafkaInputTopic is defined for the type. + +* filterType, see above. +* filter, see above. +* bufferTimeout can be used to buffer several json objects received from Kafka when kafkaInputTopic is defined into one json array. This contains: + + * maxSize, the maximum number of objects to collect before delivery to the consumer + * maxTimeMiliseconds, the maximum time to delay delivery (to buffer). + +* maxConcurrency, defines max how many paralell REST calls the consumer wishes to receive. 1, which is default, means sequential. A higher values may increase throughput. + +If bufferTimeout is used, the delivered data will be a Json array of the objects received. If not, each received object will be delivered in a separate call. + +Below follows an example. + +.. code-block:: javascript + + { + "bufferTimeout":{ + "maxSize":123, + "maxTimeMiliseconds":456 + }, + "maxConcurrency":1 + } + + +========================== +typeSchemaPmDataKafka.json +========================== +This schema will be registered when kafkaInputTopic is defined and the dataType is "pmData" for the type. + +This schema will allow all parameters above. + +* filterType (one of: "regexp", "json-path", "jslt" or "pmdata") +* filter, see above. +* bufferTimeout, see above. + + -- 2.16.6