GGSN UPC Collision Handling
Feature Description
In StarOS 14.0 and earlier, during collision between SGSN initiated UPC request and GGSN Initiated UPC request, pre-defined rules were activated at GGSN without waiting for network requested UPC (NRUPC) response and there were no packet drops.
From StarOS release 15.0 onward, predefined rules were activated only on receiving NRUPC response at GGSN and not in case of collision. This resulted in packet drops.
In StarOS 20.0, the GGSN UPC Collision Handling feature addresses the problem of packet drops. During collision between SGSN initiated UPC request and GGSN initiated UPC Request, SGSN initiated UPC request gets higher priority over NRUPC and there is no call or data loss during call establishment or during mid-call phase. This feature can be enabled or disabled using a CLI and is enabled by default.
How It Works
-
Predefined rules were activated at GGSN without waiting for network requested UPC (NRUPC) response.
-
SGSN initiated UPCReq was received at GGSN before NRUPC response (collision).
-
SGSN initiated UPCReq aborted the NRUPC.
-
Session manager (SM) did not send failure message to ECS.
-
However, the predefined rules were already activated at GGSN (without waiting for NRUPC response). Hence, there were no packet drops.
From StarOS release 15.0 onward, predefined rules were activated only on receiving NRUPC response at GGSN and were not activated in case of collision. There was no static catch-all rule defined in rulebase. This caused packet drops.
In StarOS 20.0, the GGSN UPC Collision Handling feature addresses the problem of packet drops. During collision between SGSN initiated UPC request and GGSN initiated UPC Request, SGSN initiated UPC request gets higher priority over NRUPC and there is no call or data loss during call establishment or during mid-call phase. This feature can be enabled or disabled using a CLI and is enabled by default.
-
When GGSN detects collision between SGSN initiated UPC request and NRUPC on primary PDP context, NRUPC is retried (with different sequence number) after sending UPC Response.
-
When GGSN detects collision between SGSN initiated UPC request for Inter-SGSN handoff and NRUPC with TFT and after handoff BCM mode is changed from Mixed mode to MS-Only mode, NRUPC is retried (with different sequence number) after sending UPC Response, but without TFT.
-
When GGSN detects collision between an SGSN initiated UPC and a NRUPC on secondary PDP context, NRUPC is aborted and PCRF is notified. When multiple CCR-U support is not enabled on GGSN, CCR-U for aborted NRUPC (on secondary PDP context) is not informed to PCRF. In this case, PCRF will not be aware of this aborted transaction (rule failure).
Note |
During S2bGTP to LTE handoff procedure, when there is already a pending transaction and a Handoff request is received by SAE-GW, Handoff is rejected with a following message: Rejecting S2b/LTE Handoff as only one pending transaction is supported |
Limitations
-
Behavior for GnGp GGSN has been modified for this feature, in this release. Behavior for GGSN remains unaltered.
-
When NRUPC received from Direct Tunnel (due to "Direct Tunnel Error Indication") collides with SGSN initiated UPC request, NRUPC is aborted and not retried. This does not affect the functionality as, when "Direct Tunnel Error Indication" is received from access side, NRUPC is triggered again.
-
When a request for handoff to LTE is received before receiving NRUPC response, the behavior remains unchanged. In this case, the pending NRUPC request is aborted. If the NRUPC request received is for rule installation, the request remains in the pending state and the rule is not installed. As there is no static rule and the rule installation request is in pending state, the PDP context stays up without an installed rule.
Configuring GGSN UPC Collision Handling
Operators can use the Command Line Interface (CLI) to configure the collision between SGSN initiated UPC request and network initiated UPC Request.
gtpc handle-collision
This command in the service configuration mode can be used to the collision between SGSN initiated UPC request and network initiated UPC Request.
configure
context context_name
ggsn-service service_name
[ no | default ] gtpc handle-collision upc nrupc
end
configure
context context_name
pgw-service service_name
[ no | default ] gtpc handle-collision upc nrupc
end
configure
context context_name
sgw-service service_name
[ no | default ] gtpc handle-collision upc nrupc
end
configure
context context_name
saegw-service service_name
[ no | default ] gtpc handle-collision upc nrupc
end
- no: Disables collision handling between SGSN initiated UPC and NRUPC request.
- default: Sets default collision handling behavior between SGSN initiated UPC and NRUPC request. By default, collision handling is enabled.
- handle-collision upc nrupc: Enables/Disables collision handling between SGSN initiated UPC and network requested UPC. By default, collision handling is enabled.
Verifying the Configuration
exec
mode:
-
show configuration
-
show configuration verbose
Please see the Monitoring and Troubleshooting GGSN UPC Collision Handling section for the command output.
Monitoring and Troubleshooting GGSN UPC Collision Handling
The following section describes commands available to monitor GGSN UPC Collision Handling.
Show Commands for GGSN UPC Collision Handling
show configuration
This command displays the following output:
ggsn-service ggsn-service
associate gtpu-service gtpu-service
associate pgw-service pgw_service
associate peer-map map_ggsn
no gtpc handle-collision upc nrupc
show configuration verbose
This command displays the following output:
ggsn-service ggsn-service
associate gtpu-service gtpu-service
associate pgw-service pgw_service
associate peer-map map_ggsn
no gtpc handle-collision upc nrupc
show ggsn-service name service_name
This command displays the following output:
Service name: ggsn-service
Context: ingress
…
Suppress NRUPC triggered by UPC: Disabled
Collision handling for UPC-NRUPC: Enabled/Disabled
show gtpc statistics
This command displays the number of NRUPC and SGSN initiated UPC collisions happening for primary and secondary PDP context for a GGSN service. This command displays the following output:
Active Subscribers:
Total: 1
2G: 0
3G: 1
…
…
MS Info Change Reporting Messages:
MS Info Chng Notif Req: 0 Accepted: 0
Denied: 0 Discarded: 0
NRUPC UPC Collision:
Primary PDP ctxt: 3 Secondary PDP ctxt: 0
QoS negotiation:
CPC QoS Accepted: 3 CPC QoS Downgraded: 0
UPC QoS Accepted: 3 UPC QoS Downgraded: 0
show gtpc statistics [ format1 | ggsn-service service_name | verbose ]
This command displays the number of NRUPC and SGSN initiated UPC collisions happening for primary and secondary PDP context for a GGSN service. This command displays the following output:
Active Subscribers:
Total: 1
2G: 0
3G: 1
…
…
MS Info Change Reporting Messages:
MS Info Chng Notif Req: 0 Accepted: 0
Denied: 0 Discarded: 0
NRUPC UPC Collision:
Primary PDP ctxt: 3 Secondary PDP ctxt: 0
QoS negotiation:
CPC QoS Accepted: 3 CPC QoS Downgraded: 0
UPC QoS Accepted: 3 UPC QoS Downgraded: 0