diff --git a/jsonapi/n1n2/handover_command.go b/jsonapi/n1n2/handover_command.go new file mode 100644 index 0000000..b963d16 --- /dev/null +++ b/jsonapi/n1n2/handover_command.go @@ -0,0 +1,21 @@ +// Copyright 2024 Louis Royer and the NextMN contributors. All rights reserved. +// Use of this source code is governed by a MIT-style license that can be +// found in the LICENSE file. +// SPDX-License-Identifier: MIT + +package n1n2 + +import ( + "net/netip" + + "github.com/nextmn/json-api/jsonapi" +) + +// Handovercommand is sent by the CP to the source gNB to start the execution of handover, and forwarded to the UE +type HandoverCommand struct { + UeCtrl jsonapi.ControlURI `json:"ue-ctrl"` + Cp jsonapi.ControlURI `json:"cp"` + Sessions []netip.Addr `json:"sessions"` + GNBSource jsonapi.ControlURI `json:"gnb-source"` + GNBTarget jsonapi.ControlURI `json:"gnb-target"` +} diff --git a/jsonapi/n1n2/handover_confirm.go b/jsonapi/n1n2/handover_confirm.go new file mode 100644 index 0000000..ec9c03a --- /dev/null +++ b/jsonapi/n1n2/handover_confirm.go @@ -0,0 +1,11 @@ +// Copyright 2024 Louis Royer and the NextMN contributors. All rights reserved. +// Use of this source code is governed by a MIT-style license that can be +// found in the LICENSE file. +// SPDX-License-Identifier: MIT + +package n1n2 + +// HandoverConfirm is send by the target UE to the target gNB after the UE is synchronized to the new cell +type HandoverConfirm struct { + Command HandoverCommand `json:"handover-command"` +} diff --git a/jsonapi/n1n2/handover_notify.go b/jsonapi/n1n2/handover_notify.go new file mode 100644 index 0000000..b7701ed --- /dev/null +++ b/jsonapi/n1n2/handover_notify.go @@ -0,0 +1,11 @@ +// Copyright 2024 Louis Royer and the NextMN contributors. All rights reserved. +// Use of this source code is governed by a MIT-style license that can be +// found in the LICENSE file. +// SPDX-License-Identifier: MIT + +package n1n2 + +// HandoverNotify is send by the target gNB to the CP after handover have been confirmed by the UE +type HandoverNotify struct { + Command HandoverCommand `json:"handover-command"` +} diff --git a/jsonapi/n1n2/handover_request.go b/jsonapi/n1n2/handover_request.go new file mode 100644 index 0000000..4fbbd16 --- /dev/null +++ b/jsonapi/n1n2/handover_request.go @@ -0,0 +1,10 @@ +// Copyright 2024 Louis Royer and the NextMN contributors. All rights reserved. +// Use of this source code is governed by a MIT-style license that can be +// found in the LICENSE file. +// SPDX-License-Identifier: MIT + +package n1n2 + +// HandoverRequest is send by the CP to the target gNB during the handover preparation phase +type HandoverRequest struct { +} diff --git a/jsonapi/n1n2/handover_request_ack.go b/jsonapi/n1n2/handover_request_ack.go new file mode 100644 index 0000000..b3a30f6 --- /dev/null +++ b/jsonapi/n1n2/handover_request_ack.go @@ -0,0 +1,10 @@ +// Copyright 2024 Louis Royer and the NextMN contributors. All rights reserved. +// Use of this source code is governed by a MIT-style license that can be +// found in the LICENSE file. +// SPDX-License-Identifier: MIT + +package n1n2 + +// HandoverRequestAck is send by the target gNB to the CP in response to an HandoverRequest +type HandoverRequestAck struct { +} diff --git a/jsonapi/n1n2/handover_required.go b/jsonapi/n1n2/handover_required.go new file mode 100644 index 0000000..24b456d --- /dev/null +++ b/jsonapi/n1n2/handover_required.go @@ -0,0 +1,19 @@ +// Copyright 2024 Louis Royer and the NextMN contributors. All rights reserved. +// Use of this source code is governed by a MIT-style license that can be +// found in the LICENSE file. +// SPDX-License-Identifier: MIT + +package n1n2 + +import ( + "net/netip" + + "github.com/nextmn/json-api/jsonapi" +) + +// HandoverRequired is send by the source gNB to the CP to start the handover preparation phase +type HandoverRequired struct { + Ue jsonapi.ControlURI `json:"ue"` + PduSessions []netip.Addr `json:"pdu-sessions"` // list of all pdu sessions of the UE to be moved + TargetgNB jsonapi.ControlURI `json:"target-gnb"` +}