SIP Registration Cache Limiting
Using SIP registration cache limiting for SIP endpoint access deployments, you can restrict the size of the SIP registration cache for the global SIP configuration.
You can implement this feature if you have been seeing issues where, either due to network failure scenarios or incorrect sizing of system capabilities, the Oracle Communications Session Border Controller and/or the SIP registrar cannot support the number of registering endpoints. Although the Oracle Communications Session Border Controller protects itself and the registrar against SIP REGISTER floods, conditions can still occur where too many legitimate endpoints attempt to register with the registrar via the Oracle Communications Session Border Controller.
By enabling SIP registration cache limiting, you restrict the number of legitimate endpoints that can register. The Oracle Communications Session Border Controller rejects any endpoints beyond the limit you set. If you do not want to use this feature, simply leave the reg-cache-limit parameter set to its default of 0, meaning there is no limit to the entries in the SIP registration cache.
When you limit the number of registered endpoints allowed in the Oracle Communications Session Border Controller’s registration cache, the Oracle Communications Session Border Controller analyzes each registration before starting to process it. First, the Oracle Communications Session Border Controller checks the contact header to determine if it is already in the list of contacts for the user. If it finds the contact in its cache list, the Oracle Communications Session Border Controller treats the registration as a refresh; it treats any other headers as new. Note that the Oracle Communications Session Border Controller checks the message prior to making any changes to the cache because it must either accept or reject the message as a whole.
The Oracle Communications Session Border Controller adds the number of new contacts to the number already present in the cache, and rejects any registration with a contact that would cause it to exceed its limit. Rejection causes the Oracle Communications Session Border Controller to send a response communicating that its registration cache is full. The default response is the 503 Registration DB-Full message, but you can use the SIP response mapping feature to use another message if required.
You can set an option in the global SIP configuration that defines the value in the Retry-After header. The Oracle Communications Session Border Controller sends this header as part of its rejection response when the registration cache is full. Another option sets the percentage of the registration cache size which, if exceeded, causes the Oracle Communications Session Border Controller to send an alarm.
About Registration Cache Additions Modifications and Removals
When it receives a REGISTER message with new contact information for a user, the Oracle Communications Session Border Controller considers it an addition to the cache and augments the number of registration cache entries. Then the Oracle Communications Session Border Controller forwards the message to the registrar, and—when and only when the registrar returns both the original and new contacts in the 200 OK—the registration cache count stays the same. However, if the registrar returns only the new contact (making this a case of modification), then the Oracle Communications Session Border Controller removes the old contact information and subtracts accordingly from the number of registration cache entries.
Thus the Oracle Communications Session Border Controller does not know whether a REGISTER might result in an addition or a modification until it receives a response from the registrar. For this reason, the Oracle Communications Session Border Controller first assumes it is to make an addition, and then updates the registration cache and count when it has the necessary information from the registrar.
The registration cache count does not reflect removals during the rejection check because the Oracle Communications Session Border Controller ignores registration messages or expires headers with their expires values set to zero when it counts new entries. The fact that removals take place after additions and modifications means that messages which remove one contact while adding another might be rejected. That is, the addition might exceed the registration cache limit before any removal can take place to make room for it.
Registration Cache Alarm Threshold
A percentage of the registration cache limit, the registration cache alarm threshold is a configurable value you can set to trigger an alarm when the registration cache is reaching its limit. When exceeded, this threshold triggers the generation of an alarm and SNMP trap. When registrations fall back beneath the threshold, the Oracle Communications Session Border Controller clears the alarm and sends a clear trap.
This alarm is Major in severity, and its text reads as follows:
Number of contacts <registration count> has exceeded the registration cache threshold <threshold %> of <registration cache limit value>.
Notes on Surrogate Registration
The Oracle Communications Session Border Controller does not, under any circumstances, reject surrogate registrations on the basis of the registration cache limit. However, surrogate registrations generate contacts, and so they do add to the global registration count. In the case where the surrogate registrations add to the registration count to the extent the count exceeds the limit you configure, you will have more registrations in the cache than the configured limit.