NODEB-RNIB APIs


Document status
DRAFT
Document owner
Owner Details

+972-54-2891166,   mailto:ab600d@intl.att.com

RNIB Queries Request Overview

The purpose of this document is to describe the RNIB Queries the E2M supplies: Input and Output.


Error Handling

We defined few custom errors that implement error interface

InternalError - defined as:
type InternalError struct{
err error
}

func NewInternalError(error error) error {
return &InternalError{err:error}
}

func (e InternalError) Error() string {
return e.err.Error()
}
ResourceNotFoundError - defined as:
type ResourceNotFoundError struct{
	message string
}

func NewResourceNotFoundError(msg string) error {
	return &ResourceNotFoundError{message:msg}
}

func NewResourceNotFoundErrorf(fmtMsg string, a ...interface{}) error {
	return &ResourceNotFoundError{message:fmt.Sprintf(fmtMsg, a...)}
}

func (e ResourceNotFoundError) Error() string {
	return e.message
}
ValidationError - defined as:
type ValidationError struct{
	message string
}

func NewValidationError(msg string) error {
	return &ValidationError{message:msg}
}

func NewValidationErrorf(fmtMsg string, a ...interface{}) error {
	return &ValidationError{message: fmt.Sprintf(fmtMsg, a...)}
}

func (e ValidationError) Error() string {
	return e.message
}

List RNIB Queries (Short)

#API + InputOutput
1GetNodeb (Inventory Name)NodebInfo
2

GetNodebByGlobalNbId(“GNB”:<GlobalGNB-ID> or “ENB”:<GlobalENB-ID>))

NodebInfo

3

GetListgNBIDs()   

NbIdentity

4

GetListeNBIDs()   

NbIdentity

5

GetCountGnbList()  

Int

6

GetCellList(inventoryName) [] Cells

Cells

7

GetCell(inventoryName, pci)

Cell

8

GetCellById(cellType, cellId)

Cell

9GetRanLoadInformation (inventoryName)RanLoadInformation
10GetListNodebIds()NbIdentity

RNIB Shared Object

#API + InputOutput
1getListGnbIds()GnbListJsonResponse

List of RNIB Queries (Long)

Query-1 GetNodeb(Inventory Name)

Description

This API returns the entire data of given NodeB (eNB or gNB) by its inventory name. The inventory name is a unique key that is used by the operator's inventory systems

Supported Languages

GoLang

API Signature

Query-2 GetNodebByGlobalNbId(“GNB”:<GlobalGNB-ID> or “ENB”:<GlobalENB-ID>))

Description

This API returns the entire data of given NodeB (eNB or gNB) by its ID. 

Supported Languages

GoLang

API Signature

Query-3 GetListgNBIDs()

Description

This API returns the list of the gNBs that are stored in the RNIB. The call returns both the inventory name and the gNB ID

Supported Languages

GoLang

API Signature

Query-4 GetListeNBIDs()

Description

This API returns the list of the eNBs that are stored in the RNIB. The call returns both the inventory name and the eNB ID

Supported Languages

GoLang

API Signature

Query-5 GetCountGnbList()

Description

This API returns the number of the gNBs that are stored in the RNIB. 

Supported Languages

GoLang

API Signature

Query-6 GetCellList(inventoryName)

Description

Returns the list of cells and neighbours (full data) that are associated with a given eNB or gNB by its inventory name as a key

Supported Languages

GoLang

API Signature

Query-7 GetCell(inventoryName, pci)

Description

Returns specific Cell data by Inventory name and PCI or NR PCI as key

Supported Languages

GoLang

API Signature

Query-8 GetCellById(cellType, cellId)

Description

This API returns the cell data from by cell type and cell Id

Supported Languages

GoLang

API Signature

Query-9 GetRanLoadInformation (inventoryName)

Description

This API returns the RanLoadInformation by the inventory name of the RAN The inventory name is a unique key that is used by the operator's inventory systems. It returns the latest Load Information the E2M receives from this RAN, including the Timestamp.

Supported Languages

GoLang

API Signature

GetRanLoadInformation(inventoryName string) (*entities.RanLoadInformation, error)

Query-10 GetListNodebIds ()

Description

This API returns the full list of the NBs that are stored in the RNIB. The call returns both the inventory name and the gNB ID (optional)

Supported Languages

GoLang

API Signature

GetListNodebIds()([]*entities.NbIdentity, error)

Init(namespace, poolSize)RNIB Meta-functionality

Description

Initializes the infrastructure required for the RNIB Reader instance

Supported Languages

GoLang

API Signature

GetRNibReader(void)

Description

Returns instance from the pool

Supported Languages

GoLang

API Signature

Close(void)

Description

Closes RNIB Reader's pool

Supported Languages

GoLang

API Signature

RNIB quick start

DEPENDENCIES

RNIB Reader module requires the next packages (modules) to be installed

  1. Redis
  2. Protobuf
  3. sdlgo
  4. common (RNIB Reader)
  5. entities (RNIB Reader)

PREREQUISITE

The environment variable DBAAS SERVICE HOST (Redis DB IP) required to be set


INSTALLATION

  1. In case of Go modules enabled run the next command outside of GOPATH where project (go mod) is located:

R4:  $ go get gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader@v1.0.35

R5:  $ go get gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git/reader@v1.0.44


$ go build ./…

  1. In case of Go modules disabled run the next command inside of GOPATH:

$ go get gerrit.o-ran-sc.org/r/ric-plt/nodeb-rnib.git

List of Output Type Protobuf


Proto messageProto fileLast updated
NodebInfonodeb_info.proto2020-04-20
NbIdentitynb_identity.proto2020-04-05

Enb

2020-07-02
Gnb2020-07-02
AdditionalCellInformation2020-07-02
RanFunctionran_function.proto2020-06-17
Cellscells.proto2020-04-05
Cellcell.proto2020-04-05
X2SetupFailureResponsex2_setup_failure_response.proto2020-04-05
RanLoadInformationran_load_information.proto2020-04-05

GnbListJsonResponse

ResponseJsonExample
Success Response 

{
"gnb_list": [
{
"inventory_name": "",
"global_nb_id": {
"plmn_id": "",
"nb_id": ""}}

]}

{
"gnb_list": [
{
"inventory_name": "test2",
"global_nb_id": {
"plmn_id": "42f490",
"nb_id": "000004"}}

]}

Success Response Empty Gnb List{
"gnb_list": null
}
{
"gnb_list": null
}
Failed Response{
"gnb_list": null,
"error_msg": ""
}
{
"gnb_list": null,
"error_msg": "dial tcp 127.0.0.1:6379: connect: connection refused"
}