From 4642a7c0f501efc093ff4cd657bcd38e063d43b4 Mon Sep 17 00:00:00 2001
From: Robert Schmidt <robert.schmidt@openairinterface.org>
Date: Mon, 13 Mar 2023 15:04:50 +0100
Subject: [PATCH] Correctly fill GUTI in NAS if available

---
 openair3/NAS/NR_UE/nr_nas_msg_sim.c | 21 +++++----------------
 1 file changed, 5 insertions(+), 16 deletions(-)

diff --git a/openair3/NAS/NR_UE/nr_nas_msg_sim.c b/openair3/NAS/NR_UE/nr_nas_msg_sim.c
index 443fb8d06c7..4e16b645664 100644
--- a/openair3/NAS/NR_UE/nr_nas_msg_sim.c
+++ b/openair3/NAS/NR_UE/nr_nas_msg_sim.c
@@ -117,21 +117,10 @@ static int fill_suci(FGSMobileIdentity *mi, const uicc_t *uicc)
   return sizeof(Suci5GSMobileIdentity_t);
 }
 
-static int fill_guti(FGSMobileIdentity *mi, const nr_ue_nas_t *nas)
+static int fill_guti(FGSMobileIdentity *mi, const Guti5GSMobileIdentity_t *guti)
 {
-  uicc_t *uicc = nas->uicc;
-  AssertFatal(false, "Need to add AMF data in function\n");
-  mi->guti.typeofidentity = FGS_MOBILE_IDENTITY_5G_GUTI;
-  mi->guti.amfregionid = 0xca;
-  mi->guti.amfpointer = 0;
-  mi->guti.amfsetid = 1016;
-  mi->guti.tmsi = 10;
-  mi->guti.mncdigit1 = uicc->nmc_size == 2 ? uicc->imsiStr[3] - '0' : uicc->imsiStr[4] - '0';
-  mi->guti.mncdigit2 = uicc->nmc_size == 2 ? uicc->imsiStr[4] - '0' : uicc->imsiStr[5] - '0';
-  mi->guti.mncdigit3 = uicc->nmc_size == 2 ? 0xf : uicc->imsiStr[3] - '0';
-  mi->guti.mccdigit1 = uicc->imsiStr[0]-'0';
-  mi->guti.mccdigit2 = uicc->imsiStr[1]-'0';
-  mi->guti.mccdigit3 = uicc->imsiStr[2]-'0';
+  AssertFatal(guti != NULL, "UE has no GUTI\n");
+  mi->guti = *guti;
   return 13;
 }
 
@@ -447,8 +436,8 @@ void generateRegistrationRequest(as_nas_info_t *initialNasMsg, nr_ue_nas_t *nas)
   mm_msg->registration_request.fgsregistrationtype = INITIAL_REGISTRATION;
   mm_msg->registration_request.naskeysetidentifier.naskeysetidentifier = 1;
   size += 1;
-  if(0){
-    size += fill_guti(&mm_msg->registration_request.fgsmobileidentity, nas);
+  if(nas->guti){
+    size += fill_guti(&mm_msg->registration_request.fgsmobileidentity, nas->guti);
   } else {
     size += fill_suci(&mm_msg->registration_request.fgsmobileidentity, nas->uicc);
   }
-- 
GitLab