From 3cf6cd948b1a514eb728df1345aed7e1353fa893 Mon Sep 17 00:00:00 2001 From: Louis Royer Date: Tue, 17 Dec 2024 18:15:59 +0100 Subject: [PATCH] wip close #23 --- jsonapi/n1n2/handover_command.go | 21 +++++++++++++++++++++ jsonapi/n1n2/handover_confirm.go | 11 +++++++++++ jsonapi/n1n2/handover_notify.go | 11 +++++++++++ jsonapi/n1n2/handover_request.go | 10 ++++++++++ jsonapi/n1n2/handover_request_ack.go | 10 ++++++++++ jsonapi/n1n2/handover_required.go | 19 +++++++++++++++++++ 6 files changed, 82 insertions(+) create mode 100644 jsonapi/n1n2/handover_command.go create mode 100644 jsonapi/n1n2/handover_confirm.go create mode 100644 jsonapi/n1n2/handover_notify.go create mode 100644 jsonapi/n1n2/handover_request.go create mode 100644 jsonapi/n1n2/handover_request_ack.go create mode 100644 jsonapi/n1n2/handover_required.go diff --git a/jsonapi/n1n2/handover_command.go b/jsonapi/n1n2/handover_command.go new file mode 100644 index 0000000..eb1bb65 --- /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"` +}