Latency determination

From ss7api.null.ro
Jump to: navigation, search

The purpose of latency determination is to estimate how much time takes for a message to be processed by a GSM application.

The MAP protocol does not provide a general way of matching requests with responses and in CAMEL responses are used only for error conditions. As a result latency cannot be computed without application help.

The camel_map module offers a way to compute average application processing latency with a simple addition in the XML structure:

  • Each message sent by the module can be timestamped with the server's current time
  • Application copies the timestamp from the received XML to the one it responds with
  • If the module receives a timestamp it will compute the difference from the current time and adjust average latency

The timestamps need to be enabled in the camel_map.conf module. This can be done globally or per application:

   [general]
   add-timestamp=yes
 
   [tcap hlr]
   type=MAP
   ...
   add-timestamp=yes

If enabled the timestamps are added in their own XML element named timestamp-send:

   <m>
       <timestamp-send>1377071763411706</timestamp-send>
       ...
   </m>

The application is supposed to copy the received timestamp to the response in a timestamp-recv element:

   <m>
       <timestamp-recv>1377071763411706</timestamp-recv>
       ...
   </m>

The latency is available per connection either through rmanager status command or by SNMP:

status camel_map
name=camel_map,type=misc,format=User|Type|ReceivedXML|SentXML|ReceivedTCAP|SentTCAP|CurrentTransactions|Congestion|LatencyXML;count=2;hlr:127.0.0.1:36648=hlr|MAP|619|619|618|618|0|false|2873,msc:127.0.0.1:37156=msc|MAP|1|1|0|0|0|false|0

snmpwalk -M +/usr/share/yate/data -m +NULL-TEAM-MIB:YATE-MIB -v 2c -c public 127.0.0.1:1161 1.3.6.1.4.1.34501.1.6.7
YATE-MIB::gsmAppCount.0 2
YATE-MIB::gsmAppIndex.1 1
YATE-MIB::gsmAppIndex.2 2
YATE-MIB::gsmAppID.1 hlr:127.0.0.1:36648
YATE-MIB::gsmAppID.2 msc:127.0.0.1:37156
YATE-MIB::gsmAppType.1 MAP
YATE-MIB::gsmAppType.2 MAP
YATE-MIB::gsmAppUser.1 hlr
YATE-MIB::gsmAppUser.2 msc
YATE-MIB::gsmAppRxApp.1 619
YATE-MIB::gsmAppRxApp.2 1
YATE-MIB::gsmAppTxApp.1 619
YATE-MIB::gsmAppTxApp.2 1
YATE-MIB::gsmAppRxNet.1 618
YATE-MIB::gsmAppRxNet.2 0
YATE-MIB::gsmAppTxNet.1 618
YATE-MIB::gsmAppTxNet.2 0
YATE-MIB::gsmAppTransactions.1 0
YATE-MIB::gsmAppTransactions.2 0
YATE-MIB::gsmAppCongestion.1 false
YATE-MIB::gsmAppCongestion.2 false
YATE-MIB::gsmAppLatencyApp.1 2873 milliseconds
YATE-MIB::gsmAppLatencyApp.2 0 milliseconds
Personal tools
Namespaces

Variants
Actions
MAP & CAMEL XML Interface
Diameter XML Interface
MAP and CAMEL operations
Diameter interfaces
Examples
Resources
Navigation
Toolbox