Mobile

PCRF Stale Message Handling Enhancements

Feature Summary and Revision History

Table 1. Summary Data

Applicable Product(s) or Functional Area

CPS

Applicable Platform(s)

Not Applicable

Default Setting

Disabled - Configuration Required

Related Changes in This Release

Not Applicable

Related Documentation

CPS Mobile Configuration Guide

Table 2. Revision History

Revision Details

Release

First introduced

20.2.0

Feature Description

CPS now supports enhancements to PCRF stale message handling. This feature enables CPS application to act according to the configuration when request processing crosses the given SLA time period for the incoming request. When the feature is enabled the request or responses which are crossing the configured SLA are dropped.

For more information, see Stale Session Message Handling Configuration section in the CPS Mobile Configuration Guide.

Support for Encoding Format

Feature Summary and Revision History

Table 3. Summary Data

Applicable Product(s) or Functional Area

CPS

Applicable Platform(s)

Not Applicable

Default Setting

Disabled - Configuration Required

Related Changes in This Release

Not Applicable

Related Documentation

CPS Mobile Configuration Guide

Table 4. Revision History

Revision Details

Release

First introduced

20.2.0

Feature Description

CPS now supports encoding of the Monitoring key present in ChargingPreconfiguredRule based on the flag Encoding Format Source configured in TableDrivenCharingRule (or) Encoding Format flag configured in PreConfiguredRule.

For more information, see PreConfiguredRule and TableDrivenChargingRule sections in the CPS Mobile Configuration Guide.

Support for JMS Queue Monitoring

Feature Summary and Revision History

Table 5. Summary Data

Applicable Product(s) or Functional Area

CPS

Applicable Platform(s)

Not Applicable

Default Setting

Enabled - Always-on

Related Changes in This Release

Not Applicable

Related Documentation

Not Applicable

Table 6. Revision History

Revision Details

Release

First introduced

20.2.0

Feature Description

CPS now supports monitoring of JMS related statistics in Prometheus/Graphite databases for reporintg in Grafana. In addition to JMS statistics, JVM related statistics exported by Policy Director (LB)/Policy Server (QNS) nodes are also available for reporting.

The following JMS related statistics are added:

  • node1.jms.PolicyEngineJmsSender.qns_jms_senders.MessagesSentCount

  • node1.jms.PolicyEngineJmsReceiver-Cluster.qns_jms_receivers.MessagesReceived

  • node1.jms.PolicyActionJmsSender.qns_jms_receivers.MessagesSentCount

  • node1.jms.PolicyActionJmsReceiver-Global.qns_jms_receivers.MessagesReceived

  • node1.jms.FlowControl.qns_jms_flowcontrols.NumberOfFlowControlledMessages

  • node1.jms.FlowControl.qns_jms_flowcontrols.QueueSize

  • node1.jms.FlowControl.qns_jms_flowcontrols.QueueSizeLimit

The following JVM related statistics are added:

  • node[x].classes.gauge-loaded_classes

  • node[x].classes.gauge-unloaded_classes

  • node[x].thread.gauge-daemon_thread_count

  • node[x].thread.gauge-live_thread_count

  • node[x].thread.gauge-peak_live_thread_count

  • node[x].thread.gauge-total_started_thread_count

  • node[x].gc-ConcurrentMarkSweep.invocations

  • node[x].gc-ConcurrentMarkSweep.total_time_in_ms-collection_time

  • node[x].gc-ParNew.invocations

  • node[x].gc-ParNew.total_time_in_ms-collection_time

  • node[x].gc-PS_MarkSweep.invocations

  • node[x].gc-PS_MarkSweep.total_time_in_ms-collection_time

  • node[x].gc-PS_Scavenge.invocations

  • node[x].gc-PS_Scavenge.total_time_in_ms-collection_time

For more information on statistics, see Statistics/KPI Additions or Changes.

Support for Large Sessions

Feature Summary and Revision History

Table 7. Summary Data

Applicable Product(s) or Functional Area

CPS

Applicable Platform(s)

Not Applicable

Default Setting

Enabled – Configuration Required

Related Changes in This Release

Not Applicable

Related Documentation

Not Applicable

Table 8. Revision History

Revision Details

Release

First introduced

20.2.0

Feature Description

Previous Behavior: Currently, when CPS receives multiple application starts for one flow without the application stop, an AppInstanceId is also received by the CPS and is maintained in the list for each flow in the session object.

When the application start exceeds the maximum short value 32,767 for one flow, the list capacity is over-rolled and CPS system was unable to parse the subscriber session record from MongoDB object in the application resulted in the “Illegal Capacity -32768” exception and request failure.

New Behavior: In this release:

  • For the existing subscriber sessions in MongoDB which are having AppInstanceIdList more than the capacity, CPS cannot deserialize and logs the ERROR message with sessionId information.

  • For the existing subscriber session in MongoDB which are having AppInstanceIdList more than 10 and less than the capacity, CPS deserializes subscriber session successfully and considers only last pre-configured capacity AppInstanceId in the session loading.

  • The AppInstanceIdList capacity is configurable. A new parameter -DappInstanceIdListCapacity is added in qns.conf file to decide the capacity of the AppInstanceIdList. The AppInstanceIdList contains the AppInstanceIds that are present in the subscriber session.

    The following are the conditions:

    • If the parameter value is configured <=0, then the list size is set to 10

    • If the parameter value is configured > short.MAX_VALUE (32767), then the list size is set to 32766.

    • If the parameter is not configured, the list size is set to the default value of 10.

  • For new subscriber session records, the AppInstanceIdList will not grow beyond beyond the configured value for the AppInstanceIdList. CPS maintains only the latest AppInstanceIds in the list according to the list size capacity that is set in the configuration. Older entries are removed/ignored.

Upgrade/Migration/Backward Compatibility

By default, the feature is enabled and cannot be disabled. For the subscriber sessions having AppInstanceIdList size more than the configured capacity and less than the total capacity, only latest configured list size of the AppInstanceId entries are maintained and then forwarded.

Fresh Installation

During the fresh installation with the changes implemented, when there is a new subscriber session, the new appInstanceIds will be added to the AppInstanceIdList.

This AppInstanceIdList will store only 10 appInstanceIds which is a default size of the list.

If there are more than the configured value of the appInstanceIds as part of the session, the list will restore only the latest appInstanceIds entries which are allowed.

Support for LDAP/IOMGR Overload Handling

Feature Summary and Revision History

Table 9. Summary Data

Applicable Product(s) or Functional Area

CPS

Applicable Platform(s)

Not Applicable

Default Setting

Enabled – Configuration Required

Related Changes in This Release

Not Applicable

Related Documentation

Contact your Cisco Account representative

Table 10. Revision History

Revision Details

Release

First introduced

20.2.0

Feature Description

CPS now supports limiting the queue size and detect stale messages in the queue (SLA) for LDAP requests in IOMGR. Also, CPS now has the ability to apply default policy during IOMGR overload and fetch LDAP profile information when IOMGR overload stops.

To support this, you need to configure ldap.request.queue.size and ldap.profile.overload.refreshtime.mins parameters in /etc/broadhop/qns.conf file.

Queue size should have less value if there is very high latency in network but it is recommended to keep with default (10000) value.

For more information on qns.conf parameters, contact your Cisco Account representative.

Support for Real Time Notification when Rollover Occurs

Feature Summary and Revision History

Table 11. Summary Data

Applicable Product(s) or Functional Area

CPS

Applicable Platform

Not Applicable

Default Setting

Disabled – Configuration Required

Related Changes in This Release

Not Applicable

Related Documentation

CPS Mobile Configuration Guide

Table 12. Revision History

Revision Details

Release

First introduced

20.2.0

Feature Description

CPS supports sending Real-Time Notification when rollover occurs and the subscriber session is active. To support Real-Time notification, a new condition, A MSBMRolloverQuota exists is added.


Note

The number of real time notifications depends on the number of RAR generated by the Policy Server (QNS) VM. If you need to increase the number of realtime notification, Max Timer T P S (under Cluster in Policy Builder) value has to be tuned accordingly. For more information, contact your Cisco Account representative.



Note

An active Gy session should be present for balance transactions to be done on Gy. For balance transactions to be done on Gx, an active Gx session should be present.


The following attributes are present in the notification:

  • IMSI

  • Service ID

  • Balance ID

  • Quota ID

  • Leftover amount that was rolled over

  • Rollover Date

When rollover occurs for different rollover quotas (for same subscriber) at the same time, CPS sends a single notification with Quota ID as comma separated and consolidated roll-over amount. Rollover Date is the first start date among all rollovers happening at that time.

When multiple recurring quotas are mapped to different rollover quotas and rollover happens at different times (for example, different billcycle/expiration date), then notifications are sent individually.

CPS sends “rollover amount” in bytes.

For more information, see A MSBMRolloverQuota exists section in the CPS Mobile Configuration Guide.

The following new statistics are added:

  • node[x].actions.ISendRealTimeNotificationRequest.qns_stat.avg

  • node[x].actions.ISendRealTimeNotificationRequest.qns_stat.error

  • node[x].actions.ISendRealTimeNotificationRequest.qns_stat.success

  • node[x].actions.ISendRealTimeNotificationRequest.qns_stat.total_time_in_ms

  • node[x].counters.r.n_<realtime_notification_template_name>_fail.qns_count

  • node[x].counters.r.n.f_<realtime_notification_template_name>_fail.qns_count

  • node[x].counters.r.n_<realtime_notification_template_name>_success.qns_count

  • node[x].counters.r.n.f_<realtime_notification_template_name>_success.qns_count

For more information on statistics, see Statistics/KPI Additions or Changes.

Configuration Considerations


Note

All configurations mentioned below are applicable for 30 TPS per QNS. For more information, contact your Cisco Account representative.


  • Max Timer T P S: Specifies the maximum number of internally generated transactions per second (TPS) the system produces. This parameter affects the RAR generated by CPS when they are triggered by an internal time event (change of time or quota refresh). The number of realtime notifications generated per second directly depends upon the RAR’s generated by the QNS per second. Tune this parameter as per the customer requirements.

    For more information, see Cluster Parameters table in the CPS Mobile Configuration Guide.

  • Recurring Refresh Max Delay (minutes): The amount of time refreshing of recurring quotas are staggered across randomly, for sessions that are not actively using quota but are still established.

    This parameter is used in cases where subscribers always have a session, but is not using their quota actively. This allows staggering of recurring refreshes where you have set all their subscribers to refresh at the same time, say midnight. It avoids spiking the CPU.

    For more information, see Balance Configuration Parameters table in the CPS Mobile Configuration Guide.

  • Async Threading Configuration: Adding specific configuration for realtime notification action prevents impact on other action threads.

    • Action Name: com.broadhop.notifications.actions.ISendRealTimeNotificationRequest”

    • Action Threads: Number of threads used to handle the notification messages in Policy Director (LB) VMs.

    • Action Queue Size: To hold the messages in the queue until other messages are sent.


    Note

    Generating realtime notification is done on the IOManager process running on Policy Director (LB). Notifications that are generated are submitted to the queue. Process pickups entry in the queue and sends it to the remote server. Since, it’s an asynchronous operation, the TPS of realtime notification is not uniform (in Grafana).


    For more information, see Async Threading Configuration section in the CPS Mobile Configuration Guide.

  • qns.conf Parameters:

    • -Dbalance.recurring.refresh.broadcast=true: Generates RAR messages on balance refresh and rollover events.

    • -DrealtimeNotification.disableHttpPooling=true: Increases the throughput of realtime notification messages that goes out.

    For more information on qns.conf parameters, contact your Cisco Account representative.

Limitations

CPS does not send notification in the following scenarios:

  • If there is no active session and quota refresh time has crossed, then the quota refresh and rollover happens on the next CCR-I.

  • When rollover quota is created manually through CreateBalance API, Real-Time notification is not triggered.

  • When rollover occurs through RolloverCredit API, Real-Time notification is not triggered.

Support for Secondary Keys Tag Padding

Feature Summary and Revision History

Table 13. Summary Data

Applicable Product(s) or Functional Area

CPS

Applicable Platform

Not Applicable

Default Setting

Enabled – Configuration Required

Related Changes in This Release

Not Applicable

Related Documentation

CPS Mobile Configuration Guide

Table 14. Revision History

Revision Details

Release

First introduced

20.2.0

Feature Description

CPS is enhanced to provide the MongoDB subscriber session size to remain consistent through subscriber session life cycle.

The following are the new qns.conf file parameters added:

  • max.tag.size

  • tag.padding.char

For more information on qns.conf file parameter, contact your Cisco Account representative.

The following new checkbox is added under Cluster Configuration in Policy Builder.

  • Session Tag Padding Configuration

For more information, see Adding an HA Cluster section in the CPS Mobile Configuration Guide.

The following new statistics are added:

  • node1.counters.total_tags_added

  • node1.counters.total_tags_removed

  • node1.counters.session_count_exceeding_tag_size

  • node1.counters.session_count_exceeding_predefined_number_of_tags

  • node1.counters.total_session_with_padding

  • node1.counters.total_session_without_padding

  • indexSize

  • storageSize

  • fileSize

For more information on statistics, see Statistics/KPI Additions or Changes.

Support for Separate Database Collections

Feature Summary and Revision History

Table 15. Summary Data

Applicable Product(s) or Functional Area

CPS

Applicable Platform(s)

Not Applicable

Default Setting

Disabled - Configuration Required

Related Changes in This Release

Not Applicable

Related Documentation

CPS Mobile Configuration Guide

Table 16. Revision History

Revision Details

Release

First introduced

20.2.0

Feature Description

CPS now provides support for database collections to store the engine error logging and subscriber specific tracing data. The following parameter is added to cluster in Policy Builder.

  • Suppress Error Audit Traces To Trace DB

For more information, see Adding HA Cluster section in the CPS Mobile Configuration Guide.

Support for Session ID Handling

Feature Summary and Revision History

Table 17. Summary Data

Applicable Product(s) or Functional Area

CPS

Applicable Platform(s)

Not Applicable

Default Setting

Disabled - Configuration Required

Related Changes in This Release

Not Applicable

Related Documentation

CPS Mobile Configuration Guide

Table 18. Revision History

Revision Details

Release

First introduced

20.2.0

Feature Description

CPS now provides support to parse part of the Diameter session-Id attributes and store them in session AVP. Session Id Handling Configuration option is introduced under Diameter Configuration in Policy Builder.

For more information, see Diameter Configuration section in the CPS Mobile Configuration Guide.

Support for SLA based Policy Director Queue Buffers

Feature Summary and Revision History

Table 19. Summary Data

Applicable Product(s) or Functional Area

CPS

Applicable Platform(s)

Not Applicable

Default Setting

Disabled - Configuration Required

Related Changes in This Release

Not Applicable

Related Documentation

Contact your Cisco Account representative

Table 20. Revision History

Revision Details

Release

First introduced

20.2.0

Feature Description

CPS can now handle the surge of traffic without overloading JVM memory when multiple simultaneous connections from diameter exists.

CPS now:

  • Supports SLA based queue which expires and discards messages exceeding configured threshold value. If the rate of messages discarded exceeds configured threshold, then CPS generates Disconnect Peer Request to indicate some downstream bottleneck in handling burst of messages.

  • Can apply queue threshold independently to inbound and outbound peers individually.

  • Has the option to disable and fallback to legacy diameter per peer processing.

The following is the list of new qns.conf file parameters added:

  • enable.send.receive.queue.ttl

  • receive.peer.queue.ttl.ms

  • send.peer.queue.ttl.ms

  • max.discard.tps

For more information on qns.conf file parameters, contact Cisco Account representative.

The following new statistics has been added:

  • rcv_ttl_drop_<fqdn>

  • send_ttl_drop_<fqdn>

For more information on statistics, see Statistics/KPI Additions or Changes.

Memory and Performance Impact

SLA based diameter LB queue provides better management of JVM memory and avoids OOM conditions. However, tracking of messages for SLA requires more CPU compared to legacy ThreadPoolExecutor based diameter LB queue.

Limitations

The feature should not be enabled in either of the following deployments:

  • Deployment connecting to CPS over DRA which consolidates multiple diameter peers thus reducing number of peers which are connected to Policy Director (LB).

  • ZING based Policy Director (LB) deployments which use sufficiently large JVM memory.

Support to Align Rollover Quota Validity Period With Recurring Quota Billing Cycle

Table 21. Summary Data

Applicable Product(s) or Functional Area

CPS

Applicable Platform(s)

Not Applicable

Default Setting

Disabled - Configuration Required

Related Changes in This Release

Not Applicable

Related Documentation

CPS Mobile Configuration Guide

Table 22. Revision History

Revision Details

Release

First introduced

20.2.0

Feature Description

CPS is enhanced to support aligning Rollover Quota validity period with the Recurring Quota bill cycle. The following checkbox is provided in Policy Builder under Recurring Quota Template:

  • Align ROQ Validity Period With RQ BillCycle

For more information, see Recurring Quota Templates Parameters table in the CPS Mobile Configuration Guide.