Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Expand ServedCellInfo (enb.proto) with this proto message:

Code Block
titleenb.proto

...

Code Block
message Enb {
    EnbType enb_type = 1;
    repeated ServedCellInfo served_cells = 2;
    repeated string gu_group_ids = 3;
}

message ServedCellInfo {
	...
	AdditionalCellInformation additional_cell_information = 16;
}
  • Expand ServedNRCellInformation (gnb.proto) with this proto message:

Code Block
titlegnb.proto

...

Code Block
message Gnb {
    repeated ServedNRCell served_nr_cells = 1;
    repeated RanFunction ran_functions = 2;
}

message ServedNRCell {
    ServedNRCellInformation served_nr_cell_information = 1;
    repeated NrNeighbourInformation nr_neighbour_infos = 2;
}

message ServedNRCellInformation {
	...
	AdditionalCellInformation additional_cell_information = 16;
}

...

Code Block
RemoveServedCells(inventoryName string, servedCells []*entities.ServedCellInfo) error
UpdateEnb(nodebInfo *entities.NodebInfo, servedCells []*entities.ServedCellInfo) error
DeleteEnb(nodebInfo *entities.NodebInfo) error


Info

I've already added the

following method

below method as part of the gNB update cells US (for a case we get an empty list from the client):

Code Block
RemoveServedNrCells(inventoryName string, servedNrCells []*entities.ServedNRCell) error


...

Code Block
titleRequest Body
{
	"ranName": "",
	"globalNbId": {
					plmnId: "",
					nbId:	""
	},
	"ip": "",
	"port": 1234,
	"enb": {
			"enbType": "",
			"servedCells": [{}],
			"guGroupIds": [""]
	}
}


AddEnbRequestHandler

Code Block
titleAddEnbRequestHandler
type AddEnbRequestHandler struct {
	logger 				*logger.Logger		
	rnibDataService		services.RNibDataService
}


Sequence Diagram

Image Modified


Update eNB REST API & Update gNB REST API


Info
titleAgenda



eNBgNBNotes

PUT /v1/nodeb/enb/<RAN_NAME> is triggered

, request

PUT /v1/nodeb/gnb/<RAN_NAME> is triggered

→ Request body is validated

Execute GetNodeb with RAN name coming from the request

.

If we have a DB error or if it doesn't exist → error

Execute RemoveServedCells to remove the existing eNB cells

Execute RemoveServedNrCells to remove the existing gNB cells


Set the nodeb with the request's data


Execute UpdateEnb

Execute
UpdateEnb 
UpdateGnbCells

Set cells in both Cell ID key & PCI key

Set nodeb in both RAN ID key & RAN NAME key

Execute sdl.SetAndPublish, sending the RAN_MANIPULATION channel and the <RAN_NAME>_UPDATED event.

Return 

Status
colourGreen
title200 OK
 with NodebInfo response.





PUT /v1/nodeb/enb/<RAN_NAME>PUT /v1/nodeb/gnb/<RAN_NAME>


Code Block
titleRequest Body
{
	"enb": {
			"enbType": "",
			"servedCells": [{}],
			"guGroupIds": [""]
	}
}



Code Block
titleRequest Body
{
  "servedNrCells": [
    {
      "servedNrCellInformation": {},
      "nrNeighbourInfos": [{}]
    }
  ]
}




UpdateNodebHandler

Image Added


Sequence Diagram

Image Added

View file
nameUpdate eNB & Update gNB REST APIs.txt
height150

Delete eNB REST API


Info
titleAgenda
  • DELETE /v1/nodeb/enb/<RAN_NAME> is triggered.
  • Execute GetNodeb with RAN name coming from the request.
    • If we have a DB error or if it doesn't exist → error
    • If nodeb is of type gNB → error
  • Execute RemoveEnb 
    • Remove cells from both Cell ID key & PCI key (call RemoveServedCells)
    • Remove nodeb from both RAN ID key & RAN NAME key
    • Remove nbIdentity
    • Execute sdl.SetAndPublish(data,"RAN_MANIPULATION", "<RAN_NAME>_DELETED")
  • Return 
    Status
    colourGreen
    title204 No Content
     response.

...

DELETE /v1/nodeb/enb/<RAN_NAME>


Code Block
titleDeleteEnbRequestHandler
type DeleteEnbRequestHandler struct {
	logger 				*logger.Logger		
	rnibDataService		services.RNibDataService
}


Sequence Diagram

Image RemovedImage Added