TSP Lab GPRS Monitoring System Sga-GPRS

System Overview - The Monitors

module description version configuration files
GPRSMonitor.exe Main monitoring software v2.30 entries of GPRSMonitor.ini
GPRS_R02.obj SGA47 card GPRS firmware v1.30 <none>
Sga-G_M-04.bin SGA47P16 card GPRS firmware SGA-G_M-04 <none>
SGA47PDriver-1.03.sys Windows driver for SGA47P16 card v1.03 <none>
StorageCreator.exe GPRS buffer file creator v1.04 example of usage


The Monitor program

Features

User interface

The main menu

Button Meaning
Shows the status of the cards working in the monitor
Shows the status of the circular buffer
Shows the status of the network connections
Shows the TLLI and Kc lists used for deciphering
Record (Checkbox) If checked the program saves GPRS messages in PKT files
(For debug purposes!)


Configuration (GPRSmonitor.ini) file settings

Section Entry Example Meaning
[General]      
  LogDir d:\LogFiles Path for the logs
  RecordDir d:\Recordings Path for the PKT files
  Sga47PSysPath SGA47PDriver-1.03.sys Path and name of the file Windows driver file for Sga47P16 card. If this is not set the monitor uses the default value: Sga47PDriver.sys.
  LogCardEvents 1 Enable or disable logging events about cards and links.
If it is disabled events can be followed on the Card screen.
  LogTimeOnScreen 1 Enable or disable logging timestamp of log entries.
  GPRSCipherServerAddress 11.22.33.44 IP address of the KeyServer from where the monitor receives the deciphering data
  GPRSCipherServerPort 8001 Port, where the KeyServer waits for the connection
  CipherPacketPoolSize 10240 Size of the buffer for data to be sent
  CipherPacketPoolTimeoutMSecs 5000 For this interval the monitor keeps the requests
  CipherInfoCacheSize 10240 Buffer for received data
  CipherInfoCacheTimeoutMSecs 30000 Timeout for received data
  SaveCipherDebugInfo 1 If it is not disabled, the information used for deciphering messages is written on the disk.
  • 0: disable logging
  • 1: only UsedInfo is saved
  • >1: all information saved
  •   LTE23GCipherServerAddress 172.220.3.4 IP address of the KeyServer23G to provide info for deciphering of 4G signalling
      LTE23GCipherServerPort 8001 Port, where the KeyServer23G waits for the connection
      LTE23GCipherServerAddress2 172.220.3.140 IP address of the secondary KeyServer23G for testing purposes
      LTE23GCipherServerPort2 8001 Port of the secondary KeyServer23G for testing purposes
      SortingPoolMaxSize 10240 Defines a sorting buffer for messages; default is 514244
      SortingPoolTimeoutMSecs 1000 Messages from cards are in the sorting queue for this interval
      PollerAddress 111.222.33.44 IP-address of the server running the Poller module.
      PollerPort 8000 UDP port, where the Poller waits for the connection
      LocalAddress 111.222.33.55 Optional local IP address for HTTP connection and all input connections
      LocalAddressTowardsGPRSCipherServer 111.222.33.55 Optional local IP address towards GPRS KeyServer (KS).
      LocalAddressTowardsLTE23GCipherServer 111.222.33.55 Optional local IP address towards LTE KeyServer (KS23G).
      LocalAddressTowardsLTE23GCipherServer2 111.222.33.55 Optional local IP address towards secondary LTE KeyServer (KS23G).
      LocalAddressTowardsPoller 111.222.33.55 Optional local IP address towards Poller Server.
      LocalAddressForRemoteCapture 111.222.33.55 Optional local IP address for Remote Capture function.
      KeepAlive 1 Defines that the monitor uses KeepAlive feature for network connections
      StatIntervalSecs 900 Statistics sending interval in seconds. The default value is 900 second.
      CounterLogIntervalSecs 900 This value set how often the deciphering counters are logged. Default value is 900 second
      NTPServerAddress 172.16.4.93 NTP server IP address
      NTPSynchronIntervalSecs 900 Time synchronization interval in seconds. The default value is 900 second.
      NTPMinAdjustmentMSecs 3 If the different between the local and the NTP times is smaller then this value time adjusting will be skipped.
      NTPNotifyAdjustmentMSecs 5 When the needed adjustment is greater than this value an event will be sent to the server.
      NTPMaxAdjustmentMSecs 7200000 If the different between the local and the NTP times is greater than this value time adjusting will be skipped.
      NTPRoundtripTimeoutMSecs 10 Maximum roundtrip time for NTP answers. Answers received later than this roundtrip time will be skipped.
      NTPStartSynchronized 0 This setting occurs that the monitor waits for the first NTP synchronization to process data. It provides precise timestamps.
    (0: disabled, other: the monitor does not need NTP synchronization to process data, default: 0)
      IMSILists 1 Turns on or off the creation of IMSI lists for successfully and unsuccessfully deciphered messages
  • 0: disable
  • other: enable
  • default: 0
  •   EnableWatchdog 0 It starts a service which restarts the monitor when it is halted. (For further information please see Sga-Dog page!)
    (0: disable watchdog, other: enable, default: 0)
      WatchdogIntervalSecs 5 Reset period for watchdog timer.
    (default: 5, minimum value: 1)
      WatchdogPort 7474 Network port when the monitor can connect to the Sga-Dog.
    (default: 7474)
      EnableCapabilityCollecting 0 Enables collecting and sending MS Capability parameters to the server
    (0: disable, other: enable, default: 1)
      GPRSCipherServerReadOnly 0 0: normal operation
    other: only RequestInfo messages are sent to the server
    default: 0
      DecipherSNDC 1 0: SNDC deciphering is disabled
    1: SNDC deciphering is enabled
    default: 1
      Caption BSC2E Alternative caption text for easy distinguishing amongst multiple instances of this module
    [UserPrivileges]     In this section the user groups can be defined with different privileges. See detailed information about privileges here.
      GPRSPrivilegeA A_user Defines the group of users who has privilege to see L1, NS, BSSGP, LLC: GMM/SM and LLC: SNDCP (without IP header) protocol layers.
      GPRSPrivilegeB B_user Defines the group of users who has privilege to see L1, NS, BSSGP, LLC: GMM/SM and LLC: SNDCP (without IP header) protocol layers and who can see the SNDCP: PDP content activation username/password
      GPRSPrivilegeC C_user Defines the group of users who has privilege to see L1, NS, BSSGP, LLC: GMM/SM and LLC: SNDCP (without IP header) protocol layers and the LLC: SAPI 7 information.
      GPRSPrivilegeD D_user Defines the group of users who has privilege to see L1, NS, BSSGP, LLC: GMM/SM and LLC: SNDCP protocol layers with IP header.
      GPRSPrivilegeE E_user Defines the group of users who has privilege to see all information in the messages except PDP content activation username/password and LLC: SAPI 7 information.
    [Storage]     In this section the storage buffer files used by the GPRSMonitor are defined
      StorageBufferPathN d:\GPRS-Monitor-00.dat The storage files have to be defined here in order to the GPRSMonitor can use them. N must be the sequential number of the circular buffer from 0 to 31
    [Stat]      
      StatIPAddressX 10.1.1.100 The statistics generated from gprs messages in connection with these IP addresses will be done (how many messages were sent to and from these IP addresses). The X is from 0 to 9.
      StatAPNX internet These values define APNs for counting APRQ messages sent through them. The X number is from 0 to 9.
      ProtocolGroupY T80,U123 These keys define protocols (ports) for IP protocol level statistics. They can be TCP and/or UDP port number. The Y number is from 0 to 9.
    For example:
    - T80 means TCP port 80 what is the HTTP protocol
    - U123 means UDP port 123 what is the NTP protocol
    For the list of ports and their services, see the Port List document.
    [StatGroups]     There can be more statistical groups. For example links what are in connection with the same BSC can be aggregated into the same statistical group.
      IdM “Link Group 0” The ID of the M’th statistical group
    [CardN]     For every card in the Monitor unit belongs a [CardN] section containing its setting.
    (N must be replaced with the sequential number of the card, e.g. [Card0] for the 0th, [Card1] for the 1st card, etc.)
      ID 0 The ID set on the N'th card. This can be adjusted with switches on the cards. All IDs must be unique within a Monitor unit.
      Type Sga47GPRS This defines what kinds of links are connected to the card.
    Type can be:
    • Sga47GPRS - Sga47 card for Gb links
    • Sga47P16GPRS - Sga47P16 card, monitoring Gb links
    • GPlanar - GPlanar card, monitoring GboverIP links
      SatelliteDriverPath c:\7N-Monitor\02e10000.sys Driver path for the SgaGPlanar card.
      TMSObjectPath gprs_r02.obj DSP code filename (and its path if needed).
    It can be the followings for the differrent card types:
    • gprs_r02.obj - for Sga47GPRS card type
    • Sga-G_M-01.bin - for Sga47P16GPRS card type
      AM186CodePath AM186.bin This value is needed for card type Sga47GPRS and Sga47SS7. This defines the path and file name of the AM186 processor code. If it is not set card does not use AM186 processor (what provide a "messages buffer" between DSP processors and host PC).
      AmplifyX 1 Sga47 cards can amplify connected PCM trunks if its voltage level is too low to work correct. (X must be 0 or 3.)
    If it is 1, it turns on the amplification feature for the Xth processor of Sga47SS7 and Sag47GPRS cards.
    If it is 0, it turns the amplification off.
      TerminationInN 300 For Sga47P16 cards the line termination can be set by the software (both of Sga47P16GPRS and Sga47P16SS7 types). (On Sga47 cards this setting can be set by jumpers.)
    The given value sets the termination (in Ohm) for processor N (N can be 0, 1, 2 and 3). Value can be 75 or 120 or 300.
    Optional parameter. The default is 300 Ohm.
      TerminatinOutN 120 The transmission termination can be set with this parameter on Sga47P16 cards.
    It sets termination of the Nth processor. The two possible values are 75 and 120 Ohm.
    Optional parameter. The default is 120 Ohm.
      GainN 0 This parameter is for Sga47P16 card type.
    Amplification for Nth processor can be adjusted by this value.
    Possible values are 0 and 12 and 30 dB. They are in dB.
    Optional parameter. Default value is 0 dB.
    [Links]      
      GB0/0 C=0 TS=1/31 P=GPRS StatGroup=0 This format can be used for Sga47GPRS and Sga47P16GPRS card types, as well.
  • SS0/0: The symbolic name of the link and the ID of the card to which the link belongs.
    The link ID has to consist of three alphanumeric characters and be unique in the whole monitoring system.
  • C=0: Channel id of the given card where the trunk cable containing this link is connected to.
  • TS=1/31: start timeslot and the number of joined timeslots (more groups of timeslots can be defined as a single Gb signaling link: "1/15,17/15" - the signaling link contains two 15-timeslot groups from 1 to 15 and from 17 to 31.)
  • P=GPRS: used protocol (GPRS)
  • StatGroup=0: ordinal number of the group this link belongs to
  •   S00>/0 GboverIP IPProtocol=TCP SrcIP=1.2.3.4 SrcPort=53 DstIP=5.6.7.8 DstPort=53 Truncate=242 StatGroup=1 This format can be used for SgaGPlanar card type.
    S00: The symbolic name of the link what has to consist of three alphanumeric characters. It must be unique in the whole monitoring system
    >: Define which direction to be captured. Other possible value:< (If only one of the directions is important) ***Optional***
    /0: The ID of the card where the link belongs to, points to the [CardN] section
    GboverIP: Used protocol on Gplanar card.
    IPProtocol: The GPlanar card can filter either to TCP or to UDP packets. If not specified, the port filter will be ignored.***Optional***
    SrcIP: Filter to this source address.***Optional***
    SrcPort: Filter to this port of the source address.***Optional***
    DstIP: Filter to this destination address.***Optional***
    DstPort: Filter to this port of the destination address.***Optional***
    Truncate: If the message is bigger than the configured size (in bytes) the end of the message will be cut off. Must be divisible by 8.***Optional***
    StatGroup: Messages seen on this link will be counted in statistics with this ID.

    The user privileges

    Five groups of users are defined to handle different privileges. These are the following:

    Steps of the authentication process:

    To use this feature users have to be aggregated into several groups. This can be done in the SgaAutho.pwd by setting the "Oracle user group identification" parameters. Every user who belongs to the same group needs to have the same "Oracle user group identification" parameter.
    This parameter refers to the X of the sUserName_X key. (A user belongs to that Oracle group whose X is equal to the "Oracle user group identification" parameter.) The name of the groups can be defined by creating new keys in the [Oracle User Groups] section of the SgaAutho.ini. Every group needs to have a sUserName_X key and groupnames (usernames) need to be set for these keys.
    These groupnames also need to be assigned to the GPRSPrivilege keys in the [UserPrivileges] section of GPRSMonitor.ini.

    A simple example:

    There are ten users (User1, User2, User3, User4, User5, User6, User7, User8, User9, User10). These client usernames will be used during the logging into the clients.
    They are in six groups: The SgaAutho.pwd will be the next: The [Oracle User Groups] section of the
    SgaAutho.ini: (the sPassword_X keys are not needed!) Finally, the [UserPrivileges] section of GPRSMonitor.ini: Note: Users do only know the client usernames!!! The (Oracle) group names are hidden from users, only the administrator(s) can see them.

    Warnings and errors in the log file

    Sga47 card handling

    ERROR level (red lines)

    For example:
    2003.06.20 16:52:39.523 Sga47Processor::readMessageQueue( card 0, proc 1 )/Assertion #2 failed reading from message queue.
    2003.06.20 16:52:39.543 Processor 1 on card 0 is taken out of service.
    2003.02.12 12:08:44.775 Sga47Processor::readMessageQueue( card 0, proc 0 )/No response from Sga47-card 0, proc 0 during wait.
    2003.02.12 12:08:44.775 Processor 0 on card 0 is taken out of service.

    Sga47P16 card handling

    ERROR level (red lines)

    For example:
    2005.01.18 14:47:00.556 Sga47P16SS7Processor::readMessageQueue( card 0, proc 0 )/Invalid message length. (5073)
    2005.01.18 14:47:00.566 Processor 0 on Sga46P16-card 0 is taken out of service.
    2005.01.18 14:47:00.586 Sga47P16SS7Processor::readMessageQueue( card 0, proc 1 )/Invalid link in message. (3)
    2005.01.18 14:47:00.586 Processor 1 on Sga46P16-card 0 is taken out of service.

    WARNING level (yellow lines)

    For example:
    2004.09.02 14:26:47.975 Sga47P16_DriverInit(): Cannot find "..\Sga47PDriver.sys".
    2004.09.02 14:27:10.938 Sga47P16_DriverInit(): Could not install driver.

    GPRS Sga card module

    WARNING level (yellow lines)

    For example:
    2005.01.18 12:34:17.241 SGA47P16GPRSCard::initProcessors()/Invalid format. ("Link=PC0 0/0 1"...)

    GPRS Sga card processor module

    WARNING level (yellow lines)

    For example:
    2005.01.18 21:06:55.969 Lost messages on link GB0>.

    Cipher module

    WARNING level (yellow lines)

    GPRS decoder module

    WARNING level (yellow lines)

    Monitor module

    ERROR level (red lines)

    For example:
    2004.07.01 23:21:35.281 Error during loading embedded kernel to Sga47-card 1 proc 0.
    2004.07.01 23:21:35.281 Skipping section [Card1] of Ini file.
    2004.07.28 15:44:19.363 Sga47P16Card() Error in section [Card1]: Could not open device "\\.\SGA47P1". (2)
    2004.07.28 15:44:19.363 Skipping section [Card1] of Ini file.
    2004.09.29 14:03:59.454 Sga47P16Processor(0)::loadDspCode(): Could not open file "Sga47P16SS7-M16-A5.bin". (2)
    2004.09.29 14:03:59.454 Skipping section [Card0] of Ini file.
    2004.08.26 14:02:21.506 Cannot find TMSObjectPath key in section [Card0].
    2004.08.26 14:02:21.506 Skipping section [Card0] of Ini file.
    2003.02.04 14:28:38.276 Card-Id is too great. (8)
    2003.02.04 14:28:38.276 Skipping section [Card0] of Ini file.
    2003.07.29 08:41:44.203 Sga47Card::loadAM186Code()/Could not open "c:\GPRS-Monitor\AM186.bin". (3)
    2003.07.29 08:41:44.203 Skipping section [Card0] of Ini file.

    WARNING level (yellow lines)

    GPRS statistical module

    ERROR level (red lines)

    WARNING level (yellow lines)

    For example:
    2005.01.19 12:38:06.588 Stat_AddPacket()/statCount_SNDC(): Unknown IP version. (0x0b)
    2005.01.19 12:38:06.598 GPRSMessage: [ Link GB2>, Timestamp 2005.01.19 12:38:01.508 Body d0 91 .. .. .. 79 d1 82 ]
    2005.01.19 12:38:08.832 Stat_AddPacket()/statCount_SNDC(): Illegal IP Header Length. (0x03)

    IP connection

    ERROR level (red lines)

    WARNING level (yellow lines)

    HTTP module

    ERROR level (red lines)

    WARNING level (yellow lines)

    Storage system

    ERROR level (red lines)

    For example:
    2004.07.14 16:58:26.555 Storage_InitBasicParameters(): Could not open buffer file "d:\GPRS-Monitor-01.dat".
    2004.07.14 16:58:26.555 Storage_Init(): Could not set up storage subsystem.

    Poller module

    WARNING level (yellow lines)

    Call Trace module

    ERROR level (red lines)

    WARNING level (yellow lines)

    Remote Capture module

    ERROR level (red lines)


    Version history


    The StorageCreator module


    The SgaGPRS monitoring system uses one or more circular buffers to store collected messages on the monitor machine. With this simple MS-DOS based utility this circular buffer can be created. Its size is adjustable between 16384 byte (16kbyte) and 2,147,467,264 byte (2Gbyte) at the creation.

    Usage:
    The storage files can be anywhere on the monitor machine with any filenames and can be defined for the monitor program by the [Storage]/StorageBufferPathN entry of the GPRSMonitor.ini file, where N can be from 0 to 31 so maximum 32 storage buffers can be created.

    An example how to use StorageCreator utility


    To create a circular buffer which name is for example GPRS-Monitor-01.dat and size is 100 Mbyte in the d:\ path on the monitor machine the next line has to be placed in a command prompt:

    Version history