sga-rs - tel.tmit.bme.hutel.tmit.bme.hu/gyula/hp/sga-rs/sga-rs (ppt).pdf · ini =...
TRANSCRIPT
Topológia (site set-up)
SGA-RS-1(Száva utca)
SS7
Stat
SS7
MSC-5
MSC-1
Int’alGw-s
HLR-s
SS7
SS7SGA-RS-2(Huszti út)
SS7
IP
PC=1
PC=2
PC=1PC=2
Topológia (site set-up)
SGA-RS-1(Száva utca)
SS7
Stat
SS7
MSC-5
MSC-1
Int’alGw-s
HLR-s
SS7
SS7SGA-RS-2(Huszti út)
SS7
IP
7.
1.
2.3.
4.
5.6.
0. 3.’
3.’
SGA-RS architektúra
∗∗∗∗
Száva utca
∗∗∗∗
SS7
Serv
SS7
rx+tx
rx+tx
rx+tx
rx+tx
∗∗∗∗
∗∗∗∗
SS7
Serv
SS7
rx+tx
rx+tx
rx+tx
rx+tx
Huszti út
Stat
X utca/út/...
…
…
IPSS7
RS-SS7 - irányítás (SS7 routing)
...(∗∗∗∗)...?
(UpdLoc & ∗∗∗∗)?
opció: CldPA.TT átírásCldPA = ClgPA
ClgPA.GT = HLR.GTMAP.Error = ErrorCode’
RL.dpc ⇔ RL.opcCldPA.RouteOnGT = “true”
SS7 rx
SS7 tx
nem
igen
“ Reject ”
“ OK”∗∗∗∗
SS7
RS-Server - döntéselıkészítés
Operator-PrefixName →→ RequiredPercentages
∗∗∗∗ rx
∗∗∗∗ tx
“ Reject ”
“ OK”
ServIMSI → PolicyName
VLR.GT → Operator-PrefixName
PolicyName, Operator-PrefixName →→ MaxRejectCount (soft/hard)
DateTime + VLR.GT (SCCP.ClgPA) + IMSI
“OK” vagy “Reject(HLR.GT,ErrorCode)”
VLR.GT → ErrorCode
IMSI → HLR.GT
Nos,sztíringeljük?
RS-Server - döntéselıkészítés
Operator-PrefixName →→ RequiredPercentages
∗∗∗∗ rx
∗∗∗∗ tx
“ Reject ”
“ OK”
ServIMSI → PolicyName
VLR.GT → Operator-PrefixName
PolicyName, Operator-PrefixName →→ MaxRejectCount (soft/hard)
VLR.GT → ErrorCode
IMSI → HLR.GT
Nos,sztíringeljük?
SgaRS_Serv_IMSIPref.lst
SgaRS_Serv_OpPref.lst
INI / [RequiredPercentages]
INI / [Policy “XXX”]
INI = SgaRS_Serv_Rules.ini
INI / [IMSISeriesInHLRs]
INI / [RejectSchemePerVLR]
RS-Server - döntéselıkészítés
∗∗∗∗ rx
∗∗∗∗ tx
“ Reject ”
“ OK”
ServDateTime + VLR.GT (SCCP.ClgPA) + IMSI
“OK” vagy “Reject(HLR.GT,ErrorCode)”
Nos,sztíringeljük?
DateTime + + IMSI + PolicyName + Operator-PrefixName + RequiredPercentages + MaxRejectCount (soft/hard) + dinamikus tábla adatai
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 MaxRejectCo unt.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.RejectC ountHere 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
♦ Átszólás a másik oldalról/-ra♦minden történésrıl
♦ Küldés a statisztika (RS-Stat) modulnak is
if timedout(MAX(DynamicTable.IMSI.LastOKTime|LastR ejectTime)) →→→→ { if !filled(DynamicTable.IMSI.LastOKTime) →→→→ →→→→ AlarmList{'$IMSI$' had a last "Reject" at $DATETI ME$, without any subsequent "OK".} Drop(DynamicTable.IMSI) }
RS-Server - statikus táblák
♦ SgaRS_Serv_IMSIPref.lst• D.R.: R&W
♦ SgaRS_Serv_OpPref.lst
IMSI-Prefix Policy21630100 Postpaid216306006 Domino216301000391695F VIP216301000391699F VIP216301000303030F VeryVIP
Operator-Prefix Operator-PrefixName3093 Gr-TeleStet_Hellas3094 Gr-Panafon3095 Gr-Panafon3097 Gr-Cosmotel49 Germany49170 Germany-D149171 Germany-D149172 Germany-Voda49173 Germany-Voda4917398341219 Germany-Voda_BADVLR49176 Germany-O249177 Germany-E-Plus49178 Germany-E-Plus49179 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]• → SgaRS_SS7.INI / [SS7 MAP Error #N]
• ‘*’ = default sémaVLR-Prefix RejectScheme49172 249 344 4* 1
IMSI-Prefix HLR.GT2163010 363094899112163011 363094899122163019 36309489911216302 36309489913
VLR-PrefixName Required[%]Germany-D1 70Germany-Voda 20Gr-Panafon 20Gr-Cosmotel 20
VLR-PrefixName MaxReject#Germany-Voda *3Germany-Voda_BADVLR *99Germany-O2 3Gr-Panafon 3Gr-Cosmotel *3
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
Minta!
; 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
RS-Server - SgaRS_Serv_Rules.ini
Minta!
; 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)
RS-Server - SgaRS_Serv_Rules.ini
Minta!
; VLR-Prefix = RejectScheme
; RejectScheme N →→→→ SgaRS_SS7.ini/[SS7 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
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 LastRejectOperator-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: 2216301000391695 2007.05.31. 09:09:09 Gr-Panafon: 0216301000391696 true 2007.06.11. 13:28:28 Germany-Voda: 1216301000391699 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) ésIMSI 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, 02007.05.31 10:15:00, Gyfone, PostPaid, 6, 02007.05.31 10:15:00, Pfone, Domino, 0, 172007.05.31 10:15:00, Pfone, PostPaid, 2, 23
RS-Statistics - statisztikák / 2
♦ Két hisztogram (10+10 darabszám-számláló) amost 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átvalamint 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áltcase “ OK(NowInPreferred)”: // →→→→ bepreferálódott
UpdateHistogram_NowInPreferred
case “ OK(MaxRejectReached)”: // →→→→ valószín őleg manuálisUpdateHistogram_StillInNonpreferred
case “ OK(WithinGuardtime)”: // →→→→ már volt rá “ OK”case “ OK(...)”: // →→→→ pl.: out-of-memory
DoNothingHere}
RS-Statistics - statisztikák / 2
♦ Példa: “SgaRS_Stat2_200705311230_0.csv”
♦ Az utolsó n oszlopokba kerülıkrıl AlarmLista
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
if (IMSI.TotalRejectCountUptoNow ≥≥≥≥ AlarmThresholdRejectCountNowInPreferred) →→→→ →→→→ AlarmList{'$IMSI$' had 4 rejects before this OK i n $OpPrefName$ (now in preferred).}
if (IMSI.TotalRejectCountUptoNow ≥≥≥≥ AlarmThresholdRejectCountStillInNonpreferred) →→→→ →→→→ AlarmList{'$IMSI$' had 9 rejects before this OK i n $OpPrefName$ (still in non-preferred).}
RS-Statistics - statisztikák
♦ AlarmLista arról is, ha egy IMSI nem ugyanazzala 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 $OldPolic yName$, but now with $CurrentPolicyName$.}
RS-SS7 - SgaRS_SS7.ini
[SS7 MAP Error #1]; AbsentSubscriber
byLocalErrorCodeTag = 27
[SS7 MAP Error #2]; CallBarred
byLocalErrorCodeTag = 13
byLocalErrorCodeParameterTag = 1
64 [10] messageType:END 49 [04] DTID = 0x000252A16C [08] componentPortion A3 [06] component:returnError 02 [01] invokeID = 102 [01] errorCode:localValue = 27 →→→→ AbsentSubscriber
64 [13] messageType:END 49 [04] DTID = 0x00A1432B6C [0B] componentPortion A3 [09] component:returnError 02 [01] invokeID = 102 [01] errorCode:localValue = 13 →→→→ CallBarred0A [01] callBarringCause = 1 →→→→ OperatorBarring
+ [... szokásosak ...]
RS-Server - SgaRS_Serv.ini
[Rules]dwIMSIMemoryEntryCount = 100000dwIMSIMemoryEntryLifeSec = 3600sIMSIPrefFile = SgaRS_Serv_IMSIPref.lstsOpPrefFile = SgaRS_Serv_OpPref.lstsRulesFile = SgaRS_Serv_Rules.inichPrefixDelimiter = -
[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 = 3sIPAddress = 127.0.0.1wTCPPort = 5068dwKeepHalvingRuleAfterConnectSec = 9
+ [... szokásosak ...]
RS-Statistics - SgaRS_Stat.ini
[Statistics]dwIMSIMemoryEntryCount = 100000dwIMSIMemoryEntryLifeSec = 86400dwStat1MemoryEntryCount = 25000dwStat2MemoryEntryCount = 250dwFlushPeriod = 900dwFlushDelay = 10
[Advanced]wAlarmThresholdRejectCountNowInPreferred = 3wAlarmThresholdRejectCountStillInNonpreferred = 9
+ [... szokásosak ...]
“Status line” infók
♦ “Status line” számlálók, jelzések♦RS-SS7
• rx#: UpdLoc, UpdGPRSLoc, SP, SAI, other
• tx#: UpdLoc, Reject
• “RS-Serv” (vörös/bíbor/szürke)
♦RS-Serv• 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!
képváltás!
1. →→→→ AuthenticateUserNamePasswordReason
2. ←←←← “OK” / “nOK”
3. →→→→ -4. ←←←← GET
IMSIPref.lstRules.ini
5. →→→→ SETIMSIPref.lst
6. ←←←← “OK” / “nOK”
RS-GUI
♦ Get → ExportList → ImportList → (Check) → SetSGA-RS-x
SGA-Auth
GUIServ
D.R.
RS-GUI
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
Keletkezı állományok
♦ Naplók♦ “SgaRS_SS7(...)_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”
♦ Trap-ek
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
• jelenleg ≈10 UpdLoc/s inbound• még steering nélkül!
• → 12.5 kbps (összesen!)
♦ Mérések♦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• igen nagy (72 UpdLoc/s) terhelésnél, több tízezer IMSI-re
SGA-RS-1SS7
SS7MSC
-Z
SS7
SS7
SGA-RS-2
SGA-Tx-OSzSS7
SS7
UpdLoc(MAP3) = 160 octet = 20 ms
ServStat
Serv