Skip to content

Commit fbdf75e

Browse files
authored
Merge pull request #143 from donald1218/fix/send-twice-release-uectx
fix: release twice uecontext when handover
2 parents 50a3abc + 1c21d51 commit fbdf75e

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

internal/gmm/common/user_profile.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,25 @@ func AttachRanUeToAmfUeAndReleaseOldIfAny(amfUe *context.AmfUe, ranUe *context.R
6969
amfUe.AttachRanUe(ranUe)
7070
}
7171

72+
func AttachRanUeToAmfUeAndReleaseOldHandover(amfUe *context.AmfUe, sourceRanUe, targetRanUe *context.RanUe) {
73+
logger.GmmLog.Debugln("In AttachRanUeToAmfUeAndReleaseOldHandover")
74+
75+
if sourceRanUe != nil {
76+
sourceRanUe.DetachAmfUe()
77+
if amfUe.T3550 != nil {
78+
amfUe.State[targetRanUe.Ran.AnType].Set(context.Registered)
79+
}
80+
StopAll5GSMMTimers(amfUe)
81+
causeGroup := ngapType.CausePresentRadioNetwork
82+
causeValue := ngapType.CauseRadioNetworkPresentSuccessfulHandover
83+
ngap_message.SendUEContextReleaseCommand(sourceRanUe, context.UeContextReleaseHandover, causeGroup, causeValue)
84+
} else {
85+
// This function will be call only by N2 Handover, so we can assume sourceRanUe will not be nil
86+
logger.GmmLog.Errorln("AttachRanUeToAmfUeAndReleaseOldHandover() is called but sourceRanUe is nil")
87+
}
88+
amfUe.AttachRanUe(targetRanUe)
89+
}
90+
7291
func ClearHoldingRanUe(ranUe *context.RanUe) {
7392
if ranUe != nil {
7493
ranUe.DetachAmfUe()

internal/ngap/handler.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,10 +1211,8 @@ func handleHandoverNotifyMain(ran *context.AmfRan,
12111211
ran.Log.Errorf("Send UpdateSmContextN2HandoverComplete Error[%s]", err.Error())
12121212
}
12131213
}
1214-
gmm_common.AttachRanUeToAmfUeAndReleaseOldIfAny(amfUe, targetUe)
12151214

1216-
ngap_message.SendUEContextReleaseCommand(sourceUe, context.UeContextReleaseHandover, ngapType.CausePresentNas,
1217-
ngapType.CauseNasPresentNormalRelease)
1215+
gmm_common.AttachRanUeToAmfUeAndReleaseOldHandover(amfUe, sourceUe, targetUe)
12181216
}
12191217

12201218
// TODO: The UE initiates Mobility Registration Update procedure as described in clause 4.2.2.2.2.

0 commit comments

Comments
 (0)