From 7956bf42668f14bbe2d19745f05fdd02d2f4ef57 Mon Sep 17 00:00:00 2001 From: erititan <elemer.lelik@ericsson.com> Date: Thu, 14 Jan 2016 08:38:48 +0100 Subject: [PATCH] Update to R34A --- demo/DIAMETER_Types.ttcn | 2 +- ...rotocolModule_Generator_CNL113462_1551.doc | Bin 387584 -> 401920 bytes ...ProtocolModule_Generator_CNL113462_PRI.doc | Bin 147456 -> 161280 bytes src/AAAInterface_3GPP_TS29272_940.ddf | 2 +- src/AAAInterface_3GPP_TS29272_950.ddf | 2 +- src/AAAInterface_3GPP_TS29272_970.ddf | 2 +- src/AAAInterface_3GPP_TS29272_a30.ddf | 2 +- src/AAAInterface_3GPP_TS29272_a60.ddf | 2 +- src/AAAInterface_3GPP_TS29272_b60.ddf | 2 +- src/AAAInterface_3GPP_TS29272_bd0.ddf | 1067 +++++++++ src/AAAInterface_3GPP_TS29273_840.ddf | 2 +- src/AAAInterface_3GPP_TS29273_940.ddf | 2 +- src/AAAInterface_3GPP_TS29273_b30.ddf | 2 +- src/AVP.sh | 0 src/Acision_Specific.ddf | 2 +- src/Alcatel_Lucent_Specific_AVPs.ddf | 8 +- src/BaseTypes_IETF_RFC3588.ddf | 2 +- src/Base_IETF_RFC3588.ddf | 2 +- src/CLCInterface_Vodafone_Rev2.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_850.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_870.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_900.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_940.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_9b0.ddf | 2 +- ...plications_3GPP_TS32299_AdviceOfCharge.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_a60.ddf | 2 +- src/ChargingApplications_3GPP_TS32299_be0.ddf | 1860 ++++++++++++++++ src/ChargingApplications_3GPP_TS32299_c60.ddf | 1972 +++++++++++++++++ src/CreditControl_IETF_RFC4006.ddf | 2 +- src/CxDxInterface_3GPP_TS29229_6a0.ddf | 2 +- src/CxDxInterface_3GPP_TS29229_840.ddf | 2 +- src/CxDxInterface_3GPP_TS29229_880.ddf | 2 +- src/CxDxInterface_3GPP_TS29229_920.ddf | 2 +- src/CxDxInterface_3GPP_TS29229_c30.ddf | 375 ++++ ...terface_Ericsson_1551_FAY301_0059_PC26.ddf | 196 ++ src/DIAMETER_EncDec.cc | 104 +- src/DIAMETER_EncDec.tpl | 64 +- src/DelegatedIPv6Prefix_IETF_RFC4818.ddf | 23 + src/DigestAuthentication_IETF_RFC5090.ddf | 2 +- src/EricssonSCAPv1_1553APR_10148.ddf | 2 +- src/Ericsson_Specific_AVPs.ddf | 2 +- src/GiInterface_3GPP_TS29061_770.ddf | 2 +- src/GiSGiInterface_3GPP_TS29061_810.ddf | 2 +- src/GiSGiInterface_3GPP_TS29061_930.ddf | 2 +- ...nterface_3GPP_TS29061_930_QoS_Detailed.ddf | 2 +- src/GiSGiInterface_3GPP_TS29061_980.ddf | 2 +- src/GiSGiInterface_3GPP_TS29061_b90.ddf | 219 ++ ...nterface_3GPP_TS29061_b90_QoS_Detailed.ddf | 360 +++ src/GmbInterface_3GPP_TS29061_6f0.ddf | 2 +- src/GmbInterface_3GPP_TS29061_720.ddf | 2 +- src/GmbInterface_3GPP_TS29061_810.ddf | 2 +- src/GmbInterface_3GPP_TS29061_930.ddf | 2 +- src/GmbInterface_3GPP_TS29061_970.ddf | 2 +- src/GmbInterface_3GPP_TS29061_980.ddf | 2 +- src/GqInterface_PC_3GPP_TS29209_670.ddf | 2 +- src/GqInterface_S3_ETSI_TS183017_231.ddf | 2 +- src/GxInterface_CRP_3GPP_TS29210_670.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_740.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_820.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_830.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_840.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_8a0.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_8b1.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_910.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_930.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_970.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_9b0.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_aa0.ddf | 2 +- src/GxInterface_PCC_3GPP_TS29212_c52.ddf | 2 +- src/GxaInterface_3GPP2_X_S0057_0_300.ddf | 2 +- src/MobileIPv4_Application_IETF_RFC4004.ddf | 2 +- src/MobileIPv6_HAAA_IETF_RFC5779.ddf | 2 +- src/MobileIPv6_HA_IETF_RFC5778.ddf | 2 +- src/MobileIPv6_NAS_IETF_RFC5447.ddf | 2 +- src/NGN_NetworkAccesses_ETSI_ES183020_111.ddf | 2 +- src/NetworkAccessServer_IETF_RFC4005.ddf | 2 +- src/README | 11 - src/RqInterface_ETSI_ES283026_241.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_830.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_8a0.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_990.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_a70.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_c10.ddf | 2 +- src/RxInterface_PCC_3GPP_TS29214_d10.ddf | 325 +++ src/S9Interface_3GPP_TS29215_b40.ddf | 2 +- src/SGmbInterface_3GPP_TS29061_940.ddf | 2 +- src/SGmbInterface_3GPP_TS29061_980.ddf | 2 +- src/SGmbInterface_3GPP_TS29061_b90.ddf | 71 + src/ShInterface_3GPP_TS29329_620.ddf | 2 +- src/ShInterface_3GPP_TS29329_750.ddf | 2 +- src/ShInterface_3GPP_TS29329_820.ddf | 2 +- src/ShInterface_3GPP_TS29329_a30.ddf | 2 +- src/ShInterface_3GPP_TS29329_a50.ddf | 2 +- src/SyInterface_3GPP_TS29219_b30.ddf | 2 +- src/TCOM_Specific_AVPs.ddf | 2 +- src/Verizon_Specific_AVPs.ddf | 2 +- src/Vimpelcom_Specific.ddf | 2 +- src/Vodafone_Specific.ddf | 2 +- src/WgInterface_3GPP_TS29234_910.ddf | 2 +- src/a2Interface_ETSI_ES183059_1_211.ddf | 2 +- src/a4Interface_ETSI_ES183066_211.ddf | 2 +- src/e2Interface_ETSI_ES283035_121.ddf | 2 +- src/e4Interface_ETSI_ES283034_220.ddf | 2 +- 103 files changed, 6637 insertions(+), 190 deletions(-) create mode 100644 src/AAAInterface_3GPP_TS29272_bd0.ddf mode change 100644 => 100755 src/AVP.sh create mode 100644 src/ChargingApplications_3GPP_TS32299_be0.ddf create mode 100644 src/ChargingApplications_3GPP_TS32299_c60.ddf create mode 100644 src/CxDxInterface_3GPP_TS29229_c30.ddf create mode 100644 src/CxDxInterface_Ericsson_1551_FAY301_0059_PC26.ddf create mode 100644 src/DelegatedIPv6Prefix_IETF_RFC4818.ddf create mode 100644 src/GiSGiInterface_3GPP_TS29061_b90.ddf create mode 100644 src/GiSGiInterface_3GPP_TS29061_b90_QoS_Detailed.ddf delete mode 100644 src/README create mode 100644 src/RxInterface_PCC_3GPP_TS29214_d10.ddf create mode 100644 src/SGmbInterface_3GPP_TS29061_b90.ddf diff --git a/demo/DIAMETER_Types.ttcn b/demo/DIAMETER_Types.ttcn index 178e07d..bd733ee 100644 --- a/demo/DIAMETER_Types.ttcn +++ b/demo/DIAMETER_Types.ttcn @@ -40,7 +40,7 @@ module DIAMETER_Types { // // File: BaseTypes_IETF_RFC3588.ddf // Description: DDF for the Diameter base types -// Rev: R30C +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/doc/DIAMETER_ProtocolModule_Generator_CNL113462_1551.doc b/doc/DIAMETER_ProtocolModule_Generator_CNL113462_1551.doc index e5341a7e62a1deff96d3ed469b1935874ddf8c61..c73ecab1dbf0813c58496e9792dbf7200e5d1b52 100644 GIT binary patch delta 61406 zcmcfK1z;4%-}wLCO|U`&1PB%&xQDm^#ogU45Zs+2J>0Dvu(%a>4^rHUh2SnN7OX%a zMH=A$o|U^xa_RSZzW+Wy(%0?Y%&g33W@qIt>BuXYM;^~IvshRPNs{)-yoi74B<T$E z;_cUO-@b{Y-Mop!9_+<a3{oWNw{77I<ynergXRxXxk}PUk3*ugwhCTTO43MgS#p=! zcWd9R<>{8EwY+#Qsa!p!pgb;8*w5d!682<b&HOv1SbuW$wDwT^EjzR6ONeQ)Li+qa zO*866v{!at+y8RLa*oqbN(>==IQ4j6M3SZ^lO!`g^(jf}MEXcy$s#>rjh!k>QZx$$ zSJBs=aN4b^Bq_NisYe${nw^R={Uqre5t)3Fbly&7D*pXXruit>msss)!Gh;fOOgjO zTUkLSVv^xIv+m~xi4a-Dmc>7FdTx;Z-kgdB9sik&n^UtUW*PB5kVZJca-Jm4{!!0K zI2G$(qDTR@HZfO}aK$17j{j!=sQOKpgNvIxm^k0QK@S&6YPXLaQs2IG&8?Q3E*G&R zKceTG+cVpE*}7t%Usk=S_aBOw>D_)X)^|XX%ILG&>mc?^^p)F8eVK|j7ym9%E|Bep zMd|Ow@+)Zp@qV}@C6~kwloNHRSfdKF11M&e)t9jM(|zRsLN_q$YEI2yn(wu?ERe_k zR$r0%-fY9ICu#Bm$=%tF@!|l<Q_?JvaB5a2VY>aj)hopke{;X>$?-RwI9=4cOp-e) zj?pq{B<arrJ8Grusbmfe2nz`f^$iNj<1J_OOI5wsfPTFr26nLa^~{jUmS=tWT~6D( zU~7idMI7Ea=7m^$ruMhxg~VGf)OsOx(Uj&otuMaIWh)qFEs`d`!#jsn2K!nqX>yx+ zymQR+vqq<}ttHscTEoq@o5B9pTyA-6%lXI43$XTeD{RXPu%>mlFBfP%<5t?17Z@)u z$QtZkDV<S;;2`f-T?ksRwZ2<s+XBJX_3i~7-jz>lUv-F8P8(v&3$Z%pg<89$weM1B zyu2{$k+k-zgo(Ti#!iIzigpX|@%IT#W!+XIhqYw7wB`<m`06_t>bQd;e%2q-<+c^^ zb5_LPdL~_7TM>U}MFOlj(%aV(pce^?x1m65uk>EFwFEjV5@g+%-o7Ctp7GZbY<2S} zV8$#Y*czU}*5Dx_)(8(DTV6=Kyin^g4_{keXuP~IYrYJDw!ARMyii~3qzpC8Jl?TA z4<pv0etN6}QdO`X-j~%{AY)ovLBDt_@wax$Sl#UEq1JX8yln*otPe64NpG&v2%Mjv zW8^{ut)(*MwUsd<m!M3Lbw;MrwlYTO5|jzH#$~b{siDEv5}vl$g@#z0dKS0sRfu(( zLtdzLm#3`{hla+>3$waqwjJT2Vb&#?ZR-s4wf4zuJB)efnCE9bnK`eyy)Zv(x~%r) z{H@ut*xESEKVBY(Y8Kn}!UE#u1zN9U2{6MPW__F47Ur-ZYiQQSW_ZGk@c73Ib6BwT zVAh7VGQoNWO;9GpS|M9WTbU52WkRi+vQ@QJE!6rYTdopD1BZo)E)$%p@{sVJeR_24 zpDKfQz4BEnH>h02yKST19c-nn%d?x|@bmSx_RpT**e36cZ8{D!e!hOz)7kUc${0tn zfBZ83)|_7XjQ#TS^|#javTq~6+TSbGw!F~|{T&ZIKi@#>9WQg(5${^&urD8EEs?`) zPCwtEczMCrF*%Cawi_HTFU0yFM@d^=NW8pIYt5WyQ~UXbT8reeZ!gTcIj4PJIA7TF z{Cur)F0<wRct@U}9$7y>?T`&i)u3aij{Q3J>X1YWP|iBkVU7OQ6}bwTd+FzIEs;By zkGaMG?L_J8<Cm&|e?WPs4eI9?AQrK$Akf;!+somdV_uN;fI}W(byzOg`dx1OavZ-7 zyAfjSMi9FZlGJX5h((H<dmd^m63il@NiAai&D-0ygw}ige0@SvH3;xcatWW@-ez?C zwbKzxgtCNR5=;2|iroq}cFSLDA{L>Q0{oL&#OUFH+7TRLF6wW#g)hqnCbg__0t@up zaWVJcPS(FC<Sx`9*w-f_qEm_t-rAu^_Xza$4-NMB4-4~d)lWa-T8ciOc0z%C?K>ta z?C%#E66PPon)`WYq+sxliW9?S>%EEDi*yJ`RN6N*FgTQB)^XKAtuyUdF=?-CJv=#k zzV=~>meIBl5X|7OZz055e6n{C1>4r|-LP$?jswEG_UIUquo8|-X%{E#Tga@bId=@0 z(kZRgx*&UDV^eO9Rd>47j%y31DU~aA?9s7v_<)WP)$0ukuGg<)r>;ZVR<GQsO4|li zDh7u7g(lhoe_|LEz@TN1VyM+`u2&KNw(TPl)iNL~IMmnQkFnQYJZwkX#cS%wLDm#6 zn<)W-JHlW7QpnTWEud<>dfts1dI$LXh*oOi=kF7&E|ujX>Ni<V>B`#xYx%eJ-E8@O zK7K)3fz1A4KEA<zEaK<GoOdCAU%$ZOe*S9xG;*+7S(dA)QLgfLHU0bwyHPD~QLoeu z%2%r1xS_YL{>4QAit7>ZE<a#Ezpm{E4(MpxD>mUD;;(JOFTlrF{V}85R;`*&UaIEI zBxg?HRz4!4V}!SL)U2$LO)|+p%CdLl6;HXK+(aB$ZWX(P_v_rXmv{L-eR_255I&%5 z?_T}A2X*Y%pBZmaQSYwe^wG0pFIvLKO&nTobvh3ArVD#_q91s73GeUSzGKH;-r-_9 zCA~#YEN1jXiu=be-k<V=Iyx?p+8VwxgZ1!)v?-0wp4#d+*(;^dS+qBv&iY>JhSn`p zveh-q*`oCiy@lNgjK4dH_ueuuTMDDMsNXWnCp`Q!c^Asis!rqD;_TVbJ7b`qdM%3_ zp1yYF+I1^=H|pB6W4L$i-Vq)9sdci-3)57sQlT=cmM>qig8C+_+#^MBabLgUzCmh- zY;sY#PUMViaz9zztX5ZLFL{lnCJzK^A?|(L`#107o-?_7<;|7jcdu-_vT?=6IV(1< zxVufHj3Z?jDZN%mS(KEcT)JJCx#3JHr%yS`vrEbx2c*U+Whq0ZE;)h=N_v8CjZmpe zN-39Cx`kdkVSZJX(pPtvySs#|^Kj`V?)l<vB9-l3zD!--`>xP8rq;_LXKSNxs-3>3 zgqvbZ=@O<%S@kU>OsDL3o?X@zY$mm-!R>W&twL(lYdNc2bahTyQB!)$YgN~La+c1Y z-#m<dc<R`x9S=`MpZfgf^XfNd%3LF5k}c(jhvGh7-^*&;dQ)E~Th`-omfL)Xc&Kl= zoJwU2uIip!&Q`|^yS~OoVo#l}QQv<aeI?wQlqiPk=G<~BKihUB(TGIjpIbsIu{sYy z$&yc=t-2PF10!BNx_|ZluUGG1-T!L;qsT{V_CL~67T8iI8!01<6r)e=O&+h(TA$J@ zS6a_;sDS!MJ~^8ueh4b?oa~=NkaUCVVLzcai>;GUcj+H0pPP>VpQD;p_EQ53$ir3F zLUOsDaqk{pdw1;J!JP-!>^!*h+Occz;@+u7%4A#0P$Pv7WBk(tQG|olc@^~vY)Tm~ zgzDP@@%v3dIh(&3w121=^>W@fY9{I%`hEqcNNT?l$H(Z8K5Dr_@&MJfh+NI`?%AVf z*N<P{AGv?c_5H{9KYI3Pfh}dSkut)TVur+=>Q!IJ^GJt7#-aD*)N>qqkJ+*HC6_n< zE~!QH={Zgo{ofu{)e}X|K9)Ia34Pbr=<V&;A$`<pMdWs>YcaV|lh?oBJbCj-<dOA} zM<Rbe`TNb)H|H8DlWZwJ7%677>{Gqz(zqvVI`v@jM8}qgTf$Oi49!63J3NPHYzbSz zS@rCdckF0V-5M@ZeT3IgTjr3{)=AuZl0Jm>>SWP(z)6cq#neW{<XWn$j~o%N$IUxF zj~+M0*1v`sJ+7CYVvJ5B`1B!R&Gb!*&n5oppd6Dn(UKh{uY`Npvzp}E3;nC5aW&2o z$@K*jmSj{igPu4(j^WhKi`tm}-}Sypde?C5eMQv>9}z=ed4T1^yAKbqeK_{PK9-T9 z8Y#wDM#@klMeBHa#QyO3=ZN*y^Bp&AgyemC+ma0(FExmX-T?>e1>!CGKktC{h$S`B zeNM8mlWda`>HuFkRCV>2$Hwb-|LsWEHdCVhWJKq8J~sHLp4hRuULam{^d^bPkkq0{ z)+>o~#DCY<y6f9_+%q3_tiN1Lbq$m!TK<iZE;@5kRn)sqLp|Sd7mT=G>&ORA&I4;k zM_)yAy<EIi{4aaoe=+9W(L02bae^^#VxWj&usri$>3ik*9L4!4csy%TA<{!rwYgp( zUTpNfcP2|xi<;5>pN@0&|EsfXZGHQWd*;)HA*d_nhRVw-z5f03;mFI|*KS|9cKh1j z5C0yiMo#!W@^B<6Lv1PDNMVfAtF+xKVU^T3p^46_d$K1i<@~H#N-yWQga340n)GF9 z3WqzU>}eBp7<E~0Idedw2<jC&s5g9qMYOA|!mCTlN}7rsz;#g%b4$w`Ro60dx`+>d z#{79Z=Fga@{ZStxKdg!RuwSGsu%%2kQbw35#@RM+E-f<gYOL?b>YNE<rl$E`&Q{vI ztkp|x%#pBE!pJ&5QMOD}eZBXV(AO7lfByNvPSj=n)O2O!MXGB#*{jiqr?)<w`fzm5 z(G7c!?zwg9)`vA8R3l}wEoG>YV!vW@IEBv6ov?!HA7v7Cum#=;OC=10UcDT8x&KA= z9K)CJvQ4|>sF)~{ddn=+Th>WON))l;s#iI2Q&~YS^sfwF$@l_;^TBIk-lXEB$0xO# zqr99t!7canJV`C|za6&zyHjR*efy4$=A#y>AWu|XE6K(Fl~d-R0!dX-kISe0Nkw$H z`lW)LvUQ?PV1`Ct{+p8)`RBvRvEOM|YyZXha<slxCtZ;9WwA=~NY%B9T>4+>a!>gl zkMl0qP0w+%6MAS~sb4B3>T-PwCe<EhToWBc|LRrRJH0=|?{cN9i2L|za=Cw{%QY*S zR2B8O+~ylm&Li4J{Zi#Wce&pRCtm*lzRN}ETXoXfbh&cXL;!32OAkU$7f)P4edw*F z=Q!C3J+v2^7fWi<26~Q@MgQM)ysLVzh~M$5)esLtYRT2OKy&&aWP*4&GSv1cq}%T| zIfLr4D9Jag=td3|QfJn7IDaO(Kd)QEl}8h<JQL<2p}vlCB@(W~`PucDPvWp9(d9B2 z&(r^nVXlh4S%)f`yC)S^tJM;*t0Q-@{I`#5H~1&6l^z!#J;%w0^?tU^&tb{(#-|7R zqJesrlSR#bmiPgX`lgngt&(~DmqcKVxc=wiQ9Q2gQb(?)y4K?v$N#^_wO&C<br3xe zO9LGO5ibsT^qi(n0--OuDj@Nq|6KJ%T}r!5OX@jCA$|Q$wx2kJM$`DH1L}$A91Z@Z z=N!{Q5?4|0CF%4WCp)JH$J#tNsYN~Y94CvK9V~JEoJY=*=-S5qP}5mU=({#w?-KC_ zvPax3262Ni4);)$Tbv;{0S_*h+hQX=p$b>(R{ZA8Ma)BH-Xa+{1G!L?E5b530ADU? z%jZ?!l$0x~<?_m1)bowxfofE+oZPz1)m0taSRN*Os$(07rvpu7UrS0hmI~h?AM&FB z3ZXEHK<rpC6i0Q`Kuy#_J=8~IG(l7JMG`|Z19QA*)E4bQwv_0f-r!%uwDxq;YI;;h z>G_UPHO6SyB$qVXTVF$&34HB3;dO<xX0$hQqHbYH+;tL<R^}M2SL{1|t4=B=6%*0x zhyECdK^P3tHGaTQ%!P`1m~Y`_F_vHje#S~1#33BUQ5?f@i2ijFr|=Mu@EA|<953)1 zZ}1kW>3?b9hO|hB^bmbC11uSN@r57$jn8y?mrmR!dffgj<)lM&)IP1$+jF2^z)6qz zSklR&+LC6ENZgExnpzt>|GN=jn7)0-J@XL(^G5(e5Q@_H9%axB&Cvp_&>C%WS@fZy z9dE)h0zblnkr<0{n1sogf>l_JHCTuB*Z?uSY{F)o!C9Qcd0fOLT*GzTz@K<+aemd6 z@X-FpBl|&_q*_C7#}0bFW3-GT`^onaNiAwNq`r!--)rUKt>XXw$bPB!U8hI3h~7KA z$6xq>j}Qa=XZ(%KjO$sD71=Dj<U}syMLy(5S(HP0R753IhB!-9MKwgABRZiox}yjB zpfCDiDyCsNX5uHzf;iL6hGh;f+prz~#*tmWeBw6IkL)YuoV2Rrk=;};5U)A)MQ@dL zvgrTABfGV}eaAiX5dqtQo!E<gIEX_yj9a*kJGh7Yc;IajCwNKv9p?ExHRtp+$cOwW zfWjyOan843B<5j0)?qz1VKbiKDI~57WGG06_~+*pOXe?Gv1EGC3SKAvII%CpPsEQC zrL5Xlc@9?8Vyu5ZhELtZS7h{@iWSwF+mr(8z1DIX^<E1(x$<iT^+^jkxJ=Coi5vU> z{s4^9yO^^Bu%M`Ta)^th<ye9J_yq@W7)Ow?AivxM9}6!f;EMnR;t8HY;z^DS1<Axy z9kk|tzYPXqFeYFkreG>Q<8OHIG$R8tA`@~TCjt?KV1x+6c$tpa*DoHvxbcvehcC|S zlcV}1QcK&kX8Nd2+T6nz1GqNm9xi83##Ko1Dr#i7Tvh$?lu|(1URfPEN6x4O8Ph$L z^!KGIseKwNIn@WR<&^625wdqJsd#z9Pz&$y9%?>@2Oj&)LJ1xRtsnvxYCI95R-Wu+ z4Kzaq?%H4DG*1r#i>n8R$X;rl$#OyU{8-sdZPl2U^Fw%Pw_9;j4-b*EsR!Ed;&qj` z_6#joyjT~zrctllR??~M+sb*=^=;+G>g#cGI`zU9(q46uJuMz0Myc6k8n_`Z@*xmG zD2?w?24xY*Gm$D7h(VZvnfM8_F$YI+6SwdV?-7fS_=I%aXy@XV#5<%jzj4J(Nt8kv zltnTwLQ^3%(jx#RQ5u!d1aa?U-rsy56BixxKJIkfk+|JQc-gR2ow!t8x`Ejd;(dSP zM-A^RXU~$nS^Q%$hjxU1YNFoiEazAEc9yfMx7x{G%FD)jvnCIh3n=RwsXpOynVg&> z#aG;livWBN5rnE}gDu6?@NTqKk@lj68u8Mn8!z8ams_Qn$r&V~VB@)amHcX%j&dor zQU`gzTC}ZPFoTqA3kz?Bh*(;pGD%H8Ub(CO5g`{=x;8PFIqD<wMASy16i-p=U_bhD z``-`Ku?1y#l2F!P_30u%QwBBFm+vYcEm@ZI6*z+`0sKNIx64~lox7{|h=nhAdR=h@ zkI{{W*b$;`Ya|yI)ybySDROc*d5~-o4bUG8xHj92WYswNR%fKf9UQ33jZr=J8KW>7 z3$X}`u?)+x0$Z^MJL<DM@;6|FKzsDSP>e>uM*P|yzBJ-jIi<!_7S$ostQk-j;n>iE z>oXk19ZYOVfN%=G;;%pd;xo0oe_r}C=6KAG<GlR2PWxGGOxOK6m!BDbjvYR5_}Da= zy38wgmM>0<)|cG1sXB9@+(^B2S;?3(x7LToG*e%8k_RQ%JBiw^vz)1^&kh1OfFNxt zDM=klNzyK)=PKuWh-<7TXjg`PMi-36BJ9L&Tqw(_4I9fbD!`oqx<m!F{%*xf9|6n* zJ)7F9C*AFE57{k}mvVBq5}ZNGA+Vw(H9!aafO!b3M5r(X6)My2RXDg%v?@2NsD@rx zj~$4@GbpsNE8@4cK1gYM!bs&7xvZDmPHr#yz`2@S4&w_-)Z#h|b<h=Ku^3CC)aF1( zPxQiAtiw}0!+Z3qBT2n65sR>?j{3C^-^%{pLcQJk%H`F?{g`VtPIg<}SC(6BqRde| zz%!(#KjueSG)I37fr|aOi&XSMH>8E=w?AVeT<Md^kR46ytE2kyfM8}nF(``zo$VHk z{Mb+C%-)m&^RNw~Gv}bw=EgXT$2@Gq2}I!q@-~#DM(BsBxPTON@=#PkYlNdiqsTUc z<P~z04!r4w{rCk}a33G=32QkZb|Gz3#&K-NX++R@EqH>b$km))fO=Tf+;*yQQ)$3# zk@JVho#i^K$Xku;$isn@7v)hMH82xDK^$y%Ar7w7xQj=vI2pI$QoJp{`;5xrk#&a3 z+hvPcs2&BH;TWzVh{9rl8JLN6SdR_Zj4jB@ip&+dwxd~)H=K&%dz3+0R6s>kMs?K1 z4(tnO=qTHsV*}060xi)7ZLzikXDz(O8#ImJUI2YC2G2W6(kpz5eI5Ha_Cf58*z-4d zImz4Czr5b^3oo%N__-0Qiu5VNr)Y0iNc{8ChmK~WWM6g3RXKTz&xDmHDC+zXa^95s zHQ|Wn`ZZy?fn04!&GpkzrGes?rHuiI;b=~uL&k9AD=IjF{oZ8kyV&PK?BB>vTyS6$ znsg>8T?jJTcjW@O8$ARO-MNhF!95F-_vE-jy<W5&K4EZgdX?C5@lPE-UQVxdcG36U zA~*jiH;^qN6y9tikFlxU#^!n%o2+hZ_Mx%qKE~$DvHAMOZX9A-k6mdGu}cFn1@n=T zUGqQ&n7jIh`DE-WyKIp%Gm`@a;e)zphE5oQH&Ccc3S@$)Uv~^d+-vRUaopp$8*yhJ z#~tMDwz&0i2OqDGTQXyWku3`G{-7QP`)i&|UCyZfqvR&)?oo0fb<rqJkY9(()ly{1 z)TL~(;*uJES;=6wnvdAtD6GKGh{8jNSQjPEWl#^za0FLy3$GB~hocH-@DOYJad6-$ zj^Q${;3jV2;Xu}lF9SJAer3je5W@jHkO6xJGw2Ut-1&jQ7H=P4JF|cD`o+f2nYm}y zPhUR<;%A8V+Ic-KYW`E3jggBe?_22Cz=K=py>!nQ*<F1yifgF-Bji--;gNE7wdx2t zNKGfw)-+b!)t)2d@6^<z<UCCah|V<x*AQ$}?h(_beF*}(Q;|abIrxxo0HXsIVi9hm z5%p?}*_cM1no*}cgSC@F<kYe90J(-^E#Fhi149WBwhm(q8BVxSAMLOoZ$@w>VPV7_ z$u;>XE;}$Dxkrm3KR9yaczL935%HRegE)kH5NprJnk%3t`eHS9Lu_p)b|DHE@DP32 z+H3g#$jF5u7=!b;3KzEQj?U<ZL1Q=|$4KGQOlE$<a;(5Atj3A4{9OxNgglO34;Ogh z^}XoV_s*Treh!}#KfAS`t=j9_bBoWd<!A1>NkiA3<Bt(!RJShYbBUFc7=!w@)LZw) zByLh)Zc{Skky7a+QJEq#V^MIU#pb1vIYMPq!^hC}Eyi%m5jsZB9Z)RyXfEMV7d@~8 z@6eL{PR;%fz)ui$ID_c1YTxm)S0on{+hupNR-#6E$3?m?lGDh_A1%4KEuq$&ChxL{ zD&{~=<VGIkLq$|VYqUWx^hSRSz#uHeGAzeF?8jN0Lo_bpGXBB`e8E>_9?u0YvW{mI z%E3%dc%uR;qXuds0v*u_-OwF9F$1%pVji~P{mYn_F*jevL@{|8b7cF=m^J#`;v+9( zW@%|+Zh~!2J0h)fUDK)V%XxnAb36TzoZnV$w?!_b%xI%7+t079iL;F|uC-cZ5+7bf zZ;^9)4{H_wPDt|0OQp=94K$<tv6U^#?gJ?xA||4B$t<9>(F+`tcc&p;L`p;`SESn_ z*^Mu`wbirFlTH0Zd_-J&7}=ifY^!(cLAr>Gh{s+d-#grvZxQj?jva`^9_+&%+{Yt4 z##elUG=VEOBtr@mMltxoA2m@6wNW1p&<KO@1Ac@B^Duvc)LmM@%u+1F3LM8NoWprM zgw}w!FW!C`b5gXCHn(5QZC<%~(Y$Gk<}I2uyx;I{oj6p6yB20t)_<W&f5*ci4{c68 zyj;#)TNH@*89ED93eU-TOuOSa8)3BI!-`wQw+hJ>bM{pl>8z5av{kx@nVDBPs*iNg zJ4$4G(NXfKQOh}dX&qxzc!G{mXfMGOfffNyKEXKrinO=2jC*n_E+Q-<+t4f!*uh?) zAsHgHBBaaB0%aoX1(uT`LMlS}VuH#M?j?5<f1hNX`bU)Pt)xq<KFB3!OQXe%!M}S% zwT`x>Eh6xb@C?uK65mZ^WI-C_M*##Q1SL@l-=i(sAsj<748t)Jqc8@muo`P{7)Njs zmvC(&hyQhEZXy<cAr4>QIf-!sS>S~n$b}*(jS8raM&Nt@@19)0aQ5)o3;c+=UFOVs zJ!#pK3uotuG#)PweL{0jtxJn|c)E%iy?w=u*1jXV>I1-_E_yrn=&VoMcTx|}kqfBv zw#cROJMDpz?+YV@B7CJM8tr}69&h*3WQf>_xQ#Xo-0x&-5ckn!h`@=U-7pJ0>ufJ@ zgA5Tc5vZJ#j7_}jVlR-Bh=@pu2vySxC~}%^gUV`uqo;esm#%uzL-KAnN{ATtz>G;r zcO5NQTGyG}&D_owi?&J^5&sBuGS<_R>3B@QL`=hU%)~D2MkJzf5tncc*Kre{@ELz2 z<75t4cp@9JBL~W%yoHwvXo*&6jc~L_1V&;ECSnp+;IEhWuV4Q4`sM4#_pDofeD3n& z%a7lmu>AONbEdC0^Vj|5$IZ(%G1bS6Ag(sK;n2_Dj2Y_mIh+`Z_Ef#+$o@+19^zD= zTP-z-vv-B%a+Y8^nfA~_Upg}v<l53AmimaJMb$Ql8R^<+lALje_p0w4C3o5)Gl+zU zo`~EHv%zO~HydJ?`wcQg=tS7OCL29sNe_DgFRCu$RvsP90&9EP3v?hu#7x9$y;)#; zFIxeN2;R?FiM3dV4LF4}xPWLp!*jgAYrMgqaG%0s0i;Jx<V8Mwk1{BWil~GtXpfHQ zhVE0O+R`XyMq>gdVlwt&KYqbgBtC(NlZpKl!Wm@VlphE6<0>snH=4(-f{(+HFW%8G z+=1NsA)3oF@jl)ugdCCPB!_i59S<DNNG=r6hnI$Z_2Hy?pM<B6vRuwP_Asf?dO|0{ zEW-QNY?ohp+uFtbEg2%dBA%6}7)^h&kG();GDJW{ASX>p`VhCD9isc%m!8B@BGMwt z_x?vqx9(?K+9KNI8m{9G?&3bAsa$14L3Vhd7>dIW{s=^4G(l7JL0^o*XpF}MOu~9> zz($<FNt~L>x#cV~=MaS$JjWZn#dp&<$srBWAw4pnI7%Q8K?sK4vCbVoyzB6Ber_|j z-Zr;XOPX{0_~FUM++l7(q|7er@xqE{O8xNn7_6OB_@E>ADLIq!b%5Rn-uJhkQc5}P zj{4%yxuMf~hS5nSzk5b3MH~aB8V%pMzaIQm4DF<g7>f8!H1qoour-eRL^4G1MBvVw z1%?f@7dTIb2%HF*$24OL;|AFacn}#8F%hMvW`P-lZ3QeMbahb=_0bqj&=k$k4+Ah1 z!!R3jFc%B35R0%Fhj9c)aT|B=60h(Uf8sr|PUlpC?9*xgKxTqa8C6gNHBlRV(GUGG z71OX7ORxezV--F=x%KhZ$7`n#osPV=G4fg@vx_6I&AP^{HaEdGH(Z;upD>h4!}V4! zIZU7W4%N>U1%A+P3nz0mX}fw%sU9t?<W#(ds2TUmMbrA4K@!1PWJY)X5L<NJ&B%zT zyfX{@{DZx~J0m0_9JQt!4Y+Bjy+AE8L?}cUR+<GOhuI6PBtyjD4B{v-UP&%1M~17O z7v$#_k#X9{Jj?VE9wQci;WPfm7v!G7jV1D;G`>d}R6s>kMptx0cZ|h2jK^e5!8B~d zcI=oz>z-rgJfd(3mvI&E@d=;tH!{xT6b?^hLw4jqX_Q9=R75Mhdvxc<`5Slm5pzey z%&vELZmbtG%XZzlF-M<ScIQUU$+lV1<mNy9cpW}UZ}EO3^-IYv7S;DP54yB_$u>Xg znT<x+4*rm|fpJEtM3^egFk0*42zz5xB16PU#AvEn;P#L90#nHlK@tJFVitI8(F?p| zNFZIrN5sWzrm=<BBke2jA^;*VA|MfFfls4s1uP;$t<eVU(E%MX7Lza;Q?L@Nuo~;J z0h@3R7jX%f@e;4_2mZu6#3JiYv=p)<5J9N?6HQ))nHs2x+USdZ=#QzGhUu6EE9PK3 zc49B~VLz@w8`SSzyl32QYIFLv!qS&9v$aPDo0*%W-GSZ{v)a=g?ODO*@p==k9Ov+i zV8K{DapoA&*roMb!tp$*iFZ!-kD!7gXd+k}%_zH!(WAVVW+Gh#O9bh?neR5%)(Y<L z$q-Qz5vui*(T<tN*$dPnLqtbJX0}-%_jr4O*<^^&h;ZC73lyE87oewDNWY3}xP{xe zi_eIIJd2YzT;PQq$ca42i~Oj7N~nRFh(JelLU;5)FHFY_%)~mZhh-lx`*8?|aTLGf zAs*oizTz8PtURkgauh@%lt%?LKtnV|Gqiwtm3Z`JOr-5O!$xh6q~)UFbH&_dcCME8 zGG>a_7sLT>oQ$XH?fhVhKD{<spPrkfPmfL%!+bHd%pAo&yyx`Z!>wVwo)CP;2&+OZ z^35_DGH9aS46o=3q>E6B5cV|l%TBVlV^1<f3`P8om<6g&wih@;hKQYrTQaM$g@#k? z1(FdEGjPq#0<EX&1tQr6BWS~zE;jQ!PqVGSA|l!!12Gh$;Bd^rT&P%xMOcDJ?8PA* z#!cM9Z9Kqlc!)3fip;Zl1b{*)jN<TtFY3=`NNB)JL-asT^g=)M$3V=5ih0<E?bv}x z?7==<#3j7IyJzq2T!}t$CHhJ<vsa?`i8)fXFu4-_jJcKO%=|0S$*x3Cy%Np9kV%bB zrDW3wc&}M{NAUPbpQfCtPrpvrr|+kUfxobN;BUF8IR9r&8?czFitvcA{BFj%?{r(7 z-G3*;j7y2xMoSKxVJ}dEeHTFy@fcth7&p^iU;r5+AR-uh%>pxivKQD(h8c~FbBs;Q zpJgjx5#f1>S9pteNHd4eec=udWI!hPBLtzSj|OOnrf7y1uwX34VF{LE8CGHy*5D-0 z;@lkC`Y|(4@Dwlb5^3jh{f_h~f}$t}U-+XYYN0mjqX7nCFlOQ>XhXtXakyVQ{W9jD zIkUr@S*y)tc^R`<%xKS&d5~-j2My-yty*oKK0T}I(<5{BY2+Mzx@orB>2Iz9o~KgW zjk|)Mt=bhp0exI4KoiFsAc8VdKM_n3$mV8?c+b{bL>!%@i$IDXt~T?F%(1nY`)V>o z6h#DInFRvp+6%lQ;}3`kHk@m;c^TDSpdlHJAVRj+EO26;t$;<uZx-fa9=2gSb|4aa za0hqs7e3%4;_wCEkW1z9Ho{O6rBD{-Pyyj+k6{>&5g3Khs#IAT%gjb>!bzNhcpw-f zUOv3LD_$<0Jh<`X!IPJk&zUxC&a^qp`^=fvMhxhAwWq-!7ON>UD4}UyEz%kwQ<rFI zo0@aKTv8pMLGjF|7kaqRo@sn&!_$JE)jatdDxR+D*OW>n<>mstsV~ge+BKb&Z!fjm z2N8j<TKL>#d4V3iOv-LIlFa~=SB>yDS!j!{dwD8jMqrFtpxq*SfiV;?BM@a4=(bod z@Q_nE`M=^E&LavJ@C+~T25<2vQqSXfh8xnu0~wGJCE$zdsDYZOi+ZS!2I!9g7>MbZ zfi5$7nT<J^3l)2D5Qp#^e#hU4!xy}J@$SWg%cn0tc=sYwn_vI##XN0hHglu(xfc&+ zzkAW=o!&YdSE!|PD0!4j%hh%{lzbj~YU*W1n=S2}O1+XpDXM<+P*N!T!NA=fN)2^U zVWmtushAlO5rz!&j7Au+#2#bE7}Pfl{J2yvP?T0=mqq<W-RF|uMxl|H*_V%BZDRwo zmg@y}a2T_k848#AMt-gpwiQ@JOyv1obHN3!$d3Xjh;k^83aEmrsD|q3jvg3?@tA-q zn2PC`flb(q9oUIoh{6R#&u8Gh!pv1%!*#^r3p^KahDH{6AqPIb{P^45%P&73d8y64 z{J2G%S#f#A-IpI{YV($tAA2%mKLW3;HX15)@Mp(^D+dQx4p-H?uu@1lvr4T|m@jXM zk6Y$uP?Gx|UTG}kTDw-_h4db<`)8xfp3WE4!ybHLm=9`Fs<#>|o@%-Mau(HhznnI0 z5i_VFpw-M4DEzbD0^&hA>1HseoB07N_57^#0P;m3Mewef`QNXywV=CW;Bqc7nz-s} zTLFuRTu$UdIh02Qv_vbkMmXA|10paC!!ZI@%*Gs?!a1DB3%tQwcrb)zMi!JpX?%|+ z3#ATHQ)Zf>6<VVW+G04y;Nz=@*Uo(0bLQh2=Hmai>fz$~(-+TQ{PER~-9?)^{Nq<y zg4%qdb@u(xa&Ao}Tk@Q?S>qhIZi6;fs>?!@0x9)IySGMtP>7cH3Q@A?&quUNX%5%? zX$zV`5&`O9Mza1ITO{4%N5=?t%eD3b@k3@5h;b+oKaNI$f$QvRh#y>|fU@3RAb!M+ z0yFFdJQ6lTn}w=-Ii;}bvxhGuFRkyQ{ZAfxix2Q}tDj0MxfQPs`r5x&c6pdhGumjH z)!M>d?!6oWFSQXL0gkk-!7HyDhig7LB%c(TPpXzrs@_Sac;^TjhLMYLBBH=X+a@fc z#m8bXmS8DXVii_n4bI{m&Lav>5rb!Vg+K5bZ;+l-s|Sjr7>dIW0jP!AsDlP*v`ES? z^<>64hu=LD$v2b7@y%p)=$WNzcQMmSyomd8H~nkKm9}Wdxq6|Zk~zhx&H9^x8I*!X zmpZU%ZU{Y!qrH$C7^0NXx?8i1+Noaeol;Lm8Zp`!mvuWfYAeyYtMP%27Ao5ZHsT#u z0Ft*E4>K08_2y80$|x@t-%Yllx;qAA(4t5hobO_k+-&PM7E$S5=#2pwh(Q>Pd6<vw z*nyqcgT2^?{kVg>_zNHK5pno}ulNS<#XOEf9+X09e2?;rrRq`zW-8*%qdSl8Ts-*b z&K7NE(W5()wVA;YkM1-UbCMqR``e8miBGz;%OPXLUSC0Jpj_RieyyNXQ_gNxt5sAQ zsBao8Y1Oj(`9jl!ic0cANAxzceV}G*fZUFC-e(4?%vM{V+#M_Y)htkLn_fU%R~eNR z6|K0~h;)PP_7#XqRzg=yF$=WXVJl#9EYOWYV=xxuFbR_}1yivJn{f)i;xx`93KtNK zM|g}Uc#0HDxYmLj3ZNhgp*Vb&NEM|L%=n@aVt>CDb?92uwW!#Q*P<3{Gt)Lk#f~7k zm-eoudE_(RZmKhl9?h%zpayrO<p{MhdAEAJhSExTw^PkiQ>l>R*$({($+ce&Q-{}7 zN~O)?SeXlEL^|!XMa12#iCzmMrhRtV3z$_C)he;XDDcIhfLW!+6c}O_ND*mUgGJO; zWHv!>^g&+?!e9)+514}mScpZ~h24n6FF1gMID{_CxL3ev%mQ8eyy(G4w=bPKa!A*a zLq-m1)1qOEsuDLraQx?~)^Dt2R*yGUa<yGls=a-L&^!N<Jx1pjc@CYQZ@I@So!R`J zN`i8>wjy0?t2Cqx%TkusBgH&h8nf+fW0h!M+o7WG$?QmDPefk)J&9M^wkHY7aZ)Bl z>_gVHS<E1d;2tzvDg7S3mAG2XY6Q0WQcfSs^Z*ZII%?UPY)uqd$-Y-F+LSYu8F-ca zO^8~i^8FM}bImx-@e3XswewR7?ew$OSgyIU%OV;|EVI^FZZp$U_!Xyd4(D+Juki+{ zmh+(=vLQQi!5eu{8C6jmb<i1I&=oz=3w^Kv3zu`jyOWt+IDwNmjWalhSp0<#NVkG> z8$95N%*cvhgrFYYK7M=mX4KuAcW)lLdvhm~yEj)oUUm280x?I{3?u38&9O#`hh+Pw zKN@I#P`|NkctD?4|3z)lSMgWM?pNK1F%8<MUqp?aq-0lJ`YPGd`bQBGGd#JM8<!y4 z_vvlZQrYF6o81?&5i#j)7WieqUZ5>wDCuTQ&YJlrf3dINECob7L@ctbFt!kVz+NB= zl{bUY#Vl~^psj#KM5jK&(H@=98C@|F<1qotupBF}8f&l)=Mjach`~pE!WVpn#MOUc z6hTE)LL)Rrv!7|^=FGIjWK6+ItimpcTZg^ahhK0PzvC%lAanbnzy&Fg65pXH-oJ_A z=g#?<H%G<Hj+i%VwG<K-n=`ZCWYO~OkUK$}Gp;=5AJ-ds#xZ?5?x;Q;c0_ONzK7MR z!<1s`#>QM8$M9{pg2sZK55+$lOF>--f(WJv<XW=@9v!l^fcsi9%t(GS3;c1|Uf>%A z%rLh2*=XdCN9+Y!5DGJd`^^H%F?)gi6cF(faZ9z*SVNlQ_5!Jlzy&dFY8LQ3p%)mV z?5;(+FGPMY>Y^U%qcNJG8OC8eCSVzsV;i<(HzKiDT|QAMXeqUd3m<%sCTNPz=z<>T ziQbrksaS>8Sc47Nh|PHa*gUe|+YW6GZ0&%4KjrStk^0=-n*+s>tsl!5PfO~kIdTT& z)UTo){gnf!)B@sQ-gHtwsDD18AIxX^D#7ke*=bQZQL#N{aJ*02qqj%Y3RjV0mGK#E zkyEPYVCA`c3idH2L|uE4seSvm<gfbD3pvI~H|x2{%&&CXzV=NN5EZ?N?^YWtsB=ay zU{Q8kjJ#V+-{C!6xtULflt_it$bp>5g;0c{B+8&H%A*k)qX~MW4@P1X#$h}rVj&h` z7c9GZIf+v^i*ty=Z}=U5BMxcSaIJ;($be!fj<?Sq-+KIvpQuC69`6)0hoYW6UZ*83 zc=mXPIWtz9`GJE$Z^iK!v|~*jH%CsZq`IIVp`Xs{N9gNw`uoRcMT;6oYIFxK#BQI_ z+je?mB}dv4-?3vNIwCUV%;+{dYY%@pGDK)ZSSFYS+Mlx*m_UXZlk;YQ9_Q@^&QrjQ zN2N7J_ZSqVbq|XO!1pMF3aE(6Xo*&6jX@ZU37Ckfn1&hn87pxB2N8t}xQr{fhG%#V zm$mc^WJD%pUCa2JjTtZa!5=kI3$4%^;b@NtjKGgjF%N684x6wUTOt0}5^;}jzK@I2 z<_^7&+iA|MGiR2VGuC9<9Cwj<^>2XhxuQ4Q=F9qY<t1&Z&fUZ>{CW*j@+mW;)x*Ph zh_q-Dzqc%g-n0RgsGEqHh}U!itQ}%5(e@UYPKFt*t7ZYWi}nInDPTq_`&wfSnJ?K3 zWT$3klscFNa$mL==s*E8L|e=PMX%TkY%$_<o2mOcV-rDFZ3QeMcp~!-V(}M}uVX|( zYNSD0ltd{sLSuA9Cv-!1^u#>O$9C+%F&xLQIE}OT8*%so&-L_#%<H)aLLn4GakSzV zyfp@4FeYFkreG?ra-Xko6X^n1<iP8v4{tnt%Fo%S4-cC&yR?}NOP)ToYI9E?PSmEO zc;$%Zno+#)3mMI8if{fod~NgjO}#5TxS@K^Q7S0cuIum5T~qtaQGAr6SM}q0v-qZ_ zpF6cNqtwF;bJ=UQFuV7lfEl7QW`XM0?FG(IK*UGH#%I0JPz`U`3gq!2E+sH`1NBEb z;*bd;n1+uVRj$Il)G|wyJ92CF+aASNt+`a$)#)Rd?wbfON}&n5<0tGvH2#D;LCueH zXn`Lf0v$wfmthBv<0@Vu*;YnsjK|uo>X8*nYc+a>Qb)YFsX2dEez%Br$q65nKmY=< z1Y(t9HLff!R+SIEAXXWJXNZHejVmsAqZ@kQ5gy|+M)4$KG*)9hHsB00?x1sda=SZs zCub;R*hM0;AS*&K8e{PnK0w}0$3g_UqbDZ9h5Ia5cp@{h!waP_4ilha9_C{Yeu=Ed z0LjcjT!(&b_~6Zr^T!WtKXBu~n*(C{hM)6#l5IwR&#OI$Vli(Ru{_m28+e4>Yq`=y zjeafX?9%yGf@{ADYl+%Xh$xE4iHMECDjb4{+~24}lsZ5}Pee@ws~D=FIR;=7w&2<h z(ZF8XZw^OVRx11k-!+o|KssVu3>DD^L!jab-b2J%#CR@t<02kG#97355|$zcA9w5h zsO}miTjcrGN`PGFBgrE4BHSX(BE&_w0iT0yh()`-oG~yEgRl?#QD7fq3(BGoTJ4Xl zvsU4^X+?9~z)jr6Jv_uCxUj+$NQqR)gS^OxLMRNe1Jz-L*pYSEfGyaH%eaD9_ye!; z4)4JZTcnKaT^oqKRWT3qu^l_G6ML{1q9(VH&!|lp)5g#~y#6ibH}UB;A5Wh>`dcJ# z#9Qr4Ek}QgS;qVv@yRvw<7327r~k7qbahwVH*j8Sc}JYrGO5)!D4CUex7GF=lm;on zZ|j#hzir@TcYTYT+4AUCf==cucAz)1@8_u^TA~$NqYYl+52W~oNFo)|zztUp(mN1? zj|k-Ur6qcx7ly&}FzZGR<gxG)fxhUEkw|%jLdc3j2t_$GL>pMK7?*JkUmzW23_=-n zL4QocOw7SNoWnKT$5X_<dh$wrxlviK+_<BEdvo_DrA8Z3S5eQOkoEwlCOktm>N5ZX zje3osF1L`6U5-UNc4Hu`{eULN*hREG&LDy0Cs<ZE8QEsDvO>0q?Z+T1g>qvhHX}8K zGr|+OPzn{%1A}k|m+>62_=GR`3RgBz5B1Rv-O&Sm(GOw=4&vkqo<%-5#km3B{mO<= z2KCVkV^RJz#{oRfFutM)ilP{bBj}8JbgL4iT)L}%+N#V^8s8PasNJW|fRjW4zu*K; z;xBweF}7C%i?9ks*-l9`Vmn`uiuH=^`5*#&&xzkOWoXK&|6PG>YV#|KTjY}MN_*K7 zM1f$`LT%JRU39=;OvY(M;|3le`&mXC_#*%nQ3*9s3$@V!y>SxfaTRw_`#ksE*oo-# z9Oz%7*xL)N6uD6v710{2Z~`ZB4@IN78plY?#Z|mT=Zl=?(Ebw53+XbSm!LN;BmY(U zllGm5SHEdL*I%7^b^YCu>#x+WJC#LBjYsODT}niez2`U)v11e2C$T@@qYZjM?8{E< z#fb|dqJ>p{ch@bFzfrMF_AqzzGTCBRi$trrN<079D#d6zRm7=BtM@9hM-g^kRI4OJ z)hz#Mx%Q8><t&sHVVDjPiYxzVxi9*1S12pO_5vbwoi6@|{haqi+g>NaE5ba?2z9DU z|6#d+r((Insc4SxU^dNqqj_@BEPfEp)Ca@WdPkM4YMCe=%(ptKtWct!u0E#7B}Lv$ z?7|hKxI*W@#u1ICn1($!=zBLgSz<aC;p$DbZ?qB|+2^=2Q?`f>5Qb@3hE>>)IDCO8 zYsrj)D1>4t4zZQeXoyB=j3#J<wit*(7>ps9ie=b=7x)vOuSr!U<vP6xJuwDjF&lHR z2#c`<3RTI8T4;;G7>VRmDf><J<VmHDGVBl4^ORCtc@m>mKBcr(y2j|k?(tJfX-jqr zidfV~5A?@0TtzJYf;%UxHW-N1w`m7-Mt{u50%X0zi5xx%MLYCBUsw=yml~qzJtB(% z7=2G_DUD%fDo)}OGTkSnXo<Gyi61Z*OR)(%5&D1-V+FRt|2GB~R752-`7QF+uSx+q zr>MyzJcC&y7iuDE)%upYwGRhosnT3w^Y>c{ibv^f^aJkWACV8vDBiM1YYK|$_k;++ z_FMm<D_dWSuAF~6Wp_Y?%o|;dP(?AlZ-m6&jSnk6Z&qJW<QgJU4bT}Au@>j?61fOa zStD2?P$EboFd`Tt5F!Ag@=ej<H_@XRbfP&#cyUvwiQ#8Ww9=eEoMaSguN9<IG98Se z*n*=-{yS%4jKwkpKBO5@9u?344H1s^7=VG8gN@jU2Y89(kGSeUKg@Z=iEtw`yKxsU z(Cjg1PaMZNjDEsnM;yi@C{L+9ywN#^p*kk==q06$T%!YfD)wCLt=Lnshhp!<o{7CO z_h>is#@3}hY%rLOR6uRCW&@+2MAo>X?3Qad+p^edAhzKGUg10Tq9Cf{IwGHODUOim zv<E6a7xDK}Z;3z8Gwll3-_x!s{bfsU%D#b2+5Q-SX_$^BSc(<+85dq~)<dC}99<}j z0jT|ookkmkqXX7pEq=iP<oSb2q7*h@BVPQ$8T2JHuaNUKA%!=}BiS1cO_W3_v_vaJ zpd<RBKZao(wqPrgza<!`fGUXlGwylZeLRo5sr_7vyA*XP?##)!U$)0R&l<Pp`SRy+ z+v66*EwIMvKU2k<IJM$U<$I;dTk(q?nN;<r;uglQ{Y@XyM5<ULllK4g3}-6wD}v(V zKQR?~VygYh9S<GaHSjYYI;a<0@Lc%x8{4l3rB!=hR+5>22qmN<4O9uWF%Fxs72B~3 zyRjD+aRpa#1Ku=7UerN-G(clCMGK681(Prt^YEu+`xm+7mXbkMm)%kds&~a*{lVKx zg(jj<Bt%PpL~5h8%NeablIeXszzc}h7cDJXxG#Q!XvAJvh-j@bo&13=H;2F1rTvwx z!*`T&vPCq!Xz<}igFa_kn1<|tCAf`r)S@9K;|VIfqhnwV?jZep8XrI78(PLv4t@Tj zLty*|29u8*&-m^WLpMI_af!TjPsuE+5AG=~Eh5D=8(*f;o*d;6-Dv?^TZlzijK?td zpo6g&kxcjD7H;DuUL!4gk`B3%50y|EP0$q0&;lzU_S~|Amz~&!-S`SoowQUX9n!-C zEg-7c9lg;HXK)sx+J7Ssji`EK^o9t<c-+H%e8S%l;YmYy(tqIK^kAkNx?>zf+~#5- z7U4Z&A!3;qjqoW}`+0QNn9<)ld%YHW?LsUsv7dO+N^5Vlx3P!0$FsV6s3U(<N~+Pn zDJ3l8*wPw;W2<kT>&CHFO>DC<W?&``L9}aD+SD5z&<%^Q1e>rEPY{C-_zGV-fIrHk z8iryxX5l0(Q~%~M6xJXb>Aw(tB>T!?k76i}5QL*Wx}hg}p)dMl2!`TEjK&yD!U3GX zuQ-kKh{9!D{VFw-ZZdNlcW@W?@cuDB_iiQpIeYllUVgUS+O}cat(CVHC-I~9d8iD{ z<TS3T<u@gl8uLoYY$+oS4-q;ME)gOT77>z^M4<*mWG=!Zj>8hO5d$A~P((r0EXy~B z3XDN>NtQxnS#ncksVQQR!$p=FVhcVC`r*iH<f40ukDQ(UYyTJjjr!X?B`bf|GqpuK zTL199?|9sLi8wuSvI{@38$+=b+i(YWp|EQ%$bzg0hS=TaXn~pd3Hz`g5AYk(C>Fg= zUeqTq8bj2t2YTWuL|wn&E3#8hFNnIAfFA-7i24xm=zs`xL?>)U<76_2+4K8Xf92=E zF74-6@!CL}UAsJXdF%r1XL;=08T?F~E0UJmqGmgSv{3P`Uw`ozi?nz22FFxYLo zTJfP$+&o>02kJZOl`)RLK+#x@TxDq~KA|={w;UnKiDU{{I*cDv%F<;NN+nBA&@#0w ztwIa}(#X<8T)+%B0^v@CaSlFdW$6!urK4lG^YR(_(#ui>4>|IudrCWPpw4Cy9m8Ru z7V+tZ?pOw~JKL}wJFpXxNXss!LlF$d5RAoP9K|slheQ=*ETsxN@E$3RYILItmcG3F zjO^6GAEHjxF#$gz3TFM5QpaUjjulvm&Deqz)Hx;cK*XU2YM~)!Kn#+9h@YpiPh;<k zKeTuM`2E;F^6QDQ2VxIwU%zy{@lGo=d;OHz#$lu8d7%_hTfE>K^4ni19y#<6JhO8G zbNuZT8ux3bSV_Go9t`rPm8Fu=(xTn%<F4aq%<okgWrD<Bu7ha3;<Q|D8Z1<_9uDCc zPT~_>Xvn+}4O&TWRH=i9ETzgIONCL#l2MlCLPaF@-~yuY4)0Ms6Ws(Y&=TFz14Hlw zCSe+8;uwzO60YC|ZsHbh;|EU$1Wd&=Sf=wb13y7T{%P!ub2pB}?u*@_{cMa~74JvO zJjd&~8;j@8nm%FH1Q9d+*orH3NxM4K{vHv>nD(ArF*V-le@0d6RV}^i07z-nfv=Ph zb@xNXlmE%a+vj{|?c75pw<UMYIu1>8oWG}GoERMja{b%c;&d6rv7&|aAt4PUVj`L% zG9nVgsMt2RXO^YP_yak!(1EkcQWexhe+<EN49dn)GmIA%i?An~ta2dM{m0=s_g{Rr zYWoYo@-1~?G*3&0x8YWV8$dTz6@M34d$GT@&1KQMuWMTKI!v2uVEL*Zd98$5#8=+* zW4}tP%f_4*Tl;vBSv21)Y{6ED8t=tH9KkUh#|fOmuW%z0A}Zd<jl9T@0;mWPt;U)8 z+jvcxX@=%#iH_)m1z3&~IEe=k;r)OdgxCyo4Z>=M`4IC1iK+<m1k6EPY~0)DPxPPr zPi|k~=f3%K{&u?ax6j``ef0FfxBGUy-LUNKBtAqcq+WWf6j#5z<Qp;cFhb?fLBu<8 z>}q!{<cj!dUlY_)wP=#6AN5*9d8hYa?Hx;+srp!8rfPrn##UB)M_Eh!3pVp05K|vf zxw#NsDH3!gDF)BrlAR+PCD0r#F%FZl53xw=#jt@+7=<yIh)KAFYp`7B<um?9(Hyc= z40TW!{V@Q8F&B~G?@1j$dtmQ&+t22o7ydkZ=C~0vf9NNEHuvh*!5B}C33b*Z951re zUA(u50l-O!In+hq%wIE;_!el6&Y?6!yi|u^FB>fW+Ok(Ae;yU-)5Ob)Tw5y3^1h_@ z@pqr*nOJyY#A>aLwJEzLrba67<Sr4s)0&G#nX1um`CEdE-ztG^@`<K7faiFPbVM@~ zMEI*ignT+gG=IPz?8AN>z(E|w5gfyDoWMzZP?z6gG|+B9H{D`1u+7Pj)u={%tDHY1 z?B;&WG3po93s+cX@LG!h4_>sPMU>+jF|$QZ$Kwvxri~-oVc@DTw&-(Wl+lM2k*0NS zt(+Elt(=%ksYu@ykW*KYDWio`D<kF{bF^T3ie4q+u@@p9mS1=g0XYN_kfRU*5y3cx zU-1s_@c|$437=6Qrz{mjD8f(@r4Wwx=!stFjXvm$VHl1P_%Wy4L>kG=C``drOveoT zgkw046ZrJ@mHzYW{-x8GP9Kcqb@QduOXn<|vUCm!m&S=?@ftb&65~z=@xLw-{|7aF zbg5V)4R_a`T1v$l8Tkmw%oSxyr5q&^ZD}I>Mw*xY#cH#(Lyq{p4BIxuTD0}jd-bha zv^LD-(k%@)$!4NRV>#Pm;=Q(*?f<IexXT$u*?2ouTHjF)3T^F7-}|oMme>6Dw|K`g z?1WbUT|+Nc+-%HP8tpHLh7^q`8q91Q5${-4?kgAI|4+*#K>Rf=`@bpTH+{xsO_fe^ z$;Yp&%KC5ig!8Gc_ylIrJGJ0DCAv;3v6fjl1he&&TwGh)*Tl_ll5grd=9H!ti>Wt1 zDfv^>78@z{Mg8=duO6@XOPQqXiBpSzP<B|PWTJDt#4AW_N`}~^3jz>`YN(Ey=#4(; ziv?JSJ=lwV*pJ`vJD%Y=Uf?Ctdeh{{hV1aN@R9?SP#INF71dB3ebEp7F#rQG1V7+M zh~-D(?W3!Y-ab0_=-8ukzwCH)ZZ%W=U4qwhT+02z#he)@>wH%aaatAQK!QGD_7QSz z-}mQ9jpI9KJ<sgOiF+vrkgaoTz0c^y7KfuMamVKWI;nSQbHzQYNv^%nzgh-YDd}!+ zTh2U09GCMI4O|1FK|3_!r4_=_5u$~84rKqg-ag9*+yBiQwfuOOn;DX47r))6cYUo( z?);(#eNt9tPhoZ{(Sbx~@uE#dAL#F`X8Ww%Rcd^Vr0=GX{T(~PAPNkI*&&89KMcb$ z0(u8g{l6+Zvxw+P;zS{*2Pcg&;*iMlE%NJEMUhjP{pfQfJGxa?%T1R{r!>zgkzZt& zb4vO^DL@L7LZncBe5D{MNUfjTrAHFUX%m!I`xbHO<uuVPUP*Oppi3VoNr@I+p2x}h zL}G%4bB82apGZouzF_rYwnXboB60a;*Dh+gWG=}Qtt06iIfIk6i^K%s3zh<$Mb%7B zv_-$vPSz_D6GUNT=|oWwNr~3yq?LlTrc1ECw`CHoPb4K;pOaP!R-Go+P41*7P7*_$ zwNw&`Nwr6ansknnmI_gwv{Z=mmNJtQL?T3W(o%Y2f*ug!{J1ic6Rp=ti-l+{mT0{p z&U#jeq$ej@uaib1Y>5xL5Y=fTIY|t4)^bTCCe=QnNw!?5)<_Aep(iGYM5yzYGm{go z!b!`8YR#Ewy-r8OP@_Q;t=CD*g*t1wP@{<wZO&=S5uwD5ltiM_MskuE=B(wCNKC5b z!jf#cFlQ~NCnl(JnDdr1lM{?lxj(ve)5htf(i5%SY5RpaZ@(~SXEZ%A(R!U8d7MhM z12RFsAWn(fFNs8_O_eCoPx4LNen}=eZ$D8y>6}DkrYN3h%p}oS``MG@MMA71(UE5+ z#*466fs>ZAC&z1lKXs<NtCN1=ke+DmPTEhb-AVh29Zb}IW@3W<h)$N^9O|cvqy$m$ zbJlixVuJORPnl?aA}P`OoV1pov)1x+-dbjIf~}WGooMSKDM2j#oVS#joM>MYjgfwm zU*hW#KXsW~qOChgD*vnVmQN}@eY!+z6-f#9(%)GNC6SoaG30MQx)Q|on@6G``b++i zcPqG*bWPE>intlctLCig^84J4E?HJrb4l(xipzZdKlU!=T)%$%_D!wET-KjSTZvUz zjWt+{b?WjuE&*9%nEgUwNBc=Tr@pG=lFRitvue7!E*V3`8iiI0-<&}dITsL(i@1c# zxPq&=25m1|)phaG_h&eBDMgytn7XX4%ehoDBm6$Uta?#Cs}8K^Vo5%Wg}!`KKQk}q zQHR!d>6Z3Et;|{pqon$-zDr+QqLHcgZ{RXY{v|TDfr}-#d|n+mfaR~Nv0`#x9XQaX zcfuti-wkwW9hfW=74cLXuXhQt<YP8J3ZNhcBLqcI6va>+J}3cS_`x3m2t*KqA?jF< zX&6eP6iVZJltEdDGUb_8Kt)ATQ*Urd?<*3klTZUSQ46(E2X!IxTQhBdhEQv5aPjhO zY2?giYDHVLLpa)_10v87Vh!p%meQMK4|BytnrM<C<o|%77>3~(fgfSPNJM7Y=n|NN z<G@$)=WZ~VSAYI6TCQU*v(#_0>tE{DT&})qxnnMmBHNvD33PGc&+x1154v<?IPhhG zKo$v=#2D%qnfsWFiyWCc%H?!2ZCU!iKUrM$aJLzt`kiq37FqU+%Yo3u8DG@iH(lJ- zH=~oeM!LJXw&MRubkU_NyCrr<+a+#O15`PU>)*yPD>f_k*-tH>(RDNb&k5H%YVUn6 z9%{NHE?$u{GrRh`%`N6SKrS3Pu$XIaIdO+6?#k2oP<3DpSBp|kQU4m?@}pc$9az)V zN$0BRI?7kBA31Qi(>0B79pNbtSNqO(EovD~k5A5#ypw4PrZ<?TWcre6Dy9-K_h6ES z>32*;H%!emlqru@q)JTPn2PS^&Qu(pX_<=l=3bxA?0I0xbO2NSlODP99W|!SP^o%( zHTxXby~TK_DOGM%yK?QimAo5u?b$KhyLRu0j{UTPzT`FT-?5)})q!0jIu`SuTZ16A zQ3uW?44sTH^il_^u9oBr*}$%-$j_>4a^I|@crzMfFc#x59uw58UtLQS7JY6$Zx>)L zRLp}&H!b4*I<+sw<vHr|udeq~{!WTEcuf4}TFL)C?_%*6KHwuh;WPe59KPTyzCm(P z|G)0;11yT`Z}j*q%P0yc2o^vT?5OmP4Ny@L6uZWP7%|bHqM~A5dj+vF_5k)4Ys4B` zY_a#=dv8gwbH8Vo{V(9+eeQGL_kHejO+Gur&Tre9GjnFnnK{S0p}LyVYp7fz^J68` zLWO6gnHE=GpHf#<Qm(5@WHvrxTBvy8Qa1^eDrUC1WNK+%xH?x1iobf^HMKS`97T<+ z_-phF(-8C2kEV(A5i#VW>99hJc>itXl#d@xdo?^=xU6=UmA0y;b}C+?|JP0mlTJ#P zrIylB>5$Yw3XvLezsF(efOLZABBVd1V=VWeGrU!wOly_>-dibVpG_O8nkmgbn|hf9 z`Y3g$s;h=P9Gv9MX9bJT3%Fk@Bj&J5J6|_tP79Bdy7}O{@5DY=O^6G`w0C9QwCQUl zc!0WG>KD`Nl^T;D#WD+7H(e{*y7^mVFp&ktzuB^bbDmlpHt#^57jeFlqjuVAPLk~Y zO;kX>s7Rwx{`sOB8IAJG7ZqYO$~RwBEfM9A|J(Z*qUKDHeZTqMB6V~BI(MU=Mf+Bs zC>Ntqp829G8jTWLpzagPX{U}xqI`3ux-P1;(I`Wz>!PfUMj29F7iDfV%8=^1C|N}1 zIqK8Z6-KCKf5-3bV#+9<pG`|Ed(^T8+4;Cyo>JJ))x*=(!&m8SD%W*(A^{qOg*HT^ zkdXSJP94Js#`TQp(<jEM<-4H+Vmd3^Oyz^*Rx+woo-A1*_e%8?JAD?2B=nK&w9~1o zImxoyH(~me_Ti3O5kB5nnCE|zS|6s-hWY0GP*INQKUDW_L)fK@cNPD{RQqkW7LwbV zRPyl)4e$;14R8(c4h(el3Gnc64e<|X=-R-?Cp6G2G&C?I)K3{|CSNmi(7x1Pd}2jq zR1tYVDIZDqTn+K|U*)<K7t|hS7AY!csZ*`w3l%C9(!S<9o3oN_CEF=h)^d_bSx05D zwOm2-&YqS<zGQI+-50IMRFqTon2K^LnyDzKeqk!gsbNe-`E-q`*f~66D$1u%Ohx(R zT~=2<bz~~arvXew`J`b=y|lD|sVL{xGo`$$A?;yCWSVnKOESI1v=q~4OiMG(W?F`+ zxnpLp67nil$wdBIos+~S{9=*BiAptFdA(|2=4D&?nM&1P`LmRqQdFM{6l1Gb96adP zn=Z4=Fdp_lk*D(IP-A(@NJjSL080N8bXjkJv7g|{zB+GMZ{uP59j89O|71K&zvtA4 z#TXCM??Clo9gT+>)`IRQv@srLSPQza=ElPeTefavX<{tQBiEL#3#)HD%&=wa!s-|g zGpq$&n0Bkpzt{1|wH9<?p2pwJuoiS-HH?QD)`Bjqvhgs(TF`}+Hy&nK3%W2n<6(xi zpbN7x9;ROlzHI7Z^R)anOsoUL0fa8Bu<<bcTF}3nN*k81z!uF`x=gMQ`(&gr3;fSY z&`14aG)lh?^ii*jM(J09KI)0lDE%7HN8K|TrC$O1s2fJ3^y#mUx@0uUko-2<<UeC1 zDj-+t>!OYsjWQ&@F6yAsC_~!oqV^b#((i_R+4GBRvE68tA?<Zhn~g>p(q0#}&S;b& z?R8Nrj7AyKUKf>aG|G_nx~K(4qYP<ZR{I<07>N?6z52YWi%KyXWk`En)MTSkhP2m3 zjWrr&NPAt>2%}MkwAV!qHX3C}dtFpNqfv&m*G2teG|G_nx~N#AQHHeFMMaCKJO^Ub z)p9naPgUIsNr#-jnP}IA_CPGPnA|`!owK+!Y`|We#wgszYlv_wIKczK_%B?h`R{ns z|AY4w7ohWt{u_Vc_rHwu|29c8LyO6Os7%ZxrFAvAf>NoP?9K&`%%4%K+%v1xlx3z$ zO?R1ovz5p0@@SQl(#u0mS2<-`c*@)bL6DbR$E1+^o9qmeLCQW~xxBL0OD?4>_K|<( zrFDJf5lnXZ%ENeRfS-I=<(}#<$BGw}P{%3BUUF%AewK?V)BWZ8T=jY0U#`W(DnR=e z6MLmkfb61s%3j%&YyMx|yi=e&kj1HiauYu3cA(s%nETu8jp`^4nAK8^mJO5{L2^l@ zbr8SJT^Sc7Hwy`tsyMyPKBEqnEI26FUVBXu8YcDSzXYj|_Ayp+q6Q&W>Vf{~L$BGf z+7;Tkx+?Qbko>@;=<1f0Zyn+=eyY8)w~ky+(|PK(FxwICf7dhHUF+-2&l~@Ah`Vxf z>y^mR=S%PRi%VH|bed0?_s!%Yqi5DGRdiX;C-v1Mp4IQ^&^XQg$@(jP%OagM>4U?z z*8VYN=Yq=Pmvy(C>JyZ8a^A4@Cmow8>#wJ*95BwNS^MkpQ<b8>jlJjWFeCA7eBZ2{ z+vh)vAAQ$4qo(GN<=|=Chs9<cDDJkz(fY1gt*+(YIi8QN@4UR$huY=$d)!qn+a8YZ zeSD@_k$}i5A6kr=wy$r4cgsT4XQo(9?p!s@dfRT#a<iNVeLTBt=gx$i>GAgFZiOfK zJZW<2@`k9(XJT4Zc)zf)Prqqay|;Osn&g=EX2hK!+kUFj_I*OWZ2xdWb8N_#%^n%u zrmpL8sg1^b=lFe(H!OV^QDtmg%Tw=mhkL(UFSU-l8+4)BvQ|ewyGZuMVwSm-zOmxg z>ddQOP1cM)TYu`SLBDr)vrjys88UXjIi;R@eefzxU-hjQg{&Gf?{f3j-eFySw@ob6 zWpvBovFd17pKDz%?5z>ixXJKsqut(X=Jemtsdphe?;SslzcgZfM_1Q{>!YG9I}AMP za;RphYrR}Uv)Z4PN13*))cE<N54I_1tX2mE&$cLW_xY?QX5;-EdfxNsRITKW@m`;m zdd(eIO-gf2^7-Yc`P|pZ&PNa5IWR7w;ejt@cI~jgf8tpATf2t8Tv&T(zqgN-S%*`a zm;16X$V;>K->BMW)^*WjAH3DP-oURzzutIOHTue%PKUF<p8ILfmygRF&1!TWfBV9v zQ(qI`Jip-oYxai&Hs-tLrHwB3YL?l6M?rN5_1S1vYI$f^uft>Szo_}qxx$Wy-izaH zD+W$IsA)8=(8rHuTXf&|`v$vxwTd)OvP>K}=#<lS^I7wpN~K)de?%jd^9bu$b7R<@ z`3swx573lq{(M$dZ^yyr=@qYCS4~O&Jg7&j(`~yAup4(dZOE*Q_Gv|?ZH&L~J806z z*nxwKc-|cvJfX<FxS9)h{@K&Hn`M(<Es}cuVE1B%*;}tn>v6*!HU@6Hx24SQ>vklk zL{z$7a?%e+vOInFCzd>6Iwj8SQ?-ntn!Q;w%z9TE_OAQNdqJIomsg$ZwZeP<!fSDT zDsAZE`s7k@m*+j}rM)}SpvsuCSBJl>cqpO!0>?tmQ<nS1rTm#b?aQR{p_3~-s$%2! zUgiDDYDlpm!EY`m+;YC$IO|ETc!$|-R&1$mH6%8*eg7dPy_bv}HXtaheG^NwJ?W3E zCpRyd<=a7%mEEyJVdoM5yl8c7wcF}6f17T*m;8IN`*4Roop-5Ila3s`^wMwsL4VKd zZVN1*?@rjG^vTk=-?;Yj(O~z>HIfT`NbPtqVa;!TFV9>Y@o8?<Rht1*vbJB{G2n5; z5;u$RTK^oMviZ@ro@Nu@Hk(ky;(Dc!zYaB-`+nS{4W%<&p1+#<TY|>xj`<~<ml1Xo zd+)K|`Y|;zXlk*`)kbu3E%jhY&+6sMPQH-1@6@3?E$T0Q96s<Lv()YF;;KGvF{DZG z)juqY^!A$7;7Vx5j<T~uS{8q3<zrst_f3QMXY`3_G3%wW>S|Zj`Auv0UOYP5vfY7y z>UgLsCT4`%rgUF?wzd1_H8VfBdGB_es|l0$*6r3owI<?H<xA_1&05p6=?jZ_evN;A z&|_xQj23m0CjLCG^aYnjr$X=b9?&^@+4;1p_0u1YJ^RC%l^4Gz9~?5ka?rD@!9R9( z`T2QS|LfsbCeF0W=y|~Lz>oFHhP7Jh=$5%_QnTAPu0&OOVyP(?JFiNoE!M@)jjC~` z$pxnhCRK}7*0eY<=h&&U!9Ol@p3-rn>6rMKqZdNjy4eRd-Z8Ix?Q-|hPoMiO`AFjx zE7D%CYTJH&^>^>aE~~sCWXG^Ok1yMu?$F;nWb%g#85XxE#V3Ah6|p3+!s{S!n@w%L ztn*zy{`u2aHf=1I-J8^`{+7qpcFbK7U-^NZ<G|E|!L>TBwKG{gzWW(7O<|iWUH?h5 zzv1)D-euyt&RGc+?E)ix+SNH1Rq~4Oi|Rd&Z-`U>vaxpbtV``(>s!oUKKOm>9hWL+ z{&9ZC?;}DlR(87G;d9N-Sr(QdOSaBGo>s-K?_V3vKR>wgO087$+T*Wwm_Kg$$2rTc z{k|=>&i)`ri^Xf+jlD7S!v52V+t;_A(e_py&EL&!;^K?{xx~_a^iQqh=Y+q1J>BWD z)j#JKSDItFt>Me52iK_@ovi6>nH93H@6eE=#ruz+f9vRw*!9!bd^pknw<n(-bUW-` z>gu|)^?$BeA!*9Uk0+Lyug`cq{LO=g$$f{9n4H@8nww>Z**`sf7T(3WU3B!6WiO(m z%bH}oOKbV`;<10)hF5Oq?!Pl|{f*TRo`x)&^Gmxiy>?zJ_W6h1pH2^)W_$UURQ39^ zs~%K8=yYVroH0wI*F0L?W!3q=SD*Od@Go^c#r@dz!K&dkyQ%K9*)=FzNv}hhsf5W^ znHde_jjG&5UFR^lwaMusN?HTiMY&Fh>R9HBFv@GQQQW{{$35RlKx4U@<`0hW_F_N& z#33AosOXBIlFOY6E>kMEY^c~$Q>pbDztQNTP@&bsiuN^Y`lBd8bDj<DE4I9*Bwh4S zXJuQOww5xq;PFvT)T`aYLF&bBP=&SBkvnQ>knt?fO%`v<bF;h?6>b&jxu80CRC7LX zq$3>*P>v7mLp#b4-f%oUCQRT>CUT$hWbU$_LVN2}+8vW=<DEtW&~(~hXK*w1Eb7W; zb02#uy^kt1gv`~Ae<FrX5FPo89^^%b<}=f1Jj$TPZE3WwFICqS9RIG=byp~QAQOFP zJ=#xo{$IL2d_?CaZSRQAB6K|yh#Qy1t*PQ}MRD7lxJyag6C-XI5LZ}>i<J33(kvx1 zTwOz%o+LXd3&YhG%Gz*s8O>&vY{OpgA+&>#?l_85IFD<%jR$y!H^>4vElZ{<>K#Gb zgv5<t5;xRHe4xYum{b#<@Iw%S(Fl=fi4I(KEk!f)Bf6spenvm^$6yS_NN6D1*T-TU zCSW2aBS|?EF575ASZzM8)M28y8+E0e#BBB_--L3ra}#daZpIDrE%><Btf~$)xyA4i zefj-^xtV?pXB*>aT4MDM#95SQHOFB)3bDFdAsu2A_u7+aUV|8JU5u#Scry7%48<)* z+ZF?Ai!rms_{?GmW--dL7%N$f%Ilp(4=51h=ZYb6#XzoNtX44`s~B;0Da2r(4N~}B zI1e%MW_PTG7~WBg;3x)Z6e9#ynn`}bzL}goi1GS5K#UhBhJ+KNz9m46-6lp0>i{w6 zml)Se4BaKhpZW?hj+7WGN{n?RhBFdFHi==0#3)Q+@Eb8&&@_l~YQzXDVh|NEPKp=` zMT~YL1~e(HA!m!RN5p^^uONnL5F;^&p(R9a7efe$Q3Aw30HUvd(UZLBhJSP#9}MSo zGBu8&Oa?gtE0GP+jkM?~y2w&e45C|O(R*<ph)#$_SGgL|9qvSkPHjcMtD<XF(R-@s zAXW5%D!MrpeQ=6yHbqaGqO(lV@8!x3{Ibo=Z)Nk{Ns1jJWsd85-4b0>iEgGumr<ho zC()IY=#J^a717a-=r@Ng^9JvKN9v;O-$iu7A^N@${ZDB7gHUU4GuGagChq1C_gRQ* z;Kg<4;*xUx_1~;QiM1sCiZ$4TE%+ULFDX;G5w0#@WFNDC;-GROQg&COnySk<UgvMV zf^-wNa0hpB5BHTBP1U89y~(nz@@G@Et&-48wo08Qn<{_vQpGBQr)p1QVe4tKmC{=L z`MjB2R!I{f(<9VYC9A90Il&cf;DnD$t@cHzZ5;iX4L~3`36pB04(g(w@+Cs;VBMJ6 zCJ0AUL@1t-YMYX+m~D+VXp44euf#;EOIvqkHU`}gi=UK5k?M*~1~8idPTizINQ7w7 z83xgaKLVpL2IDaaQ!o|Dn1&Qg&ny`wr^uQjrP!UK8eC8VP0<$pF%W~0h`CsTJ=l)} zIEV*$4U5w3aA1WJ@IoDQKqquYG&Gok<)ztKtYT(0*5WuW;T`@(7CykP3>!FtQ6Hid z3qud|Lo%jg24-P1_TU<B;uh|}+@2o`7ih3b-0QxMnTJq0kXw<CUDylT@~mih;~`W| z#Gtb?n;53zBT7^t7LM?NA1uUf7<DkPGG7q0aRq<lJ<4m`DHBi^qZ_jeL>f}sk}CKO z6+5sTp{Vx*I{|dT%3d@};R^2cW}EKA7r~%m{0J<A$q2p_oKYWrFaT*d2F+<6zM#xV z0uhc_^n!v-$i#hQ!&F0Ih6uF4NX)~pIF5UG0`pO%0)o&L!!QcVaRwLhc@*ov^k{bM zh{HrAV=K<!B0i$z7&;$D2s$AKlduFUaSBiI3KhqaTBwg+7>$Y8iHo=n)i_FJc#h+n zwq<5CCSVN?;TT@Sd_1`szKB8_48<JG$38sA8`w{vghM#`V-Yg&7yiLVRG`SLgHZIs zcnuFzun8w{79UY^5^so5bVfH!!7{AIS-iko*i+OtL^%2*88fj17jP9OQ&_#IfN;d( z7idy=*nvH`hp$jmK37Fcw8Jo@VgdHxDsJNos!@Ksq9uBxKNM_2CeGkF-ry}PDc?nT z?~j(rtbbAPkHfE6ieq?)XRzV`pawkP32|W10)sFEsZg*9nYfNDhy#c6DP%s>Lkxyv zG}huUj^j-V>)&EJO}}tQIGQ5?DVU8r_zV?C8C4JhF~asQn1HF+f>RJjykh9*(iCH2 z$mbArLJVqiAkq$<FcyokRKvpwJjM%HQ})$_C%g~|F;;CWh%tM`QH&U)cQeGeyw{P1 z&v52wrZz&*6Jos6$ykRYI01`PRxMo72AX&t24MlVVi(rU<pns7SFoQ)av~Bxqc`T` zAdcc+SkI?j9DWcZ@b$n1q+>b6D0}bm1uhFH^}s-S8fgkMzhgVZ*k~pkCKZM+qR<8t zun}8v0n#FN!>Em)5C?HswH#}31*VHRVL~|sqAuEC6vjgg+;eC#>;D)tcVO`=zXByt z2chVMiAcf{oWwaifo&QE6FkugF&KfBSchvUl+Hc`L5M{!%*6p5!DkH*RWn%U=(Lm% z!&InOaFhXW>|W2|G;Y9b1A91B!#TXfJIvikp1?M|*i76Oeh{K|lTpzRCH8X}DQdzO z5zsW_!QlYAOGM!F3BJ%tf=~;s&<0&F5Q8DQK%I?67;uN2j0~)K$hMAhk4VXXSVjNx zJ{bI!UkoXm<mXh^rp@{6IiqYW&u80Yw(2Zrn<&#d%N|P0uJT&TEn<l}LHjscNsp23 z8J^E6My^uSNBf*uF8&^+Y>Scinu<W}Vr5}Bxs0Xmb-Ks%iggT!hF`nNg)*OZlYLYg zaS$dBz{IiAbZo<2NGALb7l><Vz0nTcATD4`!Ze6xne7lK<2G&Pm}-B=xSU64+w78~ zZ0xm<ZEUmW@O*3Sqi&wZ%thVhMk<w;@*q~OW#j@S&mQu=*xXm|i0hX8xNId_YE9Mp zk6bpC_x?x!?<@=W&ayzox(^rH#Q!8$cg_2rel$`Q^m%?<vwHX^d2+sQ&ZW0X%+GT4 zH&1&jXN*1VqlEO7hvm6~oof%2=$~ar<#A8B!8h;2?Rvds2c>;4xxqKD`n5N&I>M4~ zUd0VZ;#C2^7+J>6EMnQpZ<o<Xr(0Gg?wi;7^ZT{0n`CSm*UyXhd~a--w=TVV^p>mV z`=0)ik9b}F#1r@0v5M+{6YVFSc2Gw3k*j^P%wKuKGRJ~fAUDp6kgDIjGEn<UjaPxI zUR<(VP___PQ5U@Id++I;_jMYYo%Q$jiVL(0epBD?EGu|>5!Z7U{GI`l5*jau=Gz{` zWe5emCXl?cF<z!ICC_FV_?`3!WLwc@llJ|-$zI}8bM4AK((jv<8%Q=$^_Qa?=DyzD zo0X#bwT-1Xn&0wY*se<@Bg+)?fwE&}pZ@X&Rlcks?ljYWhwua=-@#8AoA6Cm6*rL; zA4r}oHc+mXZ|@bzwTA_#UO_1<F3K+`yJ;`jR~8JEf6epF#nWC&(?N1yP41N;p3axa z{*%YVvV!uMSXNLT6Uz$9V=OZjnM`^0huWc)@n0@pUr?%uWd)}SOO-W)<;wYfIrk%F z-We=kve4*SU2|s<Zi&cwL&LH>_daM>kA9iqrUx&6zHZC?c9}OnUzc!(W!ifk#P-Y0 z4*Ul3%k>LIiS?g*9=?-u;_}#nQj8nEzOzif7B%^cNK)oIt5IBbSnvlHw5t&BS-|Sk zut;2#ThN<&<)qBFWx4Ls;DTT0#UTpkA1I9bWjJv$LX-PR*^V<Od(NC3I3LJG<HVUW zM1_T3Ddxjbt7=~R+&IC_g^VZVcgmj=A03T$=2Zaa47s=mab}f^M_s;DE`Nkj`<ctH z4LBBSXz+yj+?F)vNIVzEa87KsG}Jyu<h3%A!|@!&n^QTJV-r)Mdz8-d7Mwd^MoZ2Q zakLdDJ?%Ie|A7P6E+lym>Yw5`67O%&B7v%aA-QPy!+9u2kNG4F=d>+{(+JKl`J#GL zM{~H3^Z08Vr)`{l3(co-gpKU!RBUisC_Kw?jMF$FbxB^D3p}A$l5>dMwsKw|blFTD z(;o81UQWgK>COklIYDl2{Ox{Hcjzw;|Alraf05I>8=M%y=@zF6w>j&+qci0mr*aAR zNiN*RvwTEX+$(cb;2c5dmtzJ~(F=DUEWqhp<j0)4=h(nhcnX&%tZIl}wXebIDaqRE zDYYay9x@Gm#*K!!p2PY%r|wvSY;=4<T|++cFF6UqgjeL3*Hi=M5WQfx&LKKZevIL7 zIfu+)rg_I^ge06niNE<mn2pCd+&CK&x?wlUWN}uFF&K*u@2MI2KrP8fk{plW_=zfe zd_?QdRFvQYBEN8U4befaNj9f)dwCeiZsHuOspxzS9jSI-hEt}riqSIWUWmRMaU5=i z=|T^IX7uHUkEm3HYWkw|aA>ZQ?!kwyHkBMhEa}V&!-~=8ABq*H%OHp@Max;KC~K{0 z$-)2(D!~h}4NqZZOCLj+j09T9Mwd}38-7;1WCl!;Z>fp|kD+#VEEK0C?kI4lVXjUv znLl`jL}eCcVK&J4!Koq+b1@I|d42&FGQS9mp(G{Am9!0f&YM}Z4r_RNEz{qy0qgmD zBhyXF(Qvhc=$=N}i5=L5Kd=XECDL9+)l^+x^B1#6aSX?C0;j>op=~8R!}Ki9;XJP3 z5-#8(F5@b$;W}>O25#XVZi5X<+iJn~Be7j*TN~LPB=WqnIawZ|l#NhZ(81%zW?VAX zX_{Qtl15H#dt+IqRg~Tl+(tGxLS0kCi^vJo1L1WUYDDb5uN=$k*pny@Gy&u?(aBI& zh%&<;?GRZtulsK7DGfAIZ6B&=^10>D&&|a$kldb2y&$UWatW+U^-V6<LP)+`ic&u0 z_Kv@G`2AvLO=AP6aCS7g^p2o1E60{ds_}AEq-@CT2!9JBqjWB|V0~guOV*>%ij;4s zv-StdkuFqrX?jrqAID1XZxEe8<<pS7yoPdPZ9db7Q`?Y3RNY7MWAu_nvyZ_Ah<fT? zQ*@%Hv2{SSa*MJeL_CPQ>r9}ADP$BvVVI!^iozTgutYHw$JdShQdBcW`DmW=M#6D6 zKH>b5yoxX71v&hf=9amU0s_-FQ`@<Rb-9-h-k-O?(HB0=c|Pc5-hwCbBn3-dHl7eR zln8j=q8;`&+ua=<<sQ4f`(!FSg(!HMQqYJ3X9Yx|<IIK>iFk-YXDFsa3_8&p^KlZU zY-B+>hA|zF^^ZyWC(MXary3<qH!Q+c6n{$fEGFXtLMUj2A8`#<	V6Mvkvce|SMG zKBMnT_T@Rozv2T?>^1ux6nR5R2pS$1;SoIFQtg_f@H^TRb4+D=8ltQImY9V{5CxAb z1&t_lVz3LPvq(vZLZ>|ij^Ou!_5YE^5IjQJPrMI4KqERKUyS#N_(BN;zprGjY`!T* zu$x(osuVa6u#^JlQBI*VjY7wb!e$zd!Ic8%1p+8+e!~Y;q|gbW&@rRHxeL+Xb1D)k zYz|neqNE{|HXC3`Nz(u?;K-#GUKBJ9bA&S;jG+`Z3$P0>VM~G27|9U57>j~uw<0gn zwtTvjqRfWA#Z$C&D$uudiWbiM(6?}kmQ7FSTQ)_D=1AyUG(|(^G3XmIMFVCTcD?!r zOwn)|3mPsp+LlYvVz~+W7E94mxs7kR13R%Be_${6LEq={VdnqF2Ly7ZOAz`X9wRXd zqN`=m53i~;P3>rccx=ax(v>KenRx~W>SW8J5gMaEMq+dsrRF?&q;h(;Tu$+uBj5i2 zH_i4KNvozLO$-ca=JNeCOZZQ^sT7qW4_2%cjzJO?`R@PQ2`4g~$ZUe>##;El&tSRJ zifu1{2FsPXoHAF>lQZg?w(rT-7j;<<Fzw||sgZP9E^4ZgB}WfO{?z>|t|}p=GMk%; z)G+e3*PU>?7+uVi7@syd;q0SKBooQ7j9s?TcW7F!O`_p*SkICvZ(+tBTzdc}-mV%? z`qDr5zU#85+SJ`bd2?NMRUfHRN^!g)S606$>7az%knKzw#3=1=$Q9HKT%!!RAv+hh z40V%cM7c@li@8g5bE%{g)pEUcE$KzY+S19&wWYNlwWaqKbtKWtCH+)L!STV;+QFex zn~wFxb@)<buLe^2n1)i>LSfRqI$_ewreRWx{$bLn;bBrGvqn-)i$+qtlFI8Fa;d86 zPE94#=m_a};bzi`_~ug7$mY@<w-(Zv(k-Qp<yuOWgIY=(%Cu6PZ_0MwVvHTNV>{_n zsrHiSURQSQAnh2^QJNLdS?XuiMVet9Ev2}1mD+}Ol^R5JmFUS*>3mamG>OnCi8p08 z^^xfQ%Cehs6O+ICD$j4q_Ekks)vNkWlnPayEKRC0Sz2eCB-N~wByH@P#C2!MQkSmN zrAZ+(6z5yAbG?wl3nUBAh0+y=MUr3ZMbh;8i>09Ei=|?*i=}==)1;F&=~9)->C$wM zbV>9J`@(UFwA^l~bd`bH=^a?<eM@$!8`tqS?VSkOJvK<?ifoip5;jS5+_y+?W4BOr z{w{Sk+bS(}-6jol+%DZIxl`)WZl`44bEou^&2GueQQ37%wl}HONI8E?u258Tq#b5? zP73R!yytH<BR42^w`J#AQxhLZL7@+&-KxiuTiM4_U+-s9cHL)EyXG&X$(>$E|60G4 z&eVD(xfOjaB@cZq{mYO#wmsiUTkE}3VsFbK#k9RylZkZuc4fnDIZzf&VMj7w-j<J< zcw4xJG)ic&c|sTMMSr3jgr*z<xM({)FqPC+;;!ku&o<6{eou~86%yScthLH)@jzyv z4OM2;Lv9tRYD0Gpt))mFBc<ka@8HB=J*D2<h!MklB&|u^neU$&{#f3s5`Aq3{4cuy BWQPC% delta 55598 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 diff --git a/doc/DIAMETER_ProtocolModule_Generator_CNL113462_PRI.doc b/doc/DIAMETER_ProtocolModule_Generator_CNL113462_PRI.doc index 016c3c5cfb7b8fe0aa32e6b84f34c2075b71ae27..3bd56d64c6dbe5781cc0dd46d1e53a0a52205c2c 100644 GIT binary patch literal 161280 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�*_r`YdFsf{j=cw6cy?P(-%4}dyQ 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Ð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 literal 147456 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 diff --git a/src/AAAInterface_3GPP_TS29272_940.ddf b/src/AAAInterface_3GPP_TS29272_940.ddf index 3cae5bb..e0c3a99 100644 --- a/src/AAAInterface_3GPP_TS29272_940.ddf +++ b/src/AAAInterface_3GPP_TS29272_940.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_940.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V9.4.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/AAAInterface_3GPP_TS29272_950.ddf b/src/AAAInterface_3GPP_TS29272_950.ddf index bfc3529..bbf49a7 100644 --- a/src/AAAInterface_3GPP_TS29272_950.ddf +++ b/src/AAAInterface_3GPP_TS29272_950.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_950.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V9.5.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 diff --git a/src/AAAInterface_3GPP_TS29272_970.ddf b/src/AAAInterface_3GPP_TS29272_970.ddf index d6f3360..bbb353a 100644 --- a/src/AAAInterface_3GPP_TS29272_970.ddf +++ b/src/AAAInterface_3GPP_TS29272_970.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_970.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V9.7.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 diff --git a/src/AAAInterface_3GPP_TS29272_a30.ddf b/src/AAAInterface_3GPP_TS29272_a30.ddf index c57e240..421a710 100644 --- a/src/AAAInterface_3GPP_TS29272_a30.ddf +++ b/src/AAAInterface_3GPP_TS29272_a30.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_a30.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V10.3.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 diff --git a/src/AAAInterface_3GPP_TS29272_a60.ddf b/src/AAAInterface_3GPP_TS29272_a60.ddf index 8446bc4..fc91d0e 100644 --- a/src/AAAInterface_3GPP_TS29272_a60.ddf +++ b/src/AAAInterface_3GPP_TS29272_a60.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_a60.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V10.6.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 diff --git a/src/AAAInterface_3GPP_TS29272_b60.ddf b/src/AAAInterface_3GPP_TS29272_b60.ddf index 6043494..00bfd6f 100644 --- a/src/AAAInterface_3GPP_TS29272_b60.ddf +++ b/src/AAAInterface_3GPP_TS29272_b60.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29272_b60.ddf // Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V11.6.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 diff --git a/src/AAAInterface_3GPP_TS29272_bd0.ddf b/src/AAAInterface_3GPP_TS29272_bd0.ddf new file mode 100644 index 0000000..f0f2178 --- /dev/null +++ b/src/AAAInterface_3GPP_TS29272_bd0.ddf @@ -0,0 +1,1067 @@ +/****************************************************************************** +* Copyright (c) 2004, 2015 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder - initial implementation and initial documentation +******************************************************************************/ +// +// File: AAAInterface_3GPP_TS29272_bd0.ddf +// Description: DDF for S6a/S6d and S13 Interfaces according to 3GPP TS 29.272 V11.13.0 +// Rev: R34A +// Prodnr: CNL 113 462 + + +// APPLICATION-NAME: AAA +// APPLICATION-REVISION: V11_13_0 + +// AVP implementations according to: +// 3GPP TS 29.272 V11.13.0 - Evolved Packet System (EPS); Mobility Management Entity (MME) and Serving GPRS Support Node (SGSN) related interfaces based on Diameter protocol + +// 3GPP TS 29.272 V11.13.0 +// 7.2.2 +type enumerated Command_Code +{ + Update_Location (316), + Cancel_Location (317), + Authentication_Information (318), + Insert_Subscriber_Data (319), + Delete_Subscriber_Data (320), + Purge_UE (321), + Reset (322), + Notify (323), + ME_Identity_Check (324), + Update_VCSG_Location (8388638), + Cancel_VCSG_Location (8388642) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.2 +// AVP: Subscription-Data (1400) 3GPP (10415) +type AVP_Grouped Subscription_Data; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.3 +// AVP: Terminal-Information (1401) 3GPP (10415) +type AVP_Grouped Terminal_Information; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.4 +// AVP: IMEI (1402) 3GPP (10415) +type AVP_UTF8String IMEI; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.5 +// AVP: Software-Version (1403) 3GPP (10415) +type AVP_UTF8String Software_Version; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.77 +// AVP: QoS-Subscribed (1404) 3GPP (10415) +type AVP_OctetString QoS_Subscribed; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.7 +// AVP: ULR-Flags (1405) 3GPP (10415) +type AVP_Unsigned32 ULR_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.8 +// AVP: ULA-Flags (1406) 3GPP (10415) +type AVP_Unsigned32 ULA_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.9 +// AVP: Visited-PLMN-Id (1407) 3GPP (10415) +type AVP_OctetString Visited_PLMN_Id; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.11 +// AVP: Requested-EUTRAN-Authentication-Info (1408) 3GPP (10415) +type AVP_Grouped Requested_EUTRAN_Authentication_Info; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.12 +// AVP: Requested-UTRAN-GERAN-Authentication-Info (1409) 3GPP (10415) +type AVP_Grouped Requested_UTRAN_GERAN_Authentication_Info; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.14 +// AVP: Number-Of-Requested-Vectors (1410) 3GPP (10415) +type AVP_Unsigned32 Number_Of_Requested_Vectors; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.15 +// AVP: Re-Synchronization-Info (1411) 3GPP (10415) +type AVP_OctetString Re_Synchronization_Info; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.16 +// AVP: Immediate-Response-Preferred (1412) 3GPP (10415) +type AVP_Unsigned32 Immediate_Response_Preferred; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.17 +// AVP: Authentication-Info (1413) 3GPP (10415) +type AVP_Grouped Authentication_Info; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.18 +// AVP: E-UTRAN-Vector (1414) 3GPP (10415) +type AVP_Grouped E_UTRAN_Vector; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.19 +// AVP: UTRAN-Vector (1415) 3GPP (10415) +type AVP_Grouped UTRAN_Vector; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.20 +// AVP: GERAN-Vector (1416) 3GPP (10415) +type AVP_Grouped GERAN_Vector; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.21 +// AVP: Network-Access-Mode (1417) 3GPP (10415) +type enumerated Network_Access_Mode +{ + PACKET_AND_CIRCUIT (0), + Reserved (1), + ONLY_PACKET (2) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.22 +// AVP: HPLMN-ODB (1418) 3GPP (10415) +type AVP_Unsigned32 HPLMN_ODB; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.23 +// AVP: Item-Number (1419) 3GPP (10415) +type AVP_Unsigned32 Item_Number; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.24 +// AVP: Cancellation-Type (1420) 3GPP (10415) +type enumerated Cancellation_Type +{ + MME_UPDATE_PROCEDURE (0), + SGSN_UPDATE_PROCEDURE (1), + SUBSCRIPTION_WITHDRAWAL (2), + UPDATE_PROCEDURE_IWF (3), + INITIAL_ATTACH_PROCEDURE (4) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.25 +// AVP: DSR-Flags (1421) 3GPP (10415) +type AVP_Unsigned32 DSR_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.26 +// AVP: DSA-Flags (1422) 3GPP (10415) +type AVP_Unsigned32 DSA_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.27 +// AVP: Context-Identifier (1423) 3GPP (10415) +type AVP_Unsigned32 Context_Identifier; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.29 +// AVP: Subscriber-Status (1424) 3GPP (10415) +type enumerated Subscriber_Status +{ + SERVICE_GRANTED (0), + OPERATOR_DETERMINED_BARRING (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.30 +// AVP: Operator-Determined-Barring (1425) 3GPP (10415) +type AVP_Unsigned32 Operator_Determined_Barring; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.31 +// AVP: Access-Restriction-Data (1426) 3GPP (10415) +type AVP_Unsigned32 Access_Restriction_Data; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.32 +// AVP: APN-OI-Replacement (1427) 3GPP (10415) +type AVP_UTF8String APN_OI_Replacement; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.33 +// AVP: All-APN-Configurations-Included-Indicator (1428) 3GPP (10415) +type enumerated All_APN_Configurations_Included_Indicator +{ + All_APN_CONFIGURATIONS_INCLUDED (0), + MODIFIED_ADDED_APN_CONFIGURATIONS_INCLUDED (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.34 +// AVP: APN-Configuration-Profile (1429) 3GPP (10415) +type AVP_Grouped APN_Configuration_Profile; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.35 +// AVP: APN-Configuration (1430) 3GPP (10415) +type AVP_Grouped APN_Configuration; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.37 +// AVP: EPS-Subscribed-QoS-Profile (1431) 3GPP (10415) +type AVP_Grouped EPS_Subscribed_QoS_Profile; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.38 +// AVP: VPLMN-Dynamic-Address-Allowed (1432) 3GPP (10415) +type enumerated VPLMN_Dynamic_Address_Allowed +{ + NOTALLOWED (0), + ALLOWED (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.39 +// AVP: STN-SR (1433) 3GPP (10415) +type AVP_OctetString STN_SR; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.83 +// AVP: Alert-Reason (1434) 3GPP (10415) +type enumerated Alert_Reason; +{ + UE_PRESENT (0), + UE_MEMORY_AVAILABLE (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.41 +// AVP: AMBR (1435) 3GPP (10415) +type AVP_Grouped AMBR; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.78 +// AVP: CSG-Subscription-Data (1436) 3GPP (10415) +type AVP_Grouped CSG_Subscription_Data; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.79 +// AVP: CSG-Id (1437) 3GPP (10415) +type AVP_Unsigned32 CSG_Id; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.44 +// AVP: PDN-GW-Allocation-Type (1438) 3GPP (10415) +type enumerated PDN_GW_Allocation_Type +{ + STATIC (0), + DYNAMIC (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.80 +// AVP: Expiration-Date (1439) 3GPP (10415) +type AVP_Time Expiration_Date; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.46 +// AVP: RAT-Frequency-Selection-Priority-ID (1440) 3GPP (10415) +type AVP_Unsigned32 RAT_Frequency_Selection_Priority_ID; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.47 +// AVP: IDA-Flags (1441) 3GPP (10415) +type AVP_Unsigned32 IDA_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.48 +// AVP: PUA-Flags (1442) 3GPP (10415) +type AVP_Unsigned32 PUA_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.49 +// AVP: NOR-Flags (1443) 3GPP (10415) +type AVP_Unsigned32 NOR_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.50 +// AVP: User-Id (1444) 3GPP (10415) +type AVP_UTF8String User_Id; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.51 +// AVP: Equipment-Status (1445) 3GPP (10415) +type enumerated Equipment_Status +{ + WHITELISTED (0), + BLACKLISTED (1), + GREYLISTED (2) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.52 +// AVP: Regional-Subscription-Zone-Code (1446) 3GPP (10415) +type AVP_OctetString Regional_Subscription_Zone_Code; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.53 +// AVP: RAND (1447) 3GPP (10415) +type AVP_OctetString RAND; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.54 +// AVP: XRES (1448) 3GPP (10415) +type AVP_OctetString XRES; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.55 +// AVP: AUTN (1449) 3GPP (10415) +type AVP_OctetString AUTN; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.56 +// AVP: KASME (1450) 3GPP (10415) +type AVP_OctetString KASME; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.98 +// AVP: Trace-Collection-Entity (1452) 3GPP (10415) +type AVP_Address Trace_Collection_Entity; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.59 +// AVP: Kc (1453) 3GPP (10415) +type AVP_OctetString Kc; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.60 +// AVP: SRES (1454) 3GPP (10415) +type AVP_OctetString SRES; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.62 +// AVP: PDN-Type (1456) 3GPP (10415) +type enumerated PDN_Type; +{ + IPv4 (0), + IPv6 (1), + IPv4v6 (2), + IPv4_OR_IPv6 (3) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.81 +// AVP: Roaming-Restricted-Due-To-Unsupported-Feature (1457) 3GPP (10415) +type enumerated Roaming_Restricted_Due_To_Unsupported_Feature +{ + Roaming_Restricted_Due_To_Unsupported_Feature (0) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.63 +// AVP: Trace-Data (1458) 3GPP (10415) +type AVP_Grouped Trace_Data; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.64 +// AVP: Trace-Reference (1459) 3GPP (10415) +type AVP_OctetString Trace_Reference; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.67 +// AVP: Trace-Depth (1462) 3GPP (10415) +// FS 3.3.2.10 +type AVP_Unsigned32 Trace_Depth; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.68 +// AVP: Trace-NE-Type-List (1463) 3GPP (10415) +type AVP_OctetString Trace_NE_Type_List; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.69 +// AVP: Trace-Interface-List (1464) 3GPP (10415) +type AVP_OctetString Trace_Interface_List; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.70 +// AVP: Trace-Event-List (1465) 3GPP (10415) +type AVP_OctetString Trace_Event_List; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.71 +// AVP: OMC-Id (1466) 3GPP (10415) +type AVP_OctetString OMC_Id; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.72 +// AVP: GPRS-Subscription-Data (1467) 3GPP (10415) +type AVP_Grouped GPRS_Subscription_Data; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.73 +// AVP: Complete-Data-List-Included-Indicator (1468) 3GPP (10415) +type enumerated Complete_Data_List_Included_Indicator +{ + All_PDP_CONTEXTS_INCLUDED (0), + MODIFIED_ADDED_PDP_CONTEXTS_INCLUDED (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.74 +// AVP: PDP-Context (1469) 3GPP (10415) +type AVP_Grouped PDP_Context; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.75 +// AVP: PDP-Type (1470) 3GPP (10415) +type AVP_OctetString PDP_Type; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.6 +// AVP: 3GPP2-MEID (1471) 3GPP (10415) +type AVP_OctetString 3GPP2_MEID; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.82 +// AVP: Specific-APN-Info (1472) 3GPP (10415) +type AVP_Grouped Specific_APN_Info; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.84 +// AVP: LCS-Info (1473) 3GPP (10415) +type AVP_Grouped LCS_Info; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.85 +// AVP: GMLC-Number (1474) 3GPP (10415) +type AVP_OctetString GMLC_Number; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.86 +// AVP: LCS-PrivacyException (1475) 3GPP (10415) +type AVP_Grouped LCS_PrivacyException; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.87 +// AVP: SS-Code (1476) 3GPP (10415) +type AVP_OctetString SS_Code; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.88 +// AVP: SS-Status (1477) 3GPP (10415) +type AVP_OctetString SS_Status; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.89 +// AVP: Notification-To-UE-User (1478) 3GPP (10415) +type enumerated Notification_To_UE_User +{ + NOTIFY_LOCATION_ALLOWED (0), + NOTIFYANDVERIFY_LOCATION_ALLOWED_IF_NO_RESPONSE (1), + NOTIFYANDVERIFY_LOCATION_NOT_ALLOWED_IF_NO_RESPONSE (2), + LOCATION_NOT_ALLOWED (3) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.90 +// AVP: External-Client (1479) 3GPP (10415) +type AVP_Grouped External_Client; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.91 +// AVP: Client-Identity (1480) 3GPP (10415) +type AVP_OctetString Client_Identity; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.92 +// AVP: GMLC-Restriction (1481) 3GPP (10415) +type enumerated GMLC_Restriction +{ + GMLC_LIST (0), + HOME_COUNTRY (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.93 +// AVP: PLMN-Client (1482) 3GPP (10415) +type enumerated PLMN_Client +{ + BROADCAST_SERVICE (0), + O_AND_M_HPLMN (1), + O_AND_M_VPLMN (2), + ANONYMOUS_LOCATION (3), + TARGET_UE_SUBSCRIBED_SERVICE (4) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.94 +// AVP: Service-Type (1483) 3GPP (10415) +type AVP_Grouped Service_Type; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.95 +// AVP: ServiceTypeIdentity (1484) 3GPP (10415) +type AVP_Unsigned32 ServiceTypeIdentity; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.96 +// AVP: MO-LR (1485) 3GPP (10415) +type AVP_Grouped MO_LR; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.99 +// AVP: Teleservice-List (1486) 3GPP (10415) +type AVP_Grouped Teleservice_List; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.100 +// AVP: TS-Code (1487) 3GPP (10415) +type AVP_OctetString TS_Code; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.101 +// AVP: Call-Barring-Info (1488) 3GPP (10415) +type AVP_Grouped Call_Barring_Info; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.102 +// AVP: SGSN-Number (1489) 3GPP (10415) +type AVP_OctetString SGSN_Number; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.103 +// AVP: IDR-Flags (1490) 3GPP (10415) +type AVP_Unsigned32 IDR_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.104 +// AVP: ICS-Indicator (1491) 3GPP (10415) +type enumerated ICS_Indicator +{ + FALSE (0), + TRUE (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.106 +// AVP: IMS-Voice-Over-PS-Sessions-Supported (1492) 3GPP (10415) +type enumerated IMS_Voice_Over_PS_Sessions_Supported +{ + NOT_SUPPORTED (0), + SUPPORTED (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.107 +// AVP: Homogeneous-Support-of-IMS-Voice-Over-PS-Sessions (1493) 3GPP (10415) +type enumerated Homogeneous_Support_of_IMS_Voice_Over_PS_Sessions +{ + NOT_SUPPORTED (0), + SUPPORTED (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.108 +// AVP: Last-UE-Activity-Time (1494) 3GPP (10415) +type AVP_Time Last_UE_Activity_Time; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.110 +// AVP: EPS-User-State (1495) 3GPP (10415) +type AVP_Grouped EPS_User_State; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.111 +// AVP: EPS-Location-Information (1496) 3GPP (10415) +type AVP_Grouped EPS_Location_Information; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.112 +// AVP: MME-User-State (1497) 3GPP (10415) +type AVP_Grouped MME_User_State; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.113 +// AVP: SGSN-User-State (1498) 3GPP (10415) +type AVP_Grouped SGSN_User_State; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.114 +// AVP: User-State (1499) 3GPP (10415) +type enumerated User_State +{ + DETACHED (0), + ATTACHED_NOT_REACHABLE_FOR_PAGING (1), + ATTACHED_REACHABLE_FOR_PAGING (2), + CONNECTED_NOT_REACHABLE_FOR_PAGING (3), + CONNECTED_REACHABLE_FOR_PAGING (4), + NETWORK_DETERMINED_NOT_REACHABLE (5) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.115 +// AVP: MME-Location-Information (1600) 3GPP (10415) +type AVP_Grouped MME_Location_Information; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.116 +// AVP: SGSN-Location-Information (1601) 3GPP (10415) +type AVP_Grouped SGSN_Location_Information; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.117 +// AVP: E-UTRAN-Cell-Global-Identity (1602) 3GPP (10415) +type AVP_OctetString E_UTRAN_Cell_Global_Identity; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.118 +// AVP: Tracking-Area-Identity (1603) 3GPP (10415) +type AVP_OctetString Tracking_Area_Identity; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.119 +// AVP: Cell-Global-Identity (1604) 3GPP (10415) +type AVP_OctetString Cell_Global_Identity; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.120 +// AVP: Routing-Area-Identity (1605) 3GPP (10415) +type AVP_OctetString Routing_Area_Identity; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.121 +// AVP: Location-Area-Identity (1606) 3GPP (10415) +type AVP_OctetString Location_Area_Identity; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.122 +// AVP: Service-Area-Identity (1607) 3GPP (10415) +type AVP_OctetString Service_Area_Identity; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.123 +// AVP: Geographical-Information (1608) 3GPP (10415) +type AVP_OctetString Geographical_Information; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.124 +// AVP: Geodetic-Information (1609) 3GPP (10415) +type AVP_OctetString Geodetic_Information; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.125 +// AVP: Current-Location-Retrieved (1610) 3GPP (10415) +type enumerated Current_Location_Retrieved +{ + ACTIVE_LOCATION_RETRIEVAL (0) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.126 +// AVP: Age-Of-Location-Information (1611) 3GPP (10415) +type AVP_Unsigned32 Age_Of_Location_Information; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.127 +// AVP: Active-APN (1612) 3GPP (10415) +type AVP_Grouped Active_APN; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.128 +// AVP: Error-Diagnostic (1614) 3GPP (10415) +type enumerated Error_Diagnostic +{ + GPRS_DATA_SUBSCRIBED (0), + NO_GPRS_DATA_SUBSCRIBED (1), + ODB_ALL_APN (2), + ODB_HPLMN_APN (3), + ODB_VPLMN_APN (4) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.129 +// AVP: Ext-PDP-Address (1621) 3GPP (10415) +type AVP_Address Ext_PDP_Address; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.130 +// AVP: UE-SRVCC-Capability (1615) 3GPP (10415) +type enumerated UE_SRVCC_Capability +{ + UE_SRVCC_NOT_SUPPORTED (0), + UE_SRVCC_SUPPORTED (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.131 +// AVP: MPS-Priority (1616) 3GPP (10415) +type AVP_Unsigned32 MPS_Priority; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.132 +// AVP: VPLMN-LIPA-Allowed (1617) 3GPP (10415) +type enumerated VPLMN_LIPA_Allowed +{ + LIPA_NOTALLOWED (0), + LIPA_ALLOWED (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.133 +// AVP: LIPA-Permission (1618) 3GPP (10415) +type enumerated LIPA_Permission +{ + LIPA_PROHIBITED (0), + LIPA_ONLY (1), + LIPA_CONDITIONAL (2) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.134 +// AVP: Subscribed-Periodic-RAU-TAU-Timer (1619) 3GPP (10415) +type AVP_Unsigned32 Subscribed_Periodic_RAU_TAU_Timer; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.75A +// AVP: Ext-PDP-Type (1620) 3GPP (10415) +type AVP_OctetString Ext_PDP_Type; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.135 +// AVP: SIPTO-Permission (1613) 3GPP (10415) +type enumerated SIPTO_Permission +{ + SIPTO_ALLOWED (0), + SIPTO_NOTALLOWED (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.136 +// AVP: MDT-Configuration (1622) 3GPP (10415) +type AVP_Grouped MDT_Configuration; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.137 +// AVP: Job-Type (1623) 3GPP (10415) +type enumerated Job_Type +{ + IMMEDIATE_MDT_ONLY (0), + LOGGED_MDT_ONLY (1), + TRACE_ONLY (2), + IMMEDIATE_MDT_AND_TRACE (3) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.138 +// AVP: Area-Scope (1624) 3GPP (10415) +type AVP_Grouped Area_Scope; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.139 +// AVP: List-Of-Measurements (1625) 3GPP (10415) +type AVP_Unsigned32 List_Of_Measurements; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.140 +// AVP: Reporting-Trigger (1626) 3GPP (10415) +type AVP_Unsigned32 Reporting_Trigger; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.141 +// AVP: Report-Interval (1627) 3GPP (10415) +type enumerated Report_Interval +{ + RI_UMTS_250ms (0), + RI_UMTS_500ms (1), + RI_UMTS_1000ms (2), + RI_UMTS_2000ms (3), + RI_UMTS_3000ms (4), + RI_UMTS_4000ms (5), + RI_UMTS_6000ms (6), + RI_UMTS_8000ms (7), + RI_UMTS_12000ms (8), + RI_UMTS_16000ms (9), + RI_UMTS_20000ms (10), + RI_UMTS_24000ms (11), + RI_UMTS_28000ms (12), + RI_UMTS_32000ms (13), + RI_UMTS_64000ms (14), + RI_LTE_120ms (15), + RI_LTE_240ms (16), + RI_LTE_480ms (17), + RI_LTE_640ms (18), + RI_LTE_1024ms (19), + RI_LTE_2048ms (20), + RI_LTE_5120ms (21), + RI_LTE_10240ms (22), + RI_LTE_1min (23), + RI_LTE_6min (24), + RI_LTE_12min (25), + RI_LTE_30min (26), + RI_LTE_60min (27) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.142 +// AVP: Report-Amount (1628) 3GPP (10415) +type enumerated Report_Amount +{ + ONE (0), + TWO (1), + FOUR (2), + EIGHT (3), + SIXTEEN (4), + THIRTYTWO (5), + SIXTYFOUR (6), + INFINITY_AMOUNT (7) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.143 +// AVP: Event-Threshold-RSRP (1629) 3GPP (10415) +type AVP_Unsigned32 Event_Threshold_RSRP; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.144 +// AVP: Event-Threshold-RSRQ (1630) 3GPP (10415) +type AVP_Unsigned32 Event_Threshold_RSRQ; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.145 +// AVP: Logging-Interval (1631) 3GPP (10415) +type enumerated Logging_Interval +{ + LI_128 (0), + LI_256 (1), + LI_512 (2), + LI_1024 (3), + LI_2048 (4), + LI_3072 (5), + LI_4096 (6), + LI_6144 (7) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.146 +// AVP: Logging-Duration (1632) 3GPP (10415) +type enumerated Logging_Duration +{ + LD_600_SEC (0), + LD_1200_SEC (1), + LD_2400_SEC (2), + LD_3600_SEC (3), + LD_5400_SEC (4), + LD_7200_SEC (5) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.147 +// AVP: Relay-Node-Indicator (1633) 3GPP (10415) +type enumerated Relay_Node_Indicator +{ + NOT_RELAY_NODE (0), + RELAY_NODE (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.148 +// AVP: MDT-User-Consent (1634) 3GPP (10415) +type enumerated MDT_User_Consent +{ + CONSENT_NOT_GIVEN (0), + CONSENT_GIVEN (1) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.149 +// AVP: PUR-Flags (1635) 3GPP (10415) +type AVP_Unsigned32 PUR_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.150 +// AVP: Subscribed-VSRVCC (1636) 3GPP (10415) +type enumerated Subscribed_VSRVCC +{ + VSRVCC_SUBSCRIBED (0) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.151 +// AVP: Equivalent-PLMN-List (1637) 3GPP (10415) +type AVP_Grouped Equivalent_PLMN_List; + + +// 3GPP TS 29.272 V11.13.0 +// 7.3.152 +// AVP: CLR-Flags (1638) 3GPP (10415) +type AVP_Unsigned32 CLR_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.153 +// AVP: UVR-Flags (1639) 3GPP (10415) +type AVP_Unsigned32 UVR_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.154 +// AVP: UVA-Flags (1640) 3GPP (10415) +type AVP_Unsigned32 UVA_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.155 +// AVP: VPLMN-CSG-Subscription-Data (1641) 3GPP (10415) +type AVP_Grouped VPLMN_CSG_Subscription_Data; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.156 +// AVP: Local-Time-Zone (1649) 3GPP (10415) +type AVP_Grouped Local_Time_Zone; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.157 +// AVP: A-MSISDN (1643) 3GPP (10415) +type AVP_OctetString A_MSISDN; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.159 +// AVP: MME-Number-for-MT-SMS (1645) 3GPP (10415) +type AVP_OctetString MME_Number_for_MT_SMS; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.162 +// AVP: SMS-Register-Request (1648) 3GPP (10415) +type enumerated SMS_Register_Request +{ + SMS_REGISTRATION_REQUIRED (0), + SMS_REGISTRATION_NOT_PREFERRED (1), + NO_PREFERENCE (2) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.163 +// AVP: Time-Zone (1642) 3GPP (10415) +type AVP_UTF8String Time_Zone; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.164 +// AVP: Daylight-Saving-Time (1650) 3GPP (10415) +type enumerated Daylight_Saving_Time +{ + NO_ADJUSTMENT (0), + PLUS_ONE_HOUR_ADJUSTMENT (1), + PLUS_TWO_HOURS_ADJUSTMENT (2) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.165 +// AVP: Subscription-Data-Flags (1654) 3GPP (10415) +type AVP_Unsigned32 Subscription_Data_Flags; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.166 +// AVP: Measurement-Period-LTE (1656) 3GPP (10415) +type enumerated Measurement_Period_LTE +{ + PERIOD_1024_ms (0), + PERIOD_1280_ms (1), + PERIOD_2048_ms (2), + PERIOD_2560_ms (3), + PERIOD_5120_ms (4), + PERIOD_10240_ms (5), + PERIOD_1_min (6) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.167 +// AVP: Measurement-Period-UMTS (1655) 3GPP (10415) +type enumerated Measurement_Period_UMTS +{ + PERIOD_250_ms (0), + PERIOD_500_ms (1), + PERIOD_1000_ms (2), + PERIOD_2000_ms (3), + PERIOD_3000_ms (4), + PERIOD_4000_ms (5), + PERIOD_6000_ms (6), + PERIOD_8000_ms (7), + PERIOD_12000_ms (8), + PERIOD_16000_ms (9), + PERIOD_20000_ms (10), + PERIOD_24000_ms (11), + PERIOD_28000_ms (12), + PERIOD_32000_ms (13), + PERIOD_64000_ms (14) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.168 +// AVP: Collection-Period-RRM-LTE (1657) 3GPP (10415) +type enumerated Collection_Period_RRM_LTE +{ + PERIOD_1024_ms (0), + PERIOD_1280_ms (1), + PERIOD_2048_ms (2), + PERIOD_2560_ms (3), + PERIOD_5120_ms (4), + PERIOD_10240_ms (5), + PERIOD_1_min (6) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.169 +// AVP: Collection-Period-RRM-UMTS (1658) 3GPP (10415) +type enumerated Collection_Period_RRM_UMTS +{ + PERIOD_250_ms (0), + PERIOD_500_ms (1), + PERIOD_1000_ms (2), + PERIOD_2000_ms (3), + PERIOD_3000_ms (4), + PERIOD_4000_ms (5), + PERIOD_6000_ms (6), + PERIOD_8000_ms (7), + PERIOD_12000_ms (8), + PERIOD_16000_ms (9), + PERIOD_20000_ms (10), + PERIOD_24000_ms (11), + PERIOD_28000_ms (12), + PERIOD_32000_ms (13), + PERIOD_64000_ms (14) +} + +// 3GPP TS 29.272 V11.13.0 +// 7.3.170 +// AVP: Positioning-Method (1659) 3GPP (10415) +type AVP_OctetString Positioning_Method; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.171 +// AVP: Measurement_Quantity (1660) 3GPP (10415) +type AVP_OctetString Measurement_Quantity; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.172 +// AVP: Event-Threshold-Event-1F (1661) 3GPP (10415) +type AVP_Integer32 Event_Threshold_Event_1F; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.173 +// AVP: Event-Threshold-Event-1I (1662) 3GPP (10415) +type AVP_Integer32 Event_Threshold_Event_1I; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.174 +// AVP: Restoration-Priority (1663) 3GPP (10415) +type AVP_Unsigned32 Restoration_Priority; + +// 3GPP TS 29.272 V11.13.0 +// 7.3.185 +// AVP: MDT-Allowed-PLMN-Id (1671) 3GPP (10415) +type AVP_OctetString MDT_Allowed_PLMN_Id; diff --git a/src/AAAInterface_3GPP_TS29273_840.ddf b/src/AAAInterface_3GPP_TS29273_840.ddf index 2873560..58db0be 100644 --- a/src/AAAInterface_3GPP_TS29273_840.ddf +++ b/src/AAAInterface_3GPP_TS29273_840.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29273_840.ddf // Description: DDF for EPS AAA according to 3GPP TS 29.273 V8.4.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/AAAInterface_3GPP_TS29273_940.ddf b/src/AAAInterface_3GPP_TS29273_940.ddf index 628d517..c44f023 100644 --- a/src/AAAInterface_3GPP_TS29273_940.ddf +++ b/src/AAAInterface_3GPP_TS29273_940.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29273_940.ddf // Description: DDF for EPS AAA according to 3GPP TS 29.273 V9.4.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/AAAInterface_3GPP_TS29273_b30.ddf b/src/AAAInterface_3GPP_TS29273_b30.ddf index ed1361c..d469dd4 100644 --- a/src/AAAInterface_3GPP_TS29273_b30.ddf +++ b/src/AAAInterface_3GPP_TS29273_b30.ddf @@ -37,7 +37,7 @@ // // File: AAAInterface_3GPP_TS29273_940.ddf // Description: DDF for EPS AAA according to 3GPP TS 29.273 V11.3.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/AVP.sh b/src/AVP.sh old mode 100644 new mode 100755 diff --git a/src/Acision_Specific.ddf b/src/Acision_Specific.ddf index cab1dc6..279121a 100644 --- a/src/Acision_Specific.ddf +++ b/src/Acision_Specific.ddf @@ -37,7 +37,7 @@ // // File: Acision_Specific.ddf // Description: Acision specific AVP definitions -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 // Reference: // diff --git a/src/Alcatel_Lucent_Specific_AVPs.ddf b/src/Alcatel_Lucent_Specific_AVPs.ddf index e436a19..3c45a46 100644 --- a/src/Alcatel_Lucent_Specific_AVPs.ddf +++ b/src/Alcatel_Lucent_Specific_AVPs.ddf @@ -37,7 +37,7 @@ // // File: Alcatel_Lucent_Specific_AVPs.ddf // Description: Alcatel Lucent (ALU) specific AVP definitions -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// @@ -82,10 +82,8 @@ type enumerated Call_Direction // Diameter Offline Charging in MTAS // AVP: Call-Type (12) ALU (1751) // 5.2.11 -type enumerated Call_Type -{ - Mobile (32) -} +type AVP_Unsigned32 Call_Type; + // Diameter Offline Charging in MTAS // AVP: Service-ID (5) ALU (1751) diff --git a/src/BaseTypes_IETF_RFC3588.ddf b/src/BaseTypes_IETF_RFC3588.ddf index e134803..4745f15 100644 --- a/src/BaseTypes_IETF_RFC3588.ddf +++ b/src/BaseTypes_IETF_RFC3588.ddf @@ -37,7 +37,7 @@ // // File: BaseTypes_IETF_RFC3588.ddf // Description: DDF for the Diameter base types -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/Base_IETF_RFC3588.ddf b/src/Base_IETF_RFC3588.ddf index 8850840..537ba15 100644 --- a/src/Base_IETF_RFC3588.ddf +++ b/src/Base_IETF_RFC3588.ddf @@ -37,7 +37,7 @@ // // File: Base_IETF_RFC3588.ddf // Description: DDF for the Diameter base AVPs -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/CLCInterface_Vodafone_Rev2.ddf b/src/CLCInterface_Vodafone_Rev2.ddf index 34f0ced..17727c8 100644 --- a/src/CLCInterface_Vodafone_Rev2.ddf +++ b/src/CLCInterface_Vodafone_Rev2.ddf @@ -39,7 +39,7 @@ // Description: DDF for CLC according to Intelligent Packet Core // Vodafone Diameter CCA Specification for the CLCI // Version 2 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_850.ddf b/src/ChargingApplications_3GPP_TS32299_850.ddf index 775a7b4..2b3f26a 100644 --- a/src/ChargingApplications_3GPP_TS32299_850.ddf +++ b/src/ChargingApplications_3GPP_TS32299_850.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplication_3GPP_TS32299_850.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V8.5.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_870.ddf b/src/ChargingApplications_3GPP_TS32299_870.ddf index b1cd43a..5387f6c 100644 --- a/src/ChargingApplications_3GPP_TS32299_870.ddf +++ b/src/ChargingApplications_3GPP_TS32299_870.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplication_3GPP_TS32299_870.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V8.7.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_900.ddf b/src/ChargingApplications_3GPP_TS32299_900.ddf index 37d3b51..73b6160 100644 --- a/src/ChargingApplications_3GPP_TS32299_900.ddf +++ b/src/ChargingApplications_3GPP_TS32299_900.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplication_3GPP_TS32299_900.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V9.0.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_940.ddf b/src/ChargingApplications_3GPP_TS32299_940.ddf index 31b8be3..5b614ca 100644 --- a/src/ChargingApplications_3GPP_TS32299_940.ddf +++ b/src/ChargingApplications_3GPP_TS32299_940.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplications_3GPP_TS32299_940.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V9.4.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_9b0.ddf b/src/ChargingApplications_3GPP_TS32299_9b0.ddf index bc11036..917f34b 100644 --- a/src/ChargingApplications_3GPP_TS32299_9b0.ddf +++ b/src/ChargingApplications_3GPP_TS32299_9b0.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplications_3GPP_TS32299_9110.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V9.11.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_AdviceOfCharge.ddf b/src/ChargingApplications_3GPP_TS32299_AdviceOfCharge.ddf index c9200e3..72b0299 100644 --- a/src/ChargingApplications_3GPP_TS32299_AdviceOfCharge.ddf +++ b/src/ChargingApplications_3GPP_TS32299_AdviceOfCharge.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplication_3GPP_TS32299_AdviceOfCharge.ddf // Description: DDF for Diameter Charging Application -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_a60.ddf b/src/ChargingApplications_3GPP_TS32299_a60.ddf index 24cdd21..3023d44 100644 --- a/src/ChargingApplications_3GPP_TS32299_a60.ddf +++ b/src/ChargingApplications_3GPP_TS32299_a60.ddf @@ -37,7 +37,7 @@ // // File: ChargingApplications_3GPP_TS32299_a60.ddf // Description: DDF for Diameter Charging Application 3GPP TS 32.299 V10.6.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ChargingApplications_3GPP_TS32299_be0.ddf b/src/ChargingApplications_3GPP_TS32299_be0.ddf new file mode 100644 index 0000000..cb8ad94 --- /dev/null +++ b/src/ChargingApplications_3GPP_TS32299_be0.ddf @@ -0,0 +1,1860 @@ +/****************************************************************************** +* Copyright (c) 2004, 2015 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder - initial implementation +******************************************************************************/ +// +// File: ChargingApplications_3GPP_TS32299_be0.ddf +// Description: DDF for Diameter Charging Application 3GPP TS 32.299 11.15.0 +// Rev: R34A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + +// APPLICATION-NAME: DCA +// APPLICATION-REVISION: V11_15_0 + +// AVP implementations according to: +// 3GPP TS 32.299 V11.15.0 - Telecommunication management; Charging management; +// +// +// Dependant applications +// 3GPP TS 29.229 - Cx and Dx interfaces based on the Diameter protocol +// IETF RFC 3588 - Diameter Base Protocol +// RFC 4006 - Diameter Credit Control Application +// +// Notes: +// + + +// 3GPP TS 32.299 V11.5.0 +type enumerated Command_Code +{ + Accounting (271), + Re_Auth (258) +} + + +// 3GPP TS 32.299 V11.15.0 +// AVP: Access-Network-Information (1263) 3GPP (10415) +// 7.2.1 +type AVP_OctetString Access_Network_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Access-Transfer-Information (2709) 3GPP (10415) +// 7.2.1A +type AVP_Grouped Access_Transfer_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Access-Transfer-Type (2710) 3GPP (10415) +// 7.2.1.B +type enumerated Access_Transfer_Type +{ + PS_to_CS_Transfer (0), + CS_to_PS_Transfer (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Account-Expiration (2309) 3GPP (10415) +// 7.2.2 +type AVP_Time Account_Expiration; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Accumulated-Cost (2052) 3GPP (10415) +// 7.2.3 +type AVP_Grouped Accumulated_Cost; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Adaptations (1217) 3GPP (10415) +// 7.2.4 +type enumerated Adaptations +{ + YES (0), + NO (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Additional-Content-Information (1207) 3GPP (10415) +// 7.2.5 +type AVP_Grouped Additional_Content_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Additional-Type-Information (1205) 3GPP (10415) +// 7.2.6 +type AVP_UTF8String Additional_Type_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Address-Data (897) 3GPP (10415) +// 7.2.7 +type AVP_UTF8String Address_Data; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Address-Domain (898) 3GPP (10415) +// 7.2.8 +type AVP_Grouped Address_Domain; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Address-Type (899) 3GPP (10415) +// 7.2.9 +type enumerated Address_Type +{ + E_MAIL_ADDRESS (0), + MSISDN (1), + IPV4_ADDRESS (2), + IPV6_ADDRESS (3), + NUMERIC_SHORTCODE (4), + ALPHANUMERIC_SHORTCODE (5), + OTHER (6), + IMSI (7) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Addressee-Type (1208) 3GPP (10415) +// 7.2.10 +type enumerated Addressee_Type +{ + TO (0), + CC (1), + BCC (2) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: AF-Correlation-Information (1276) 3GPP (10415) +// 7.2.11 +type AVP_Grouped AF_Correlation_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Alternate-Charged-Party-Address (1280) 3GPP (10415) +// 7.2.12 +type AVP_UTF8String Alternate_Charged_Party_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: AoC-Cost-Information (2053) 3GPP (10415) +// 7.2.13 +type AVP_Grouped AoC_Cost_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: AoC-Format (2310) 3GPP (10415) +// 7.2.14 +type enumerated AoC_Format +{ + MONETARY (0), + NON_MONETARY (1), + CAI (2) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: AoC-Information (2054) 3GPP (10415) +// 7.2.15 +type AVP_Grouped AoC_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: AoC-Request-Type (2055) 3GPP (10415) +// 7.2.16 +type enumerated AoC_Request_Type +{ + AoC_NOT_REQUESTED (0), + AoC_FULL (1), + AoC_COST_ONLY (2), + AoC_TARIFF_ONLY (3) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: AoC-Service (2311) 3GPP (10415) +// 7.2.17 +type AVP_Grouped AoC_Service; + +// 3GPP TS 32.299 V11.15.0 +// AVP: AoC-Service-Obligatory-Type (2312) 3GPP (10415) +// 7.2.18 +type enumerated AoC_Service_Obligatory_Type +{ + NON_BINDING (0), + BINDING (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: AoC-Service-Type (2313) 3GPP (10415) +// 7.2.19 +type enumerated AoC_Service_Type +{ + NONE (0), + AOC_S (1), + AOC_D (2), + AOC_E (3) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: AoC-Subscription-Information (2314) 3GPP (10415) +// 7.2.20 +type AVP_Grouped AoC_Subscription_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Applic-ID (1218) 3GPP (10415) +// 7.2.21 +type AVP_UTF8String Applic_ID; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Application-provided-Called-Party-Address (837) 3GPP (10415) +// 7.2.22 +type AVP_UTF8String Application_provided_Called_Party_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Application-Server (836) 3GPP (10415) +// 7.2.23 +type AVP_UTF8String Application_Server; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Application-Server-Information (850) 3GPP (10415) +// 7.2.24 +type AVP_Grouped Application_Server_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Associated-Party-Address (2035) 3GPP (10415) +// 7.2.25 +type AVP_UTF8String Associated_Party_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Associated-URI (856) 3GPP (10415) +// 7.2.26 +type AVP_UTF8String Associated_URI; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Authorised-QoS (849) 3GPP (10415) +// 7.2.27 +type AVP_UTF8String Authorised_QoS; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Aux-Applic-Info (1219) 3GPP (10415) +// 7.2.28 +type AVP_UTF8String Aux_Applic_Info; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Base-Time-Interval (1265) 3GPP (10415) +// 7.2.29 +type AVP_Unsigned32 Base_Time_Interval; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Bearer-Service (854) 3GPP (10415) +// 7.2.30 +type AVP_OctetString Bearer_Service; + +// 3GPP TS 32.299 V11.15.0 +// AVP: BSSID (2716) 3GPP (10415) +// 7.2.30A +type AVP_UTF8String BSSID; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Called-Asserted-Identity (1250) 3GPP (10415) +// 7.2.31 +type AVP_UTF8String Called_Asserted_Identity; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Called-Party-Address (832) 3GPP (10415) +// 7.2.32 +type AVP_UTF8String Called_Party_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Calling-Party-Address (831) 3GPP (10415) +// 7.2.33 +type AVP_UTF8String Calling_Party_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Carrier-Select-Routing-Information (2023) 3GPP (10415) +// 7.2.34 +type AVP_UTF8String Carrier_Select_Routing_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Cause-Code (861) 3GPP (10415) +// 7.2.35 +type AVP_Integer32 Cause_Code; + +// 3GPP TS 32.299 V11.15.0 +// AVP: CG-Address (846) 3GPP (10415) +// 7.2.36 +type AVP_Address CG_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Change-Condition (2037) 3GPP (10415) +// 7.2.37 +type AVP_Integer32 Change_Condition; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Change-Time (2038) 3GPP (10415) +// 7.2.38 +type AVP_Time Change_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Charge-Reason-Code (2118) 3GPP (10415) +// 7.2.38A +type enumerated Charge_Reason_Code +{ + UNKNOWN (0), + USAGE (1), + COMMUNICATION_ATTEMPT_CHARGE (2), + SETUP_CHARGE (3), + ADD_ON_CHARGE (4) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Charged-Party (857) 3GPP (10415) +// 7.2.39 +type AVP_UTF8String Charged_Party; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Charging-Characteristics-Selection-Mode (2066) 3GPP (10415) +// 7.2.39A +type enumerated Charging_Characteristics_Selection_Mode +{ + SERVING_NODE_SUPPLIED (0), + SUBSCRIPTION_SPECIFIC (1), + APN_SPECIFIC (2), + HOME_DEFAULT (3), + ROAMING_DEFAULT (4), + VISITING_DEFAULT (5) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Class-Identifier (1214) 3GPP (10415) +// 7.2.40 +type enumerated Class_Identifier +{ + PERSONAL (0), + ADVERTISMENT (1), + INFORMATIONAL (2), + AUTO (3) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Client-Address (2018) 3GPP (10415) +// 7.2.41 +type AVP_Address Client_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Content-Class (1220) 3GPP (10415) +// 7.2.42 +type enumerated Content_Class +{ + TEXT (0), + IMAGE_BASIC (1), + IMAGE_RICH (2), + VIDEO_BASIC (3), + VIDEO_RICH (4), + MEGAPIXEL (5), + CONTENT_BASIC (6), + CONTENT_RICH (7) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Content-Disposition (828) 3GPP (10415) +// 7.2.43 +type AVP_UTF8String Content_Disposition; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Content-Length (827) 3GPP (10415) +// 7.2.44 +type AVP_Unsigned32 Content_Length; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Content-Size (1206) 3GPP (10415) +// 7.2.45 +type AVP_Unsigned32 Content_Size; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Content-Type (826) 3GPP (10415) +// 7.2.46 +type AVP_UTF8String Content_Type; + +// 3GPP TS 32.299 V11.15.0 +// AVP: CSG-Access-Mode (2317) 3GPP (10415) +// 7.2.46A +type enumerated CSG_Access_Mode +{ + CLOSED_MODE (0), + HYBRID_MODE (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: CSG-Membership-Indication (2318) 3GPP (10415) +// 7.2.46B +type enumerated CSG_Membership_Indication +{ + NOT_CSG_MEMBER (0), + CSG_MEMBER (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Current-Tariff (2056) 3GPP (10415) +// 7.2.47 +type AVP_Grouped Current_Tariff; + +// 3GPP TS 32.299 V11.15.0 +// AVP: CUG-Information (2304) 3GPP (10415) +// 7.2.48 +type AVP_OctetString CUG_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Data-Coding-Scheme (2001) 3GPP (10415) +// 7.2.49 +type AVP_Integer32 Data_Coding_Scheme; + +// 3GPP TS 32.299 V11.15.0 +// AVP: DCD-Information (2115) 3GPP (10415) +// 7.2.50 +type AVP_Grouped DCD_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Deferred-Location-Event-Type (1230) 3GPP (10415) +// 7.2.51 +type AVP_UTF8String Deferred_Location_Event_Type; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Delivery-Report-Requested (1216) 3GPP (10415) +// 7.2.52 +type enumerated Delivery_Report_Requested +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Destination-Interface (2002) 3GPP (10415) +// 7.2.53 +type AVP_Grouped Destination_Interface; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Diagnostics (2039) 3GPP (10415) +// 7.2.54 +type AVP_Integer32 Diagnostics; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Domain-Name (1200) 3GPP (10415) +// 7.2.55 +type AVP_UTF8String Domain_Name; + +// 3GPP TS 32.299 V11.15.0 +// AVP: DRM-Content (1221) 3GPP (10415) +// 7.2.56 +type enumerated DRM_Content +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Dynamic-Address-Flag (2051) 3GPP (10415) +// 7.2.57 +type enumerated Dynamic_Address_Flag +{ + STATIC (0), + DYNAMIC (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Dynamic-Address-Flag-Extension (2068) 3GPP (10415) +// 7.2.57A +type enumerated Dynamic_Address_Flag_Extension +{ + STATIC (0), + DYNAMIC (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Early-Media-Description (1272) 3GPP (10415) +// 7.2.58 +type AVP_Grouped Early_Media_Description; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Envelope (1266) 3GPP (10415) +// 7.2.59 +type AVP_Grouped Envelope; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Envelope-End-Time (1267) 3GPP (10415) +// 7.2.60 +type AVP_Time Envelope_End_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Envelope-Reporting (1268) 3GPP (10415) +// 7.2.61 +type enumerated Envelope_Reporting +{ + DO_NOT_REPORT_ENVELOPES (0), + REPORT_ENVELOPES (1), + REPORT_ENVELOPES_WITH_VOLUME (2), + REPORT_ENVELOPES_WITH_EVENTS (3), + REPORT_ENVELOPES_WITH_VOLUME_AND_EVENTS (4) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Envelope-Start-Time (1269) 3GPP (10415) +// 7.2.62 +type AVP_Time Envelope_Start_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Event (825) 3GPP (10415) +// 7.2.63 +type AVP_UTF8String Event; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Event-Charging-TimeStamp (1258) 3GPP (10415) +// 7.2.64 +type AVP_Time Event_Charging_TimeStamp; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Event-Type (823) 3GPP (10415) +// 7.2.65 +type AVP_Grouped Event_Type; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Expires (888) 3GPP (10415) +// 7.2.66 +type AVP_Unsigned32 Expires; + +// 3GPP TS 32.299 V11.15.0 +// AVP: File-Repair-Supported (1224) 3GPP (10415) +// 7.2.67 +type enumerated File_Repair_Supported +{ + SUPPORTED (1), + NOT_SUPPORTED (2) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: From-Address (2708) 3GPP (10415) +// 7.2.67A +type AVP_UTF8String From_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: GGSN-Address (847) 3GPP (10415) +// 7.2.68 +type AVP_Address GGSN_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: IM-Information (2110) 3GPP (10415) +// 7.2.69 +type AVP_Grouped IM_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Incremental-Cost (2062) 3GPP (10415) +// 7.2.70 +type AVP_Grouped Incremental_Cost; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Interface-Id (2003) 3GPP (10415) +// 7.2.71 +type AVP_UTF8String Interface_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Interface-Port (2004) 3GPP (10415) +// 7.2.72 +type AVP_UTF8String Interface_Port; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Interface-Text (2005) 3GPP (10415) +// 7.2.73 +type AVP_UTF8String Interface_Text; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Interface-Type (2006) 3GPP (10415) +// 7.2.74 +type enumerated Interface_Type; +{ + UNKNOWN (0), + MOBILE_ORIGINATING (1), + MOBILE_TERMINATING (2), + APPLICATION_ORIGINATING (3), + APPLICATION_TERMINATION (4) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: IMS-Application-Reference-Identifier (2601) 3GPP (10415) +// 7.2.74A +type AVP_UTF8String IMS_Application_Reference_Identifier; + +// 3GPP TS 32.299 V11.15.0 +// AVP: IMS-Charging-Identifier (841) 3GPP (10415) +// 7.2.75 +type AVP_UTF8String IMS_Charging_Identifier; + +// 3GPP TS 32.299 V11.15.0 +// AVP: IMS-Communication-Service-Identifier (1281) 3GPP (10415) +// 7.2.76 +type AVP_UTF8String IMS_Communication_Service_Identifier; + +// 3GPP TS 32.299 V11.15.0 +// AVP: IMS-Emergency-Indicator (2322) 3GPP (10415) +// 7.2.76A +type enumerated IMS_Emergency_Indicator; +{ + Non_Emergency (0), + Emergency (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: IMS-Information (876) 3GPP (10415) +// 7.2.77 +type AVP_Grouped IMS_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: IMS-Visited-Network-Identifier (2713) 3GPP (10415) +// 7.2.77A +type AVP_UTF8String IMS_Visited_Network_Identifier; + +// 3GPP TS 32.299 V11.15.0 +// AVP: IMSI-Unauthenticated-Flag (2308) 3GPP (10415) +// 7.2.78 +type enumerated IMSI_Unauthenticated_Flag; +{ + AUTHENTICATED (0), + UNAUTHENTICATED (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Incoming-Trunk-Group-Id (852) 3GPP (10415) +// 7.2.79 +type AVP_UTF8String Incoming_Trunk_Group_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Initial-IMS-Charging-Identifier (2321) 3GPP (10415) +// 7.2.79A +type AVP_UTF8String Initial_IMS_Charging_Identifier; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Inter-Operator-Identifier (838) 3GPP (10415) +// 7.2.80 +type AVP_Grouped Inter_Operator_Identifier; + +// 3GPP TS 32.299 V11.15.0 +// AVP: IP-Realm-Default-Indication (2603) 3GPP (10415) +// 7.2.80A +type enumerated IP_Realm_Default_Indication; +{ + DEFAULT_IP_REALM_NOT_USED (0), + DEFAULT_IP_REALM_USED (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-APN (1231) 3GPP (10415) +// 7.2.81 +type AVP_UTF8String LCS_APN; + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-Client-Dialed-By-MS (1233) 3GPP (10415) +// 7.2.82 +type AVP_UTF8String LCS_Client_Dialed_By_MS; + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-Client-External-ID (1234) 3GPP (10415) +// 7.2.83 +type AVP_UTF8String LCS_Client_External_ID; + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-Client-Id (1232) 3GPP (10415) +// 7.2.84 +type AVP_Grouped LCS_Client_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-Client-Name (1235) 3GPP (10415) +// 7.2.85 +type AVP_Grouped LCS_Client_Name; + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-Client-Type (1241) 3GPP (10415) +// 7.2.86 +type enumerated LCS_Client_Type +{ + EMERGENCY_SERVICES (0), + VALUE_ADDED_SERVICES (1), + PLMN_OPERATOR_SERVICES (2), + LAWFUL_INTERCEPT_SERVICES (3) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-Data-Coding-Scheme (1236) 3GPP (10415) +// 7.2.87 +type AVP_UTF8String LCS_Data_Coding_Scheme; + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-Format-Indicator (1237) 3GPP (10415) +// 7.2.88 +type enumerated LCS_Format_Indicator +{ + LOGICAL_NAME (0), + EMAIL_ADDRESS (1), + MSISDN (2), + URL (3), + SIP_URL (4) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-Information (878) 3GPP (10415) +// 7.2.89 +type AVP_Grouped LCS_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-Name-String (1238) 3GPP (10415) +// 7.2.90 +type AVP_UTF8String LCS_Name_String; + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-Requestor-Id (1239) 3GPP (10415) +// 7.2.91 +type AVP_Grouped LCS_Requestor_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: LCS-Requestor-Id-String (1240) 3GPP (10415) +// 7.2.92 +type AVP_UTF8String LCS_Requestor_Id_String; + + +// 3GPP TS 32.299 V11.15.0 +// AVP: Local-GW-Inserted-Indication (2604) 3GPP (10415) +// 7.2.92A +type enumerated Local_GW_Inserted_Indication +{ + LOCAL_GW_NOT_INSERTED (0), + LOCAL_GW_INSERTED (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Local-Sequence-Number (2063) 3GPP (10415) +// 7.2.93 +type AVP_Unsigned32 Local_Sequence_Number; + + +// 3GPP TS 32.299 V11.15.0 +// AVP: Location-Estimate (1242) 3GPP (10415) +// 7.2.94 +type AVP_OctetString Location_Estimate; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Location-Estimate-Type (1243) 3GPP (10415) +// 7.2.95 +type enumerated Location_Estimate_Type +{ + CURRENT_LOCATION (0), + CURRENT_LAST_KNOWN_LOCATION (1), + INITIAL_LOCATION (2), + ACTIVATE_DEFERRED_LOCATION (3), + CANCEL_DEFERRED_LOCATION (4) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Location-Type (1244) 3GPP (10415) +// 7.2.96 +type AVP_Grouped Location_Type; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Low-Balance-Indication (2020) 3GPP (10415) +// 7.2.97 +type enumerated Low_Balance_Indication +{ + NOT_APPLICABLE (0), + YES (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Low-Priority-Indicator (2602) 3GPP (10415) +// 7.2.97A +type enumerated Low_Priority_Indicator +{ + NOT_APPLICABLE (0), + YES (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: MBMS-GW-Address (2307) 3GPP (10415) +// 7.2.98 +type AVP_Address MBMS_GW_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: MBMS-Information (880) 3GPP (10415) +// 7.2.99 +type AVP_Grouped MBMS_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: MBMS-User-Service-Type (1225) 3GPP (10415) +// 7.2.100 +type enumerated MBMS_User_Service_Type +{ + DOWNLOAD (1), + STREAMING (2) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Media-Initiator-Flag (882) 3GPP (10415) +// 7.2.101 +type enumerated Media_Initiator_Flag +{ + CALLED_PARTY (0), + CALLING_PARTY (1), + UNKNOWN (2) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Media-Initiator-Party (1288) 3GPP (10415) +// 7.2.102 +type AVP_UTF8String Media_Initiator_Party; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Message-Body (889) 3GPP (10415) +// 7.2.103 +type AVP_Grouped Message_Body; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Message-Class (1213) 3GPP (10415) +// 7.2.104 +type AVP_Grouped Message_Class; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Message-ID (1210) 3GPP (10415) +// 7.2.105 +type AVP_UTF8String Message_ID; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Message-Size (1212) 3GPP (10415) +// 7.2.106 +type AVP_Unsigned32 Message_Size; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Message-Type (1211) 3GPP (10415) +// 7.2.107 +type enumerated Message_Type +{ + M_SEMD_REQ (1), + M_SEMD_CONF (2), + M_NOTIFICATION_IND (3), + M_NOTIFYRESP_IND (4), + M_RETRIEVE_CONF (5), + M_ACKNOWLEDGE_IND (6), + M_DELIVERY_IND (7), + M_READ_REC_IND (8), + M_READ_ORIG_IND (9), + M_FORWARD_REQ (10), + M_FORWARD_CONF (11), + M_MBOX_STORE_CONF (12), + M_MBOX_VIEW_CONF (13), + M_MBOX_UPLOAD_CONF (14), + M_MBOX_DELETE_CONF (15) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: MM-Content-Type (1203) 3GPP (10415) +// 7.2.108 +type AVP_Grouped MM_Content_Type; + + +// 3GPP TS 32.299 V11.15.0 +// AVP: MMBox-Storage-Requested (1248) 3GPP (10415) +// 7.2.109 +type enumerated MMBox_Storage_Requested +{ + NO (0), + YES (1) +} +// 3GPP TS 32.299 V11.15.0 +// AVP: MMS-Information (877) 3GPP (10415) +// 7.2.110 +type AVP_Grouped MMS_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: MMTel-Information (2030) 3GPP (10415) +// 7.2.111 +type AVP_Grouped MMTel_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: MMTel-SService-Type (2031) 3GPP (10415) +// 7.2.111aA +type AVP_Unsigned32 MMTel_SService_Type; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Neighbour-Node-Address (2705) 3GPP (10415) +// 7.2.111A +type AVP_Address Neighbour_Node_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Next-Tariff (2057) 3GPP (10415) +// 7.2.112 +type AVP_Grouped Next_Tariff; + +// 3GPP TS 32.299 V11.15.0 +// AVP: NNI-Information (2703) 3GPP (10415) +// 7.2.112A +type AVP_Grouped NNI_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: NNI-Type (2704) 3GPP (10415) +// 7.2.112B +type enumerated NNI_Type +{ + Non_Roaming (0), + Roaming_Without_Loopback (1), + Roaming_With_Loopback (2) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Node-Functionality (862) 3GPP (10415) +// 7.2.113 +type enumerated Node_Functionality +{ + S_CSCF (0), + P_CSCF (1), + I_CSCF (2), + MRFC (3), + MGCF (4), + BGCF (5), + AS (6), + IBCF (7), + S_GW (8), + P_GW (9), + HSGW (10), + E_CSCF (11), + MME (12), + TRF (13), + TF (14), + ATCF (15) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Node-Id (2064) 3GPP (10415) +// 7.2.114 +type AVP_UTF8String Node_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Number-Of-Diversions (2034) 3GPP (10415) +// 7.2.115 +type AVP_Unsigned32 Number_Of_Diversions; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Number-of-Messages-Sent (2019) 3GPP (10415) +// 7.2.116 +type AVP_Unsigned32 Number_of_Messages_Sent; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Number-Of-Participants (885) 3GPP (10415) +// 7.2.117 +type AVP_Unsigned32 Number_Of_Participants; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Number-Of-Received-Talk-Bursts (1282) 3GPP (10415) +// 7.2.118 +type AVP_Unsigned32 Number_Of_Received_Talk_Bursts; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Number-Of-Talk-Bursts (1283) 3GPP (10415) +// 7.2.119 +type AVP_Unsigned32 Number_Of_Talk_Bursts; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Number-Portability-Routing-Information (2024) 3GPP (10415) +// 7.2.120 +type AVP_UTF8String Number_Portability_Routing_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Offline-Charging (1278) 3GPP (10415) +// 7.2.121 +type AVP_Grouped Offline_Charging; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Online-Charging-Flag (2303) 3GPP (10415) +// 7.2.122 +type enumerated Online_Charging_Flag +{ + ECF_ADDRESS_NOT_PROVIDED (0), + ECF_ADDRESS_PROVIDED (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Originating-IOI (839) 3GPP (10415) +// 7.2.123 +type AVP_UTF8String Originating_IOI; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Originator (864) 3GPP (10415) +// 7.2.124 +type enumerated Originator +{ + CALLING_PARTY (0), + CALLED_PARTY (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Originator-Address (886) 3GPP (10415) +// 7.2.125 +type AVP_Grouped Originator_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Originator-Interface (2009) 3GPP (10415) +// 7.2.126 +type AVP_Grouped Originator_Interface; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Originator-Received-Address (2027) 3GPP (10415) +// 7.2.127 +type AVP_Grouped Originator_Received_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Originating-SCCP-Address (2008) 3GPP (10415) +// 7.2.128 +type AVP_Address Originating_SCCP_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Outgoing-Session-Id (2320) 3GPP (10415) +// 7.2.128A +type AVP_UTF8String Outgoing_Session_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Outgoing-Trunk-Group-Id (853) 3GPP (10415) +// 7.2.129 +type AVP_UTF8String Outgoing_Trunk_Group_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Participants-Involved (887) 3GPP (10415) +// 7.2.130 +type AVP_UTF8String Participants_Involved; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Participant-Group (1260) 3GPP (10415) +// 7.2.131 +type AVP_Grouped Participant_Group; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Participant-Access-Priority (1259) 3GPP (10415) +// 7.2.132 +type enumerated Participant_Access_Priority +{ + PRE_EMPTIVE_PRIORITY (1), + HIGH_PRIORITY (2), + NORMAL_PRIORITY (3), + LOW_PRIORITY (4) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Participant-Action-Type (2049) 3GPP (10415) +// 7.2.133 +type enumerated Participant_Action_Type +{ + CREATE_CONF (0), + JOIN_CONF (1), + INVITE_INTO_CONF (2), + QUIT_CONF (3) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: PDG-Address (895) 3GPP (10415) +// 7.2.134 +type AVP_Address PDG_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PDG-Charging-Id (896) 3GPP (10415) +// 7.2.135 +type AVP_Unsigned32 PDG_Charging_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PDN-Connection-Charging-ID (2050) 3GPP (10415) +// 7.2.136 +type AVP_Unsigned32 PDN_Connection_Charging_ID; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PDP-Address (1227) 3GPP (10415) +// 7.2.137 +type AVP_Address PDP_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PDP-Address-Prefix-Length (2606) 3GPP (10415) +// 7.2.137a +type AVP_Unsigned32 PDP_Address_Prefix_Length; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PDP-Context-Type (1247) 3GPP (10415) +// 7.2.138 +type enumerated PDP_Context_Type +{ + PRIMARY (0), + SECONDARY (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-Change-Conditions (1261) 3GPP (10415) +// 7.2.139 +type enumerated PoC_Change_Conditions +{ + SERVICE_CHANGE (0), + VOLUME_LIMIT (1), + TIME_LIMIT (2), + NUMBER_OF_TALK_BURST_LIMIT (3), + NUMBER_OF_ACTIVE_PARTICIPANTS (4), + TARIFF_TIME (5) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-Change-Time (1262) 3GPP (10415) +// 7.2.140 +type AVP_Time PoC_Change_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-Controlling-Address (858) 3GPP (10415) +// 7.2.141 +type AVP_UTF8String PoC_Controlling_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-Event-Type (2025) 3GPP (10415) +// 7.2.142 +type enumerated PoC_Event_Type +{ + NORMAL (0), + INSTANT_PERSONAL_ALERT_EVENT (1), + POC_GROUP_ADVERTISEMENT_EVENT (2), + EARLY_SESSION_SETTING_UP_EVENT (3), + POC_TALK_BURST (4) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-Group-Name (859) 3GPP (10415) +// 7.2.143 +type AVP_UTF8String PoC_Group_Name; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-Information (879) 3GPP (10415) +// 7.2.144 +type AVP_Grouped PoC_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-Server-Role (883) 3GPP (10415) +// 7.2.145 +type enumerated PoC_Server_Role +{ + PARTICIPATING_POC_SERVER (0), + CONTROLLING_POC_SERVER (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-Session-Id (1229) 3GPP (10415) +// 7.2.146 +type AVP_UTF8String PoC_Session_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-Session-Initiation-Type (1277) 3GPP (10415) +// 7.2.147 +type enumerated PoC_Session_Initiation_Type +{ + PRE_ESTABLISHED (0), + ON_DEMAND (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-Session-Type (884) 3GPP (10415) +// 7.2.148 +type enumerated PoC_Session_Type +{ + ONE_TO_ONE_POC_SESSION (0), + CHAT_POC_GROUP_SESSION (1), + PRE_ARRANGED_POC_GROUP_SESSION (2), + AD_HOC_POC_GROUP_SESSION (3) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-User-Role (1252) 3GPP (10415) +// 7.2.149 +type AVP_Grouped PoC_User_Role; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-User-Role-IDs (1253) 3GPP (10415) +// 7.2.150 +type AVP_UTF8String PoC_User_Role_IDs; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PoC-User-Role-info-Units (1254) 3GPP (10415) +// 7.2.151 +type enumerated PoC_User_Role_info_Units +{ + MODERATOR (1), + DISPATCHER (2), + SESSION_OWNER (3), + SESSION_PARTICIPANT (4) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Positioning-Data (1245) 3GPP (10415) +// 7.2.152 +type AVP_UTF8String Positioning_Data; + + +// 3GPP TS 32.299 V11.15.0 +// AVP: Preferred-AoC-Currency (2315) 3GPP (10415) +// 7.2.153 +type AVP_Unsigned32 Preferred_AoC_Currency; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Priority (1209) 3GPP (10415) +// 7.2.154 +type enumerated Priority +{ + LOW (0), + NORMAL (1), + HIGH (2) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: PS-Append-Free-Format-Data (867) 3GPP (10415) +// 7.2.155 +type enumerated PS_Append_Free_Format_Data +{ + APPEND (0), + OVERWRITE (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: PS-Free-Format-Data (866) 3GPP (10415) +// 7.2.156 +type AVP_OctetString PS_Free_Format_Data; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PS-Furnish-Charging-Information (865) 3GPP (10415) +// 7.2.157 +type AVP_Grouped PS_Furnish_Charging_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: PS-Information (874) 3GPP (10415) +// 7.2.158 +type AVP_Grouped PS_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Quota-Consumption-Time (881) 3GPP (10415) +// 7.2.159 +type AVP_Unsigned32 Quota_Consumption_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Quota-Holding-Time (871) 3GPP (10415) +// 7.2.160 +type AVP_Unsigned32 Quota_Holding_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Rate-Element (2058) 3GPP (10415) +// 7.2.161 +type AVP_Grouped Rate_Element; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Read-Reply-Report-Requested (1222) 3GPP (10415) +// 7.2.162 +type enumerated Read_Reply_Report_Requested +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Real-Time-Tariff-Information (2305) 3GPP (10415) +// 7.2.164 +type AVP_Grouped Real_Time_Tariff_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Received-Talk-Burst-Time (1284) 3GPP (10415) +// 7.2.165 +type AVP_Unsigned32 Received_Talk_Burst_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Received-Talk-Burst-Volume (1285) 3GPP (10415) +// 7.2.166 +type AVP_Unsigned32 Received_Talk_Burst_Volume; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Recipient-Address (1201) 3GPP (10415) +// 7.2.167 +type AVP_Grouped Recipient_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Recipient-Info (2026) 3GPP (10415) +// 7.2.168 +type AVP_Grouped Recipient_Info; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Recipient-Received-Address (2028) 3GPP (10415) +// 7.2.169 +type AVP_Grouped Recipient_Received_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Recipient-SCCP-Address (2010) 3GPP (10415) +// 7.2.170 +type AVP_Address Recipient_SCCP_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Refund-Information (2022) 3GPP (10415) +// 7.2.171 +type AVP_OctetString Refund_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Relationship-Mode (2706) 3GPP (10415) +// 7.2.171A +type enumerated Relationship_Mode +{ + Trusted (0), + Non_Trusted (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Related-IMS-Charging-Identifier (2711) 3GPP (10415) +// 7.2.171B +type AVP_UTF8String Related_IMS_Charging_Identifier; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Related-IMS-Charging-Identifier-Node (2712) 3GPP (10415) +// 7.2.171C +type AVP_Address Related_IMS_Charging_Identifier_Node; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Remaining-Balance (2021) 3GPP (10415) +// 7.2.172 +type AVP_Grouped Remaining_Balance; + +// 3GPP TS 32.299 V8.5.0 +// AVP: Reply-Applic-ID (1223) 3GPP (10415) +// 7.2.173 +type AVP_UTF8String Reply_Applic_ID; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Reply-Path-Requested (2011) 3GPP (10415) +// 7.2.174 +type enumerated Reply_Path_Requested +{ + NO_REPLY_PATH_SET (0), + REPLY_PATH_SET (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Reporting-Reason (872) 3GPP (10415) +// 7.2.175 +type enumerated Reporting_Reason +{ + THRESHOLD (0), + QHT (1), + FINAL (2), + QUOTA_EXHAUSTED (3), + VALIDITY_TIME (4), + OTHER_QUOTA_TYPE (5), + RATING_CONDITION_CHANGE (6), + FORCED_REAUTHORISATION (7), + POOL_EXHAUSTED (8) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Requested-Party-Address (1251) 3GPP (10415) +// 7.2.176 +type AVP_UTF8String Requested_Party_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Role-Of-Node (829) 3GPP (10415) +// Note: not compatible with V9.2.0 or before (see spec.) +// 7.2.177 +type enumerated Role_Of_Node +{ + ORIGINATING_ROLE (0), + TERMINATING_ROLE (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Route-Header-Received (3403) 3GPP (10415) +// 7.2.177A +type AVP_UTF8String Route_Header_Received; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Route-Header-Transmitted (3404) 3GPP (10415) +// 7.2.177B +type AVP_UTF8String Route_Header_Transmitted; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Scale-Factor (2059) 3GPP (10415) +// 7.2.178 +type AVP_Grouped Scale_Factor; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SDP-Answer-Timestamp (1275) 3GPP (10415) +// 7.2.179 +type AVP_Time SDP_Answer_Timestamp; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SDP-Media-Component (843) 3GPP (10415) +// 7.2.180 +type AVP_Grouped SDP_Media_Component; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SDP-Media-Description (845) 3GPP (10415) +// 7.2.181 +type AVP_UTF8String SDP_Media_Description; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SDP-Media-Name (844) 3GPP (10415) +// 7.2.182 +type AVP_UTF8String SDP_Media_Name; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SDP-Offer-Timestamp (1274) 3GPP (10415) +// 7.2.183 +type AVP_Time SDP_Offer_Timestamp; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SDP-Session-Description (842) 3GPP (10415) +// 7.2.184 +type AVP_UTF8String SDP_Session_Description; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SDP-TimeStamps (1273) 3GPP (10415) +// 7.2.185 +type AVP_Grouped SDP_TimeStamps; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SDP-Type (2036) 3GPP (10415) +// 7.2.186 +type enumerated SDP_Type +{ + SDP_OFFER (0), + SDP_ANSWER (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Session-Direction (2707) 3GPP (10415) +// 7.2.186A +type enumerated Session_Direction +{ + Inbound (0), + Outbound (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Served-Party-IP-Address (848) 3GPP (10415) +// 7.2.187 +type AVP_Address Served_Party_IP_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Service-Data-Container (2040) 3GPP (10415) +// 7.2.189 +type AVP_Grouped Service_Data_Container; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Service-Id (855) 3GPP (10415) +// 7.2.190 +type AVP_UTF8String Service_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Service-Generic-Information (1256) 3GPP (10415) +// 7.2.191 +type AVP_Grouped Service_Generic_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Service-Information (873) 3GPP (10415) +// 7.2.192 +type AVP_Grouped Service_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Service-Mode (2032) 3GPP (10415) +// 7.2.193 +type AVP_Unsigned32 Service_Mode; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Service-Specific-Data (863) 3GPP (10415) +// 7.2.194 +type AVP_UTF8String Service_Specific_Data; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Service-Specific-Info (1249) 3GPP (10415) +// 7.2.195 +type AVP_Grouped Service_Specific_Info; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Service-Specific-Type (1257) 3GPP (10415) +// 7.2.196 +type AVP_Unsigned32 Service_Specific_Type; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Serving-Node-Type (2047) 3GPP (10415) +// 7.2.198 +type enumerated Serving_Node_Type +{ + SGSN (0), + PMIPSGW (1), + GTPSGW (2), + ePDG (3), + hSGW (4), + MME (5) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: SGSN-Address (1228) 3GPP (10415) +// 7.2.199 +type AVP_Address SGSN_Address; + + +// 3GPP TS 32.299 V11.15.0 +// AVP: SGW-Address (2067) 3GPP (10415) +// 7.2.199A +type AVP_Address SGW_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SGW-Change (2065) 3GPP (10415) +// 7.2.200 +type enumerated SGW_Change +{ + ACR_Start_NOT_due_to_SGW_Change (0), + ACR_Start_due_to_SGW_Change (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: SIP-Method (824) 3GPP (10415) +// 7.2.201 +type AVP_UTF8String SIP_Method; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SIP-Request-Timestamp (834) 3GPP (10415) +// 7.2.202 +type AVP_Time SIP_Request_Timestamp; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SIP-Request-Timestamp-Fraction (2301) 3GPP (10415) +// 7.2.203 +type AVP_Unsigned32 SIP_Request_Timestamp_Fraction; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SIP-Response-Timestamp (835) 3GPP (10415) +// 7.2.204 +type AVP_Time SIP_Response_Timestamp; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SIP-Response-Timestamp-Fraction (2302) 3GPP (10415) +// 7.2.205 +type AVP_Unsigned32 SIP_Response_Timestamp_Fraction; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SM-Discharge-Time (2012) 3GPP (10415) +// 7.2.206 +type AVP_Time SM_Discharge_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SM-Message-Type (2007) 3GPP (10415) +// 7.2.207 +type enumerated SM_Message_Type +{ + SUBMISSION (0), + DELIVERY_REPORT (1), + SM_SERVICE_REQUEST (2) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: SM-Protocol-ID (2013) 3GPP (10415) +// 7.2.208 +type AVP_OctetString SM_Protocol_ID; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SM-Status (2014) 3GPP (10415) +// 7.2.209 +type AVP_OctetString SM_Status; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SM-User-Data-Header (2015) 3GPP (10415) +// 7.2.210 +type AVP_OctetString SM_User_Data_Header; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SMS-Information (2000) 3GPP (10415) +// 7.2.211 +type AVP_Grouped SMS_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SMS-Node (2016) 3GPP (10415) +// 7.2.212 +type enumerated SMS_Node +{ + SMS_ROUTER (0), + IP_SM_GW (1), + SMS_ROUTER_AND_IP_SM_GW (2), + SMS_SC (3) +} + +// WARNING: Unsigned32 used instead of enumerated type +// 3GPP TS 32.299 V11.15.0 +// AVP: SM-Service-Type (2029) 3GPP (10415) +// 7.2.213 +type AVP_Unsigned32 SM_Service_Type; + +// 3GPP TS 32.299 V11.15.0 +// AVP: SMSC-Address (2017) 3GPP (10415) +// 7.2.214 +type AVP_Address SMSC_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Start-Time (2041) 3GPP (10415) +// 7.2.215 +type AVP_Time Start_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Status-AS-Code (2702) 3GPP (10415) +// 7.2.215A +type enumerated Status_AS_Code +{ + code_4xx (0), + code_5xx (1), + Timeout (2) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Stop-Time (2042) 3GPP (10415) +// 7.2.216 +type AVP_Time Stop_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Submission-Time (1202) 3GPP (10415) +// 7.2.217 +type AVP_Time Submission_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Subscriber-Role (2033) 3GPP (10415) +// 7.2.218 +type enumerated Subscriber_Role +{ + ORIGINATING (0), + TERMINATING (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Supplementary-Service (2048) 3GPP (10415) +// 7.2.219 +type AVP_Grouped Supplementary_Service; + +// 3GPP TS 32.299 V11.15.0 +// AVP: TAD-Identifier (2717) 3GPP (10415) +// 7.2.219A +type enumerated TAD_Identifier +{ + CS (0), + PS (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Talk-Burst-Exchange (1255) 3GPP (10415) +// 7.2.220 +type AVP_Grouped Talk_Burst_Exchange; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Talk-Burst-Time (1286) 3GPP (10415) +// 7.2.221 +type AVP_Unsigned32 Talk_Burst_Time; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Talk-Burst-Volume (1287) 3GPP (10415) +// 7.2.222 +type AVP_Unsigned32 Talk_Burst_Volume; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Tariff-Information (2060) 3GPP (10415) +// 7.2.223 +type AVP_Grouped Tariff_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Tariff-XML (2306) 3GPP (10415) +// 7.2.224 +type AVP_UTF8String Tariff_XML; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Terminating-IOI (840) 3GPP (10415) +// 7.2.225 +type AVP_UTF8String Terminating_IOI; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Time_First_Usage (2043) 3GPP (10415) +// 7.2.226 +type AVP_Time Time_First_Usage; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Time_Last_Usage (2044) 3GPP (10415) +// 7.2.227 +type AVP_Time Time_Last_Usage; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Time-Quota-Mechanism (1270) 3GPP (10415) +// 7.2.228 +type AVP_Grouped Time_Quota_Mechanism; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Time-Quota-Threshold (868) 3GPP (10415) +// 7.2.229 +type AVP_Unsigned32 Time_Quota_Threshold; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Time-Quota-Type (1271) 3GPP (10415) +// 7.2.230 +type enumerated Time_Quota_Type +{ + DISCRETE_TIME_PERIOD (0), + CONTINUOUS_TIME_PERIOD (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Time-Stamps (833) 3GPP (10415) +// 7.2.231 +type AVP_Grouped Time_Stamps; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Time-Usage (2045) 3GPP (10415) +// 7.2.232 +type AVP_Unsigned32 Time_Usage; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Traffic-Data-Volumes (2046) 3GPP (10415) +// 7.2.233 +type AVP_Grouped Traffic_Data_Volumes; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Transcoder-Inserted-Indication (2605) 3GPP (10415) +// 7.2.233A +type enumerated Transcoder_Inserted_Indication +{ + TRANSCODER_NOT_INSERTED (0), + TRANSCODER_INSERTED (1) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Transit-IOI-List (2701) 3GPP (10415) +// 7.2.233B +type AVP_UTF8String Transit_IOI_List; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Token-Text (1215) 3GPP (10415) +// 7.2.234 +type AVP_UTF8String Token_Text; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Trigger (1264) 3GPP (10415) +// 7.2.235 +type AVP_Grouped Trigger; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Trigger-Type (870) 3GPP (10415) +// 7.2.236 +type enumerated Trigger_Type +{ + CHANGE_IN_SGSN_IP_ADDRESS (1), + CHANGE_IN_QOS (2), + CHANGE_IN_LOCATION (3), + CHANGE_IN_RAT (4), + CHANGE_IN_UE_TIMEZONE (5), + CHANGEINQOS_TRAFFIC_CLASS (10), + CHANGEINQOS_RELIABILITY_CLASS (11), + CHANGEINQOS_DELAY_CLASS (12), + CHANGEINQOS_PEAK_THROUGHPUT (13), + CHANGEINQOS_PRECEDENCE_CLASS (14), + CHANGEINQOS_MEAN_THROUGHPUT (15), + CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_UPLINK (16), + CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_DOWNLINK (17), + CHANGEINQOS_RESIDUAL_BER (18), + CHANGEINQOS_SDU_ERROR_RATIO (19), + CHANGEINQOS_TRANSFER_DELAY (20), + CHANGEINQOS_TRAFFIC_HANDLING_PRIORITY (21), + CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_UPLINK (22), + CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_DOWNLINK (23), + CHANGEINLOCATION_MCC (30), + CHANGEINLOCATION_MNC (31), + CHANGEINLOCATION_RAC (32), + CHANGEINLOCATION_LAC (33), + CHANGEINLOCATION_CellId (34), + CHANGEINLOCATION_TAC (35), + CHANGEINLOCATION_ECGI (36), + CHANGE_IN_MEDIA_COMPOSITION (40), + CHANGE_IN_PARTICIPANTS_NMB (50), + CHANGE_IN_THRSHLD_OF_PARTICIPANTS_NMB (51), + CHANGE_IN_USER_PARTICIPATING_TYPE (52), + CHANGE_IN_SERVICE_CONDITION (60), + CHANGE_IN_SERVING_NODE (61), + CHANGE_IN_USER_CSG_INFORMATION (70), + CHANGE_IN_HYBRID_SUBSCRIBED_USER_CSG_INFORMATION (71), + CHANGE_IN_HYBRID_UNSUBSCRIBED_USER_CSG_INFORMATION (72) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: Trunk-Group-Id (851) 3GPP (10415) +// 7.2.237 +type AVP_Grouped Trunk_Group_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: TWAN-User-Location-Info (2714) 3GPP (10415) +// +type AVP_Grouped TWAN_User_Location_Info; + +// WARNING: Unsigned32 used instead of enumerated type +// 3GPP TS 32.299 V11.15.0 +// AVP: Type-Number (1204) 3GPP (10415) +// 7.2.238 +type AVP_Unsigned32 Type_Number; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Unit-Cost (2061) 3GPP (10415) +// 7.2.239 +type AVP_Grouped Unit_Cost; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Unit-Quota-Threshold (1226) 3GPP (10415) +// 7.2.240 +type AVP_Unsigned32 Unit_Quota_Threshold; + +// 3GPP TS 32.299 V11.15.0 +// AVP: User-CSG-Information (2319) 3GPP (10415) +// 7.2.240A +type AVP_Grouped User_CSG_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: User-Participating-Type (1279) 3GPP (10415) +// 7.2.241 +type enumerated User_Participating_Type +{ + NORMAL (0), + NW_POC_BOX (1), + UE_POC_BOX (2) +} + +// 3GPP TS 32.299 V11.15.0 +// AVP: User-Session-Id (830) 3GPP (10415) +// 7.2.242 +type AVP_UTF8String User_Session_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: Volume-Quota-Threshold (869) 3GPP (10415) +// 7.2.243 +type AVP_Unsigned32 Volume_Quota_Threshold; + +// 3GPP TS 32.299 V11.15.0 +// AVP: WAG-Address (890) 3GPP (10415) +// 7.2.244 +type AVP_Address WAG_Address; + +// 3GPP TS 32.299 V11.15.0 +// AVP: WAG-PLMN-Id (891) 3GPP (10415) +// 7.2.245 +type AVP_OctetString WAG_PLMN_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: WLAN-Information (875) 3GPP (10415) +// 7.2.246 +type AVP_Grouped WLAN_Information; + +// 3GPP TS 32.299 V11.15.0 +// AVP: WLAN-Radio-Container (892) 3GPP (10415) +// 7.2.247 +type AVP_Grouped WLAN_Radio_Container; + +// 3GPP TS 32.299 V11.15.0 +// AVP: WLAN-Session-Id (1246) 3GPP (10415) +// 7.2.248 +type AVP_Unsigned32 WLAN_Session_Id; + +// 3GPP TS 32.299 V11.15.0 +// AVP: WLAN-Technology (893) 3GPP (10415) +// 7.2.249 +type AVP_Unsigned32 WLAN_Technology; + +// 3GPP TS 32.299 V11.15.0 +// AVP: WLAN-UE-Local-IPAddress (894) 3GPP (10415) +// 7.2.250 +type AVP_Address WLAN_UE_Local_IPAddress; diff --git a/src/ChargingApplications_3GPP_TS32299_c60.ddf b/src/ChargingApplications_3GPP_TS32299_c60.ddf new file mode 100644 index 0000000..c8f7cd9 --- /dev/null +++ b/src/ChargingApplications_3GPP_TS32299_c60.ddf @@ -0,0 +1,1972 @@ +/****************************************************************************** +* Copyright (c) 2004, 2014 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Roland Gecse - initial implementation and initial documentation +* Akos Pernek +* Antal Wuh.Hen.Chang +* Attila Fulop +* Balazs Barcsik +* Bence Molnar +* Csaba Koppany +* David Juhasz +* Eduard Czimbalmos +* Elemer Lelik +* Endre Kiss +* Endre Kulcsar +* Gabor Szalai +* Gabor Tatarka +* Gergely Futo +* Istvan Sandor +* Krisztian Pandi +* Kulcsár Endre +* Laszlo Tamas Zeke +* Norbert Pinter +* Roland Gecse +* Tibor Bende +* Tibor Szabo +* Timea Moder +* Zoltan Medve +* Zsolt Nandor Torok +* Zsolt Szalai +******************************************************************************/ +// +// File: ChargingApplications_3GPP_TS32299_a60.ddf +// Description: DDF for Diameter Charging Application 3GPP TS 32.299 V12.6.0 +// Rev: R34A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: DCA +// APPLICATION-REVISION: V12_6_0 + +// AVP implementations according to: +// 3GPP TS 32.299 V12.6.0 - Telecommunication management; Charging management; +// +// +// Dependant applications +// 3GPP TS 29.229 - Cx and Dx interfaces based on the Diameter protocol +// IETF RFC 3588 - Diameter Base Protocol +// RFC 4006 - Diameter Credit Control Application +// +// Notes: +// + + +// 3GPP TS 32.299 V12.6.0 +type enumerated Command_Code +{ + Accounting (271), + Re_Auth (258) +} + + +// 3GPP TS 32.299 V12.6.0 +// AVP: Access-Network-Information (1263) 3GPP (10415) +// 7.2.1 +type AVP_OctetString Access_Network_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Access-Transfer-Information (2709) 3GPP (10415) +// 7.2.1A +type AVP_Grouped Access_Transfer_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Access-Transfer-Type (2710) 3GPP (10415) +// 7.2.1.B +type enumerated Access_Transfer_Type +{ + PS_to_CS_Transfer (0), + CS_to_PS_Transfer (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Account-Expiration (2309) 3GPP (10415) +// 7.2.2 +type AVP_Time Account_Expiration; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Accumulated-Cost (2052) 3GPP (10415) +// 7.2.3 +type AVP_Grouped Accumulated_Cost; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Adaptations (1217) 3GPP (10415) +// 7.2.4 +type enumerated Adaptations +{ + YES (0), + NO (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Additional-Content-Information (1207) 3GPP (10415) +// 7.2.5 +type AVP_Grouped Additional_Content_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Additional-Type-Information (1205) 3GPP (10415) +// 7.2.6 +type AVP_UTF8String Additional_Type_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Address-Data (897) 3GPP (10415) +// 7.2.7 +type AVP_UTF8String Address_Data; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Address-Domain (898) 3GPP (10415) +// 7.2.8 +type AVP_Grouped Address_Domain; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Address-Type (899) 3GPP (10415) +// 7.2.9 +type enumerated Address_Type +{ + E_MAIL_ADDRESS (0), + MSISDN (1), + IPV4_ADDRESS (2), + IPV6_ADDRESS (3), + NUMERIC_SHORTCODE (4), + ALPHANUMERIC_SHORTCODE (5), + OTHER (6), + IMSI (7) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Addressee-Type (1208) 3GPP (10415) +// 7.2.10 +type enumerated Addressee_Type +{ + TO (0), + CC (1), + BCC (2) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: AF-Correlation-Information (1276) 3GPP (10415) +// 7.2.11 +type AVP_Grouped AF_Correlation_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Alternate-Charged-Party-Address (1280) 3GPP (10415) +// 7.2.12 +type AVP_UTF8String Alternate_Charged_Party_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: AoC-Cost-Information (2053) 3GPP (10415) +// 7.2.13 +type AVP_Grouped AoC_Cost_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: AoC-Format (2310) 3GPP (10415) +// 7.2.14 +type enumerated AoC_Format +{ + MONETARY (0), + NON_MONETARY (1), + CAI (2) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: AoC-Information (2054) 3GPP (10415) +// 7.2.15 +type AVP_Grouped AoC_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: AoC-Request-Type (2055) 3GPP (10415) +// 7.2.16 +type enumerated AoC_Request_Type +{ + AoC_NOT_REQUESTED (0), + AoC_FULL (1), + AoC_COST_ONLY (2), + AoC_TARIFF_ONLY (3) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: AoC-Service (2311) 3GPP (10415) +// 7.2.17 +type AVP_Grouped AoC_Service; + +// 3GPP TS 32.299 V12.6.0 +// AVP: AoC-Service-Obligatory-Type (2312) 3GPP (10415) +// 7.2.18 +type enumerated AoC_Service_Obligatory_Type +{ + NON_BINDING (0), + BINDING (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: AoC-Service-Type (2313) 3GPP (10415) +// 7.2.19 +type enumerated AoC_Service_Type +{ + NONE (0), + AOC_S (1), + AOC_D (2), + AOC_E (3) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: AoC-Subscription-Information (2314) 3GPP (10415) +// 7.2.20 +type AVP_Grouped AoC_Subscription_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Applic-ID (1218) 3GPP (10415) +// 7.2.21 +type AVP_UTF8String Applic_ID; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Application-provided-Called-Party-Address (837) 3GPP (10415) +// 7.2.22 +type AVP_UTF8String Application_provided_Called_Party_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Application-Server (836) 3GPP (10415) +// 7.2.23 +type AVP_UTF8String Application_Server; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Application-Server-Information (850) 3GPP (10415) +// 7.2.24 +type AVP_Grouped Application_Server_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Associated-Party-Address (2035) 3GPP (10415) +// 7.2.25 +type AVP_UTF8String Associated_Party_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Associated-URI (856) 3GPP (10415) +// 7.2.26 +type AVP_UTF8String Associated_URI; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Authorised-QoS (849) 3GPP (10415) +// 7.2.27 +type AVP_UTF8String Authorised_QoS; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Aux-Applic-Info (1219) 3GPP (10415) +// 7.2.28 +type AVP_UTF8String Aux_Applic_Info; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Base-Time-Interval (1265) 3GPP (10415) +// 7.2.29 +type AVP_Unsigned32 Base_Time_Interval; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Basic-Service-Code (3411) 3GPP (10415) +// 7.2.29A +type AVP_Grouped Basic_Service_Code; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Bearer-Capability (3412) 3GPP (10415) +// 7.2.29B +type AVP_OctetString Bearer_Capability; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Bearer-Service (854) 3GPP (10415) +// 7.2.30 +type AVP_OctetString Bearer_Service; + +// 3GPP TS 32.299 V12.6.0 +// AVP: BSSID (2716) 3GPP (10415) +// 7.2.30A +type AVP_UTF8String BSSID; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Called-Asserted-Identity (1250) 3GPP (10415) +// 7.2.31 +type AVP_UTF8String Called_Asserted_Identity; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Called-Party-Address (832) 3GPP (10415) +// 7.2.32 +type AVP_UTF8String Called_Party_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Calling-Party-Address (831) 3GPP (10415) +// 7.2.33 +type AVP_UTF8String Calling_Party_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Carrier-Select-Routing-Information (2023) 3GPP (10415) +// 7.2.34 +type AVP_UTF8String Carrier_Select_Routing_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Cause-Code (861) 3GPP (10415) +// 7.2.35 +type AVP_Integer32 Cause_Code; + +// 3GPP TS 32.299 V12.6.0 +// AVP: CG-Address (846) 3GPP (10415) +// 7.2.36 +type AVP_Address CG_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Change-Condition (2037) 3GPP (10415) +// 7.2.37 +type AVP_Integer32 Change_Condition; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Change-Time (2038) 3GPP (10415) +// 7.2.38 +type AVP_Time Change_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Charge-Reason-Code (2118) 3GPP (10415) +// 7.2.38A +type enumerated Charge_Reason_Code +{ + UNKNOWN (0), + USAGE (1), + COMMUNICATION_ATTEMPT_CHARGE (2), + SETUP_CHARGE (3), + ADD_ON_CHARGE (4) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Charged-Party (857) 3GPP (10415) +// 7.2.39 +type AVP_UTF8String Charged_Party; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Charging-Characteristics-Selection-Mode (2066) 3GPP (10415) +// 7.2.39A +type enumerated Charging_Characteristics_Selection_Mode +{ + SERVING_NODE_SUPPLIED (0), + SUBSCRIPTION_SPECIFIC (1), + APN_SPECIFIC (2), + HOME_DEFAULT (3), + ROAMING_DEFAULT (4), + VISITING_DEFAULT (5) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Class-Identifier (1214) 3GPP (10415) +// 7.2.40 +type enumerated Class_Identifier +{ + PERSONAL (0), + ADVERTISMENT (1), + INFORMATIONAL (2), + AUTO (3) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Client-Address (2018) 3GPP (10415) +// 7.2.41 +type AVP_Address Client_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: CN-Operator-Selection-Entity (3421) 3GPP (10415) +// 7.2.41A +type enumerated CN_Operator_Selection_Entity +{ + SN_selected_by_UE (0), + SN_selected_by_network (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Content-Class (1220) 3GPP (10415) +// 7.2.42 +type enumerated Content_Class +{ + TEXT (0), + IMAGE_BASIC (1), + IMAGE_RICH (2), + VIDEO_BASIC (3), + VIDEO_RICH (4), + MEGAPIXEL (5), + CONTENT_BASIC (6), + CONTENT_RICH (7) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Content-Disposition (828) 3GPP (10415) +// 7.2.43 +type AVP_UTF8String Content_Disposition; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Content-Length (827) 3GPP (10415) +// 7.2.44 +type AVP_Unsigned32 Content_Length; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Content-Size (1206) 3GPP (10415) +// 7.2.45 +type AVP_Unsigned32 Content_Size; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Content-Type (826) 3GPP (10415) +// 7.2.46 +type AVP_UTF8String Content_Type; + +// 3GPP TS 32.299 V12.6.0 +// AVP: CSG-Access-Mode (2317) 3GPP (10415) +// 7.2.46A +type enumerated CSG_Access_Mode +{ + CLOSED_MODE (0), + HYBRID_MODE (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: CSG-Membership-Indication (2318) 3GPP (10415) +// 7.2.46B +type enumerated CSG_Membership_Indication +{ + NOT_CSG_MEMBER (0), + CSG_MEMBER (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Current-Tariff (2056) 3GPP (10415) +// 7.2.47 +type AVP_Grouped Current_Tariff; + +// 3GPP TS 32.299 V12.6.0 +// AVP: CUG-Information (2304) 3GPP (10415) +// 7.2.48 +type AVP_OctetString CUG_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Data-Coding-Scheme (2001) 3GPP (10415) +// 7.2.49 +type AVP_Integer32 Data_Coding_Scheme; + +// 3GPP TS 32.299 V12.6.0 +// AVP: DCD-Information (2115) 3GPP (10415) +// 7.2.50 +type AVP_Grouped DCD_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Deferred-Location-Event-Type (1230) 3GPP (10415) +// 7.2.51 +type AVP_UTF8String Deferred_Location_Event_Type; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Delivery-Report-Requested (1216) 3GPP (10415) +// 7.2.52 +type enumerated Delivery_Report_Requested +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Destination-Interface (2002) 3GPP (10415) +// 7.2.53 +type AVP_Grouped Destination_Interface; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Diagnostics (2039) 3GPP (10415) +// 7.2.54 +type AVP_Integer32 Diagnostics; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Domain-Name (1200) 3GPP (10415) +// 7.2.55 +type AVP_UTF8String Domain_Name; + +// 3GPP TS 32.299 V12.6.0 +// AVP: DRM-Content (1221) 3GPP (10415) +// 7.2.56 +type enumerated DRM_Content +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Dynamic-Address-Flag (2051) 3GPP (10415) +// 7.2.57 +type enumerated Dynamic_Address_Flag +{ + STATIC (0), + DYNAMIC (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Dynamic-Address-Flag-Extension (2068) 3GPP (10415) +// 7.2.57A +type enumerated Dynamic_Address_Flag_Extension +{ + STATIC (0), + DYNAMIC (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Early-Media-Description (1272) 3GPP (10415) +// 7.2.58 +type AVP_Grouped Early_Media_Description; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Envelope (1266) 3GPP (10415) +// 7.2.59 +type AVP_Grouped Envelope; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Envelope-End-Time (1267) 3GPP (10415) +// 7.2.60 +type AVP_Time Envelope_End_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Envelope-Reporting (1268) 3GPP (10415) +// 7.2.61 +type enumerated Envelope_Reporting +{ + DO_NOT_REPORT_ENVELOPES (0), + REPORT_ENVELOPES (1), + REPORT_ENVELOPES_WITH_VOLUME (2), + REPORT_ENVELOPES_WITH_EVENTS (3), + REPORT_ENVELOPES_WITH_VOLUME_AND_EVENTS (4) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Envelope-Start-Time (1269) 3GPP (10415) +// 7.2.62 +type AVP_Time Envelope_Start_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: ePDG-Address (3425) 3GPP (10415) +// 7.2.62A +type AVP_Address ePDG_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Event (825) 3GPP (10415) +// 7.2.63 +type AVP_UTF8String Event; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Event-Charging-TimeStamp (1258) 3GPP (10415) +// 7.2.64 +type AVP_Time Event_Charging_TimeStamp; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Event-Type (823) 3GPP (10415) +// 7.2.65 +type AVP_Grouped Event_Type; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Expires (888) 3GPP (10415) +// 7.2.66 +type AVP_Unsigned32 Expires; + +// 3GPP TS 32.299 V12.6.0 +// AVP: File-Repair-Supported (1224) 3GPP (10415) +// 7.2.67 +type enumerated File_Repair_Supported +{ + SUPPORTED (1), + NOT_SUPPORTED (2) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: From-Address (2708) 3GPP (10415) +// 7.2.67A +type AVP_UTF8String From_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Forwarding-Pending (3415) 3GPP (10415) +// 7.2.67A +type enumerated Forwarding_Pending +{ + Forwarding_not_Pending (0), + Forwarding_Pending (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: GGSN-Address (847) 3GPP (10415) +// 7.2.68 +type AVP_Address GGSN_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: IM-Information (2110) 3GPP (10415) +// 7.2.69 +type AVP_Grouped IM_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Incremental-Cost (2062) 3GPP (10415) +// 7.2.70 +type AVP_Grouped Incremental_Cost; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Instance-Id (3402) 3GPP (10415) +// 7.2.70A +type AVP_UTF8String Instance_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Interface-Id (2003) 3GPP (10415) +// 7.2.71 +type AVP_UTF8String Interface_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Interface-Port (2004) 3GPP (10415) +// 7.2.72 +type AVP_UTF8String Interface_Port; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Interface-Text (2005) 3GPP (10415) +// 7.2.73 +type AVP_UTF8String Interface_Text; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Interface-Type (2006) 3GPP (10415) +// 7.2.74 +type enumerated Interface_Type; +{ + UNKNOWN (0), + MOBILE_ORIGINATING (1), + MOBILE_TERMINATING (2), + APPLICATION_ORIGINATING (3), + APPLICATION_TERMINATION (4) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: IMS-Application-Reference-Identifier (2601) 3GPP (10415) +// 7.2.74A +type AVP_UTF8String IMS_Application_Reference_Identifier; + +// 3GPP TS 32.299 V12.6.0 +// AVP: IMS-Charging-Identifier (841) 3GPP (10415) +// 7.2.75 +type AVP_UTF8String IMS_Charging_Identifier; + +// 3GPP TS 32.299 V12.6.0 +// AVP: IMS-Communication-Service-Identifier (1281) 3GPP (10415) +// 7.2.76 +type AVP_UTF8String IMS_Communication_Service_Identifier; + +// 3GPP TS 32.299 V12.6.0 +// AVP: IMS-Emergency-Indicator (2322) 3GPP (10415) +// 7.2.76A +type enumerated IMS_Emergency_Indicator; +{ + Non_Emergency (0), + Emergency (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: IMS-Information (876) 3GPP (10415) +// 7.2.77 +type AVP_Grouped IMS_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: IMS-Visited-Network-Identifier (2713) 3GPP (10415) +// 7.2.77A +type AVP_UTF8String IMS_Visited_Network_Identifier; + +// 3GPP TS 32.299 V12.6.0 +// AVP: IMSI-Unauthenticated-Flag (2308) 3GPP (10415) +// 7.2.78 +type enumerated IMSI_Unauthenticated_Flag; +{ + AUTHENTICATED (0), + UNAUTHENTICATED (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Incoming-Trunk-Group-Id (852) 3GPP (10415) +// 7.2.79 +type AVP_UTF8String Incoming_Trunk_Group_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Initial-IMS-Charging-Identifier (2321) 3GPP (10415) +// 7.2.79A +type AVP_UTF8String Initial_IMS_Charging_Identifier; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Inter-Operator-Identifier (838) 3GPP (10415) +// 7.2.80 +type AVP_Grouped Inter_Operator_Identifier; + +// 3GPP TS 32.299 V12.6.0 +// AVP: IP-Realm-Default-Indication (2603) 3GPP (10415) +// 7.2.80A +type enumerated IP_Realm_Default_Indication; +{ + DEFAULT_IP_REALM_NOT_USED (0), + DEFAULT_IP_REALM_USED (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: ISUP-Cause (3416) 3GPP (10415) +// 7.2.80B +type AVP_Grouped ISUP_Cause; + +// 3GPP TS 32.299 V12.6.0 +// AVP: ISUP-Cause-Diagnostics (3422) 3GPP (10415) +// 7.2.80C +type AVP_OctetString ISUP_Cause_Diagnostics; + +// 3GPP TS 32.299 V12.6.0 +// AVP: ISUP-Cause-Location (3423) 3GPP (10415) +// 7.2.80D +type AVP_Unsigned32 ISUP_Cause_Location; + +// 3GPP TS 32.299 V12.6.0 +// AVP: ISUP-Cause-Value (3424) 3GPP (10415) +// 7.2.80E +type AVP_Unsigned32 ISUP_Cause_Value; + +// 3GPP TS 32.299 V12.6.0 +// AVP: ISUP-Location-Number (3414) 3GPP (10415) +// 7.2.80F +type AVP_OctetString ISUP_Location_Number; + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-APN (1231) 3GPP (10415) +// 7.2.81 +type AVP_UTF8String LCS_APN; + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-Client-Dialed-By-MS (1233) 3GPP (10415) +// 7.2.82 +type AVP_UTF8String LCS_Client_Dialed_By_MS; + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-Client-External-ID (1234) 3GPP (10415) +// 7.2.83 +type AVP_UTF8String LCS_Client_External_ID; + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-Client-Id (1232) 3GPP (10415) +// 7.2.84 +type AVP_Grouped LCS_Client_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-Client-Name (1235) 3GPP (10415) +// 7.2.85 +type AVP_Grouped LCS_Client_Name; + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-Client-Type (1241) 3GPP (10415) +// 7.2.86 +type enumerated LCS_Client_Type +{ + EMERGENCY_SERVICES (0), + VALUE_ADDED_SERVICES (1), + PLMN_OPERATOR_SERVICES (2), + LAWFUL_INTERCEPT_SERVICES (3) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-Data-Coding-Scheme (1236) 3GPP (10415) +// 7.2.87 +type AVP_UTF8String LCS_Data_Coding_Scheme; + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-Format-Indicator (1237) 3GPP (10415) +// 7.2.88 +type enumerated LCS_Format_Indicator +{ + LOGICAL_NAME (0), + EMAIL_ADDRESS (1), + MSISDN (2), + URL (3), + SIP_URL (4) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-Information (878) 3GPP (10415) +// 7.2.89 +type AVP_Grouped LCS_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-Name-String (1238) 3GPP (10415) +// 7.2.90 +type AVP_UTF8String LCS_Name_String; + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-Requestor-Id (1239) 3GPP (10415) +// 7.2.91 +type AVP_Grouped LCS_Requestor_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: LCS-Requestor-Id-String (1240) 3GPP (10415) +// 7.2.92 +type AVP_UTF8String LCS_Requestor_Id_String; + + +// 3GPP TS 32.299 V12.6.0 +// AVP: Local-GW-Inserted-Indication (2604) 3GPP (10415) +// 7.2.92A +type enumerated Local_GW_Inserted_Indication +{ + LOCAL_GW_NOT_INSERTED (0), + LOCAL_GW_INSERTED (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Local-Sequence-Number (2063) 3GPP (10415) +// 7.2.93 +type AVP_Unsigned32 Local_Sequence_Number; + + +// 3GPP TS 32.299 V12.6.0 +// AVP: Location-Estimate (1242) 3GPP (10415) +// 7.2.94 +type AVP_OctetString Location_Estimate; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Location-Estimate-Type (1243) 3GPP (10415) +// 7.2.95 +type enumerated Location_Estimate_Type +{ + CURRENT_LOCATION (0), + CURRENT_LAST_KNOWN_LOCATION (1), + INITIAL_LOCATION (2), + ACTIVATE_DEFERRED_LOCATION (3), + CANCEL_DEFERRED_LOCATION (4) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Location-Type (1244) 3GPP (10415) +// 7.2.96 +type AVP_Grouped Location_Type; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Low-Balance-Indication (2020) 3GPP (10415) +// 7.2.97 +type enumerated Low_Balance_Indication +{ + NOT_APPLICABLE (0), + YES (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Low-Priority-Indicator (2602) 3GPP (10415) +// 7.2.97A +type enumerated Low_Priority_Indicator +{ + NOT_APPLICABLE (0), + YES (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: MBMS-GW-Address (2307) 3GPP (10415) +// 7.2.98 +type AVP_Address MBMS_GW_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: MBMS-Information (880) 3GPP (10415) +// 7.2.99 +type AVP_Grouped MBMS_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: MBMS-User-Service-Type (1225) 3GPP (10415) +// 7.2.100 +type enumerated MBMS_User_Service_Type +{ + DOWNLOAD (1), + STREAMING (2) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Media-Initiator-Flag (882) 3GPP (10415) +// 7.2.101 +type enumerated Media_Initiator_Flag +{ + CALLED_PARTY (0), + CALLING_PARTY (1), + UNKNOWN (2) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Media-Initiator-Party (1288) 3GPP (10415) +// 7.2.102 +type AVP_UTF8String Media_Initiator_Party; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Message-Body (889) 3GPP (10415) +// 7.2.103 +type AVP_Grouped Message_Body; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Message-Class (1213) 3GPP (10415) +// 7.2.104 +type AVP_Grouped Message_Class; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Message-ID (1210) 3GPP (10415) +// 7.2.105 +type AVP_UTF8String Message_ID; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Message-Size (1212) 3GPP (10415) +// 7.2.106 +type AVP_Unsigned32 Message_Size; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Message-Type (1211) 3GPP (10415) +// 7.2.107 +type enumerated Message_Type +{ + M_SEMD_REQ (1), + M_SEMD_CONF (2), + M_NOTIFICATION_IND (3), + M_NOTIFYRESP_IND (4), + M_RETRIEVE_CONF (5), + M_ACKNOWLEDGE_IND (6), + M_DELIVERY_IND (7), + M_READ_REC_IND (8), + M_READ_ORIG_IND (9), + M_FORWARD_REQ (10), + M_FORWARD_CONF (11), + M_MBOX_STORE_CONF (12), + M_MBOX_VIEW_CONF (13), + M_MBOX_UPLOAD_CONF (14), + M_MBOX_DELETE_CONF (15) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: MM-Content-Type (1203) 3GPP (10415) +// 7.2.108 +type AVP_Grouped MM_Content_Type; + + +// 3GPP TS 32.299 V12.6.0 +// AVP: MMBox-Storage-Requested (1248) 3GPP (10415) +// 7.2.109 +type enumerated MMBox_Storage_Requested +{ + NO (0), + YES (1) +} +// 3GPP TS 32.299 V12.6.0 +// AVP: MMS-Information (877) 3GPP (10415) +// 7.2.110 +type AVP_Grouped MMS_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: MMTel-Information (2030) 3GPP (10415) +// 7.2.111 +type AVP_Grouped MMTel_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: MMTel-SService-Type (2031) 3GPP (10415) +// 7.2.111A +type AVP_Unsigned32 MMTel_SService_Type; + +// 3GPP TS 32.299 V12.6.0 +// AVP: MSC-Address (3417) 3GPP (10415) +// 7.2.111B +type AVP_OctetString MSC_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: MTC-IWF-Address (3406) 3GPP (10415) +// 7.2.111C +type AVP_Address MTC_IWF_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Neighbour-Node-Address (2705) 3GPP (10415) +// 7.2.111D +type AVP_Address Neighbour_Node_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Network-Call-Reference-Number (3418) 3GPP (10415) +type AVP_OctetString Network_Call_Reference_Number; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Next-Tariff (2057) 3GPP (10415) +// 7.2.112 +type AVP_Grouped Next_Tariff; + +// 3GPP TS 32.299 V12.6.0 +// AVP: NNI-Information (2703) 3GPP (10415) +// +type AVP_Grouped NNI_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: NNI-Type (2704) 3GPP (10415) +// 7.2.112A +type enumerated NNI_Type +{ + Non_Roaming (0), + Roaming_Without_Loopback (1), + Roaming_With_Loopback (2) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Node-Functionality (862) 3GPP (10415) +// 7.2.113 +type enumerated Node_Functionality +{ + S_CSCF (0), + P_CSCF (1), + I_CSCF (2), + MRFC (3), + MGCF (4), + BGCF (5), + AS (6), + IBCF (7), + S_GW (8), + P_GW (9), + HSGW (10), + E_CSCF (11), + MME (12), + TRF (13), + TF (14), + ATCF (15), + Proxy_Function (16), + ePDG (17) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Node-Id (2064) 3GPP (10415) +// 7.2.114 +type AVP_UTF8String Node_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Number-Of-Diversions (2034) 3GPP (10415) +// 7.2.115 +type AVP_Unsigned32 Number_Of_Diversions; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Number-of-Messages-Sent (2019) 3GPP (10415) +// 7.2.116 +type AVP_Unsigned32 Number_of_Messages_Sent; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Number-Of-Participants (885) 3GPP (10415) +// 7.2.117 +type AVP_Unsigned32 Number_Of_Participants; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Number-Of-Received-Talk-Bursts (1282) 3GPP (10415) +// 7.2.118 +type AVP_Unsigned32 Number_Of_Received_Talk_Bursts; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Number-Of-Talk-Bursts (1283) 3GPP (10415) +// 7.2.119 +type AVP_Unsigned32 Number_Of_Talk_Bursts; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Number-Portability-Routing-Information (2024) 3GPP (10415) +// 7.2.120 +type AVP_UTF8String Number_Portability_Routing_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Offline-Charging (1278) 3GPP (10415) +// 7.2.121 +type AVP_Grouped Offline_Charging; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Online-Charging-Flag (2303) 3GPP (10415) +// 7.2.122 +type enumerated Online_Charging_Flag +{ + ECF_ADDRESS_NOT_PROVIDED (0), + ECF_ADDRESS_PROVIDED (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Originating-IOI (839) 3GPP (10415) +// 7.2.123 +type AVP_UTF8String Originating_IOI; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Originator (864) 3GPP (10415) +// 7.2.124 +type enumerated Originator +{ + CALLING_PARTY (0), + CALLED_PARTY (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Originator-Address (886) 3GPP (10415) +// 7.2.125 +type AVP_Grouped Originator_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Originator-Interface (2009) 3GPP (10415) +// 7.2.126 +type AVP_Grouped Originator_Interface; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Originator-Received-Address (2027) 3GPP (10415) +// 7.2.127 +type AVP_Grouped Originator_Received_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Originating-SCCP-Address (2008) 3GPP (10415) +// 7.2.128 +type AVP_Address Originating_SCCP_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Outgoing-Session-Id (2320) 3GPP (10415) +// 7.2.128A +type AVP_UTF8String Outgoing_Session_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Outgoing-Trunk-Group-Id (853) 3GPP (10415) +// 7.2.129 +type AVP_UTF8String Outgoing_Trunk_Group_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Participants-Involved (887) 3GPP (10415) +// 7.2.130 +type AVP_UTF8String Participants_Involved; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Participant-Group (1260) 3GPP (10415) +// 7.2.131 +type AVP_Grouped Participant_Group; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Participant-Access-Priority (1259) 3GPP (10415) +// 7.2.132 +type enumerated Participant_Access_Priority +{ + PRE_EMPTIVE_PRIORITY (1), + HIGH_PRIORITY (2), + NORMAL_PRIORITY (3), + LOW_PRIORITY (4) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Participant-Action-Type (2049) 3GPP (10415) +// 7.2.133 +type enumerated Participant_Action_Type +{ + CREATE_CONF (0), + JOIN_CONF (1), + INVITE_INTO_CONF (2), + QUIT_CONF (3) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: PDN-Connection-Charging-ID (2050) 3GPP (10415) +// 7.2.136 +type AVP_Unsigned32 PDN_Connection_Charging_ID; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PDP-Address (1227) 3GPP (10415) +// 7.2.137 +type AVP_Address PDP_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PDP-Address-Prefix-Length (2606) 3GPP (10415) +// 7.2.137A +type AVP_Unsigned32 PDP_Address_Prefix_Length; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PDP-Context-Type (1247) 3GPP (10415) +// 7.2.138 +type enumerated PDP_Context_Type +{ + PRIMARY (0), + SECONDARY (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-Change-Conditions (1261) 3GPP (10415) +// 7.2.139 +type enumerated PoC_Change_Conditions +{ + SERVICE_CHANGE (0), + VOLUME_LIMIT (1), + TIME_LIMIT (2), + NUMBER_OF_TALK_BURST_LIMIT (3), + NUMBER_OF_ACTIVE_PARTICIPANTS (4), + TARIFF_TIME (5) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-Change-Time (1262) 3GPP (10415) +// 7.2.140 +type AVP_Time PoC_Change_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-Controlling-Address (858) 3GPP (10415) +// 7.2.141 +type AVP_UTF8String PoC_Controlling_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-Event-Type (2025) 3GPP (10415) +// 7.2.142 +type enumerated PoC_Event_Type +{ + NORMAL (0), + INSTANT_PERSONAL_ALERT_EVENT (1), + POC_GROUP_ADVERTISEMENT_EVENT (2), + EARLY_SESSION_SETTING_UP_EVENT (3), + POC_TALK_BURST (4) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-Group-Name (859) 3GPP (10415) +// 7.2.143 +type AVP_UTF8String PoC_Group_Name; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-Information (879) 3GPP (10415) +// 7.2.144 +type AVP_Grouped PoC_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-Server-Role (883) 3GPP (10415) +// 7.2.145 +type enumerated PoC_Server_Role +{ + PARTICIPATING_POC_SERVER (0), + CONTROLLING_POC_SERVER (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-Session-Id (1229) 3GPP (10415) +// 7.2.146 +type AVP_UTF8String PoC_Session_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-Session-Initiation-Type (1277) 3GPP (10415) +// 7.2.147 +type enumerated PoC_Session_Initiation_Type +{ + PRE_ESTABLISHED (0), + ON_DEMAND (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-Session-Type (884) 3GPP (10415) +// 7.2.148 +type enumerated PoC_Session_Type +{ + ONE_TO_ONE_POC_SESSION (0), + CHAT_POC_GROUP_SESSION (1), + PRE_ARRANGED_POC_GROUP_SESSION (2), + AD_HOC_POC_GROUP_SESSION (3) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-User-Role (1252) 3GPP (10415) +// 7.2.149 +type AVP_Grouped PoC_User_Role; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-User-Role-IDs (1253) 3GPP (10415) +// 7.2.150 +type AVP_UTF8String PoC_User_Role_IDs; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PoC-User-Role-info-Units (1254) 3GPP (10415) +// 7.2.151 +type enumerated PoC_User_Role_info_Units +{ + MODERATOR (1), + DISPATCHER (2), + SESSION_OWNER (3), + SESSION_PARTICIPANT (4) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Positioning-Data (1245) 3GPP (10415) +// 7.2.152 +type AVP_UTF8String Positioning_Data; + + +// 3GPP TS 32.299 V12.6.0 +// AVP: Preferred-AoC-Currency (2315) 3GPP (10415) +// 7.2.153 +type AVP_Unsigned32 Preferred_AoC_Currency; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Priority (1209) 3GPP (10415) +// 7.2.154 +type enumerated Priority +{ + LOW (0), + NORMAL (1), + HIGH (2) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: PS-Append-Free-Format-Data (867) 3GPP (10415) +// 7.2.155 +type enumerated PS_Append_Free_Format_Data +{ + APPEND (0), + OVERWRITE (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: PS-Free-Format-Data (866) 3GPP (10415) +// 7.2.156 +type AVP_OctetString PS_Free_Format_Data; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PS-Furnish-Charging-Information (865) 3GPP (10415) +// 7.2.157 +type AVP_Grouped PS_Furnish_Charging_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: PS-Information (874) 3GPP (10415) +// 7.2.158 +type AVP_Grouped PS_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Quota-Consumption-Time (881) 3GPP (10415) +// 7.2.159 +type AVP_Unsigned32 Quota_Consumption_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Quota-Holding-Time (871) 3GPP (10415) +// 7.2.160 +type AVP_Unsigned32 Quota_Holding_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Rate-Element (2058) 3GPP (10415) +// 7.2.161 +type AVP_Grouped Rate_Element; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Read-Reply-Report-Requested (1222) 3GPP (10415) +// 7.2.162 +type enumerated Read_Reply_Report_Requested +{ + NO (0), + YES (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Real-Time-Tariff-Information (2305) 3GPP (10415) +// 7.2.164 +type AVP_Grouped Real_Time_Tariff_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Reason-Header (3401) 3GPP (10415) +// 7.2.164A +type AVP_UTF8String Reason_Header; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Received-Talk-Burst-Time (1284) 3GPP (10415) +// 7.2.165 +type AVP_Unsigned32 Received_Talk_Burst_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Received-Talk-Burst-Volume (1285) 3GPP (10415) +// 7.2.166 +type AVP_Unsigned32 Received_Talk_Burst_Volume; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Recipient-Address (1201) 3GPP (10415) +// 7.2.167 +type AVP_Grouped Recipient_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Recipient-Info (2026) 3GPP (10415) +// 7.2.168 +type AVP_Grouped Recipient_Info; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Recipient-Received-Address (2028) 3GPP (10415) +// 7.2.169 +type AVP_Grouped Recipient_Received_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Recipient-SCCP-Address (2010) 3GPP (10415) +// 7.2.170 +type AVP_Address Recipient_SCCP_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Refund-Information (2022) 3GPP (10415) +// 7.2.171 +type AVP_OctetString Refund_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Relationship-Mode (2706) 3GPP (10415) +// 7.2.171A +type enumerated Relationship_Mode +{ + Trusted (0), + Non_Trusted (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Related-IMS-Charging-Identifier (2711) 3GPP (10415) +// 7.2.171B +type AVP_UTF8String Related_IMS_Charging_Identifier; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Related-IMS-Charging-Identifier-Node (2712) 3GPP (10415) +// 7.2.171C +type AVP_Address Related_IMS_Charging_Identifier_Node; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Remaining-Balance (2021) 3GPP (10415) +// 7.2.172 +type AVP_Grouped Remaining_Balance; + +// 3GPP TS 32.299 V8.5.0 +// AVP: Reply-Applic-ID (1223) 3GPP (10415) +// 7.2.173 +type AVP_UTF8String Reply_Applic_ID; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Reply-Path-Requested (2011) 3GPP (10415) +// 7.2.174 +type enumerated Reply_Path_Requested +{ + NO_REPLY_PATH_SET (0), + REPLY_PATH_SET (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Reporting-Reason (872) 3GPP (10415) +// 7.2.175 +type enumerated Reporting_Reason +{ + THRESHOLD (0), + QHT (1), + FINAL (2), + QUOTA_EXHAUSTED (3), + VALIDITY_TIME (4), + OTHER_QUOTA_TYPE (5), + RATING_CONDITION_CHANGE (6), + FORCED_REAUTHORISATION (7), + POOL_EXHAUSTED (8) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Requested-Party-Address (1251) 3GPP (10415) +// 7.2.176 +type AVP_UTF8String Requested_Party_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Role-Of-Node (829) 3GPP (10415) +// Note: not compatible with V9.2.0 or before (see spec.) +// 7.2.177 +type enumerated Role_Of_Node +{ + ORIGINATING_ROLE (0), + TERMINATING_ROLE (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Route-Header-Received (3403) 3GPP (10415) +// 7.2.177A +type AVP_UTF8String Route_Header_Received; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Route-Header-Transmitted (3404) 3GPP (10415) +// 7.2.177B +type AVP_UTF8String Route_Header_Transmitted; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Scale-Factor (2059) 3GPP (10415) +// 7.2.178 +type AVP_Grouped Scale_Factor; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SDP-Answer-Timestamp (1275) 3GPP (10415) +// 7.2.179 +type AVP_Time SDP_Answer_Timestamp; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SDP-Media-Component (843) 3GPP (10415) +// 7.2.180 +type AVP_Grouped SDP_Media_Component; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SDP-Media-Description (845) 3GPP (10415) +// 7.2.181 +type AVP_UTF8String SDP_Media_Description; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SDP-Media-Name (844) 3GPP (10415) +// 7.2.182 +type AVP_UTF8String SDP_Media_Name; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SDP-Offer-Timestamp (1274) 3GPP (10415) +// 7.2.183 +type AVP_Time SDP_Offer_Timestamp; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SDP-Session-Description (842) 3GPP (10415) +// 7.2.184 +type AVP_UTF8String SDP_Session_Description; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SDP-TimeStamps (1273) 3GPP (10415) +// 7.2.185 +type AVP_Grouped SDP_TimeStamps; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SDP-Type (2036) 3GPP (10415) +// 7.2.186 +type enumerated SDP_Type +{ + SDP_OFFER (0), + SDP_ANSWER (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Session-Direction (2707) 3GPP (10415) +// 7.2.186A +type enumerated Session_Direction +{ + Inbound (0), + Outbound (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Served-Party-IP-Address (848) 3GPP (10415) +// 7.2.187 +type AVP_Address Served_Party_IP_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Service-Data-Container (2040) 3GPP (10415) +// 7.2.189 +type AVP_Grouped Service_Data_Container; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Service-Id (855) 3GPP (10415) +// 7.2.190 +type AVP_UTF8String Service_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Service-Generic-Information (1256) 3GPP (10415) +// 7.2.191 +type AVP_Grouped Service_Generic_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Service-Information (873) 3GPP (10415) +// 7.2.192 +type AVP_Grouped Service_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Service-Mode (2032) 3GPP (10415) +// 7.2.193 +type AVP_Unsigned32 Service_Mode; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Service-Specific-Data (863) 3GPP (10415) +// 7.2.194 +type AVP_UTF8String Service_Specific_Data; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Service-Specific-Info (1249) 3GPP (10415) +// 7.2.195 +type AVP_Grouped Service_Specific_Info; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Service-Specific-Type (1257) 3GPP (10415) +// 7.2.196 +type AVP_Unsigned32 Service_Specific_Type; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Serving-Node-Type (2047) 3GPP (10415) +// 7.2.198 +type enumerated Serving_Node_Type +{ + SGSN (0), + PMIPSGW (1), + GTPSGW (2), + ePDG (3), + hSGW (4), + MME (5) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: SGSN-Address (1228) 3GPP (10415) +// 7.2.199 +type AVP_Address SGSN_Address; + + +// 3GPP TS 32.299 V12.6.0 +// AVP: SGW-Address (2067) 3GPP (10415) +// 7.2.199A +type AVP_Address SGW_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SGW-Change (2065) 3GPP (10415) +// 7.2.200 +type enumerated SGW_Change +{ + ACR_Start_NOT_due_to_SGW_Change (0), + ACR_Start_due_to_SGW_Change (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: SIP-Method (824) 3GPP (10415) +// 7.2.201 +type AVP_UTF8String SIP_Method; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SIP-Request-Timestamp (834) 3GPP (10415) +// 7.2.202 +type AVP_Time SIP_Request_Timestamp; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SIP-Request-Timestamp-Fraction (2301) 3GPP (10415) +// 7.2.203 +type AVP_Unsigned32 SIP_Request_Timestamp_Fraction; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SIP-Response-Timestamp (835) 3GPP (10415) +// 7.2.204 +type AVP_Time SIP_Response_Timestamp; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SIP-Response-Timestamp-Fraction (2302) 3GPP (10415) +// 7.2.205 +type AVP_Unsigned32 SIP_Response_Timestamp_Fraction; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SM-Device-Trigger-Indicator (3407) 3GPP (10415) +// 7.2.205A +type enumerated SM_Device_Trigger_Indicator +{ + Not_Device_Trigger (0), + Device_Trigger (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: SM-Device-Trigger-Information (3405) 3GPP (10415) +// 7.2.205B +type AVP_Grouped SM_Device_Trigger_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SM-Discharge-Time (2012) 3GPP (10415) +// 7.2.206 +type AVP_Time SM_Discharge_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SM-Message-Type (2007) 3GPP (10415) +// 7.2.207 +type enumerated SM_Message_Type +{ + SUBMISSION (0), + DELIVERY_REPORT (1), + SM_SERVICE_REQUEST (2) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: SM-Protocol-ID (2013) 3GPP (10415) +// 7.2.208 +type AVP_OctetString SM_Protocol_ID; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SM-Sequence-Number (3408) 3GPP (10415) +// 7.2.208A +type AVP_Unsigned32 SM_Sequence_Number; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SM-Status (2014) 3GPP (10415) +// 7.2.209 +type AVP_OctetString SM_Status; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SM-User-Data-Header (2015) 3GPP (10415) +// 7.2.210 +type AVP_OctetString SM_User_Data_Header; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SMS-Information (2000) 3GPP (10415) +// 7.2.211 +type AVP_Grouped SMS_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SMS-Node (2016) 3GPP (10415) +// 7.2.212 +type enumerated SMS_Node +{ + SMS_ROUTER (0), + IP_SM_GW (1), + SMS_ROUTER_AND_IP_SM_GW (2), + SMS_SC (3) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: SMS-Result (3409) 3GPP (10415) +// 7.2.212A +type AVP_Unsigned32 SMS_Result; + +// WARNING: Unsigned32 used instead of enumerated type +// 3GPP TS 32.299 V12.6.0 +// AVP: SM-Service-Type (2029) 3GPP (10415) +// 7.2.213 +type AVP_Unsigned32 SM_Service_Type; + +// 3GPP TS 32.299 V12.6.0 +// AVP: SMSC-Address (2017) 3GPP (10415) +// 7.2.214 +type AVP_Address SMSC_Address; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Start-Of-Charging (3419) 3GPP (10415) +// 7.2.214A +type AVP_Time Start_Of_Charging; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Start-Time (2041) 3GPP (10415) +// 7.2.215 +type AVP_Time Start_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Status-Code (2702) 3GPP (10415) +// 7.2.215A +type enumerated Status_Code +{ + code_4xx (0), + code_5xx (1), + Timeout (2) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Stop-Time (2042) 3GPP (10415) +// 7.2.216 +type AVP_Time Stop_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Submission-Time (1202) 3GPP (10415) +// 7.2.217 +type AVP_Time Submission_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Subscriber-Role (2033) 3GPP (10415) +// 7.2.218 +type enumerated Subscriber_Role +{ + ORIGINATING (0), + TERMINATING (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Supplementary-Service (2048) 3GPP (10415) +// 7.2.219 +type AVP_Grouped Supplementary_Service; + +// 3GPP TS 32.299 V12.6.0 +// AVP: TAD-Identifier (2717) 3GPP (10415) +// 7.2.219A +type enumerated TAD_Identifier +{ + CS (0), + PS (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Talk-Burst-Exchange (1255) 3GPP (10415) +// 7.2.220 +type AVP_Grouped Talk_Burst_Exchange; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Talk-Burst-Time (1286) 3GPP (10415) +// 7.2.221 +type AVP_Unsigned32 Talk_Burst_Time; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Talk-Burst-Volume (1287) 3GPP (10415) +// 7.2.222 +type AVP_Unsigned32 Talk_Burst_Volume; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Tariff-Information (2060) 3GPP (10415) +// 7.2.223 +type AVP_Grouped Tariff_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Tariff-XML (2306) 3GPP (10415) +// 7.2.224 +type AVP_UTF8String Tariff_XML; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Teleservice (3413) 3GPP (10415) +// +type AVP_OctetString Teleservice; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Terminating-IOI (840) 3GPP (10415) +// 7.2.225 +type AVP_UTF8String Terminating_IOI; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Time_First_Usage (2043) 3GPP (10415) +// 7.2.226 +type AVP_Time Time_First_Usage; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Time_Last_Usage (2044) 3GPP (10415) +// 7.2.227 +type AVP_Time Time_Last_Usage; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Time-Quota-Mechanism (1270) 3GPP (10415) +// 7.2.228 +type AVP_Grouped Time_Quota_Mechanism; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Time-Quota-Threshold (868) 3GPP (10415) +// 7.2.229 +type AVP_Unsigned32 Time_Quota_Threshold; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Time-Quota-Type (1271) 3GPP (10415) +// 7.2.230 +type enumerated Time_Quota_Type +{ + DISCRETE_TIME_PERIOD (0), + CONTINUOUS_TIME_PERIOD (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Time-Stamps (833) 3GPP (10415) +// 7.2.231 +type AVP_Grouped Time_Stamps; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Time-Usage (2045) 3GPP (10415) +// 7.2.232 +type AVP_Unsigned32 Time_Usage; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Traffic-Data-Volumes (2046) 3GPP (10415) +// 7.2.233 +type AVP_Grouped Traffic_Data_Volumes; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Transcoder-Inserted-Indication (2605) 3GPP (10415) +// 7.2.233A +type enumerated Transcoder_Inserted_Indication +{ + TRANSCODER_NOT_INSERTED (0), + TRANSCODER_INSERTED (1) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Transit-IOI-List (2701) 3GPP (10415) +// 7.2.233B +type AVP_UTF8String Transit_IOI_List; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Token-Text (1215) 3GPP (10415) +// 7.2.234 +type AVP_UTF8String Token_Text; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Trigger (1264) 3GPP (10415) +// 7.2.235 +type AVP_Grouped Trigger; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Trigger-Type (870) 3GPP (10415) +// 7.2.236 +type enumerated Trigger_Type +{ + CHANGE_IN_SGSN_IP_ADDRESS (1), + CHANGE_IN_QOS (2), + CHANGE_IN_LOCATION (3), + CHANGE_IN_RAT (4), + CHANGE_IN_UE_TIMEZONE (5), + CHANGEINQOS_TRAFFIC_CLASS (10), + CHANGEINQOS_RELIABILITY_CLASS (11), + CHANGEINQOS_DELAY_CLASS (12), + CHANGEINQOS_PEAK_THROUGHPUT (13), + CHANGEINQOS_PRECEDENCE_CLASS (14), + CHANGEINQOS_MEAN_THROUGHPUT (15), + CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_UPLINK (16), + CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_DOWNLINK (17), + CHANGEINQOS_RESIDUAL_BER (18), + CHANGEINQOS_SDU_ERROR_RATIO (19), + CHANGEINQOS_TRANSFER_DELAY (20), + CHANGEINQOS_TRAFFIC_HANDLING_PRIORITY (21), + CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_UPLINK (22), + CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_DOWNLINK (23), + CHANGEINLOCATION_MCC (30), + CHANGEINLOCATION_MNC (31), + CHANGEINLOCATION_RAC (32), + CHANGEINLOCATION_LAC (33), + CHANGEINLOCATION_CellId (34), + CHANGEINLOCATION_TAC (35), + CHANGEINLOCATION_ECGI (36), + CHANGE_IN_MEDIA_COMPOSITION (40), + CHANGE_IN_PARTICIPANTS_NMB (50), + CHANGE_IN_THRSHLD_OF_PARTICIPANTS_NMB (51), + CHANGE_IN_USER_PARTICIPATING_TYPE (52), + CHANGE_IN_SERVICE_CONDITION (60), + CHANGE_IN_SERVING_NODE (61), + CHANGE_IN_USER_CSG_INFORMATION (70), + CHANGE_IN_HYBRID_SUBSCRIBED_USER_CSG_INFORMATION (71), + CHANGE_IN_HYBRID_UNSUBSCRIBED_USER_CSG_INFORMATION (72) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: Trunk-Group-Id (851) 3GPP (10415) +// 7.2.237 +type AVP_Grouped Trunk_Group_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: TWAN-User-Location-Info (2714) 3GPP (10415) +// +type AVP_Grouped TWAN_User_Location_Info; + +// WARNING: Unsigned32 used instead of enumerated type +// 3GPP TS 32.299 V12.6.0 +// AVP: Type-Number (1204) 3GPP (10415) +// 7.2.238 +type AVP_Unsigned32 Type_Number; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Unit-Cost (2061) 3GPP (10415) +// 7.2.239 +type AVP_Grouped Unit_Cost; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Unit-Quota-Threshold (1226) 3GPP (10415) +// 7.2.240 +type AVP_Unsigned32 Unit_Quota_Threshold; + +// 3GPP TS 32.299 V12.6.0 +// AVP: User-CSG-Information (2319) 3GPP (10415) +// 7.2.240A +type AVP_Grouped User_CSG_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: User-Participating-Type (1279) 3GPP (10415) +// 7.2.241 +type enumerated User_Participating_Type +{ + NORMAL (0), + NW_POC_BOX (1), + UE_POC_BOX (2) +} + +// 3GPP TS 32.299 V12.6.0 +// AVP: User-Session-Id (830) 3GPP (10415) +// 7.2.242 +type AVP_UTF8String User_Session_Id; + +// 3GPP TS 32.299 V12.6.0 +// AVP: VCS-Information (3410) 3GPP (10415) +// 7.2.242A +type AVP_Grouped VCS_Information; + +// 3GPP TS 32.299 V12.6.0 +// AVP: VLR-Number (3420) 3GPP (10415) +// 7.2.242B +type AVP_OctetString VLR_Number; + +// 3GPP TS 32.299 V12.6.0 +// AVP: Volume-Quota-Threshold (869) 3GPP (10415) +// 7.2.243 +type AVP_Unsigned32 Volume_Quota_Threshold; + + diff --git a/src/CreditControl_IETF_RFC4006.ddf b/src/CreditControl_IETF_RFC4006.ddf index 3859ebe..fe38d5b 100644 --- a/src/CreditControl_IETF_RFC4006.ddf +++ b/src/CreditControl_IETF_RFC4006.ddf @@ -37,7 +37,7 @@ // // File: CreditControl_IETF_RFC4006.ddf // Description: DDF for DCC according to RFC 4006 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 1134 62 /////////////////////////////////////////////// diff --git a/src/CxDxInterface_3GPP_TS29229_6a0.ddf b/src/CxDxInterface_3GPP_TS29229_6a0.ddf index f7c9a78..4271fd1 100644 --- a/src/CxDxInterface_3GPP_TS29229_6a0.ddf +++ b/src/CxDxInterface_3GPP_TS29229_6a0.ddf @@ -37,7 +37,7 @@ // // File: CxDxInterface_3GPP_TS29229_6a0.ddf // Description: DDF for CxDx according to 3GPP TS 29.229 V6.10.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/CxDxInterface_3GPP_TS29229_840.ddf b/src/CxDxInterface_3GPP_TS29229_840.ddf index 9ff1215..721eae7 100644 --- a/src/CxDxInterface_3GPP_TS29229_840.ddf +++ b/src/CxDxInterface_3GPP_TS29229_840.ddf @@ -37,7 +37,7 @@ // // File: CxDxInterface_3GPP_TS29229_840.ddf // Description: DDF for CxDx according to 3GPP TS 29.229 V8.4.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/CxDxInterface_3GPP_TS29229_880.ddf b/src/CxDxInterface_3GPP_TS29229_880.ddf index 83da8d3..451f48f 100644 --- a/src/CxDxInterface_3GPP_TS29229_880.ddf +++ b/src/CxDxInterface_3GPP_TS29229_880.ddf @@ -37,7 +37,7 @@ // // File: CxDxInterface_3GPP_TS29229_880.ddf // Description: DDF for CxDx according to 3GPP TS 29.229 V8.8.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/CxDxInterface_3GPP_TS29229_920.ddf b/src/CxDxInterface_3GPP_TS29229_920.ddf index 9009ba7..b21cc17 100644 --- a/src/CxDxInterface_3GPP_TS29229_920.ddf +++ b/src/CxDxInterface_3GPP_TS29229_920.ddf @@ -37,7 +37,7 @@ // // File: CxDxInterface_3GPP_TS29229_880.ddf // Description: DDF for CxDx according to 3GPP TS 29.229 V9.2.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/CxDxInterface_3GPP_TS29229_c30.ddf b/src/CxDxInterface_3GPP_TS29229_c30.ddf new file mode 100644 index 0000000..cbd01a0 --- /dev/null +++ b/src/CxDxInterface_3GPP_TS29229_c30.ddf @@ -0,0 +1,375 @@ +/****************************************************************************** +* Copyright (c) 2004, 2014 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Gabor Szalai - initial implementation and initial documentation +******************************************************************************/ +// +// File: CxDxInterface_3GPP_TS29229_c30.ddf +// Description: DDF for CxDx according to 3GPP TS 29.229 V12.3.0 +// Rev: R34A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: CxDx +// APPLICATION-REVISION: V12_3_0 + +// AVP implementations according to: +// 3GPP TS 29.229 V12.3.0 - Cx and Dx interfaces based on the Diameter protocol +// +// +// Dependant applications +// IETF RFC 3588 - Diameter Base Protocol +// IETF RFC 4005 - Diameter Network Access Server Application +// IETF RFC 5090 (Obsoletes: 4590) - RADIUS Extension for Digest Authentication +// +// Notes: +// Present application has its own vendor specific Diameter application id: 16777216 +// + +// 3GPP TS 29.229 V12.3.0 6.1 +type enumerated Command_Code { + User_Authorization (300), + Server_Assignment (301), + Location_Info (302), + Multimedia_Auth (303), + Registration_Termination (304), + Push_Profile (305) +} + + + +// 3GPP 29.229 V12.3.0 +// AVP: Visited-Network-Identifier (600) 3GPP (10415) +// 6.3.1 +type AVP_OctetString Visited_Network_Identifier; + +// 3GPP 29.229 V12.3.0 +// AVP: Public-Identity (601) 3GPP (10415) +// 6.3.2 +type AVP_UTF8String Public_Identity; + +// 3GPP 29.229 V12.3.0 +// AVP: Server-Name (602) 3GPP (10415) +// 6.3.3 +type AVP_UTF8String Server_Name; + +// 3GPP 29.229 V12.3.0 +// AVP: Server-Capabilities (603) 3GPP (10415) +// 6.3.4 +type AVP_Grouped Server_Capabilities; + +// 3GPP 29.229 V12.3.0 +// AVP: Mandatory-Capability (604) 3GPP (10415) +// 6.3.5 +type AVP_Unsigned32 Mandatory_Capability; + +// 3GPP 29.229 V12.3.0 +// AVP: Optional-Capability (605) 3GPP (10415) +// 6.3.6 +type AVP_Unsigned32 Optional_Capability; + +// 3GPP 29.229 V12.3.0 +// AVP: User-Data (606) 3GPP (10415) +// 6.3.7 +type AVP_OctetString User_Data; + +// 3GPP 29.229 V12.3.0 +// AVP: SIP-Number-Auth-Items (607) 3GPP (10415) +// 6.3.8 +type AVP_Unsigned32 SIP_Number_Auth_Items; + +// 3GPP 29.229 V12.3.0 +// AVP: SIP-Authentication-Scheme (608) 3GPP (10415) +// 6.3.9 +type AVP_UTF8String SIP_Authentication_Scheme; + +// 3GPP 29.229 V12.3.0 +// AVP: SIP-Authenticate (609) 3GPP (10415) +// 6.3.10 +type AVP_OctetString SIP_Authenticate; + +// 3GPP 29.229 V12.3.0 +// AVP: SIP-Authorization (610) 3GPP (10415) +// 6.3.11 +type AVP_OctetString SIP_Authorization; + +// 3GPP 29.229 V12.3.0 +// AVP: SIP-Authentication-Context (611) 3GPP (10415) +// 6.3.12 +type AVP_OctetString SIP_Authentication_Context; + +// 3GPP 29.229 V12.3.0 +// AVP: SIP-Auth-Data-Item (612) 3GPP (10415) +// 6.3.13 +type AVP_Grouped SIP_Auth_Data_Item; + +// 3GPP 29.229 V12.3.0 +// AVP: SIP-Item-Number (613) 3GPP (10415) +// 6.3.14 +type AVP_Unsigned32 SIP_Item_Number; + +// 3GPP 29.229 V12.3.0 +// AVP: Server-Assignment-Type (614) 3GPP (10415) +// 6.3.15 +type enumerated Server_Assignment_Type +{ + NO_ASSIGNMENT (0), + REGISTRATION (1), + RE_REGISTRATION (2), + UNREGISTERED_USER (3), + TIMEOUT_DEREGISTRATION (4), + USER_DEREGISTRATION (5), + TIMEOUT_DEREGISTRATION_STORE_SERVER_NAME (6), + USER_DEREGISTRATION_STORE_SERVER_NAME (7), + ADMINISTRATIVE_DEREGISTRATION (8), + AUTHENTICATION_FAILURE (9), + AUTHENTICATION_TIMEOUT (10), + DEREGISTRATION_TOO_MUCH_DATA (11), + AAA_USER_DATA_REQUEST (12), + PGW_UPDATE (13), + RESTORATION (14) +} + +// 3GPP 29.229 V12.3.0 +// AVP: Deregistration-Reason (615) 3GPP (10415) +// 6.3.16 +type AVP_Grouped Deregistration_Reason; + +// 3GPP 29.229 V12.3.0 +// AVP: Reason-Code (616) 3GPP (10415) +// 6.3.17 +type enumerated Reason_Code +{ + PERMANENT_TERMINATION (0), + NEW_SERVER_ASSIGNED (1), + SERVER_CHANGE (2), + REMOVE_S_CSCF (3) +} + +// 3GPP 29.229 V12.3.0 +// AVP: Reason-Info (617) 3GPP (10415) +// 6.3.18 +type AVP_UTF8String Reason_Info; + +// 3GPP 29.229 V12.3.0 +// AVP: Charging-Information (618) 3GPP (10415) +// 6.3.19 +type AVP_Grouped Charging_Information; + +// 3GPP 29.229 V12.3.0 +// AVP: Primary-Event-Charging-Function-Name (619) 3GPP (10415) +// 6.3.20 +type AVP_DiameterURI Primary_Event_Charging_Function_Name; + +// 3GPP 29.229 V12.3.0 +// AVP: Secondary-Event-Charging-Function-Name (620) 3GPP (10415) +// 6.3.21 +type AVP_DiameterURI Secondary_Event_Charging_Function_Name; + +// 3GPP 29.229 V12.3.0 +// AVP: Primary-Charging-Collection-Function-Name (621) 3GPP (10415) +// 6.3.22 +type AVP_DiameterURI Primary_Charging_Collection_Function_Name; + +// 3GPP 29.229 V12.3.0 +// AVP: Secondary-Charging-Collection-Function-Name (622) 3GPP (10415) +// 6.3.23 +type AVP_DiameterURI Secondary_Charging_Collection_Function_Name; + +// 3GPP 29.229 V12.3.0 +// AVP: User-Authorization-Type (623) 3GPP (10415) +// 6.3.24 +type enumerated User_Authorization_Type +{ + REGISTRATION (0), + DE_REGISTRATION (1), + REGISTRATION_AND_CAPABILITIES (2) +} + +// 3GPP 29.229 V12.3.0 +// AVP: User-Data-Already-Available (624) 3GPP (10415) +// 6.3.26 +type enumerated User_Data_Already_Available +{ + USER_DATA_NOT_AVAILABLE (0), + USER_DATA_ALREADY_AVAILABLE (1) +} + +// 3GPP 29.229 V12.3.0 +// AVP: Confidentiality-Key (625) 3GPP (10415) +// 6.3.27 +type AVP_OctetString Confidentiality_Key; + +// 3GPP 29.229 V12.3.0 +// AVP: Integrity-Key (626) 3GPP (10415) +// 6.3.28 +type AVP_OctetString Integrity_Key; + +// 3GPP 29.229 V12.3.0 +// AVP: Supported-Features (628) 3GPP (10415) +// 6.3.29 +type AVP_Grouped Supported_Features; + +// 3GPP 29.229 V12.3.0 +// AVP: Feature-List-ID (629) 3GPP (10415) +// 6.3.30 +type AVP_Unsigned32 Feature_List_ID; + +// 3GPP 29.229 V12.3.0 +// AVP: Feature-List (630) 3GPP (10415) +// 6.3.31 +type AVP_Unsigned32 Feature_List; + +// 3GPP 29.229 V12.3.0 +// AVP: Supported-Applications (631) 3GPP (10415) +// 6.3.32 +type AVP_Grouped Supported_Applications; + +// 3GPP 29.229 V12.3.0 +// AVP: Associated-Identities (632) 3GPP (10415) +// 6.3.33 +type AVP_Grouped Associated_Identities; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Originating-Request (633) 3GPP (10415) +// 6.3.34 +type enumerated Originating_Request +{ + ORIGINATING (0) +} + +// 3GPP TS 29.229 V12.3.0 +// AVP: Wildcarded-Public-Identity (634) 3GPP (10415) +// 6.3.35 +type AVP_UTF8String Wildcarded_Public_Identity; + +// 3GPP TS 29.229 V12.3.0 +// AVP: SIP-Digest-Authenticate (635) 3GPP (10415) +// 6.3.36 +type AVP_Grouped SIP_Digest_Authenticate; + +// 3GPP 29.229 V12.3.0 +// AVP: Line-Identifier (500) ETSI (13019) +// 6.3.42 +type AVP_OctetString Line_Identifier; + +// 3GPP TS 29.229 V12.3.0 +// AVP: UAR-Flags (637) 3GPP (10415) +// 6.3.44 +type AVP_Unsigned32 UAR_Flags; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Loose-Route-Indication (638) 3GPP (10415) +// 6.3.45 +type enumerated Loose_Route_Indication +{ + LOOSE_ROUTE_NOT_REQUIRED (0), + LOOSE_ROUTE_REQUIRED (1) +} + +// 3GPP TS 29.229 V12.3.0 +// AVP: SCSCF-Restoration-Info (639) 3GPP (10415) +// 6.3.46 +type AVP_Grouped SCSCF_Restoration_Info; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Path (640) 3GPP (10415) +// 6.3.47 +type AVP_OctetString Path; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Contact (641) 3GPP (10415) +// 6.3.48 +type AVP_OctetString Contact; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Subscription-Info (642) 3GPP (10415) +// 6.3.49 +type AVP_Grouped Subscription_Info; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Call-ID-SIP-Header (643) 3GPP (10415) +// 6.3.49.1 +type AVP_OctetString Call_ID_SIP_Header; + +// 3GPP TS 29.229 V12.3.0 +// AVP: From-SIP-Header (644) 3GPP (10415) +// 6.3.49.2 +type AVP_OctetString From_SIP_Header; + +// 3GPP TS 29.229 V12.3.0 +// AVP: To-SIP-Header (645) 3GPP (10415) +// 6.3.49.3 +type AVP_OctetString To_SIP_Header; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Record-Route (646) 3GPP (10415) +// 6.3.49.4 +type AVP_OctetString Record_Route; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Associated-Registered-Identities (647) 3GPP (10415) +// 6.3.50 +type AVP_Grouped Associated_Registered_Identities; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Multiple-Registration-Indication (648) 3GPP (10415) +// 6.3.51 +type enumerated Multiple_Registration_Indication +{ + NOT_MULTIPLE_REGISTRATION (0), + MULTIPLE_REGISTRATION (1) +} + +// 3GPP TS 29.229 V12.3.0 +// AVP: Restoration-Info (649) 3GPP (10415) +// 6.3.52 +type AVP_Grouped Restoration_Info; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Session-Priority (650) 3GPP (10415) +// 6.3.56 +type enumerated Session_Priority +{ + PRIORITY_0 (0), + PRIORITY_1 (1), + PRIORITY_2 (2), + PRIORITY_3 (3), + PRIORITY_4 (4) +} + +// 3GPP TS 29.229 V12.3.0 +// AVP: Identity-with-Emergency-Registration (651) 3GPP (10415) +// 6.3.57 +type AVP_Grouped Identity_with_Emergency_Registration; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Priviledged-Sender-Indication (652) 3GPP (10415) +// 6.3.58 +type enumerated Priviledged_Sender_Indication +{ + NOT_PRIVILEDGED_SENDER (0), + PRIVILEDGED_SENDER (1) +} + +// 3GPP TS 29.229 V12.3.0 +// AVP: LIA-Flags (653) 3GPP (10415) +// 6.3.59 +type AVP_Unsigned32 LIA_Flags; + +// 3GPP TS 29.229 V12.3.0 +// AVP: Initial-CSeq-Sequence-Number (654) 3GPP (10415) +// 6.3.62 +type AVP_Unsigned32 Initial_CSeq_Sequence_Number; + +// 3GPP TS 29.229 V12.3.0 +// AVP: SAR-Flags (655) 3GPP (10415) +// 6.3.63 +type AVP_Unsigned32 SAR_Flags; + diff --git a/src/CxDxInterface_Ericsson_1551_FAY301_0059_PC26.ddf b/src/CxDxInterface_Ericsson_1551_FAY301_0059_PC26.ddf new file mode 100644 index 0000000..44367a8 --- /dev/null +++ b/src/CxDxInterface_Ericsson_1551_FAY301_0059_PC26.ddf @@ -0,0 +1,196 @@ +/****************************************************************************** +* Copyright (c) 2004, 2014 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Roland Gecse - initial implementation and initial documentation +* Akos Pernek +* Antal Wuh.Hen.Chang +* Attila Fulop +* Balazs Barcsik +* Bence Molnar +* Csaba Koppany +* David Juhasz +* Eduard Czimbalmos +* Elemer Lelik +* Endre Kiss +* Endre Kulcsar +* Gabor Szalai +* Gabor Tatarka +* Gergely Futo +* Istvan Sandor +* Krisztian Pandi +* Kulcsár Endre +* Laszlo Tamas Zeke +* Norbert Pinter +* Roland Gecse +* Tibor Bende +* Tibor Szabo +* Timea Moder +* Zoltan Medve +* Zsolt Nandor Torok +* Zsolt Szalai +******************************************************************************/ +// +// File: EricssonProprietaryCxDx.ddf +// Description: DDF for Cx according to 1551-FAY 301 0059 Uen +// Rev: R34A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: ECX +// APPLICATION-REVISION: PC26 + +// AVP implementations according to: +// 1551-FAY 301 0059 Uen PC26 - Service Contract, Diameter Cx Application +// Protocol details +// IETF RFC 3588 - Diameter Base Protocol + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Application-Server-Name (1001) +type AVP_OctetString Application_Server_Name; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Authenticate (1019) +type AVP_OctetString Authenticate; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Authentication-Context (1024) +type AVP_OctetString Authentication_Context; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Auth-Data-Item (1018) +type AVP_Grouped Auth_Data_Item; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Authentication-Info (1023) +type AVP_OctetString Authentication_Info; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Authorization (1022) +type AVP_OctetString Authorization; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Authentication-Scheme (1020) +type AVP_Unsigned32 Authentication_Scheme; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Condition-Negated (1033) +type enumerated Condition_Negated +{ + FALSE (0), + TRUE (1) +} + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Condition-Type-CNF (1038) +type enumerated Condition_Type_CNF +{ + FALSE (0), + TRUE (1) +} + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Indication (1002) +type AVP_Unsigned32 Indication; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Item-Number (1021) +type AVP_Unsigned32 Item_Number; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Max-No-Call-Legs-Per-Sessions (1003) +type AVP_Unsigned32 Max_No_Call_Legs_Per_Sessions; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Max-No-Simultaneous-Sessions-Allowed (1004) +type AVP_Unsigned32 Max_No_Simultaneous_Sessions_Allowed; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Method (1037) +type AVP_OctetString Method; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Number-Authentication-Items (1026) +type AVP_Unsigned32 Number_Authentication_Items; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: P-CSCF-Name (1005) +type AVP_OctetString P_CSCF_Name; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: S-CSCF-Name-Originating (1008) +type AVP_OctetString S_CSCF_Name_Originating; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: S-CSCF-Name-Terminating (1009) +type AVP_OctetString S_CSCF_Name_Terminating; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Server-Capability (1010) +type AVP_OctetString Server_Capability; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Session-Case (1034) +type AVP_Unsigned32 Session_Case; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: SIP-Server-Capabilities (1011) +type AVP_Grouped SIP_Server_Capabilities; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: SIP-Server-Name (1012) +type AVP_Grouped SIP_Server_Name; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: SIP-Server-Operator-Preference (1013) +type AVP_Grouped SIP_Server_Operator_Preference; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Trigger-Detection-Point (1014) +type AVP_Grouped Trigger_Detection_Point; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Type-Of-Trigger (1015) +type AVP_Grouped Type_Of_Trigger; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Trigger (1016) +type AVP_Grouped Trigger; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: User-Data (1017) +type AVP_Grouped User_Data; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: SIP-Header (1027) +type AVP_Grouped SIP_Header; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: SIP-Header-Name (1028) +type AVP_OctetString SIP_Header_Name; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: SIP-Header-Content (1029) +type AVP_OctetString SIP_Header_Content; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Request-Uri (1030) +type AVP_Grouped Request_Uri; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Request-Uri-SPT (1039) +type AVP_OctetString Request_Uri_SPT; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Trigger-Priority (1031) +type AVP_Unsigned32 Trigger_Priority; + +// 1551-FAY 301 0059 Uen PC26 +// AVP: Phone-Context (1032) +type AVP_OctetString Phone_Context; + diff --git a/src/DIAMETER_EncDec.cc b/src/DIAMETER_EncDec.cc index cd13211..be4a70b 100644 --- a/src/DIAMETER_EncDec.cc +++ b/src/DIAMETER_EncDec.cc @@ -23,7 +23,7 @@ * Gergely Futo * Istvan Sandor * Krisztian Pandi -* Kulcsár Endre +* Kulcsár Endre * Laszlo Tamas Zeke * Norbert Pinter * Roland Gecse @@ -37,95 +37,69 @@ // // File: DIAMETER_EncDec.cc // Description: Encoder/Decoder and external functions for DPMG -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// #include "DIAMETER_Types.hh" //#include <sys/timeb.h> +#include <stdlib.h> #include <sys/time.h> +#include <sys/types.h> +#include <unistd.h> +#include <stdint.h> namespace DIAMETER__Types{ static const unsigned char os_h_or_e_id_octets[] = { 0, 0, 0, 0 }; static const OCTETSTRING os_h_or_e_id_oct(4, os_h_or_e_id_octets); -INTEGER f__DIAMETER__genHopByHop__int() + +INTEGER f__DIAMETER__genEndToEnd__int() { - INTEGER ret = 0; - //timeb precise; // requires <sys/timeb.h> timeval precise; // requires <sys/time.h> -/* if ( ftime(&precise) != -1 ) { - srand48(precise.time + precise.millitm); - ret = int2oct(lrand48(),4); - }*/ - if ( gettimeofday(&precise, NULL) != -1 ) { - srand48(precise.tv_sec + precise.tv_usec); - ret.set_long_long_val(lrand48()); + static bool inititalized = false; + static uint32_t l_value = 0; + if(!inititalized){ + long int seed = getpid(); + if ( gettimeofday(&precise, NULL) != -1 ) { + seed <<= 8; + seed += (precise.tv_sec) & 0xFF; + seed <<= 8; + seed += (precise.tv_usec) & 0xFF; + } + srand48(seed); + l_value =lrand48(); + if ( gettimeofday(&precise, NULL) != -1 ) { + l_value = (((uint32_t)precise.tv_sec) << 20) + ( l_value >> 12); + } + inititalized = true; + } + + l_value+=1; // unsigned int -> can be overflowed safely + + if(l_value==0){ + l_value+=1; } - else TTCN_warning("f_DIAMETER_genHopByHop() returns with 0"); + + INTEGER ret; + ret.set_long_long_val(l_value); return ret; } - -OCTETSTRING f__DIAMETER__genHopByHop__oct() +OCTETSTRING f__DIAMETER__genEndToEnd__oct() { -// OCTETSTRING ret = os_h_or_e_id_oct; - //timeb precise; // requires <sys/timeb.h> -// timeval precise; // requires <sys/time.h> -/* if ( ftime(&precise) != -1 ) { - srand48(precise.time + precise.millitm); - ret = int2oct(lrand48(),4); - }*/ -// if ( gettimeofday(&precise, NULL) != -1 ) { -// srand48(precise.tv_sec + precise.tv_usec); -// ret = int2oct(lrand48(),4); -// } -// else TTCN_warning("f_DIAMETER_genHopByHop() returns with \'00000000\'O"); - return int2oct(f__DIAMETER__genHopByHop__int(),4); + return int2oct(f__DIAMETER__genEndToEnd__int(),4); } -INTEGER f__DIAMETER__genEndToEnd__int() +INTEGER f__DIAMETER__genHopByHop__int() { - INTEGER ret = 0; - //timeb precise; // requires <sys/timeb.h> - timeval precise; // requires <sys/time.h> - /*if ( ftime(&precise) != -1 ) { - srand48(precise.time + precise.millitm); - int l_value = (precise.time << 20) + (lrand48() >> 12); - if (l_value < 0) l_value *= -1; - ret = int2oct(l_value,4); - }*/ - if ( gettimeofday(&precise, NULL) != -1 ) { - srand48(precise.tv_sec + precise.tv_usec); - unsigned int l_value = (precise.tv_sec << 20) + (lrand48() >> 12); - ret.set_long_long_val(l_value); - } - else TTCN_warning("f_DIAMETER_genHopByHop() returns with 0"); - return ret; + return f__DIAMETER__genEndToEnd__int(); } - -OCTETSTRING f__DIAMETER__genEndToEnd__oct() +OCTETSTRING f__DIAMETER__genHopByHop__oct() { -// OCTETSTRING ret = os_h_or_e_id_oct; - //timeb precise; // requires <sys/timeb.h> -// timeval precise; // requires <sys/time.h> - /*if ( ftime(&precise) != -1 ) { - srand48(precise.time + precise.millitm); - int l_value = (precise.time << 20) + (lrand48() >> 12); - if (l_value < 0) l_value *= -1; - ret = int2oct(l_value,4); - }*/ -// if ( gettimeofday(&precise, NULL) != -1 ) { -// srand48(precise.tv_sec + precise.tv_usec); -// int l_value = (precise.tv_sec << 20) + (lrand48() >> 12); -// if (l_value < 0) l_value *= -1; -// ret = int2oct(l_value,4); -// } -// else TTCN_warning("f_DIAMETER_genHopByHop() returns with \'00000000\'O"); -// return ret; - return int2oct(f__DIAMETER__genEndToEnd__int(),4); + return int2oct(f__DIAMETER__genHopByHop__int(),4); } bool chk_zero(INTEGER var) {return var==0;} diff --git a/src/DIAMETER_EncDec.tpl b/src/DIAMETER_EncDec.tpl index f19d514..99baf01 100644 --- a/src/DIAMETER_EncDec.tpl +++ b/src/DIAMETER_EncDec.tpl @@ -23,7 +23,7 @@ * Gergely Futo * Istvan Sandor * Krisztian Pandi -* Kulcsár Endre +* Kulcsár Endre * Laszlo Tamas Zeke * Norbert Pinter * Roland Gecse @@ -36,9 +36,13 @@ ******************************************************************************/ #include "DIAMETER_Types.hh" -#include <sys/time.h> #define BUF_SIZE 65536 // this buffer is used on data reception and outgoing encoding #include <math.h> +#include <stdlib.h> +#include <sys/time.h> +#include <sys/types.h> +#include <unistd.h> +#include <stdint.h> namespace DIAMETER__Types{ @@ -259,44 +263,58 @@ void encode_float_8byte(unsigned char* &p, const double data) { p+=8; } -INTEGER f__DIAMETER__genHopByHop__int() + +INTEGER f__DIAMETER__genEndToEnd__int() { - INTEGER ret = 0; timeval precise; // requires <sys/time.h> - if ( gettimeofday(&precise, NULL) != -1 ) { - srand48(precise.tv_sec + precise.tv_usec); - ret.set_long_long_val(lrand48()); + static bool inititalized = false; + static uint32_t l_value = 0; + if(!inititalized){ + long int seed = getpid(); + if ( gettimeofday(&precise, NULL) != -1 ) { + seed <<= 8; + seed += (precise.tv_sec) & 0xFF; + seed <<= 8; + seed += (precise.tv_usec) & 0xFF; + } + srand48(seed); + l_value =lrand48(); + if ( gettimeofday(&precise, NULL) != -1 ) { + l_value = (((uint32_t)precise.tv_sec) << 20) + ( l_value >> 12); + } + inititalized = true; + } + + l_value+=1; // unsigned int -> can be overflowed safely + + if(l_value==0){ + l_value+=1; } - else TTCN_warning("f_DIAMETER_genHopByHop() returns with 0"); + + INTEGER ret; + ret.set_long_long_val(l_value); return ret; } - -OCTETSTRING f__DIAMETER__genHopByHop__oct() +OCTETSTRING f__DIAMETER__genEndToEnd__oct() { - return int2oct(f__DIAMETER__genHopByHop__int(),4); + return int2oct(f__DIAMETER__genEndToEnd__int(),4); } -INTEGER f__DIAMETER__genEndToEnd__int() +INTEGER f__DIAMETER__genHopByHop__int() { - INTEGER ret = 0; - timeval precise; // requires <sys/time.h> - if ( gettimeofday(&precise, NULL) != -1 ) { - srand48(precise.tv_sec + precise.tv_usec); - unsigned int l_value = (precise.tv_sec << 20) + (lrand48() >> 12); - ret.set_long_long_val(l_value); - } - else TTCN_warning("f_DIAMETER_genEndToEnd() returns with 0"); - return ret; + return f__DIAMETER__genEndToEnd__int(); } + -OCTETSTRING f__DIAMETER__genEndToEnd__oct() +OCTETSTRING f__DIAMETER__genHopByHop__oct() { - return int2oct(f__DIAMETER__genEndToEnd__int(),4); + return int2oct(f__DIAMETER__genHopByHop__int(),4); } + bool chk_zero(const INTEGER& var) {return var==0;} bool chk_zero(const OCTETSTRING& var) {return var==os_h_or_e_id_oct;} diff --git a/src/DelegatedIPv6Prefix_IETF_RFC4818.ddf b/src/DelegatedIPv6Prefix_IETF_RFC4818.ddf new file mode 100644 index 0000000..c563824 --- /dev/null +++ b/src/DelegatedIPv6Prefix_IETF_RFC4818.ddf @@ -0,0 +1,23 @@ +/****************************************************************************** +* Copyright (c) 2004, 2015 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder +******************************************************************************/ +// +// File: DelegatedIPv6Prefix_IETF_RFC4818.ddf +// Description: DDF for Delegated IPv6 Prefix to RFC 4818 +// Rev: R34A +// Prodnr: CNL113462 +/////////////////////////////////////////////// + +// APPLICATION-NAME: DIPv6P +// APPLICATION-REVISION: RFC4818 + +// RFC 4818 5. +// AVP: Delegated-IPv6-Prefix (123) +type AVP_OctetString Delegated_IPv6_Prefix; diff --git a/src/DigestAuthentication_IETF_RFC5090.ddf b/src/DigestAuthentication_IETF_RFC5090.ddf index 4f73b24..c6beeee 100644 --- a/src/DigestAuthentication_IETF_RFC5090.ddf +++ b/src/DigestAuthentication_IETF_RFC5090.ddf @@ -37,7 +37,7 @@ // // File: DigestAuthentication_IETF_RFC5090.ddf // Description: DDF for DIGEST according to RFC 5090 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 1134 62 /////////////////////////////////////////////// diff --git a/src/EricssonSCAPv1_1553APR_10148.ddf b/src/EricssonSCAPv1_1553APR_10148.ddf index b175a6d..459cd0c 100644 --- a/src/EricssonSCAPv1_1553APR_10148.ddf +++ b/src/EricssonSCAPv1_1553APR_10148.ddf @@ -37,7 +37,7 @@ // // File: EricssonSCAPv1_1553APR_10148.ddf // Description: DDF for SCAPv1 according to 2/1553-APR 101 48/2 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/Ericsson_Specific_AVPs.ddf b/src/Ericsson_Specific_AVPs.ddf index 5968a66..87226bf 100644 --- a/src/Ericsson_Specific_AVPs.ddf +++ b/src/Ericsson_Specific_AVPs.ddf @@ -37,7 +37,7 @@ // // File: Ericsson_Specific_AVPs.ddf // Description: Ericsson specific AVP definitions -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 // Reference: http://snmp.ericsson.se/diameter-assignments.html // diff --git a/src/GiInterface_3GPP_TS29061_770.ddf b/src/GiInterface_3GPP_TS29061_770.ddf index 278fd74..e947afe 100644 --- a/src/GiInterface_3GPP_TS29061_770.ddf +++ b/src/GiInterface_3GPP_TS29061_770.ddf @@ -37,7 +37,7 @@ // // File: GiInterface_3GPP_TS29061_770.ddf // Description: DDF for Gi according to 3GPP TS 29.061 V7.7.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_810.ddf b/src/GiSGiInterface_3GPP_TS29061_810.ddf index f870522..e0d14e5 100644 --- a/src/GiSGiInterface_3GPP_TS29061_810.ddf +++ b/src/GiSGiInterface_3GPP_TS29061_810.ddf @@ -37,7 +37,7 @@ // // File: GiSGiInterface_3GPP_TS29061_810.ddf // Description: DDF for Gi/SGi according to 3GPP TS 29.061 V8.1.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_930.ddf b/src/GiSGiInterface_3GPP_TS29061_930.ddf index 88e7fb2..a3470f8 100644 --- a/src/GiSGiInterface_3GPP_TS29061_930.ddf +++ b/src/GiSGiInterface_3GPP_TS29061_930.ddf @@ -37,7 +37,7 @@ // // File: GiSGiInterface_3GPP_TS29061_930.ddf // Description: DDF for Gi/SGi according to 3GPP TS 29.061 V9.3.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_930_QoS_Detailed.ddf b/src/GiSGiInterface_3GPP_TS29061_930_QoS_Detailed.ddf index 2b5ebe1..dc64e12 100644 --- a/src/GiSGiInterface_3GPP_TS29061_930_QoS_Detailed.ddf +++ b/src/GiSGiInterface_3GPP_TS29061_930_QoS_Detailed.ddf @@ -37,7 +37,7 @@ // // File: GiSGiInterface_3GPP_TS29061_930_QoS_Detailed.ddf // Description: DDF for Gi/SGi according to 3GPP TS 29.061 V9.3.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_980.ddf b/src/GiSGiInterface_3GPP_TS29061_980.ddf index dc6316c..f959532 100644 --- a/src/GiSGiInterface_3GPP_TS29061_980.ddf +++ b/src/GiSGiInterface_3GPP_TS29061_980.ddf @@ -37,7 +37,7 @@ // // File: GiSGiInterface_3GPP_TS29061_980.ddf // Description: DDF for Gi/SGi according to 3GPP TS 29.061 V9.8.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GiSGiInterface_3GPP_TS29061_b90.ddf b/src/GiSGiInterface_3GPP_TS29061_b90.ddf new file mode 100644 index 0000000..ea7c973 --- /dev/null +++ b/src/GiSGiInterface_3GPP_TS29061_b90.ddf @@ -0,0 +1,219 @@ +/****************************************************************************** +* Copyright (c) 2004, 2015 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder +******************************************************************************/ +// +// File: GiSGiInterface_3GPP_TS29061_b90.ddf +// Description: DDF for Gi/SGi according to 3GPP TS 29.061 V11.9.0 +// Rev: R34A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: GI +// APPLICATION-REVISION: V11_9_0 + +// AVP implementations according to: +// 3GPP TS 29.061 V11.9.0 - Interworking between the Public Land Mobile Network (PLMN) supporting packet based services and Packet Data Networks (PDN) +// +// +// Dependant applications +// - + + +// 3GPP TS 29.061 V11.9.0 16a.4 +type enumerated Command_Code +{ + Authorize_Authenticate (265), + Session_Termination (275), + Abort_Session (274), + Accounting (271) +} + + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-IMSI (1) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_IMSI; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Charging-Id (2) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Charging_Id; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-PDP-Type (3) 3GPP (10415) +// 16.4.7 +type enumerated 3GPP_PDP_Type +{ + IPv4 (0), + PPP (1), + IPv6 (2), + IPv4v6 (3) +} + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-CG-Address (4) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_CG_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-GPRS-Negotiated-QoS-Profile (5) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_GPRS_Negotiated_QoS_Profile; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-SGSN-Address (6) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_SGSN_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-GGSN-Address (7) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_GGSN_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-IMSI-MCC-MNC (8) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_IMSI_MCC_MNC; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-GGSN-MCC-MNC (9) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_GGSN_MCC_MNC; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-NSAPI (10) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_NSAPI; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Session-Stop-Indicator (11) 3GPP (10415) +type AVP_UTF8String 3GPP_Session_Stop_Indicator; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Selection-Mode (12) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_Selection_Mode; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Charging-Characteristics (13) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_Charging_Characteristics; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-CG-IPv6-Address (14) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_CG_IPv6_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-SGSN-IPv6-Address (15) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_SGSN_IPv6_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-GGSN-IPv6-Address (16) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_GGSN_IPv6_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-IPv6-DNS-Servers (17) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_IPv6_DNS_Servers; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-SGSN-MCC-MNC (18) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_SGSN_MCC_MNC; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-IMEISV (20) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_IMEISV; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-RAT-Type (21) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_RAT_Type; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-User-Location-Info (22) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_User_Location_Info; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-MS-TimeZone (23) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_MS_TimeZone; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-CAMEL-Charging-Info (24) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_CAMEL_Charging_Info; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Packet-Filter (25) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Packet_Filter; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Negotiated-DSCP (26) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Negotiated_DSCP; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Allocate-IP-Type (27) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Allocate_IP_Type; + +// 3GPP TS 29.061 V11.9.0 +// AVP: External-Identifier (28) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String External_Identifier; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: TWAN-Identifier (29) 3GPP (10415) +// 16.4.7 +type AVP_OctetString TWAN_Identifier; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-User-Location-Info-Time (30) 3GPP (10415) +// 16.4.7 +type AVP_Unsigned32 3GPP_User_Location_Info_Time; + + + diff --git a/src/GiSGiInterface_3GPP_TS29061_b90_QoS_Detailed.ddf b/src/GiSGiInterface_3GPP_TS29061_b90_QoS_Detailed.ddf new file mode 100644 index 0000000..0322c28 --- /dev/null +++ b/src/GiSGiInterface_3GPP_TS29061_b90_QoS_Detailed.ddf @@ -0,0 +1,360 @@ +/****************************************************************************** +* Copyright (c) 2004, 2014 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder +******************************************************************************/ +// +// File: GiSGiInterface_3GPP_TS29061_b90_QoS_Detailed.ddf +// Description: DDF for Gi/SGi according to 3GPP TS 29.061 V11.9.0 +// Rev: R34A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: GI +// APPLICATION-REVISION: V11_9_0 + +// AVP implementations according to: +// 3GPP TS 29.061 V11.9.0 - Interworking between the Public Land Mobile Network (PLMN) supporting packet based services and Packet Data Networks (PDN) +// +// +// Dependant applications +// - + +// 3GPP TS 29.061 V11.9.0 16a.4 +type enumerated Command_Code +{ + Authorize_Authenticate (265), + Session_Termination (275), + Abort_Session (274), + Accounting (271) +} + + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-IMSI (1) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_IMSI; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Charging-Id (2) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Charging_Id; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-PDP-Type (3) 3GPP (10415) +// 16.4.7 +type enumerated 3GPP_PDP_Type +{ + IPv4 (0), + PPP (1), + IPv6 (2), + IPv4v6 (3) +} + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-CG-Address (4) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_CG_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-GPRS-Negotiated-QoS-Profile (5) 3GPP (10415) +// 16.4.7 +type GPRS_Negotiated_QoS_Profile 3GPP_GPRS_Negotiated_QoS_Profile; + +// EXT_CC: GiSGiInterface_3GPP_TS29061_930_QoS_Detailed.tpl + +modulepar boolean Negotiated_QoS_Profile_decode_as_detailed:=false; + +type union GPRS_Negotiated_QoS_Profile{ + AVP_UTF8String raw_QoS_Profile, + GPRS_Negotiated_QoS_Profile_detailed QoS_Profile_detailed +} + +type record GPRS_Negotiated_QoS_Profile_detailed{ + charstring qos_profile_header length(3), + AVP_qos_profile qos_profile_data +} with { + variant (qos_profile_data) "CROSSTAG( + rel98, qos_profile_header=\"98-\"; + rel99, qos_profile_header=\"99-\"; + rel05, qos_profile_header=\"05-\"; + rel07, qos_profile_header=\"07-\"; + + )" +} + +type union AVP_qos_profile +{ + qos_rel98_t rel98, + qos_rel99_t rel99, + qos_rel05_t rel05, + qos_rel07_t rel07 +} + +type bitstring BITSTR1 length(1) with { variant "FIELDLENGTH(1)" }; +type bitstring BITSTR2 length(2) with { variant "FIELDLENGTH(2)" }; +type bitstring BITSTR3 length(3) with { variant "FIELDLENGTH(3)" }; +type bitstring BITSTR4 length(4) with { variant "FIELDLENGTH(4)" }; +type bitstring BITSTR5 length(5) with { variant "FIELDLENGTH(5)" }; +type bitstring BITSTR6 length(6) with { variant "FIELDLENGTH(6)" }; +type octetstring OCTSTR1 length(1) with { variant "FIELDLENGTH(1)" }; + +type record qos_rel98_t // 3GPP 24.008 v3.0.0 +{ + BITSTR3 reliabilityClass, + BITSTR3 delayClass, + BITSTR2 spare1, // '00'B + BITSTR3 precedenceClass, + BITSTR1 spare2, + BITSTR4 peakThroughput, + BITSTR5 meanThroughput, + BITSTR3 spare3 +} with {variant ""} + +type record qos_rel99_t // 3GPP 24.008 v4.16.0 +{ + BITSTR3 reliabilityClass, + BITSTR3 delayClass, + BITSTR2 spare1, // '00'B + BITSTR3 precedenceClass, + BITSTR1 spare2, + BITSTR4 peakThroughput, + BITSTR5 meanThroughput, + BITSTR3 spare3, + BITSTR3 deliverErroneusSDU, + BITSTR2 deliveryOrder, + BITSTR3 trafficClass, + OCTSTR1 maxSDUSize, + OCTSTR1 maxBitrateUplink, + OCTSTR1 maxBitrateDownlink, + BITSTR4 sduErrorRatio, + BITSTR4 residualBER, + BITSTR2 trafficHandlingPriority, + BITSTR6 transferDelay, + OCTSTR1 guaranteedBitRateUplink, + OCTSTR1 guaranteedBitRateDownlink +} with {variant ""} + +type record qos_rel05_t // 3GPP 24.008 v6.12.0 +{ + BITSTR3 reliabilityClass, + BITSTR3 delayClass, + BITSTR2 spare1, // '00'B + BITSTR3 precedenceClass, + BITSTR1 spare2, + BITSTR4 peakThroughput, + BITSTR5 meanThroughput, + BITSTR3 spare3, + BITSTR3 deliverErroneusSDU, + BITSTR2 deliveryOrder, + BITSTR3 trafficClass, + OCTSTR1 maxSDUSize, + OCTSTR1 maxBitrateUplink, + OCTSTR1 maxBitrateDownlink, + BITSTR4 sduErrorRatio, + BITSTR4 residualBER, + BITSTR2 trafficHandlingPriority, + BITSTR6 transferDelay, + OCTSTR1 guaranteedBitRateUplink, + OCTSTR1 guaranteedBitRateDownlink, + BITSTR4 sourceStatisticsDescriptor, + BITSTR1 signallingIndication, + BITSTR3 spare4, + OCTSTR1 maxBitRateDownlinkExtended, + OCTSTR1 guaranteedBitRateDownlinkExtended +} with {variant ""} + +type record qos_rel07_t +{ + BITSTR3 reliabilityClass, + BITSTR3 delayClass, + BITSTR2 spare1, // '00'B + BITSTR3 precedenceClass, + BITSTR1 spare2, + BITSTR4 peakThroughput, + BITSTR5 meanThroughput, + BITSTR3 spare3, + BITSTR3 deliverErroneusSDU optional, + BITSTR2 deliveryOrder optional, + BITSTR3 trafficClass optional, + OCTSTR1 maxSDUSize optional, + OCTSTR1 maxBitrateUplink optional, + OCTSTR1 maxBitrateDownlink optional, + BITSTR4 sduErrorRatio optional, + BITSTR4 residualBER optional, + BITSTR2 trafficHandlingPriority optional, + BITSTR6 transferDelay optional, + OCTSTR1 guaranteedBitRateUplink optional, + OCTSTR1 guaranteedBitRateDownlink optional, + BITSTR4 sourceStatisticsDescriptor optional, + BITSTR1 signallingIndication optional, + BITSTR3 spare4 optional, + OCTSTR1 maxBitRateDownlinkExtended optional, + OCTSTR1 guaranteedBitRateDownlinkExtended optional, + OCTSTR1 maxBitRateUplinkExtended optional, + OCTSTR1 guaranteedBitRateUplinkExtended optional +} with {variant ""} + +external function f_decode_qos_rel98(in octetstring stream, out qos_rel98_t pdu) return integer +with { extension "prototype(backtrack) decode(RAW)" }; +external function f_decode_qos_rel99(in octetstring stream, out qos_rel99_t pdu) return integer +with { extension "prototype(backtrack) decode(RAW)" }; +external function f_decode_qos_rel05(in octetstring stream, out qos_rel05_t pdu) return integer +with { extension "prototype(backtrack) decode(RAW)" }; +external function f_decode_qos_rel07(in octetstring stream, out qos_rel07_t pdu) return integer +with { extension "prototype(backtrack) decode(RAW)" }; +external function f_enc_AVP_qos_profile(in AVP_qos_profile pdu) return octetstring +with { extension "prototype(convert) encode(RAW)" }; + +external function f_handle_QoS_Profile(inout GPRS_Negotiated_QoS_Profile pl_pdu) + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-SGSN-Address (6) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_SGSN_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-GGSN-Address (7) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_GGSN_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-IMSI-MCC-MNC (8) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_IMSI_MCC_MNC; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-GGSN-MCC-MNC (9) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_GGSN_MCC_MNC; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-NSAPI (10) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_NSAPI; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Session-Stop-Indicator (11) 3GPP (10415) +type AVP_UTF8String 3GPP_Session_Stop_Indicator; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Selection-Mode (12) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_Selection_Mode; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Charging-Characteristics (13) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_Charging_Characteristics; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-CG-IPv6-Address (14) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_CG_IPv6_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-SGSN-IPv6-Address (15) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_SGSN_IPv6_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-GGSN-IPv6-Address (16) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_GGSN_IPv6_Address; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-IPv6-DNS-Servers (17) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_IPv6_DNS_Servers; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-SGSN-MCC-MNC (18) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String 3GPP_SGSN_MCC_MNC; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-IMEISV (20) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_IMEISV; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-RAT-Type (21) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_RAT_Type; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-User-Location-Info (22) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_User_Location_Info; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-MS-TimeZone (23) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_MS_TimeZone; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-CAMEL-Charging-Info (24) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_CAMEL_Charging_Info; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Packet-Filter (25) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Packet_Filter; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Negotiated-DSCP (26) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Negotiated_DSCP; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-Allocate-IP-Type (27) 3GPP (10415) +// 16.4.7 +type AVP_OctetString 3GPP_Allocate_IP_Type; + +// 3GPP TS 29.061 V11.9.0 +// AVP: External-Identifier (28) 3GPP (10415) +// 16.4.7 +type AVP_UTF8String External_Identifier; + +// 3GPP TS 29.061 V11.9.0 +// AVP: TWAN-Identifier (29) 3GPP (10415) +// 16.4.7 +type AVP_OctetString TWAN_Identifier; + + +// 3GPP TS 29.061 V11.9.0 +// AVP: 3GPP-User-Location-Info-Time (30) 3GPP (10415) +// 16.4.7 +type AVP_Unsigned32 3GPP_User_Location_Info_Time; diff --git a/src/GmbInterface_3GPP_TS29061_6f0.ddf b/src/GmbInterface_3GPP_TS29061_6f0.ddf index ff6b6c4..b49aa0f 100644 --- a/src/GmbInterface_3GPP_TS29061_6f0.ddf +++ b/src/GmbInterface_3GPP_TS29061_6f0.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_6f0.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V6.15.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GmbInterface_3GPP_TS29061_720.ddf b/src/GmbInterface_3GPP_TS29061_720.ddf index 129f848..0d0cb26 100644 --- a/src/GmbInterface_3GPP_TS29061_720.ddf +++ b/src/GmbInterface_3GPP_TS29061_720.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_720.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V7.2.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GmbInterface_3GPP_TS29061_810.ddf b/src/GmbInterface_3GPP_TS29061_810.ddf index ff06ab4..ea5ae2b 100644 --- a/src/GmbInterface_3GPP_TS29061_810.ddf +++ b/src/GmbInterface_3GPP_TS29061_810.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_810.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V8.1.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GmbInterface_3GPP_TS29061_930.ddf b/src/GmbInterface_3GPP_TS29061_930.ddf index 9aed089..e9a1c48 100644 --- a/src/GmbInterface_3GPP_TS29061_930.ddf +++ b/src/GmbInterface_3GPP_TS29061_930.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_930.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V9.3.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GmbInterface_3GPP_TS29061_970.ddf b/src/GmbInterface_3GPP_TS29061_970.ddf index 241d60c..e13803b 100644 --- a/src/GmbInterface_3GPP_TS29061_970.ddf +++ b/src/GmbInterface_3GPP_TS29061_970.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_970.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V9.7.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GmbInterface_3GPP_TS29061_980.ddf b/src/GmbInterface_3GPP_TS29061_980.ddf index b1176ac..d46f0f4 100644 --- a/src/GmbInterface_3GPP_TS29061_980.ddf +++ b/src/GmbInterface_3GPP_TS29061_980.ddf @@ -37,7 +37,7 @@ // // File: GmbInterface_3GPP_TS29061_980.ddf // Description: DDF for Gmb according to 3GPP TS 29.061 V9.8.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GqInterface_PC_3GPP_TS29209_670.ddf b/src/GqInterface_PC_3GPP_TS29209_670.ddf index 2204545..33e14d3 100644 --- a/src/GqInterface_PC_3GPP_TS29209_670.ddf +++ b/src/GqInterface_PC_3GPP_TS29209_670.ddf @@ -37,7 +37,7 @@ // // File: GqInterface_PC_3GPP_TS29209_670.ddf // Description: DDF for Gq according to 3GPP TS 29.209 V6.7.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GqInterface_S3_ETSI_TS183017_231.ddf b/src/GqInterface_S3_ETSI_TS183017_231.ddf index 170f306..f4a5ee1 100644 --- a/src/GqInterface_S3_ETSI_TS183017_231.ddf +++ b/src/GqInterface_S3_ETSI_TS183017_231.ddf @@ -37,7 +37,7 @@ // // File: GqInterface_S3_ETSI_TS183017_231.ddf // Description: DDF for Gq according to ETSI TS 183.017 V2.3.1 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_CRP_3GPP_TS29210_670.ddf b/src/GxInterface_CRP_3GPP_TS29210_670.ddf index 5d8e213..ebc51e0 100644 --- a/src/GxInterface_CRP_3GPP_TS29210_670.ddf +++ b/src/GxInterface_CRP_3GPP_TS29210_670.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_CRP_3GPP_TS29210_670.ddf // Description: DDF for Gx according to 3GPP TS 29.210 V6.7.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_740.ddf b/src/GxInterface_PCC_3GPP_TS29212_740.ddf index eda4be3..62f0cbf 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_740.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_740.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_740.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V7.4.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_820.ddf b/src/GxInterface_PCC_3GPP_TS29212_820.ddf index 16ff8fd..00ccf54 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_820.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_820.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_820.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V8.2.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_830.ddf b/src/GxInterface_PCC_3GPP_TS29212_830.ddf index 18c97ec..2c1e518 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_830.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_830.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_830.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V8.3.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_840.ddf b/src/GxInterface_PCC_3GPP_TS29212_840.ddf index 7a7b0db..d33f938 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_840.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_840.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_840.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V8.4.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_8a0.ddf b/src/GxInterface_PCC_3GPP_TS29212_8a0.ddf index 6c6d2c3..5e2d96e 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_8a0.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_8a0.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_8a0.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V8.10.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_8b1.ddf b/src/GxInterface_PCC_3GPP_TS29212_8b1.ddf index cb287e7..6cd6ab7 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_8b1.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_8b1.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_8b1.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V8.11.1 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_910.ddf b/src/GxInterface_PCC_3GPP_TS29212_910.ddf index 546a496..ffc5ada 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_910.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_910.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_910.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V9.1.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_930.ddf b/src/GxInterface_PCC_3GPP_TS29212_930.ddf index 5e8536d..f1bfa7d 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_930.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_930.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_930.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V9.3.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_970.ddf b/src/GxInterface_PCC_3GPP_TS29212_970.ddf index 727b585..56676c6 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_970.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_970.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_930.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V9.5.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_9b0.ddf b/src/GxInterface_PCC_3GPP_TS29212_9b0.ddf index 5f660dc..645c481 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_9b0.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_9b0.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_9b0.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V9.11.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_aa0.ddf b/src/GxInterface_PCC_3GPP_TS29212_aa0.ddf index 4bd9d97..573aa01 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_aa0.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_aa0.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_aa0.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V10.10.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxInterface_PCC_3GPP_TS29212_c52.ddf b/src/GxInterface_PCC_3GPP_TS29212_c52.ddf index 6153ef7..aaa0532 100644 --- a/src/GxInterface_PCC_3GPP_TS29212_c52.ddf +++ b/src/GxInterface_PCC_3GPP_TS29212_c52.ddf @@ -37,7 +37,7 @@ // // File: GxInterface_PCC_3GPP_TS29212_c52.ddf // Description: DDF for Gx according to 3GPP TS 29.212 V12.5.2 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/GxaInterface_3GPP2_X_S0057_0_300.ddf b/src/GxaInterface_3GPP2_X_S0057_0_300.ddf index 06b23ab..434d070 100644 --- a/src/GxaInterface_3GPP2_X_S0057_0_300.ddf +++ b/src/GxaInterface_3GPP2_X_S0057_0_300.ddf @@ -37,7 +37,7 @@ // // File: GxaInterface_3GPP2_X_S0057_0_300.ddf // Description: DDF for Gxa according to 3GPP2 X.S0057-0 v3.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/MobileIPv4_Application_IETF_RFC4004.ddf b/src/MobileIPv4_Application_IETF_RFC4004.ddf index ce87927..38c778b 100644 --- a/src/MobileIPv4_Application_IETF_RFC4004.ddf +++ b/src/MobileIPv4_Application_IETF_RFC4004.ddf @@ -37,7 +37,7 @@ // // File: MobileIPv4_Application_IETF_RFC4004.ddf // Description: DDF for Mobile IPv4 Application -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 // Reference: IETF RFC 4004 // diff --git a/src/MobileIPv6_HAAA_IETF_RFC5779.ddf b/src/MobileIPv6_HAAA_IETF_RFC5779.ddf index d14bab2..e323521 100644 --- a/src/MobileIPv6_HAAA_IETF_RFC5779.ddf +++ b/src/MobileIPv6_HAAA_IETF_RFC5779.ddf @@ -37,7 +37,7 @@ // // File: MobileIPv6_HAAA_IETF_RFC5779.ddf // Description: DDF for Mobile IPv6 according to RFC 5779 -// Rev: R29A +// Rev: R34A // Prodnr: CNL113462 /////////////////////////////////////////////// diff --git a/src/MobileIPv6_HA_IETF_RFC5778.ddf b/src/MobileIPv6_HA_IETF_RFC5778.ddf index b6c39f8..be316d6 100644 --- a/src/MobileIPv6_HA_IETF_RFC5778.ddf +++ b/src/MobileIPv6_HA_IETF_RFC5778.ddf @@ -37,7 +37,7 @@ // // File: MobileIPv6_HA_IETF_RFC5778.ddf // Description: DDF for Mobile IPv6 according to RFC 5778 -// Rev: R29A +// Rev: R34A // Prodnr: CNL113462 /////////////////////////////////////////////// diff --git a/src/MobileIPv6_NAS_IETF_RFC5447.ddf b/src/MobileIPv6_NAS_IETF_RFC5447.ddf index 0caf089..924002c 100644 --- a/src/MobileIPv6_NAS_IETF_RFC5447.ddf +++ b/src/MobileIPv6_NAS_IETF_RFC5447.ddf @@ -37,7 +37,7 @@ // // File: MobileIPv6_NAS_IETF_RFC5447.ddf // Description: DDF for Mobile IPv6 according to RFC 5447 -// Rev: R29A +// Rev: R34A // Prodnr: CNL113462 /////////////////////////////////////////////// diff --git a/src/NGN_NetworkAccesses_ETSI_ES183020_111.ddf b/src/NGN_NetworkAccesses_ETSI_ES183020_111.ddf index 1f848e6..f82e619 100644 --- a/src/NGN_NetworkAccesses_ETSI_ES183020_111.ddf +++ b/src/NGN_NetworkAccesses_ETSI_ES183020_111.ddf @@ -37,7 +37,7 @@ // // File: NGN_NetworkAccesses_ETSI_ES183020_111.ddf // Description: DDF for NGN Network Accesses according to ETSI ES 183 020 V1.1.1 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/NetworkAccessServer_IETF_RFC4005.ddf b/src/NetworkAccessServer_IETF_RFC4005.ddf index c3a7324..970a3e0 100644 --- a/src/NetworkAccessServer_IETF_RFC4005.ddf +++ b/src/NetworkAccessServer_IETF_RFC4005.ddf @@ -37,7 +37,7 @@ // // File: NetworkAccessServer_IETF_RFC4005.ddf // Description: DDF for NAS according to RFC 4005 -// Rev: R29A +// Rev: R34A // Prodnr: CNL113462 /////////////////////////////////////////////// diff --git a/src/README b/src/README deleted file mode 100644 index 65e3950..0000000 --- a/src/README +++ /dev/null @@ -1,11 +0,0 @@ -Warning to TCC DPMG ddf developers! - -If you're requested to add new AVPs or ddf files, you MUST make -the change in the main src/ directory and also in the obsolete/ -directory as well in order to maintain temporary backward compatibility. - -This is needed because the Application Names differ in the ddf files and -so AVP names and constants will differ also in the generated ttcn file. - -- 2010.06.29 note by ethecs: this README is updated. The obsolate - directory does not need to be updated according to ethgasz. diff --git a/src/RqInterface_ETSI_ES283026_241.ddf b/src/RqInterface_ETSI_ES283026_241.ddf index f218f2a..86a144e 100644 --- a/src/RqInterface_ETSI_ES283026_241.ddf +++ b/src/RqInterface_ETSI_ES283026_241.ddf @@ -37,7 +37,7 @@ // // File: RqInterface_ETSI_ES283026_241.ddf // Description: DDF for Rq according to ETSI ES 283 026 V2.4.1 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// // AVP implementations according to: diff --git a/src/RxInterface_PCC_3GPP_TS29214_830.ddf b/src/RxInterface_PCC_3GPP_TS29214_830.ddf index e379ecb..7c2471a 100644 --- a/src/RxInterface_PCC_3GPP_TS29214_830.ddf +++ b/src/RxInterface_PCC_3GPP_TS29214_830.ddf @@ -37,7 +37,7 @@ // // File: RxInterface_PCC_3GPP_TS29214_830.ddf // Description: DDF for Rx according to 3GPP TS 29.214 V8.3.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/RxInterface_PCC_3GPP_TS29214_8a0.ddf b/src/RxInterface_PCC_3GPP_TS29214_8a0.ddf index f94f4f7..28ea818 100644 --- a/src/RxInterface_PCC_3GPP_TS29214_8a0.ddf +++ b/src/RxInterface_PCC_3GPP_TS29214_8a0.ddf @@ -37,7 +37,7 @@ // // File: RxInterface_PCC_3GPP_TS29214_830.ddf // Description: DDF for Rx according to 3GPP TS 29.214 V8.10.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/RxInterface_PCC_3GPP_TS29214_990.ddf b/src/RxInterface_PCC_3GPP_TS29214_990.ddf index 887a78d..79b44c6 100644 --- a/src/RxInterface_PCC_3GPP_TS29214_990.ddf +++ b/src/RxInterface_PCC_3GPP_TS29214_990.ddf @@ -37,7 +37,7 @@ // // File: RxInterface_PCC_3GPP_TS29214_990.ddf // Description: DDF for Rx according to 3GPP TS 29.214 V9.9.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/RxInterface_PCC_3GPP_TS29214_a70.ddf b/src/RxInterface_PCC_3GPP_TS29214_a70.ddf index cbdb7b3..f37653a 100644 --- a/src/RxInterface_PCC_3GPP_TS29214_a70.ddf +++ b/src/RxInterface_PCC_3GPP_TS29214_a70.ddf @@ -37,7 +37,7 @@ // // File: RxInterface_PCC_3GPP_TS29214_a70.ddf // Description: DDF for Rx according to 3GPP TS 29.214 a.7.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/RxInterface_PCC_3GPP_TS29214_c10.ddf b/src/RxInterface_PCC_3GPP_TS29214_c10.ddf index 3f1ddab..0a7df4f 100644 --- a/src/RxInterface_PCC_3GPP_TS29214_c10.ddf +++ b/src/RxInterface_PCC_3GPP_TS29214_c10.ddf @@ -37,7 +37,7 @@ // // File: RxInterface_PCC_3GPP_TS29214_c10.ddf // Description: DDF for Rx according to 3GPP TS 29.214 c.1.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/RxInterface_PCC_3GPP_TS29214_d10.ddf b/src/RxInterface_PCC_3GPP_TS29214_d10.ddf new file mode 100644 index 0000000..411cd12 --- /dev/null +++ b/src/RxInterface_PCC_3GPP_TS29214_d10.ddf @@ -0,0 +1,325 @@ +/****************************************************************************** +* Copyright (c) 2004, 2015 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Gabor Szalai - initial implementation +******************************************************************************/ +// +// File: RxInterface_PCC_3GPP_TS29214_d10.ddf +// Description: DDF for Rx according to 3GPP TS 29.214 d.1.0 +// Rev: R34A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: RX +// APPLICATION-REVISION: VD_1_0 + +// AVP implementations according to: +// 3GPP TS 29.214 13.1.0 - Policy and Charging Control over Rx reference point +// +// +// Dependant applications +// 3GPP TS 29.229 - Cx and Dx interfaces based on the Diameter protocol +// TS 183.017 - DIAMETER protocol for session based policy set-up information exchange between +// the Application Function (AF) and the Service Policy Decision Function (SPDF) +// IETF RFC 3588 - Diameter Base Protocol +// IETF RFC 4005 - Diameter Network Address Server +// IETF RFC 4006 - Diameter Credit Control Application +// +// Notes: +// Present application has its own vendor specific Diameter application id: 16777236 +// +// Type of enumerated AVP Media-Type is changed to AVP_Unsigned32 to +// give the ability to contain OTHER (0xFFFFFFFF) value +// + +// 3GPP TS 29.214 d.1.0 5.6 +type enumerated Command_Code +{ + Authorize_Authenticate (265), + Re_Auth (258), + Session_Termination (275), + Abort_Session (274) +} + + + +// 3GPP TS 29.214 d.1.0 +// AVP: Abort-Cause (500) 3GPP (10415) +// 5.3.1 +type enumerated Abort_Cause +{ + BEARER_RELEASED (0), + INSUFFICIENT_SERVER_RESOURCES (1), + INSUFFICIENT_BEARER_RESOURCES (2), + PS_TO_CS_HANDOVER (3), + SPONSORED_DATA_CONNECTIVITY_DISALLOWED (4) +} + + +// 3GPP TS 29.214 d.1.0 +// AVP: Access-Network-Charging-Address (501) 3GPP (10415) +// 5.3.2 +type AVP_Address Access_Network_Charging_Address; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Access-Network-Charging-Identifier (502) 3GPP (10415) +// 5.3.3 +type AVP_Grouped Access_Network_Charging_Identifier; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Access-Network-Charging-Identifier-Value (503) 3GPP (10415) +// 5.3.4 +type AVP_OctetString Access_Network_Charging_Identifier_Value; + + + + +// 3GPP TS 29.214 d.1.0 +// AVP: AF-Application-Identifier (504) 3GPP (10415) +// 5.3.5 +type AVP_OctetString AF_Application_Identifier; + + +// 3GPP TS 29.214 d.1.0 +// AVP: AF-Charging-Identifier (505) 3GPP (10415) +// 5.3.6 +type AVP_OctetString AF_Charging_Identifier; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Codec-Data (524) 3GPP (10415) +// 5.3.7 +type AVP_OctetString Codec_Data; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Flow-Description (507) 3GPP (10415) +// 5.3.8 +type AVP_IPFilterRule Flow_Description; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Flow-Number (509) 3GPP (10415) +// 5.3.9 +type AVP_Unsigned32 Flow_Number; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Flows (510) 3GPP (10415) +// 5.3.10 +type AVP_Grouped Flows; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Flow-Status (511) 3GPP (10415) +// 5.3.11 +type enumerated Flow_Status +{ + ENABLED_UPLINK (0), + ENABLED_DOWNLINK (1), + ENABLED (2), + DISABLED (3), + REMOVED (4) +} + + +// 3GPP TS 29.214 d.1.0 +// AVP: Flow-Usage (512) 3GPP (10415) +// 5.3.12 +type enumerated Flow_Usage +{ + NO_INFORMATION (0), + RTCP (1), + AF_SIGNALLING (2) +} + + +// 3GPP TS 29.214 d.1.0 +// AVP: Specific-Action (513) 3GPP (10415) +// 5.3.13 +type enumerated Specific_Action +{ + CHARGING_CORRELATION_EXCHANGE (1), + INDICATION_OF_LOSS_OF_BEARER (2), + INDICATION_OF_RECOVERY_OF_BEARER (3), + INDICATION_OF_RELEASE_OF_BEARER (4), + INDICATION_OF_ESTABLISHMENT_OF_BEARER (5), + IP_CAN_CHANGE (6), + INDICATION_OF_OUT_OF_CREDIT (7), + INDICATION_OF_SUCCESSFUL_RESOURCES_ALLOCATION (8), + INDICATION_OF_FAILED_RESOURCES_ALLOCATION (9), + INDICATION_OF_LIMITED_PCC_DEPLOYMENT (10), + USAGE_REPORT (11), + ACCESS_NETWORK_INFO_REPORT (12), + INDICATION_OF_RECOVERY_FROM_LIMITED_PCC_DEPLOYMENT (13), + INDICATION_OF_ACCESS_NETWORK_INFO_REPORTING_FAILURE (14) +} + + +// 3GPP TS 29.214 d.1.0 +// AVP: Max-Requested-Bandwidth-DL (515) 3GPP (10415) +// 5.3.14 +type AVP_Unsigned32 Max_Requested_Bandwidth_DL; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Max-Requested-Bandwidth-UL (516) 3GPP (10415) +// 5.3.15 +type AVP_Unsigned32 Max_Requested_Bandwidth_UL; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Media-Component-Description (517) 3GPP (10415) +// 5.3.16 +type AVP_Grouped Media_Component_Description; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Media-Component-Number (518) 3GPP (10415) +// 5.3.17 +type AVP_Unsigned32 Media_Component_Number; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Media-Sub-Component (519) 3GPP (10415) +// 5.3.18 +type AVP_Grouped Media_Sub_Component; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Media-Type (520) 3GPP (10415) +// 5.3.19 +type AVP_Unsigned32 Media_Type; + + +// 3GPP TS 29.214 d.1.0 +// AVP: RR-Bandwidth (521) 3GPP (10415) +// 5.3.20 +type AVP_Unsigned32 RR_Bandwidth; + + +// 3GPP TS 29.214 d.1.0 +// AVP: RS-Bandwidth (522) 3GPP (10415) +// 5.3.21 +type AVP_Unsigned32 RS_Bandwidth; + +// 3GPP TS 29.214 d.1.0 +// AVP: SIP-Forking-Indication (523) 3GPP (10415) +// 5.3.22 +type enumerated SIP_Forking_Indication +{ + SINGLE_DIALOGUE (0), + SEVERAL_DIALOGUES (1) +} + +// 3GPP TS 29.214 d.1.0 +// AVP: Service-URN (525) 3GPP (10415) +// 5.3.23 +type AVP_OctetString Service_URN; + + +// 3GPP TS 29.214 d.1.0 +// AVP: Acceptable-Service-Info (526) 3GPP (10415) +// 5.3.24 +type AVP_Grouped Acceptable_Service_Info; + +// 3GPP TS 29.214 d.1.0 +// AVP: Service-Info-Status (527) 3GPP (10415) +// 5.3.25 +type enumerated Service_Info_Status +{ + FINAL_SERVICE_INFORMATION (0), + PRELIMINARY_SERVICE_INFORMATION (1) +} + +// 3GPP TS 29.214 d.1.0 +// AVP: AF-Signalling-Protocol (529) 3GPP (10415) +// 5.3.26 +type enumerated AF_Signalling_Protocol +{ + NO_INFORMATION (0), + SIP (1) +} + +// 3GPP TS 29.214 d.1.0 +// AVP: Sponsored-Connectivity-Data (530) 3GPP (10415) +// 5.3.27 +type AVP_Grouped Sponsored_Connectivity_Data; + +// 3GPP TS 29.214 d.1.0 +// AVP: Sponsor-Identity (531) 3GPP (10415) +// 5.3.28 +type AVP_UTF8String Sponsor_Identity; + +// 3GPP TS 29.214 d.1.0 +// AVP: Application-Service-Provider-Identity (532) 3GPP (10415) +// 5.3.29 +type AVP_UTF8String Application_Service_Provider_Identity; + + +// 3GPP TS 29.214 d.1.0 +// AVP: MPS-Identifier (528) 3GPP (10415) +// 5.3.30 +type AVP_OctetString MPS_Identifier; + +// 3GPP TS 29.214 d.1.0 +// AVP: Rx-Request-Type (533) 3GPP (10415) +// 5.3.31 +type enumerated Rx_Request_Type +{ + INITIAL_REQUEST (0), + UPDATE_REQUEST (1), + PCSCF_RESTORATION (2) +} + +// 3GPP TS 29.214 d.1.0 +// AVP: Min-Requested-Bandwidth-DL (534) 3GPP (10415) +// 5.3.32 +type AVP_Unsigned32 Min_Requested_Bandwidth_DL; + +// 3GPP TS 29.214 d.1.0 +// AVP: Min-Requested-Bandwidth-UL (535) 3GPP (10415) +// 5.3.33 +type AVP_Unsigned32 Min_Requested_Bandwidth_UL; + +// 3GPP TS 29.214 d.1.0 +// AVP: Required-Access-Info (536) 3GPP (10415) +// 5.3.34 +type enumerated Required_Access_Info +{ + USER_LOCATION (0), + MS_TIME_ZONE (1) +} + +// 3GPP TS 29.214 d.1.0 +// AVP: Ip-Domain-Id (537) 3GPP (10415) +// 5.3.35 +type AVP_OctetString Ip_Domain_Id; + +// 3GPP TS 29.214 d.1.0 +// AVP: GCS-Identifier (538) 3GPP (10415) +// 5.3.36 +type AVP_OctetString GCS_Identifier; + +// 3GPP TS 29.214 d.1.0 +// AVP: Sharing-Key-DL (539) 3GPP (10415) +// 5.3.37 +type AVP_Unsigned32 Sharing_Key_DL; + +// 3GPP TS 29.214 d.1.0 +// AVP: Sharing-Key-UL (540) 3GPP (10415) +// 5.3.38 +type AVP_Unsigned32 Sharing_Key_UL; + +// 3GPP TS 29.214 d.1.0 +// AVP: Retry-Interval (541) 3GPP (10415) +// 5.3.39 +type AVP_Unsigned32 Retry_Interval; diff --git a/src/S9Interface_3GPP_TS29215_b40.ddf b/src/S9Interface_3GPP_TS29215_b40.ddf index 2055e0f..23d124f 100644 --- a/src/S9Interface_3GPP_TS29215_b40.ddf +++ b/src/S9Interface_3GPP_TS29215_b40.ddf @@ -37,7 +37,7 @@ // // File: S9Interface_3GPP_TS29215_b40.ddf // Description: DDF for S9 according to 3GPP TS 29.215 V11.4.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/SGmbInterface_3GPP_TS29061_940.ddf b/src/SGmbInterface_3GPP_TS29061_940.ddf index 161de28..36eb760 100644 --- a/src/SGmbInterface_3GPP_TS29061_940.ddf +++ b/src/SGmbInterface_3GPP_TS29061_940.ddf @@ -37,7 +37,7 @@ // // File: SGmbInterface_3GPP_TS29061_940.ddf // Description: DDF for SGmb according to 3GPP TS 29.061 V9.4.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/SGmbInterface_3GPP_TS29061_980.ddf b/src/SGmbInterface_3GPP_TS29061_980.ddf index af4a953..6297f0a 100644 --- a/src/SGmbInterface_3GPP_TS29061_980.ddf +++ b/src/SGmbInterface_3GPP_TS29061_980.ddf @@ -37,7 +37,7 @@ // // File: SGmbInterface_3GPP_TS29061_980.ddf // Description: DDF for SGmb according to 3GPP TS 29.061 V9.8.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/SGmbInterface_3GPP_TS29061_b90.ddf b/src/SGmbInterface_3GPP_TS29061_b90.ddf new file mode 100644 index 0000000..302ef43 --- /dev/null +++ b/src/SGmbInterface_3GPP_TS29061_b90.ddf @@ -0,0 +1,71 @@ +/****************************************************************************** +* Copyright (c) 2004, 2015 Ericsson AB +* All rights reserved. This program and the accompanying materials +* are made available under the terms of the Eclipse Public License v1.0 +* which accompanies this distribution, and is available at +* http://www.eclipse.org/legal/epl-v10.html +* +* Contributors: +* Timea Moder +******************************************************************************/ +// +// File: SGmbInterface_3GPP_TS29061_b90.ddf +// Description: DDF for SGmb according to 3GPP TS 29.061 V11.9.0 +// Rev: R34A +// Prodnr: CNL 113 462 +/////////////////////////////////////////////// + + +// APPLICATION-NAME: SGMB +// APPLICATION-REVISION: V11_9_0 + +// AVP implementations according to: +// 3GPP TS 29.061 V11.9.0 - Interworking between the Public Land Mobile Network (PLMN) supporting packet based services and Packet Data Networks (PDN) + +// 3GPP TS 29.061 V11.9.0 +// AVP: MBMS-Access-Indicator (923) 3GPP (10415) +// 20.5a.1 +type enumerated MBMS_Access_Indicator +{ + UTRAN (0), + E_UTRAN (1), + UTRAN_AND_E_UTRAN (2) +} + +// 3GPP TS 29.061 V11.9.0 +// AVP: MBMS-GW-SSM-IP-Address (924) 3GPP (10415) +// 20.5a.2 +type AVP_OctetString MBMS_GW_SSM_IP_Address; + +// 3GPP TS 29.061 V11.9.0 +// AVP: MBMS-GW-SSM-IPv6-Address (925) 3GPP (10415) +// 20.5a.3 +type AVP_OctetString MBMS_GW_SSM_IPv6_Address; + +// 3GPP TS 29.061 V11.9.0 +// AVP: MBMS-BMSC-SSM-UDP-Port (926) 3GPP (10415) +// 20.5a.4 +type AVP_OctetString MBMS_BMSC_SSM_UDP_Port; + +// 3GPP TS 29.061 V11.9.0 +// AVP: MBMS-GW-UDP-Port (927) 3GPP (10415) +// 20.5a.5 +type AVP_OctetString MBMS_GW_UDP_Port; + +// 3GPP TS 29.061 V11.9.0 +// AVP: MBMS-GW-UDP-Port-Indicator (928) 3GPP (10415) +// 20.5a.6 +type enumerated MBMS_GW_UDP_Port_Indicator +{ + UDP_PORT_REQUIRED (1) +} + +// 3GPP TS 29.061 V11.9.0 +// AVP: MBMS-Data-Transfer-Start (929) 3GPP (10415) +// 20.5a.7 +type AVP_Unsigned64 MBMS_Data_Transfer_Start; + +// 3GPP TS 29.061 V11.9.0 +// AVP: MBMS-Data-Transfer-Stop (930) 3GPP (10415) +// 20.5a.8 +type AVP_Unsigned64 MBMS_Data_Transfer_Stop; diff --git a/src/ShInterface_3GPP_TS29329_620.ddf b/src/ShInterface_3GPP_TS29329_620.ddf index 3a5a0ef..c9484c2 100644 --- a/src/ShInterface_3GPP_TS29329_620.ddf +++ b/src/ShInterface_3GPP_TS29329_620.ddf @@ -37,7 +37,7 @@ // // File: ShInterface_3GPP_TS29329_620.ddf // Description: DDF for Sh Interface according to 3GPP 29.329 v6.2.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ShInterface_3GPP_TS29329_750.ddf b/src/ShInterface_3GPP_TS29329_750.ddf index 5fb22d0..d327c14 100644 --- a/src/ShInterface_3GPP_TS29329_750.ddf +++ b/src/ShInterface_3GPP_TS29329_750.ddf @@ -37,7 +37,7 @@ // // File: ShInterface_3GPP_TS29329_750.ddf // Description: DDF for Sh Interface according to 3GPP 29.329 v7.5.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ShInterface_3GPP_TS29329_820.ddf b/src/ShInterface_3GPP_TS29329_820.ddf index 71c0c57..a484a5b 100644 --- a/src/ShInterface_3GPP_TS29329_820.ddf +++ b/src/ShInterface_3GPP_TS29329_820.ddf @@ -37,7 +37,7 @@ // // File: ShInterface_3GPP_TS29329_820.ddf // Description: DDF for Sh Interface according to 3GPP 29.329 v8.2.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ShInterface_3GPP_TS29329_a30.ddf b/src/ShInterface_3GPP_TS29329_a30.ddf index d443333..61d5bc8 100644 --- a/src/ShInterface_3GPP_TS29329_a30.ddf +++ b/src/ShInterface_3GPP_TS29329_a30.ddf @@ -37,7 +37,7 @@ // // File: ShInterface_3GPP_TS29329_a30.ddf // Description: DDF for Sh Interface according to 3GPP 29.329 v10.3.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/ShInterface_3GPP_TS29329_a50.ddf b/src/ShInterface_3GPP_TS29329_a50.ddf index 6544add..c0e2264 100644 --- a/src/ShInterface_3GPP_TS29329_a50.ddf +++ b/src/ShInterface_3GPP_TS29329_a50.ddf @@ -37,7 +37,7 @@ // // File: ShInterface_3GPP_TS29329_a50.ddf // Description: DDF for Sh Interface according to 3GPP 29.329 v10.5.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/SyInterface_3GPP_TS29219_b30.ddf b/src/SyInterface_3GPP_TS29219_b30.ddf index 79fb665..c2ebb58 100644 --- a/src/SyInterface_3GPP_TS29219_b30.ddf +++ b/src/SyInterface_3GPP_TS29219_b30.ddf @@ -37,7 +37,7 @@ // // File: SyInterface_3GPP_TS29219_b30.ddf // Description: DDF for Sy Interface according to 3GPP 29.219 v11.3.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/TCOM_Specific_AVPs.ddf b/src/TCOM_Specific_AVPs.ddf index 651fe58..7cad6c8 100644 --- a/src/TCOM_Specific_AVPs.ddf +++ b/src/TCOM_Specific_AVPs.ddf @@ -37,7 +37,7 @@ // // File: TCOM_Specific_AVPs.ddf // Description: T-COM specific AVP definitions -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/Verizon_Specific_AVPs.ddf b/src/Verizon_Specific_AVPs.ddf index 9fd1b0e..bfa278c 100644 --- a/src/Verizon_Specific_AVPs.ddf +++ b/src/Verizon_Specific_AVPs.ddf @@ -37,7 +37,7 @@ // // File: Verizon_Specific_AVPs.ddf // Description: Verizon specific AVP definitions -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/Vimpelcom_Specific.ddf b/src/Vimpelcom_Specific.ddf index b613265..2c6a1df 100644 --- a/src/Vimpelcom_Specific.ddf +++ b/src/Vimpelcom_Specific.ddf @@ -37,7 +37,7 @@ // // File: Vimpelcom_Specific.ddf // Description: Vimpelcom specific AVPs -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/Vodafone_Specific.ddf b/src/Vodafone_Specific.ddf index c567d9f..a3025b6 100644 --- a/src/Vodafone_Specific.ddf +++ b/src/Vodafone_Specific.ddf @@ -37,7 +37,7 @@ // // File: Vodafone_Specific.ddf // Description: Vodafone specific AVPs -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/WgInterface_3GPP_TS29234_910.ddf b/src/WgInterface_3GPP_TS29234_910.ddf index ec66e20..4081220 100644 --- a/src/WgInterface_3GPP_TS29234_910.ddf +++ b/src/WgInterface_3GPP_TS29234_910.ddf @@ -37,7 +37,7 @@ // // File: WgInterface_3GPP_TS29234_910.ddf // Description: DDF for 3GPP to WLAN interworking according to 3GPP TS 29.234 V9.1.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/a2Interface_ETSI_ES183059_1_211.ddf b/src/a2Interface_ETSI_ES183059_1_211.ddf index d81f0a5..fb9a30a 100644 --- a/src/a2Interface_ETSI_ES183059_1_211.ddf +++ b/src/a2Interface_ETSI_ES183059_1_211.ddf @@ -37,7 +37,7 @@ // // File: a2Interface_ETSI_ES183059_1_211.ddf // Description: DDF for a2 Interface according to ETSI ES 183 059-1 V2.1.1 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/a4Interface_ETSI_ES183066_211.ddf b/src/a4Interface_ETSI_ES183066_211.ddf index 8c0f658..994d336 100644 --- a/src/a4Interface_ETSI_ES183066_211.ddf +++ b/src/a4Interface_ETSI_ES183066_211.ddf @@ -37,7 +37,7 @@ // // File: a4Interface_ETSI_ES183066_211.ddf // Description: DDF for a4 Interface according to ETSI ES 183 066 V2.1.1 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/e2Interface_ETSI_ES283035_121.ddf b/src/e2Interface_ETSI_ES283035_121.ddf index d6abc9e..ecd82a5 100644 --- a/src/e2Interface_ETSI_ES283035_121.ddf +++ b/src/e2Interface_ETSI_ES283035_121.ddf @@ -37,7 +37,7 @@ // // File: e2Interface_ETSI_ES283035_121.ddf // Description: DDF for e2 Interface according to ETSI ES 283 035 V1.2.1 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// diff --git a/src/e4Interface_ETSI_ES283034_220.ddf b/src/e4Interface_ETSI_ES283034_220.ddf index f803838..403ed6b 100644 --- a/src/e4Interface_ETSI_ES283034_220.ddf +++ b/src/e4Interface_ETSI_ES283034_220.ddf @@ -37,7 +37,7 @@ // // File: e4Interface_ETSI_ES283034_220.ddf // Description: DDF for e4 Interface according to ETSI ES 283 034 V2.2.0 -// Rev: R29A +// Rev: R34A // Prodnr: CNL 113 462 /////////////////////////////////////////////// -- GitLab