n1n2

package
v0.0.19 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 18, 2025 License: MIT Imports: 2 Imported by: 0

Documentation

Overview

Package n1n2 allow to simulate N1/N2 interface using a REST API.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type HandoverCommand added in v0.0.15

type HandoverCommand struct {
	// Header
	UeCtrl    jsonapi.ControlURI `json:"ue-ctrl"`
	Cp        jsonapi.ControlURI `json:"cp"`
	SourceGnb jsonapi.ControlURI `json:"source-gnb"`

	// Handover Command
	Sessions  []Session          `json:"sessions"` // contains new ForwardDownlinkFteid
	TargetGnb jsonapi.ControlURI `json:"target-gnb"`
}

HandoverCommand is sent by the CP to the source gNB to start the execution of handover, and forwarded to the UE

type HandoverConfirm added in v0.0.15

type HandoverConfirm struct {
	// Header
	UeCtrl jsonapi.ControlURI `json:"ue-ctrl"`
	Cp     jsonapi.ControlURI `json:"cp"`

	// Handover Confirm
	Sessions  []Session          `json:"sessions"`
	SourceGnb jsonapi.ControlURI `json:"source-gnb"`
	TargetGnb jsonapi.ControlURI `json:"target-gnb"`
}

HandoverConfirm is send by the target UE to the target gNB after the UE is synchronized to the new cell

type HandoverNotify added in v0.0.15

type HandoverNotify struct {
	// Header
	UeCtrl    jsonapi.ControlURI `json:"ue-ctrl"`
	Cp        jsonapi.ControlURI `json:"cp"`
	TargetGnb jsonapi.ControlURI `json:"target-gnb"`

	// Handover Notify
	Sessions  []Session          `json:"sessions"`
	SourceGnb jsonapi.ControlURI `json:"source-gnb"`
}

HandoverNotify is send by the target gNB to the CP after handover have been confirmed by the UE

type HandoverRequest added in v0.0.15

type HandoverRequest struct {
	// Header
	UeCtrl    jsonapi.ControlURI `json:"ue-ctrl"`
	Cp        jsonapi.ControlURI `json:"cp"`
	TargetgNB jsonapi.ControlURI `json:"target-gnb"`

	// Handover Request
	SourcegNB jsonapi.ControlURI `json:"source-gnb"`
	Sessions  []Session          `json:"sessions"` // contains new UL FTeid
}

HandoverRequest is send by the CP to the target gNB during the handover preparation phase

type HandoverRequestAck added in v0.0.15

type HandoverRequestAck struct {
	// Header
	Cp        jsonapi.ControlURI `json:"cp"`
	TargetgNB jsonapi.ControlURI `json:"target-gnb"`

	// Handover Request Ack
	SourcegNB jsonapi.ControlURI `json:"source-gnb"`
	UeCtrl    jsonapi.ControlURI `json:"ue-ctrl"`
	Sessions  []Session          `json:"sessions"` // contains new DL FTeid
}

HandoverRequestAck is send by the target gNB to the CP in response to an HandoverRequest

type HandoverRequired added in v0.0.15

type HandoverRequired struct {
	// Header
	SourcegNB jsonapi.ControlURI `json:"source-gnb"`
	Cp        jsonapi.ControlURI `json:"cp"`

	// Handover Required content
	Ue                 jsonapi.ControlURI `json:"ue"`
	Sessions           []Session          `json:"sessions"` // list of all pdu sessions of the UE to be moved
	TargetgNB          jsonapi.ControlURI `json:"target-gnb"`
	IndirectForwarding bool               `json:"indirect-forwarding"`
}

HandoverRequired is send by the source gNB to the CP to start the handover preparation phase

type N2PduSessionReqMsg

type N2PduSessionReqMsg struct {
	Cp     jsonapi.ControlURI       `json:"cp"`
	UeInfo PduSessionEstabAcceptMsg `json:"ue-info"` // information to forward to the UE

	// Uplink FTEID: the gNB will establish an Uplink GTP Tunnel using the following
	UplinkFteid jsonapi.Fteid `json:"uplink-fteid"`
}

N2PduSessionReqMsg is sent by the CP to the gNB to establish a PDU Session.

type N2PduSessionRespMsg

type N2PduSessionRespMsg struct {
	UeInfo PduSessionEstabAcceptMsg `json:"ue-info"` // used to identify the PDU Session

	// Downlink FTEID: the CP will use this to configure a downlink GTP Tunnel in Upf-i
	DownlinkFteid jsonapi.Fteid `json:"downlink-fteid"`
}

N2PduSessionRespMsg is sent to the CP by the gNB as a response of N2PduSessionReqMsg.

type PduSessionEstabAcceptMsg

type PduSessionEstabAcceptMsg struct {
	Header PduSessionEstabReqMsg `json:"header"`  // copy of the PDU Session Establishment Request Message
	Addr   netip.Addr            `json:"address"` // IP Address attributed to the UE for this PDU Session
}

PduSessionEstabAcceptMsg is sent to the UE by the gNB when the PDU Session establishment is accepted.

type PduSessionEstabReqMsg

type PduSessionEstabReqMsg struct {
	Ue  jsonapi.ControlURI `json:"ue"`
	Gnb jsonapi.ControlURI `json:"gnb"`
	Dnn string             `json:"dnn"`
}

PduSessionEstabReqMessage is sent by the UE to the gNB (then forwarded by the gNB to the CP) to start the PDU Session Establishment Procedure.

type RadioPeerMsg

type RadioPeerMsg struct {
	Control jsonapi.ControlURI `json:"control"`
	Data    netip.AddrPort     `json:"data"`
}

RadioPeerMsg is used to discover UEs/gNBs "radio" peers.

type Session added in v0.0.15

type Session struct {
	Addr          netip.Addr     `json:"ue-addr"`
	Dnn           string         `json:"dnn"`
	UplinkFteid   *jsonapi.Fteid `json:"uplink-fteid,omitempty"`
	DownlinkFteid *jsonapi.Fteid `json:"downlink-fteid,omitempty"`

	// when ForwardDownlinkFteid is not empty,
	// PDUs received on DownlinkFteid must be forwarded to it
	ForwardDownlinkFteid *jsonapi.Fteid `json:"forward-fteid,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL