N2SVCD Configuration - DiameterApp

Diameter Application Configuration

The N2SVCD Diameter Application is a protocol gateway application which can perform client requests using the Diameter protocol. The N-Squared Tester Application requires a Diameter Application instance to be installed in order to execute Diameter tests.

The following configuration is used to create a Diameter Application instance to act as a protocol gateway to a Diameter server. A single Diameter Application instance will maintain a single connection to a single Diameter Server Address. If you need to connect to more than one remote Diameter Server Address, you must configure multiple Diameter Application instances (each with unique names).

<?xml version="1.0" encoding="utf-8"?>
<n2svcd>
  ...
  <applications>
    ...
    <application name="DIAMETER-S1" module="DiameterApp">
      <include><lib>../apps/diameter/lib</lib></include>
      <parameters>
        <parameter name="remote_host" value="10.42.2.154"/>
        <parameter name="remote_port" value="4999"/>
        <parameter name="origin_host" value="IN Tester"/>
        <parameter name="vendor_id" value="10415"/>
        <parameter name="reconnect_interval" value="30"/>
      </parameters>
      <config>
        <avps>
          <avp code="9043" vendor_id="20901" name="Extension-Int-3" mandatory="1" type="Unsigned64"/>
        </avps>
      </config>
    </application>
    ...
  </application>
  ...
</n2svcd>

The application element attributes for a Diameter Application instance are:

Attribute Type Description
name String [Required] A unique name for this application instance.
module String [Required] DiameterApp
include.lib String [Required] ../apps/diameter/lib
parameters Array [Required] Array of name = value Parameters for this Application instance.
.remote_host String [Required] IPv4 Host Name or A.B.C.D IPv4 Address for Diameter Server.
.remote_port Integer [Required] IPv4 Port Number for Diameter Server.
.origin_host String Value for the Diameter Origin-Host AVP to provide in all requests.
(Default = <our-FQDN>).
.origin_realm String Value for the Diameter Origin-Realm AVP to provide in all requests.
(Default = <our-domain>).
.vendor_id Integer Value for the Diameter Vendor-Id AVP to provide in all requests by default.
(Default = 0).
.auth_application_id Integer Value for the Diameter Auth-Application-Id AVP to provide in connection requests.
(Default = 4).
.require_matching_aaid Integer Whether to validate that the returned Auth-Application-Id AVP in connection responses matches the Auth-Application-Id AVP sent by N2SVCD. If true, the connection will be dropped.
(Default = 1).
.vendor_specific_application_ids Array Additional AVPs to send in CER messages to advertise additional application support. Specified as grouped name = value list, e.g.:

<parameter name="vendor_specific_application_ids">
  <item group="diameter_sy" name="vendor_id" value="10415"/>
  <item group="diameter_sy" name="auth_application_id" value="16777302"/>
  <item group="diameter_sh" name="vendor_id" value="10415"/>
  <item group="diameter_sh" name="auth_application_id" value="16777217"/>
</parameter>

The example configuration above would result in two grouped AVPs, both containing a single Vendor-Id and a single Auth-Application-Id AVP. Note that the group parameter is a freeform identifier and is not validated or sent.
(No default).

.supported_vendor_ids Array Additional AVPs to send in CER messages to advertise additional vendor support. Specified as grouped name = value list, e.g.:

<parameter name="supported_vendor_ids">
  <item group="3gpp" name="vendor_id" value="10415"/>
  <item group="oracle" name="vendor_id" value="3512"/>
</parameter>

The example configuration above would result in two Supported-Vendor-Id AVPs. Note that the group parameter is a freeform identifier and is not validated or sent.
(No default).

.connection_backlog Integer Number of in-progress requests to allow on a connection.
(Default = 10).
.backlog_timeout Integer Number of seconds to wait for a free connection before abandoning the request.
(Default = 10 seconds).
.server_timeout Integer Number of seconds to wait on a submitted request before abandoning the request.
(Default = 20 seconds).
.reconnect_interval Integer Time in seconds between attempts to re-connect a failed Diameter connection.
(Default = 5 seconds).
config Object Container for extended configuration for this Application instance.
.avps Array Array of avp elements defining custom DIAMETER AVP name/code mappings.

Note: Typical Diameter Servers will allow multiple outstanding requests per client connection.

DIAMETER Customer AVPs

The avps section of the config block allows the definition of custom AVP codes for use in both inbound and outbound DIAMETER messages.

Attribute Type Description
code Integer [Required] A unique code for this AVP.
type Name An optional name for this code.
type String The type of AVP content. Must be one of OctetString, TF8String, Integer32, Integer64, Unsigned32, Enumerated, Time, Unsigned64, Address, Grouped.
(Default = OctetString).
vendor_id Integer Specify this value if your custom AVP includes a vendor_id.
mandatory Integer Set this to 1 if your custom AVP is mandatory, i.e. if the far-end must recognise this AVP.
encryption Integer Set this to 1 if your custom AVP is encrypted. The n2svcd does not contain any built-in support for encrypted AVPs.