diff --git a/gmm/handler.go b/gmm/handler.go index c5de18ef..247a5357 100644 --- a/gmm/handler.go +++ b/gmm/handler.go @@ -572,13 +572,19 @@ func HandleRegistrationRequest(ctx ctxt.Context, ue *context.AmfUe, anType model case nasMessage.MobileIdentity5GSType5gGuti: guamiFromUeGutiTmp, guti := nasConvert.GutiToString(mobileIdentity5GSContents) guamiFromUeGuti = guamiFromUeGutiTmp - ue.Guti = guti ue.GmmLog.Debugf("GUTI: %s", guti) - - servedGuami := amfSelf.ServedGuamiList[0] - if reflect.DeepEqual(guamiFromUeGuti, servedGuami) { + guamiMatched := false + for _, servedGuami := range amfSelf.ServedGuamiList { + if reflect.DeepEqual(guamiFromUeGuti, servedGuami) { + guamiMatched = true + break + } + } + if guamiMatched { + ue.Guti = guti ue.ServingAmfChanged = false } else { + ue.GmmLog.Warnf("GUAMI mismatch/not-served GUAMI from UE") ue.GmmLog.Debugf("Serving AMF has changed but 5G-Core is not supporting for now") ue.ServingAmfChanged = false }