SGA-RS A Roaming Steering koncepció, és annak jelenlegi implementációja MGy, 2007.
Topológia (site set-up) HLR-s MSC -1 Int al Gw-s PC=1 PC=2 SGA-RS-1 (Száva utca) IP Stat MSC -5 PC=2 PC=1 SGA-RS-2 (Huszti út)
Topológia (site set-up) 4. HLR-s Int al Gw-s MSC -1 SGA-RS-1 (Száva utca) 0. 3. 7. 6. 1. 5. 3. 2. IP Stat MSC -5 SGA-RS-2 (Huszti út) 3.
SGA-RS architektúra Száva utca rx+tx rx+tx Serv rx+tx rx+tx IP Stat rx+tx rx+tx Serv X utca/út/... rx+tx rx+tx Huszti út
RS- - irányítás ( routing) rx (UpdLoc & )? igen nem OK...( )...? Reject opció: CldPA.TT átírás CldPA = ClgPA ClgPA.GT = HLR.GT MAP.Error = ErrorCode RL.dpc RL.opc CldPA.RouteOnGT = true tx
RS-Server - döntéselıkészítés rx DateTime + VLR.GT (SCCP.ClgPA) + IMSI IMSI PolicyName Serv VLR.GT Operator-PrefixName Operator-PrefixName RequiredPercentages PolicyName, Operator-PrefixName MaxRejectCount (soft/hard) Nos, sztíringeljük? OK Reject IMSI HLR.GT VLR.GT ErrorCode tx OK vagy Reject(HLR.GT,ErrorCode)
RS-Server - döntéselıkészítés rx Serv SgaRS_Serv_IMSIPref.lst IMSI PolicyName SgaRS_Serv_OpPref.lst VLR.GT Operator-PrefixName INI / [RequiredPercentages] Operator-PrefixName RequiredPercentages INI / [Policy XXX ] PolicyName, Operator-PrefixName MaxRejectCount (soft/hard) INI = SgaRS_Serv_Rules.ini tx Nos, sztíringeljük? OK INI / [IMSISeriesInHLRs] Reject IMSI HLR.GT VLR.GT ErrorCode INI / [RejectSchemePerVLR]
RS-Server - döntéselıkészítés rx DateTime + VLR.GT (SCCP.ClgPA) + IMSI Serv DateTime + + IMSI + PolicyName + Operator-PrefixName + RequiredPercentages + MaxRejectCount (soft/hard) + dinamikus tábla adatai Nos, sztíringeljük? Reject OK tx OK vagy Reject(HLR.GT,ErrorCode)
RS-Server - döntés { if!policyname "OK" if!found(dynamictable.imsi) insert as new if filled(dynamictable.imsi.lastoktime) (and still here) "OK" if DynamicTable.IMSI.Halving = true MaxRejectCount/=2 if (!reached(requiredpercentage) AND MaxRejectCount.type = 'soft' ) MaxRejectCount := 0 if MaxRejectCount = 0 "OK" if!found(dynamictable.imsi.operatorprefixname) insert as new if DynamicTable.IMSI.VLR.RejectCount MaxRejectCount "OK" "Reject" } { if "Reject" { DynamicTable.IMSI.LastRejectTime=DateTime ++DynamicTable.IMSI.OperatorPrefixName.RejectCountHere Reject.HLR.GT := IMSISeriesInHLRs[IMSI] if!reject.hlr.gt Trap{Error: There is no HLR defined for '$IMSI$'!} Reject.ErrorCode := RejectSchemePerVLR[VLR] } if "OK" { DynamicTable.IMSI.LastOKTime=DateTime UpdatePercentages(Operator-PrefixName) } } Pszeudo-kód!
RS-Server - döntés (folyt.) Halving amíg a másik oldal nem elérhetı + még egy kicsit Felejtés if timedout(max(dynamictable.imsi.lastoktime LastRejectTime)) { if!filled(dynamictable.imsi.lastoktime) AlarmList{'$IMSI$' had a last "Reject" at $DATETIME$, without any subsequent "OK".} Drop(DynamicTable.IMSI) } Átszólás a másik oldalról/-ra minden történésrıl Küldés a statisztika (RS-Stat) modulnak is
RS-Server - statikus táblák SgaRS_Serv_IMSIPref.lst D.R.: R&W SgaRS_Serv_OpPref.lst IMSI-Prefix Policy 21630100 Postpaid 216306006 Domino 216301000391695F VIP 216301000391699F VIP 216301000303030F VeryVIP Operator-Prefix Operator-PrefixName 3093 Gr-TeleStet_Hellas 3094 Gr-Panafon 3095 Gr-Panafon 3097 Gr-Cosmotel 49 Germany 49170 Germany-D1 49171 Germany-D1 49172 Germany-Voda 49173 Germany-Voda 4917398341219 Germany-Voda_BADVLR 49176 Germany-O2 49177 Germany-E-Plus 49178 Germany-E-Plus 49179 Germany-O2
RS-Server - statikus táblák (folyt.) SgaRS_Serv_Rules.ini n * [Policy XXX ] D.R.: R XXX például: Domino, PostPaid stb. * = hard limit [RequiredPercentages] országnév-szeparáció! [IMSISeriesInHLRs] [RejectSchemePerVLR] VLR-Prefix RejectScheme 49172 2 49 3 44 4 * 1 SgaRS_.INI / [ MAP Error #N] * = default séma VLR-PrefixName MaxReject# Germany-Voda *3 Germany-Voda_BADVLR *99 Germany-O2 3 Gr-Panafon 3 Gr-Cosmotel *3 VLR-PrefixName Required[%] Germany-D1 70 Germany-Voda 20 Gr-Panafon 20 Gr-Cosmotel 20 IMSI-Prefix HLR.GT 2163010 36309489911 2163011 36309489912 2163019 36309489911 216302 36309489913
RS-Server - SgaRS_Serv_Rules.ini ; [Policy XXX ] ; VLR-PrefixName = MaximumRejectCount ; * : no ignorance, even if required percentage is not yet met ; reloaded on-the-fly [Policy Normal ] Germany-O2 = 1 Germany-Voda = 1 Germany-Voda_BADVLR = *99 Gr-TeleStet_Hellas = 1 [Policy Domino ] Germany-O2 = 3 Germany-Voda = *3 Germany-Voda_BADVLR = *99 Gr-Panafon = 3 Gr-Cosmotel = *3 Minta!
RS-Server - SgaRS_Serv_Rules.ini ; VLR-PrefixName = RequiredPercent [%] ; dash within the prefix name separates country and network names ; 1000 entries at most ; reloaded on start-up and on request (from menu) [RequiredPercentages] Germany-D1 = 70 Germany-Voda = 20 Gr-Panafon = 20 Gr-Cosmotel = 20 Minta!
RS-Server - SgaRS_Serv_Rules.ini ; IMSI-Prefix = HLR.GT ; maximum 50 entries ; read from top to bottom ; reloaded on start-up and on request (from menu) [IMSISeriesInHLRs] 2163010 = 36309489911 ; HLRA (backup: HLRB) 2163011 = 36309489912 ; HLRB (backup: HLRA) 2163019 = 36309489911 ; HLRA (backup: HLRB) 216302 = 36309489913 ; HLRC (backup: HLRE) 216303 = 36309489914 ; HLRD (backup: HLRF) 2163040 = 36309489918 ; pilot 2163042 = 36309489918 ; pilot 216305 = 36309489914 ; HLRD (backup: HLRF) 2163060 = 36309489911 ; HLRA (backup: HLRB) Minta!
RS-Server - SgaRS_Serv_Rules.ini ; VLR-Prefix = RejectScheme ; RejectSchemeN SgaRS_.ini/[ MAP Error #N] ; maximum 100 entries ; read from top to bottom ; reloaded on start-up and on request (from menu) [RejectSchemePerVLR] 49172 = 2 ; Germany-Voda 49 = 3 ; Germany 43 = 4 ; Austria 44 = 4 ; UK * = 1 ; default reject scheme Minta!
RS-Server - a dinamikus tábla Aktuális állapot szomszédtól is frissül az elévültek kigördülnek mindenütt UTC! IMSI 1/2 LastOK LastReject Operator- PrefixName #1 :RejectCount Operator- PrefixName #2 :RejectCount 216301000391693 true 2007.08.02. 07:15:23 2007.08.02. 07:13:12 Germany-Voda: 7 Germany-O2: 2 216301000391695 2007.05.31. 09:09:09 Gr-Panafon: 0 216301000391696 true 2007.06.11. 13:28:28 Germany-Voda: 1 216301000391699 2007.05.21. 11:18:53 2007.05.21. 11:18:52 Gr-Cosmotel: 2 Gr-Panafon: 3......
RS-Statistics - statisztikák / 1 (például) Negyedóránkénti CSV állományok azonnal akár PMS-be is tölthetıek Szolgáltatónkénti (Operator-PrefixName) és IMSI csoportonkénti (PolicyName) OK és Reject darabszám eloszlás Példa: SgaRS_Stat1_200705311230_0.csv DateTime, VLRPrefixName, IMSIPolicyName, #OK, #Reject 2007.05.31 10:15:00, Gyfone, Domino, 53, 0 2007.05.31 10:15:00, Gyfone, PostPaid, 6, 0 2007.05.31 10:15:00, Pfone, Domino, 0, 17 2007.05.31 10:15:00, Pfone, PostPaid, 2, 23
RS-Statistics - statisztikák / 2 Két hisztogram (10+10 darabszám-számláló) a most elıször OK -t kapókra: #, 0 darab Reject után került most preferáltba #, 1 darab Reject után került most preferáltba #,.. darab Reject után került most preferáltba #, 9 darab Reject után került most preferáltba #, 0 darab Reject után került be nem-preferáltba #, 1 darab Reject után került be nem-preferáltba #,.. darab Reject után került be nem-preferáltba #, 9 darab Reject után került be nem-preferáltba
RS-Statistics - statisztikák / 2 RS-Server továbbadja az OK döntés okát valamint az eddigi Reject -ek össz darabszámát Ha most (végre) egy OK jött, akkor: switch ( OK.Result ) { case OK(NoCheckForThisIMSI) : // minden VLR preferált case OK(NowInPreferred) : // bepreferálódott UpdateHistogram_NowInPreferred case OK(MaxRejectReached) : // valószínőleg manuális UpdateHistogram_StillInNonpreferred case OK(WithinGuardtime) : case OK(...) : DoNothingHere } // már volt rá OK // pl.: out-of-memory
RS-Statistics - statisztikák / 2 Példa: SgaRS_Stat2_200705311230_0.csv DateTime, IMSIPolicyName, #=0(+), #=1(+), #=2(+), #=3(+), #=4(+), #=5(+), #=6(+), #=7(+), #=8(+), # 9(+), #=0(-), #=1(-), #=2(-), #=3(-), #=4(-), #=5(-), #=6(-), #=7(-), #=8(-), # 9(-) 2007.05.31 10:15:00, Domino, 0, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 17, 0, 0, 0, 19, 9 2007.05.31 10:15:00, PostPaid, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 Az utolsó n oszlopokba kerülıkrıl AlarmLista if (IMSI.TotalRejectCountUptoNow AlarmThresholdRejectCountNowInPreferred) AlarmList{'$IMSI$' had 4 rejects before this OK in $OpPrefName$ (now in preferred).} if (IMSI.TotalRejectCountUptoNow AlarmThresholdRejectCountStillInNonpreferred) AlarmList{'$IMSI$' had 9 rejects before this OK in $OpPrefName$ (still in non-preferred).}
RS-Statistics - statisztikák AlarmLista arról is, ha egy IMSI nem ugyanazzal a Policy névvel jelenik meg, mint elızıleg esetleg eltérés a két site között? változtatás után a felejtési idık leteltéig üzemszerő AlarmList{'$IMSI$' was seen with Policy $OldPolicyName$, but now with $CurrentPolicyName$.}
RS- - SgaRS_.ini [ MAP Error #1] ; AbsentSubscriber bylocalerrorcodetag = 27 + [... szokásosak...] 64 [10] messagetype:end 49 [04] DTID = 0x000252A1 6C [08] componentportion A3 [06] component:returnerror 02 [01] invokeid = 1 02 [01] errorcode:localvalue = 27 AbsentSubscriber [ MAP Error #2] ; CallBarred bylocalerrorcodetag = 13 bylocalerrorcodeparametertag = 1 64 [13] messagetype:end 49 [04] DTID = 0x00A1432B 6C [0B] componentportion A3 [09] component:returnerror 02 [01] invokeid = 1 02 [01] errorcode:localvalue = 13 CallBarred 0A [01] callbarringcause = 1 OperatorBarring
[Rules] RS-Server - SgaRS_Serv.ini dwimsimemoryentrycount = 100000 dwimsimemoryentrylifesec = 3600 simsipreffile = SgaRS_Serv_IMSIPref.lst soppreffile = SgaRS_Serv_OpPref.lst srulesfile = SgaRS_Serv_Rules.ini chprefixdelimiter = - [Remote Server] biinitializeconnection = True if False local TCP port and optional IP address barring; wautoconnectintervalsec is ignored if True remote IP address and TCP port wautoconnectintervalsec = 3 sipaddress = 127.0.0.1 wtcpport = 5068 dwkeephalvingruleafterconnectsec = 9 + [... szokásosak...]
RS-Statistics - SgaRS_Stat.ini [Statistics] dwimsimemoryentrycount = 100000 dwimsimemoryentrylifesec = 86400 dwstat1memoryentrycount = 25000 dwstat2memoryentrycount = 250 dwflushperiod = 900 dwflushdelay = 10 + [... szokásosak...] [Advanced] walarmthresholdrejectcountnowinpreferred = 3 walarmthresholdrejectcountstillinnonpreferred = 9
Status line infók Status line számlálók, jelzések RS- rx#: UpdLoc, UpdGPRSLoc, SP, SAI, other tx#: UpdLoc, Reject RS-Serv (vörös/bíbor/szürke) RS-Serv képváltás! Requests; Answers( OK, Reject ); RemoteInfo IMSI memory used, overflown; updated; forgotten RemoteServ, RS-Stat (vörös/bíbor/szürke) RS-Stat Records( OK, Reject ) IMSI memory used, overflown Stat1 memory used, overflown Stat2 memory used, overflown logged!
RS-GUI Get ExportList ImportList (Check) Set D.R. SGA-Auth SGA-RS-x 1. Authenticate UserName Password Reason 2. OK / nok RS-GUI GUIServ 3. - 4. GET IMSIPref.lst Rules.ini 5. SET IMSIPref.lst 6. OK / nok
Misc WelcomeSMS-monitor? LocalTime helyett minden UTC-ben (GMT) kivéve a napló-sorok idıpontja Naplózás napi bontású naplózási szintek: Debug, Detail, Normal, Off Riasztások szokásos IP/UDP/SNMP Trap-ek a NOC/NMC számára részletes lista dokumentáció pl.: $LogFilesPath$ / SgaRS_Serv_20060802.log
Trap-ek Keletkezı állományok Naplók SgaRS_(...)_YYYYMMDD.log * 2 (* n) SgaRS_Serv_YYYYMMDD.log * 2 SgaRS_Stat_YYYYMMDD.log Statisztikák SgaRS_Stat1_YYYYMMDDHHMM_N.csv SgaRS_Stat2_YYYYMMDDHHMM_N.csv Alarmlisták SgaRS_Serv_Alarms_YYYYMMDD.txt * 2 SgaRS_Stat_Alarms_YYYYMMDD.txt
IP / UDP-TCP portok ki-be : SNMP (Trap) +secondaries FTP vagy SCP RemoteDesktop RS-GUI + SGA-Authorizer bent : RS-(Local)Server RS-RemoteServer RS-(Local)Server RS-RemoteStatistics NTP
SGA-RS - egyéb SGA-Trapper egy vagy több NOC-hoz DelThem pl. öreg naplóállományokra Log2Text SGA-Authorizer RS-GUI miatt T-megfelelı Gy4
Száva8 tesztek Prológus: jelenleg az int al hálózatban 10 UpdLoc/s inbound még steering nélkül! 160 octet / UpdLoc (MAP3) 12.5 kbps (összesen!)
Száva8 tesztek SGA-Tx-OSz Mérések jelenleg 10 UpdLoc/s inbound még steering nélkül! 12.5 kbps (összesen!) MSC -Z MSC visszakorlátoz 50 kbps-re / jelzéslink 2 * 2 * 2 * 2 = 8 jelzéslink beszerelve, ebbıl 4 van MSC-be bekötve válaszidık: 0..49 ms; átlag 19 ms UpdLoc(MAP3) = 160 octet = 20 ms Serv Serv SGA-RS-1 SGA-RS-2 Stat igen nagy (72 UpdLoc/s) terhelésnél, több tízezer IMSI-re