[Bug]: Core Responds With Partial-handover On NG Handover When Second DNN Is Not Provisioned
Introduction
In the realm of mobile network technology, ensuring seamless handover processes is paramount for maintaining uninterrupted connectivity. Handover, the procedure of transferring an ongoing call or data session from one base station to another without disrupting the service, is a critical function, especially in the evolving landscape of 5G networks. This article delves into a specific bug encountered in the Open5GS core network, version 2.7.5, where the core responds with a Partial-handover during an NG handover scenario when a second Data Network Name (DNN) is not provisioned. This issue can lead to service disruptions and a degraded user experience, making it essential to understand the root cause, observed behavior, and expected outcomes.
The intricacies of 5G network architecture, with its support for multiple DNNs and diverse service requirements, introduce complexities in handover management. When a User Equipment (UE) requests multiple DNNs, the network must efficiently handle the establishment and maintenance of these sessions during mobility events. A failure to do so, as highlighted by this bug, can result in partial handovers, where only a subset of the established sessions are successfully transferred to the target base station. This not only affects the UE's ability to access specific services but also reflects on the overall reliability and robustness of the network.
This article will explore the steps to reproduce the bug, the observed behavior, and the expected behavior, providing a comprehensive analysis of the issue. By understanding the nuances of this problem, network operators and developers can take proactive measures to mitigate the risk of partial handovers and ensure a smooth transition for users as they move within the network. The insights shared here are crucial for maintaining the high standards of service quality and reliability that users expect from modern mobile networks.
Background on DNN and Handover in 5G
To fully grasp the implications of this bug, it is essential to understand the concepts of Data Network Names (DNNs) and Next Generation (NG) handovers within the context of 5G networks. A DNN is essentially a logical name that identifies a specific Packet Data Network (PDN) or service that a UE can connect to. In 5G, DNNs play a crucial role in network slicing, allowing operators to differentiate and isolate network resources for various services, such as enhanced Mobile Broadband (eMBB), Ultra-Reliable Low Latency Communications (URLLC), and massive Machine Type Communications (mMTC). Each DNN can be associated with different network configurations, Quality of Service (QoS) requirements, and security policies, enabling the network to cater to a diverse range of applications and user needs.
NG handovers, on the other hand, refer to the process of transferring a UE's connection from one gNodeB (5G base station) to another within the 5G network. This process is critical for maintaining service continuity as the UE moves throughout the coverage area. A successful NG handover ensures that the UE's established PDU sessions, including those associated with different DNNs, are seamlessly transferred to the target gNodeB without any interruption. The 5G core network plays a pivotal role in orchestrating this process, coordinating between the source and target gNodeBs to ensure a smooth transition.
The complexity arises when a UE has established multiple PDU sessions, each associated with a different DNN. In such scenarios, the handover procedure must ensure that all active sessions are correctly transferred to the target gNodeB. If a DNN is not provisioned or if there are discrepancies in the network configuration, the handover process may fail partially, leading to some sessions being dropped while others are successfully transferred. This is precisely the issue highlighted in the bug report, where the core responds with a Partial-handover when a second DNN is not provisioned, resulting in a degraded user experience and potential service disruptions.
Understanding the interplay between DNNs and NG handovers is crucial for troubleshooting and resolving such issues. By examining the network configuration, UE provisioning, and the handover signaling messages, it is possible to identify the root cause of the problem and implement appropriate solutions. The next sections will delve into the specific steps to reproduce the bug, the observed behavior, and the expected outcome, providing a detailed analysis of this critical issue in 5G core networks.
Steps to Reproduce the Bug
Reproducing a bug in a controlled environment is the first step towards understanding and resolving it. In this case, the bug occurs during an NG handover when a User Equipment (UE) requests two Data Network Names (DNNs), but only one is provisioned in the core network. The following steps outline the process to reproduce this bug:
- Provision the UE SIM with only one PDU (“internet”): This initial step is crucial as it sets the stage for the bug to occur. The Subscriber Identity Module (SIM) of the UE is configured to allow access to only one specific DNN, in this case, named “internet.” This means that the core network will only recognize and authorize connections to this particular network slice or service.
- Have the UE attempt to establish two PDU sessions by requesting DNNs “internet” and “other”: The next step involves the UE attempting to establish two simultaneous connections to the network. It requests access to the “internet” DNN, which is provisioned, and another DNN named “other,” which is not provisioned in the core network. This disparity is key to triggering the bug. The UE's request for two DNNs simulates a scenario where a user might be trying to access multiple services or applications, each requiring a separate network connection.
- Observe that only “internet” is successfully established; the second fails: As expected, the core network will only establish a Packet Data Unit (PDU) session for the “internet” DNN since it is the only one provisioned for the UE. The attempt to establish a PDU session for the “other” DNN will fail. This behavior is normal, as the core network is designed to reject requests for non-provisioned DNNs. However, the subsequent handover process is where the bug manifests.
- Trigger an NG handover of the UE: Once the UE has an active PDU session for the “internet” DNN, an NG handover is initiated. This can be done by simulating a mobility event, such as the UE moving from one gNodeB (5G base station) to another. The handover process is intended to seamlessly transfer the active PDU session to the target gNodeB without any interruption. However, in this scenario, the presence of a failed DNN request complicates the handover process.
- Capture core messages/trace: During the handover process, it is essential to capture the signaling messages exchanged between the UE, the gNodeBs, and the core network. Tools like Wireshark can be used to capture and analyze these messages. The captured trace will provide valuable insights into the handover procedure and reveal the point at which the Partial-handover response is triggered. By examining the messages, it is possible to pinpoint the exact cause of the bug and understand how the non-provisioned DNN request affects the handover process.
By following these steps, network engineers and developers can consistently reproduce the bug and gather the necessary information to diagnose and fix it. The next sections will discuss the expected and observed behaviors, providing a clearer picture of the issue and its potential impact.
Expected Behavior
In a well-functioning 5G core network, the handover process should be robust enough to handle various scenarios, including those where a User Equipment (UE) requests multiple Data Network Names (DNNs), but only some are successfully established. The expected behavior in the scenario described is that even if a non-provisioned DNN request fails, an NG handover with only the successfully established session should complete with a