mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
NGAP Procedures for Xn Handover: Path Switch Request Path Switch Request Acknowledge (#194) This PR adds the following NGAP Path Switch procedures to support Xn handover in accordance with 3GPP TS 38.413v16.2.0. NGAP Path Switch Request: add encode and ITTI support - Add a case in TASK_NGAP to support ITTI message from RRC to NGAP - Add Path Switch Request message type definitions - Implement encoder for Path Switch Request (3GPP TS 38.413v16.2.0 §9.2.3.8) * RAN UE NGAP ID (M) * Source AMF UE NGAP ID (M) * User Location Information (M) * UE Security Capabilities (M) * PDU Session Resource to be Switched in Downlink List (M) - Add required ASN.1 header includes for Path Switch Request IEs NGAP Path Switch Request Acknowledge: add decode and handler - Add handler at NGAP for Path Switch Request Acknowledge from AMF - Add Path Switch Request Acknowledge message type definitions - Implement decoder for Path Switch Request Acknowledge (3GPP TS 38.413v16.2.0 §9.2.3.9) * AMF UE NGAP ID (M) * RAN UE NGAP ID (M) * Security Context (M) * PDU Session Resource Switched List (M) * Allowed NSSAI (M) - Add required ASN.1 header includes for Path Switch Request Acknowledge IEs Notes: - Added a case NGAP_PATH_SWITCH_REQ in task_ngap to support ITTI message from RRC, and this will be allocated at - RRC when the target gNB receives the RRC complete message from the UE during Xn handover. - OAI CN5G does not support any of the NGAP path switch procedures (request, ack, and failure) as of today to test Xn Handover. - We tested the procedures in an E2E setup at IISc with two gNBs in E1+F1+7.2x split containing the Xn handover code and connected to the same 5G core (used Open5GS & Aether-OnRamp separately), and also did not observe any Path Switch Failure. - The implementation of Path Switch Failure at OAI RAN will be done along with the implementation of Path Switch procedures in OAI CN5G once the XNAP integration in OAI RAN is complete. Acknowledgement: > This work has been partially carried out as part of Xn Handover development at the Indian Institute of Science (IISc), Bengaluru. Reviewed-by: Robert Schmidt <robert.schmidt@openairinterface.org> Reviewed-By: Guido Casati <guido.casati@openairinterface.org>
90 lines
2.3 KiB
C
90 lines
2.3 KiB
C
/*
|
|
* SPDX-License-Identifier: LicenseRef-CSSL-1.0
|
|
*/
|
|
|
|
|
|
#ifndef __PLATFORM_CONSTANTS_H__
|
|
#define __PLATFORM_CONSTANTS_H__
|
|
|
|
#define NL_MAX_PAYLOAD 18000 /* this should cover the max mtu size*/
|
|
|
|
#ifdef LARGE_SCALE
|
|
#define NB_MODULES_MAX 128
|
|
#else
|
|
#define NB_MODULES_MAX 32
|
|
#endif
|
|
|
|
#define MAX_IP_PACKET_SIZE 10000 // 9000
|
|
|
|
#define MAX_MODULES NB_MODULES_MAX
|
|
|
|
#ifndef UE_EXPANSION
|
|
#ifdef LARGE_SCALE
|
|
#define MAX_MOBILES_PER_ENB 128
|
|
#define MAX_MOBILES_PER_ENB_NB_IoT 128
|
|
#define MAX_eNB 2
|
|
#else
|
|
#define MAX_MOBILES_PER_ENB 40
|
|
#define MAX_MOBILES_PER_ENB_NB_IoT 40
|
|
#define MAX_eNB 2
|
|
#endif
|
|
#else
|
|
#define MAX_MOBILES_PER_ENB 256
|
|
#define MAX_MOBILES_PER_ENB_NB_IoT 256
|
|
#define MAX_eNB 2
|
|
#endif
|
|
|
|
|
|
/// NB-IOT
|
|
#define NB_RB_MAX_NB_IOT (2 + 3) /* 2 from LTE_maxDRB_NB_r13 in LTE_asn_constant.h + 3 SRBs */
|
|
|
|
#define DEFAULT_RAB_ID 1
|
|
|
|
#define NB_RB_MAX (11 + 3) /* LTE_maxDRB from LTE_asn_constant.h + 3 SRBs */
|
|
#define NR_NB_RB_MAX (29 + 3) /* NR_maxDRB from NR_asn_constant.hm + 3 SRBs */
|
|
|
|
#define NR_MAX_NB_PDU_SESSIONS (256)
|
|
|
|
#define NR_MAX_NB_ALLOWED_SNSSAI (8) /* Maximum number of allowed S-NSSAI in TS 38.413 */
|
|
|
|
#define MAX_DRBS_PER_UE (32) /* Maximum number of Data Radio Bearers per UE
|
|
* defined for NGAP in TS 38.413 - maxnoofDRBs */
|
|
#define MAX_PDUS_PER_UE (8) /* Maximum number of PDU Sessions per UE */
|
|
|
|
/** Maximum value of nrofPDCCH-MonitoringOccasionPerSSB-InPO-r16 (TS 38.331 PCCH-Config) */
|
|
#define NR_PCCH_MAX_MO_PER_SSB_IN_PO 4
|
|
|
|
/** Maximum number of Paging Occasions per Paging Frame (TS 38.331 PCCH-Config) */
|
|
#define NR_PCCH_MAX_PO 4
|
|
|
|
#define NB_RB_MBMS_MAX (29 * 16) /* 29 = LTE_maxSessionPerPMCH + 16 = LTE_maxServiceCount from LTE_asn_constant.h */
|
|
|
|
#define NB_RAB_MAX 11 /* from LTE_maxDRB in LTE_asn_constant.h */
|
|
#define RAB_OFFSET 0x000F
|
|
|
|
#define MAX_NUM_SLICES 1024
|
|
|
|
// RLC Entity
|
|
#define RLC_TX_MAXSIZE 10000000
|
|
#define RLC_RX_MAXSIZE 10000000
|
|
#define MAX_ANT 8
|
|
// CBA constant
|
|
#define NUM_MAX_CBA_GROUP 4
|
|
|
|
#define RETURNok (0)
|
|
#define RETURNerror (-1)
|
|
#define DEFAULT_NAS_PATH "PWD"
|
|
#define NUM_PRACH_RX_FOR_NOISE_ESTIMATE 100
|
|
|
|
// SDAP
|
|
#define MAX_QOS_FLOWS 64
|
|
|
|
/** Maximum number of PagingRecords in one PCCH Paging message (TS 38.331) */
|
|
#define NR_PCCH_MAX_PAGING_RECORDS 32
|
|
|
|
// SDAP/5G NAS NOS1
|
|
#define DEFAULT_NOS1_PDU_ID 10
|
|
|
|
#define SPEED_OF_LIGHT 299792458 // in m/s
|
|
#endif /* __PLATFORM_CONSTANTS_H__ */
|