Diameter Protocol Configuration Parameters
You can use the configuration parameters in create_config.py to configure the Diameter protocol implementation.
See the discussion about extending the Diameter dictionary for information necessary to configure Diameter protocol messages, and extend the base Diameter implementation.
For more information about the MATRIXX environment variables, see the discussion about container directories and environment variables in MATRIXX Installation and Upgrade.
Parameter | Description | Default Value |
---|---|---|
Diameter Source Host Name for Non-Routable Packets | Specifies the value to use for the
Origin-Host AVP in non-routable packets (CERs, CEAs, DWRs, DWAs,
DPRs, and DPAs) sent by MATRIXX Engine. Identifies this Diameter node to the Diameter peers with which
it shares connections. This question is asked for each engine in the
environment. The Diameter source host name is typically the DNS
host name and must be a fully qualified domain name in the
Diameter realm, for example, create_config.info question:Engine n: Diameter: What is the hostname of your Diameter source (the Origin-Host AVP) for non-routable packets? |
myhost |
Diameter Realm for Non-Routable Packets | The Diameter realm is typically your
company website address. This question is asked for each engine in
the MATRIXX Engine environment. Diameter applications use the realm string to identify their domain of responsibility. This allows virtual domains to exists within a single host where multiple open Diameter entities are running with different realm configurations. This value is for non-routable packets. The value must be a fully qualified domain name. create_config.info question: Engine n: Diameter: What is the name of your Diameter realm (the Origin-Realm AVP) for non-routable packets? |
matrixx.com |
Diameter Source Host Name for Routable Packets | Specifies the value to use for the Origin-Host AVP in routable packets sent by the MATRIXX Engine servers. Identifies this Diameter node to the Diameter peers with
which it shares
connections. create_config.info question: Engine n: Diameter: How do you want to assign the Diameter source (the Origin-Host AVP) for routable packets? The options are same and tra_dr. |
same |
Diameter Realm for Routable Packets | A Diameter client sends an Origin-Realm AVP to identify the source of the packet.
Normally this is the same value for routable and non-routable
packets. In some special cases, the value used needs to be
different. This question allows you to specify how the value for
routable packets is determined. The options are same and tra_dr. create_config.info question: Engine n: Diameter: How do you want to assign the Diameter source (the Origin-Realm AVP) for routable packets? |
same |
Maximum Message Rate | The maximum number of Diameter packets that can be received, per second, before
message throttling is activated. The default is 0 ,
which deactivates message throttling. If the message rate exceeds the configured value or if throttling is disabled and the message rate is too high, they are added to the inbound Diameter queue. If the queue runs out of space, additional messages are rejected until the queue has available space and a 4002 (OUT_OF_SPACE) return code is sent back to the network. create_config.info question: What is the maximum message rate in messages per second you want to support? |
0 |
Message Rate Window Size | If you turn on message throttling, you must set the size of the message window. The maximum message rate
is checked by calculating the maximum number of messages that
can be received during a specified time window. Once this
calculated value has been met, all remaining messages received
during this time window are rejected. For example, if the
maximum message rate is 5,000 messages per second, and the
window size (in micros) is 1,000,000 (1 second), the throttle is
not activated until after 5,000 messages have been processed. If
the interval of time is less than 1 second, and more than 5,000
messages have been received, the socket is not read again until
the next interval starts. The interval starts when the first
packet within an interval is received.
Note: Setting a window
size that is too small may cause a small spike of messages
to be rejected, even though the total number in a second has
not been exceeded. Setting a window size that is too large
might cause a lot of empty time where all messages are
rejected until the next time window. This happens when
spikes early in the time window cause the calculated maximum
to be reached. The minimum value is 100 and the maximum
value is 2000000.
create_config.info question: What is the window size (in micros) to measure this message rate? |
1000000 |
Diameter Total Used Octets | The Diameter Gateway can calculate the total number of octets from the CC-Input-Octets
and CC-Output-Octets in the network message. create_config.info question: Diameter: Do you want the Diameter Gateway to calculate CC-Total-Octets from CC-Input-Octets and CC-Output-Octets (y/n)?Diameter Gateway For more information about |
n |
Diameter Routing by Realm Name | This parameter determines how a message destined to a Diameter Peer must be routed
when the socket is closed. It uses the Origin-Host attribute-value pair (AVP). If the value is
create_config.info question: Diameter: Do you want to allow routing by the realm name if a preferred connection is not available (y/n)? |
n |
3GPP MS-TimeZone AVP Values | You can configure how to handle non-conforming 3GPP-MS-TimeZone values that cannot be
decoded by the Diameter Gateway.
create_config.info question: Diameter: How do you want to handle non-conforming 3GPP-MS-TimeZone AVP values? |
reject |
Default Diameter Dictionary | The MATRIXX Diameter Dictionary is defined
in the diameter_dictionary.xml file and has
definitions for the Diameter AVPs, functions, and Diameter-to-MDC
mappings implemented in the MATRIXX Engine. To add a Vendor ID or AVPs, or make other changes to the
Diameter Dictionary, answer n to the
question: Diameter: Do you want to use
the default Diameter Gateway dictionary
(y/n)?
Then answer the following
questions:
|
y |
Add Diameter Simple AVPs | If you do not use the default Diameter
Dictionary (answer n to the default Diameter
Dictionary question), you can add simple AVPs to the following
Diameter packets. You must answer y to the question: Do you want to add any Diameter AVPs (y/n)?. You must specify 1 or more simple AVPs to the following question: How many simple (non-grouped) Diameter AVPs do you want to add? For each AVP answer the
following questions:
AVP types are listed by
the create_config.py script when it runs, and
include types such as Most of these are described in the Diameter RFC. The one exception is TimeZone. It is a special type that is used to identify the type of data used in the 3GPP-MS-TimeZone AVP. Important: Enums are generated
from system MDC information in the
mdc_config_system.xml file on the MATRIXX Engine pod. All PriceLoaderEventTriggerType values must be present
in the
/mtx/data/data_container_subtype/PriceLoaderEventTriggerType.xml
file. Add any missing values to this file. Note: Most AVPs are mapped
to an MDC field, but this is not required. An AVP must be mapped
to an MDC if it is used during processing or if it is returned
on the Answer packet. Otherwise it does not have to be mapped.
If an AVP is not mapped, it still needs to be specified in the
packet definition to prevent error messages being logged about
unknown AVPs.
|
n |
Add Diameter Grouped AVPs | If you do not use the default Diameter Dictionary (answer n to
the default Diameter Dictionary question), you can add grouped AVPs
to the Diameter packets. You must answer y to the question: Do you want to add any Diameter AVPs (y/n)?. You must specify 1 or more grouped AVPs to the question: Diameter: How many grouped Diameter AVPs do you want to add? For each new grouped AVP,
you must specify the following information:
|
0 |
Add Diameter AVPs to Packets | If you do not use the default Diameter Dictionary (answer n to
the default Diameter Dictionary question), and you answer
y to the question Do you want to add any
Diameter AVPs to the defined packets
(y/n)?, you must answer the following questions:
One or more additional questions are asked as determined by the
answers to the earlier questions. For each application to which
you answered y, you must answer the
following questions where PacketName is the
application name, the command name, and Request or Answer:
For example: How many required Diameter AVPs do you want to add to the Common application Capabilities-Exchange Request packet? The defined packets for each application are:
Based on your answers in the preceding question, for each AVP in
each packet, answer the following questions:
|
n |
Use a Custom MDC in a Struct | For each custom MDC, the create_config.py script dynamically creates a list of custom
MDCs for each struct used in the
diameter_dictionary_base.xml file. This
following question is only asked for a struct if this list for the
struct is not empty. Do you want to use a private
MDC instead of the diameter_struct_name
MDC (y/n)?
If the answer to this question is y, and there is only one possible custom MDC, the create_config.py script uses the MDC. However, if there is more than one element in the list, you must answer the following additional question: What custom MDC do you want to use instead of the diameter_struct_name MDC? |
y |
Diameter Packet Concise Trace Log | The default Diameter log has detailed
debug information and packet information. To create a separate log
that has only the Diameter packets processed, answer
y when prompted to create a concise trace
of Diameter packets. You can use this log to make sure the correct
AVPs were sent. create_config.info question: Diameter: Do you want a concise trace of Diameter Packets processed by the Diameter Gateway (y/n)? |
n |
Diameter Dictionary sed file | If you customize the Diameter Dictionary
file and a sed file exists, enter the name of
the Diameter Dictionary sed file when prompted. create_config.info question: Diameter: What is the name of the pre-existing diameter dictionary xml sed file (optional)? |
None |
Compression Level for sending MDCs | When an MDC is sent in a Diameter packet, it is converted to a compact MDC and added
as an AVP. Sometimes, the size of this AVP might be too large to be
sent successfully. To resolve this, the compact MDC can be
compressed. A value of 1 is the least compression, but the fastest,
and 9 is the most compression, but most time-consuming. create_config.info question: Diameter: What is the compression level (0-9) to use when sending MDCs in a Diameter packet? |
6 |
Capabilities-Exchange Message Timeout | The timeout value in milliseconds that the Diameter Gateway waits before sending a Capabilities-Exchange response to the
Diameter client. create_config.info question: Diameter: What is the timeout value in milliseconds to wait for the client-level Capabilities Exchange? |
50 |
Device-Watchdog Message Timeout | When the client socket is idle, the number of seconds that the Diameter Gateway waits before sending a Device-Watchdog message. create_config.info question: Diameter: What is the time value in seconds a client socket is idle before sending a Device Watchdog packet? |
4 |
Error MDC Logging | Sets whether to log Diameter message MDCs that report a non-successful result (a Diameter result value other than 2001 ). Logging Diameter MDCs is useful in
troubleshooting when a high-level service operation is successful but a child service context is not. Diameter error MDC logs
are in compact MDC format and are written to the ${MTX_ERROR_MDC_LOG_DIR}. create_config.info question: Diameter: Do you want to log the MDCs that report a non-successful result (y/n)? |
y |
Error MDC Log Closing | The closing of an error MDC log is triggered by either the log batch size, an amount
of logging time, or an amount of idle time that has elapsed, which
ever occurs first. Each parameter value is configurable and can be
disabled by setting its value to 0, which removes it from the
log-closing equation. create_config.info questions:
|
|
Decode User-Location-Info AVPs | The 3GPP User-Location-Info AVP has a type field that can be either an enumeration field as specified in 3GPP 29.061 or a bit-mask field as specified in 3GPP 29.274. By
default, the type field is treated as an enumeration. If you answer y, then the type field is treated as a
bit-mask field. create_config.info question: Diameter: Do you want to decode 3GPP User-Location-Info AVPs using the bit-mask version of the type field (y/n)? Important: If you
are using External Diameter Gateway (EDGW), use a sed file to configure the User-Location-Info decoding. For more information, see the
discussion about deploying External Diameter Gateway. |
n |
Default Time-to-Live for Diameter | Specifies the default time to live in milliseconds for timed-out Diameter records
before they are discarded. create_config.info question: Diameter:What is the default time to live in milliseconds for DIAMETER messages? |
1500 |
Diameter Result Code for Rejected Messages | Specifies the result code for Diameter messages that have been in the system too long. A value of 0 indicates no response. create_config.info question: What is the DIAMETER result code for DIAMETER messages which have been rejected because they have been in the MATRIXX system to long? |
0 |
Time-to-Live for Accounting Interim Record | Specifies the default time to live in milliseconds for timed-out accounting interim
records before they are
discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Accounting:INTERIM_RECORD messages? |
1500 |
Time-to-Live for Accounting Event Record | Specifies the default time to live in milliseconds for timed-out accounting event
records before they are
discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Accounting:EVENT_RECORD messages? |
1500 |
Time-to-Live for Accounting Start Record | Specifies the default time to live in milliseconds for timed-out accounting start
records before they are
discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Accounting:START_RECORD messages? |
1500 |
Time-to-Live for Accounting Stop Record | Specifies the default time to live in milliseconds for timed-out accounting stop
records before they are
discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Accounting:STOP_RECORD messages? |
1500 |
Time-to-Live for Abort Session Requests | Specifies the default time to live in milliseconds for timed-out abort-session
requests before they are
discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Abort-Session-Request messages? |
1500 |
Time-to-Live for CCR Update Requests | Specifies the default time to live in milliseconds for timed-out CCR update requests
before they are discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Credit-Control-Request:UPDATE_REQUEST messages? |
1500 |
Time-to-Live for CCR Event Requests | Specifies the default time to live in milliseconds for timed-out Diameter operations
before they are discarded. Specifies the default time to live in milliseconds for timed-out CCR event requests before they are discarded.create_config.info question: Diameter:What is the time to live in milliseconds for Credit-Control-Request:EVENT_REQUEST messages? |
1500 |
Time-to-Live for CCR Initial Requests | Specifies the default time to live in milliseconds for timed-out CCR initial requests
before they are discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Credit-Control-Request:INITIAL_REQUEST messages? |
1500 |
Time-to-Live for CCR Termination Requests | Specifies the default time to live in milliseconds for timed-out CCR termination
requests before they are
discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Credit-Control-Request:TERMINATION_REQUEST messages? |
1500 |
Time-to-Live for Gx CC Requests | Specifies the default time to live in milliseconds for timed-out Gx CC requests before
they are discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Gx CC-Request messages? |
1500 |
Time-to-Live for Reauthorization Requests | Specifies the default time to live in milliseconds for timed-out reauthorization
requests before they are
discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Re-Auth messages? |
1500 |
Time-to-Live for Re-tariff Requests | Specifies the default time to live in milliseconds for timed-out re-tariff requests
before they are discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Re Tariff-Request messages? |
1500 |
Time-to-Live for Credit Control AA Requests | Specifies the default time to live in milliseconds for timed-out Credit Control AA
requests before they are
discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Credit-Control AA-Request messages? |
1500 |
Time-to-Live for Sh Interface Messages | Specifies the default time to live in milliseconds for timed-out Sh Interface messages
before they are discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Sh interface messages? |
1500 |
Time-to-Live for Session Termination Requests | Specifies the default time to live in milliseconds for timed-out session termination
requests before they are
discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Session-Termination-Request messages? |
1500 |
Time-to-Live for Sy Spending Limit Messages | Specifies the default time to live in milliseconds for timed-out Sy spending limit
messages before they are
discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Sy spending limit messages? |
1500 |
Time-to-Live for Sy Status Notification Messages | Specifies the default time to live in milliseconds for timed-out Sy status
notification messages before they are
discarded. create_config.info question: Diameter:What is the time to live in milliseconds for Sy status notification messages? |
1500 |
Rating Group ID for Offline Voice | Specifies the default rating group ID for Diameter offline voice (Rf) service.
create_config.info question: Global:What is the default Rating Group Id for the Diameter Offline voice service? Attention: For Diameter
offline charging to work, the offline usage status policy must
first be allowed. See the discussion about status policies in
MATRIXX Subscriber Management for more information. |
0 |
Diameter Host and Realm Routing
<route_by_host_and_realm>value</route_by_host_and_realm>
— When value is1
, the peer must match the destination host and realm.-
<route_by_host_only>value</route_by_host_only>
— When value is1
, the peer must match the destination host only.
By default, both values are 1
and Diameter Gateway
first tries to find a peer that matches both the host and the realm. If it cannot
find a match, it looks for a peer that matches only the host.
1
to specify that
when realm based routing returns a peer, the destination host is preserved on the
outbound message. -
<keep_destination_host_on_realm_route>value</keep_destination_host_on_realm_route>
By default, the value is 0
and the destination host is not
required.
Discarding Timed-Out Operations
You can configure Diameter Gateway to discard operations that have been in the system so long that the originator (end point) has given up, so replying has no result. This reduces the number of messages that must be recovered after a sudden system overload. Messages can be rejected at the start of processing by the Charging Server or at the start of processing by the Transaction Server. In either case, the result is set to 48 == TIMED_OUT, the result detail is set to 60 == DET_TIME_TO_LIVE_ENDPOINT_EXPIRED, and the MATRIXX Data Container (MDC) is passed back to Diameter Gateway.
TimeToLiveEndpoint
(datetime format) — Specifies the date/time after which replying to the end point has no result.TimeToLiveResponseFlag
(unsigned int32 format) — Indicates to MDC Gateway what to do if a message is discarded after timing out. A value of0
means that MDC Gateway discards the stale request. A value of1
means that MDC Gateway sends aTimeToLive-expired
response.TimetoLiveDeltaInSeconds
(unsigned int32 format) — Specifies the number of seconds in addition to theTimeToLiveEndpoint
. If this field is set, the value represents the time the message was received, plus the delta value.TimetoLiveDeltaInSeconds
allows the rules for settingTimeToLiveEndpoint
to be flexible. You can setTimetoLiveDeltaInSeconds
using selective updates on Diameter Gateway. For more information, see the discussion about configuring selective updates in MATRIXX Installation and Upgrade.
You can configure this feature by answering the create_config.info questions described in the discussion about CAMEL Gateway configuration. If you answer 0 to any of the time-to-live questions, the
TimetoLiveEndpoint
is not set. The default values to these questions is 0, meaning that the discarding of timed-out operations is
turned off by default.