Correlation RA Overview
What is the Correlation RA?
The Correlation RA provides a mechanism to allocate a routing number with correlation data. The routing number and associated correlation data is replicated across the Rhino cluster. All nodes in the cluster have access to read/write correlation data.
This is used in the IP-SM-GW in order to allocate a correlation IMSI as part of the MT Delivery flows. The feature that performs this function is the Generate MT Correlation Id feature.
Below are procedures for Configuring a Correlation RA entity, Monitoring Correlation RA entity statistics.
Configuring a Correlation RA entity
A Correlation RA entity configuration consists of:
The Correlation Ra Configurer in the installer configures the GenerateMTCorrelationIdFeature which makes use of the CorrelationProvider. The generate mt correlation id feature in IPSMGW Configuration |
The Correlation resource adaptor supports live re-configuration, so the administrator may update the configuration properties of a Correlation resource adaptor entity that has already been created. |
Correlation RA configuration properties
The Correlation RA configuration properties are:
Name |
Type |
Description |
|
String |
The SLEE profile table with an RA configuration profile for this RA entity. |
|
String |
The SLEE profile in the ConfigProfileTable with configuration for this RA entity. |
|
String |
The SLEE profile table with correlation ID pool definitions for this Correlation RA entity. |
For example, the IPSMGW Correlation RA entity has the following configuration:
[Rhino@localhost (#9)] listraentityconfigproperties ipsmgw-correlation-ra Configuration properties for resource adaptor entity ipsmgw-correlation-ra: ConfigProfile (java.lang.String): IPSMGWCorrelationConfigProfile ConfigProfileTable (java.lang.String): CorrelationConfigTable CorrelationIdPoolTable (java.lang.String): IPSMGWCorrelationIdPools
Correlation RA entity configuration profile
The Correlation RA configuration profile has the following attributes:
Name |
Type |
Description |
|
Int |
The maximum time (measured in ms) the Correlation RA will spend trying to allocate a correlation ID. |
|
Int |
The maximum time (measured in ms) that an active correlation ID is considered to be still valid. |
|
Int |
How many threads the Correlation RA entity should use. |
For example, the IP-SM-GW Correlation RA entity has the following configuration:
[Rhino@localhost (#8)] listprofileattributes CorrelationConfigTable IPSMGWCorrelationConfigProfile CorrelationIDExpiryTimerPeriod=55000 NumberOfThreadPool=5 RequestTimeout=5000
If a change is made to the profile, the following command to activate the changes:rhino-console updateraentityconfigproperties ipsmgw-correlation-ra
|
Once a Correlation ID has been allocated it is returned to the pool either when the application returns it, or after CorrelationIDExpiryTimerPeriod
milliseconds.
Once returned to the pool a Correlation ID is available for subsequent allocation.
Correlation RA entity ID pools configuration
Each Correlation RA entity has one or more correlation ID pools.
-
a default ID pool (optional)
-
a set of named ID pools. Each named ID pool is identified by a set of prefixes for choosing/selecting the ID pool. From the Correlation RA standpoint, the prefixes can be any address string. The client to the RA provides an address that the RA uses via a longestPrefix match address list search to select the pool to use.
Each correlation ID pool is defined in a SLEE profile in an ID pools profile table. There is one correlation ID pools table per Correlation RA entity.
By default the installer sets up one pool for every home PLMN ID, with 1 million prefixes distributed evenly amongst them.
The correlation resource adaptor entity will raise an alarm if there are no correlation ID pools configured, or if there are configuration errors with the correlation ID pools. |
Field name | Expected value |
---|---|
AddressPrefixes |
The MCC and MNC. If deploying rhino as a cluster this should be one entry for each cluster. |
NodeIds |
The rhino cluster ids |
IsPreconfiguredCorrelationIdSetUsed |
false |
PreconfiguredCorrelationIdSet |
null |
MinCorrelationIDInCluster |
The first possible fake IMSI. The MCC and MNC (the first 5 or 6 digits) must be the same as defined in |
MaxCorrelationIDInCluster |
The last possible fake IMSI. The MCC and MNC (the first 5 or 6 digits) must be the same as defined in |
CorrelationIDNumberOfDigits |
The number of IMSI digits depending on the network. Maximum number is 15 |
CorrelationIDRangePerNode |
Number of the fake IMSIs per cluster node |
If a change is made to the profile, the following command to activate the changes:rhino-console updateraentityconfigproperties ipsmgw-correlation-ra
|
Ensuring that Correlation IDs have the appropriate number of digits
The correlation RA will always return a value with the size specified in CorrelationIDNumberOfDigits
by padding zeros.
The proper configuration is to have the number of digits
in MinCorrelationIDInCluster
and MaxCorrelationIDInCluster
to be equal to CorrelationIDNumberOfDigits
.
In the following example, the number of digits is 10, and both the min and max values have 10 digits.
-
AddressPrefixes = 64452
-
CorrelationIDNumberOfDigits = 10
-
MinCorrelationIDInCluster = 6445200000
-
MaxCorrelationIDInCluster = 6445299999
There are two possible configuration options for correlation ID pools.
A prescribed set of IDs for each node
Defines the prescribed correlation IDs for each node in the following way:
-
NodeIds[0]
—PreconfiguredCorrelationIdSet[0]
which is a ‘:’ separated string containing all the correlation IDs forNodeIds[0]
-
NodeIds[1]
—PreconfiguredCorrelationIdSet[1]
which is a ‘:’ separated string containing all the correlation IDs forNodeIds[1]
-
etc.
‘:’ is used as a separator and not to specify a range. For example, to specify IDs 123 , 124 , 125 and 126 use a value of 123:124:125:126 .
|
A range of correlation IDs (min, max) for each node
Defines the range of values used in each node in conjunction with the NodeIds
attribute in the following way:
-
The node whose identifier is
NodeIds[i]
has a range of values ofCorrelationIDRangePerNode[i]
-
Each cluster has a range of CorrelationIDs defined by:
[MinCorrelationIDInCluster, MaxCorrelationIDInCluster]
These values are allocated to the different cluster nodes in the following way:
-
NodeIds[0]
—[MinCorrelationIDInCluster … MinCorrelationIDInCluster + CorrelationIDRangePerNode[0]]
-
NodeIds[1]
—[MinCorrelationIDInCluster + CorrelationIDRangePerNode[0] + 1 … MinCorrelationIDInCluster + +CorrelationIDRangePerNode[0] + 1 + CorrelationIDRangePerNode[1]]
-
etc.
The maximum number of correlation IDs defined in the range is 1,000,000.
Provisioning Interfaces
The Correlation RA configuration and ID pools are provisioned using the Sentinel REST API or web interface.
Monitoring Correlation RA entity statistics
Each Correlation RA entity collects the following statistics that may be monitored via the Rhino statistics client.
Counters
Name | Description |
---|---|
|
Count of correlation IDs which have been requested via findCorrelationEntry() |
|
Count of correlation queries which returned immediately (synchronous delivery) as the local RA had the data available. |
|
Count of correlation queries which did not return immediately (asynchronous delivery) as the local RA did not have the data available. |
|
Count of correlation queries which required delivering data to another correlation RA instance. |
|
Count of correlation queries which could not be remotely delivered as the destination RA for a correlation ID was unknown. |
In addition to the above statistics there are additional statistics use by Generate MT Correlation Id as the Generate MT Correlation Id feature uses the Correlation RA.
The count correlationGets should equal the sum of localGets + remoteGets .
These statistics can use used to create threshold-based alarms.
|