PDU Session Release
This MR implements end-to-end PDU Session Release functionality
according to 3GPP TS 38.413 and TS 38.331 specifications.
Reason for Change Previous implementation had incomplete and wrongly
places tunnel cleanup during PDU session release. UP cleanup shall be
done at CUUP, RRCReconfiguration shall be sent after retrieval of
updated CellGroupConfig from the DU. This implies F1 and E1 exchanges
during PDU session release procedure.
Major Changes:
1. RRC PDU Session Release: DRBs and PDU session teardown in NGAP PDU
Session Release Response callback
- Helper Functions: Introduced rm_pduSession,
find_drb_by_pdusession_id and rm_drbs() helpers to locate and clean
up DRBs linked to a specific PDU session
- Targeted Cleanup: RRC PDU Session and per-session DRB removal in
rrc_gNB_send_NGAP_PDUSESSION_RELEASE_RESPONSE()
- Status Cleanup: Removed unused PDU_SESSION_STATUS_RELEASED status
2. RRC PDU Session Release: Refactor
rrc_gNB_process_NGAP_PDUSESSION_RELEASE_COMMAND
- Any PDU session in the pdusession_release_params list that is
present in the RRC list can be set to release, regardless of its
status
- Function Signature Update: Updated function signature and other
minor changes
- Response Handling: rrc_gNB_send_NGAP_PDUSESSION_RELEASE_RESPONSE is
sent upon completion of RRCReconfiguration
3. RRC PDU Session Release: add missing procedures E1AP Integration:
- Populates E1AP Bearer Modification for each to be released session
- PDCP Enhancement: Added nr_pdcp_release_drbs() to remove all DRBs
linked to a given PDU session in CUUP
- GTP-U Cleanup: GTP tunnel teardown handled in CUUP
e1_bearer_context_modif() using correct F1 or N3 GTP instance
4. NR PDCP/GTP:
- Enhanced Tunnel Deletion Logic: Separate handling for N3 tunnels (1
per PDU session) and F1-U tunnels (1 per DRB)
- New PDCP API Function: Added nr_pdcp_get_drb_ids_for_pdusession()
function to retrieve all DRB IDs associated with a specific PDU
session
5. RRC PDU Session Release: F1AP-based UE Context Modification:
- Replaced direct RRC message transfer with F1AP UE Context
Modification Request for proper retrieval from DU
- Cell Group Configuration: handling of updated CellGroupConfig from
DU ensures DRB release at CU
6. Docs and testing:
- Added PDU session add/remove test cases to 25 PRB RFSIM pipeline
- Documentation: Added PDU Session Release sequence diagram
- Telnet Commands: Added ci command to trigger NGAP PDU Session
Release and ciUE command to trigger establishment of a new PDU
Session
7. Additional fixes:
- UE RLC Management: ensure release of RLC entities
- Unify NG delay control before calling the RRC NGAP handler, for both
Setup and Release
8. Code Cleanup: Cleaned up unused GTP teardown functions.
Closes #867
187 lines
6.8 KiB
XML
187 lines
6.8 KiB
XML
<!--
|
|
|
|
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
|
contributor license agreements. See the NOTICE file distributed with
|
|
this work for additional information regarding copyright ownership.
|
|
The OpenAirInterface Software Alliance licenses this file to You under
|
|
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
|
except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.openairinterface.org/?page_id=698
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
|
|
For more information about the OpenAirInterface (OAI) Software Alliance:
|
|
contact@openairinterface.org
|
|
|
|
-->
|
|
<testCaseList>
|
|
<htmlTabRef>rfsim-5gnr-fdd-u0-25prb</htmlTabRef>
|
|
<htmlTabName>VNF-PNF nFAPI FDD u0 25PRB gNB</htmlTabName>
|
|
<htmlTabIcon>wrench</htmlTabIcon>
|
|
<TestCaseRequestedList>
|
|
111111
|
|
800813
|
|
000001
|
|
000002
|
|
000003
|
|
020001
|
|
020002
|
|
000004
|
|
020003
|
|
030001
|
|
030002
|
|
050001
|
|
050002
|
|
050003
|
|
020001
|
|
020002
|
|
100001
|
|
222222
|
|
</TestCaseRequestedList>
|
|
<TestCaseExclusionList></TestCaseExclusionList>
|
|
|
|
<testCase id="111111">
|
|
<class>Pull_Local_Registry</class>
|
|
<desc>Pull Images from Local Registry</desc>
|
|
<node>localhost</node>
|
|
<images>oai-gnb-asan oai-nr-ue-asan</images>
|
|
</testCase>
|
|
<testCase id="800813">
|
|
<class>Create_Workspace</class>
|
|
<desc>Create new Workspace</desc>
|
|
<node>localhost</node>
|
|
</testCase>
|
|
<testCase id="000001">
|
|
<class>Deploy_Object</class>
|
|
<desc>Deploy OAI 5G CoreNetwork</desc>
|
|
<node>localhost</node>
|
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_u0_25prb</yaml_path>
|
|
<services>mysql oai-amf oai-smf oai-upf oai-ext-dn</services>
|
|
</testCase>
|
|
|
|
<testCase id="000002">
|
|
<class>Deploy_Object</class>
|
|
<desc>Deploy OAI 5G VNF+PNF+nrUE RF sim SA</desc>
|
|
<node>localhost</node>
|
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_u0_25prb</yaml_path>
|
|
<services>oai-vnf oai-pnf oai-nr-ue</services>
|
|
</testCase>
|
|
|
|
<testCase id="000003">
|
|
<class>Attach_UE</class>
|
|
<desc>Attach OAI UE (Wait for IP)</desc>
|
|
<id>rfsim5g_ue</id>
|
|
<node>localhost</node>
|
|
</testCase>
|
|
|
|
<testCase id="020001">
|
|
<class>Ping</class>
|
|
<desc>Ping ext-dn from NR-UE</desc>
|
|
<id>rfsim5g_ue</id>
|
|
<node>localhost</node>
|
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
|
<svr_node>localhost</svr_node>
|
|
<ping_args>-c 20 -i 0.25</ping_args>
|
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
|
</testCase>
|
|
|
|
<testCase id="020002">
|
|
<class>Ping</class>
|
|
<desc>Ping NR-UE from ext-dn</desc>
|
|
<id>rfsim5g_ext_dn</id>
|
|
<node>localhost</node>
|
|
<svr_id>rfsim5g_ue</svr_id>
|
|
<svr_node>localhost</svr_node>
|
|
<ping_args>-c 20 -i 0.25</ping_args>
|
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
|
</testCase>
|
|
|
|
<testCase id="000004">
|
|
<class>Attach_UE</class>
|
|
<desc>Verify 2nd PDU session is up</desc>
|
|
<id>rfsim5g_ue_pdu_2</id>
|
|
<node>localhost</node>
|
|
</testCase>
|
|
|
|
<testCase id="020003">
|
|
<class>Ping</class>
|
|
<desc>Ping ext-dn from NR-UE on PDU session ID 2</desc>
|
|
<id>rfsim5g_ue_pdu_2</id>
|
|
<node>localhost</node>
|
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
|
<svr_node>localhost</svr_node>
|
|
<ping_args>-c 20 -i 0.25</ping_args>
|
|
<ping_packetloss_threshold>5</ping_packetloss_threshold>
|
|
</testCase>
|
|
|
|
<testCase id="030001">
|
|
<class>Iperf</class>
|
|
<desc>Iperf (DL/3Mbps/UDP)(20 sec)</desc>
|
|
<iperf_args>-u -b 3M -t 20 -R</iperf_args>
|
|
<id>rfsim5g_ue</id>
|
|
<node>localhost</node>
|
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
|
<svr_node>localhost</svr_node>
|
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
|
</testCase>
|
|
|
|
<testCase id="030002">
|
|
<class>Iperf</class>
|
|
<desc>Iperf (UL/1Mbps/UDP)(20 sec)</desc>
|
|
<iperf_args>-u -b 1M -t 20</iperf_args>
|
|
<id>rfsim5g_ue</id>
|
|
<node>localhost</node>
|
|
<svr_id>rfsim5g_ext_dn</svr_id>
|
|
<svr_node>localhost</svr_node>
|
|
<iperf_packetloss_threshold>5</iperf_packetloss_threshold>
|
|
<iperf_bitrate_threshold>90</iperf_bitrate_threshold>
|
|
</testCase>
|
|
|
|
<testCase id="050001">
|
|
<class>Custom_Command</class>
|
|
<desc>Trigger PDU Session Release via gNB telnet</desc>
|
|
<node>acamas</node>
|
|
<command>echo ci pdu_session_release 2 | ncat 192.168.71.140 9090</command>
|
|
</testCase>
|
|
|
|
<testCase id="050002">
|
|
<class>Custom_Command</class>
|
|
<desc>Add PDU Session via UE telnet</desc>
|
|
<node>acamas</node>
|
|
<command>echo ci add_pdu_session 6,7 | ncat 192.168.71.150 8091</command>
|
|
</testCase>
|
|
|
|
<testCase id="050003">
|
|
<class>Custom_Command</class>
|
|
<desc>Trigger PDU Session Release via gNB telnet</desc>
|
|
<node>acamas</node>
|
|
<command>echo ci pdu_session_release 6 | ncat 192.168.71.140 9090</command>
|
|
</testCase>
|
|
|
|
<testCase id="100001">
|
|
<class>Undeploy_Object</class>
|
|
<always_exec>true</always_exec>
|
|
<desc>Undeploy all OAI 5G stack</desc>
|
|
<node>localhost</node>
|
|
<yaml_path>ci-scripts/yaml_files/5g_rfsimulator_u0_25prb</yaml_path>
|
|
<d_retx_th>1,0,0,0</d_retx_th>
|
|
<u_retx_th>1,0,0,0</u_retx_th>
|
|
</testCase>
|
|
|
|
<testCase id="222222">
|
|
<class>Clean_Test_Server_Images</class>
|
|
<always_exec>true</always_exec>
|
|
<desc>Clean Test Images on Test Server</desc>
|
|
<node>localhost</node>
|
|
<images>oai-gnb-asan oai-nr-ue-asan</images>
|
|
</testCase>
|
|
|
|
</testCaseList>
|