Difference between revisions of "Latency determination"

From ss7api.null.ro
Jump to: navigation, search
(Created page with "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...")

Revision as of 16:45, 23 August 2013

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