Skip to content

Protocol Documentation

Table of Contents

Top

api/nb/c1-interface.proto

C1CandScell

Field Type Label Description
pci string
earfcnDl string

C1CellConfigAttribute

Field Type Label Description
ecgi C1ECGI
pci string
candScells C1CandScell repeated
earfcnDl string
earfcnUl string
rbsPerTtiDl string
rbsPerTtiUl string
numTxAntenna string
duplexMode string
maxNumConnectedUes string
maxNumConnectedBearers string
maxNumUesSchedPerTtiDl string
maxNumUesSchedPerTtiUl string
dlfsSchedEnable string

C1ECGI

Field Type Label Description
plmnId string
ecid string

C1HandoverRequest

Field Type Label Description
links C1RNIBLinks UE in links[index] should be moved from srcCells[index] to dstCell[index]
srcCells C1RNIBCells
dstCells C1RNIBCells

C1PciArfcn

Field Type Label Description
pci string
earfcnDl string

C1RNIBCell

Field Type Label Description
ecgi C1ECGI ID
cellConfiguration C1CellConfigAttribute attributes of R-NIB Cell for Cell Configuration
rrmConfiguration C1RRMConfigAttribute for RRM configuration

C1RNIBCells

Field Type Label Description
rNIBCells C1RNIBCell repeated

Field Type Label Description
linkId C1RNIBLinkID ID
radioMeasReportPerUe C1RadioMeasReportPerUeAttribute attributes of R-NIB Link

C1RNIBLinkID

Field Type Label Description
ecgi C1ECGI
imsi string

Field Type Label Description
rNIBLinks C1RNIBLink repeated

C1RNIBUE

Field Type Label Description
imsi string ID
crnti string attributes of R-NIB UE
sCell C1ECGI
mmeUeS1apId string
enbUeS1apId string

C1RNIBUEs

Field Type Label Description
rNIBUEs C1RNIBUE repeated

C1RRMConfigAttribute

This attributed defined all elements as a list (repeated), but this list only has a single element for MWC demo -> will be extended

Field Type Label Description
ecgi C1ECGI
crnti string repeated going to be FFFF or null, which means all crnti
pciArfcn C1PciArfcn
pa C1XICICPA repeated
startPrbDl string repeated
endPrbDl string repeated
subFrameBitmaskDl string repeated
p0UePusch string repeated
startPrbUl string repeated
endPrbUl string repeated
subFrameBitmaskUl string repeated

C1RRMConfiguration

Field Type Label Description
targetCells C1RNIBCells targetCells[index] should have the offset pa which MLB app assigns; pa value in targetCell[index] is the new value to update on RNIBCell

C1RadioMeasReportPerUeAttribute

Field Type Label Description
radioRepPerServCell C1RadioRepPerServCellAttribute repeated

C1RadioRepPerServCellAttribute

either serving cell or neighbor cell report

Field Type Label Description
ecgi C1ECGI
cqiHist string repeated
riHist string repeated
puschSinrHist string repeated
pucchSinrHist string repeated

C1RequestMessage

Field Type Label Description
header C1RequestMessageHeader
payload C1RequestMessagePayload

C1RequestMessageHeader

Field Type Label Description
type C1MessageType

C1RequestMessagePayload

Field Type Label Description
requestedRNIBType C1RNIBType for C1_GET_*
handoverRequest C1HandoverRequest for C1_POST_HANDOVERS
rrmConfigurationRequest C1RRMConfiguration for C1_POST_RRMCONFIGURATION

C1ResponseMessage

Field Type Label Description
header C1ResponseMessageHeader
payload C1ResponseMessagePayload

C1ResponseMessageHeader

Field Type Label Description
type C1MessageType

C1ResponseMessagePayload

Field Type Label Description
responseCode string for POST_*
rNIBCells C1RNIBCells for GET_RNIBCELLS
rNIBUEs C1RNIBUEs for GET_RNIBUES
rNIBLinks C1RNIBLinks for GET_LINKS

ChannelQuality

Field Type Label Description
targetEcgi ECGI Target stations's ID This target station can be either the serving station or the serving station's neighbor stations.
cqiHist uint32 CQI stands for Channel Quality Indicator in LTE, which ranges from 0 (out of range) to 15 (64 QAM and 948 Code rate)

ECGI

station's unique ID

Field Type Label Description
plmnid string one of ECGI value
ecid string one of ECGI value

HandOverRequest

Field Type Label Description
crnti string UE's local ID in serving station
srcStation ECGI UE's source station ID - serving station
dstStation ECGI UE's destination station ID for handover - one of neighbor stations

HandOverResponse

Field Type Label Description
success bool empty - no response will be okay

RadioPowerRequest

Field Type Label Description
ecgi ECGI target station's ID
offset StationPowerOffset target station's power offset to adjust transmission power

RadioPowerResponse

Field Type Label Description
success bool empty - no response will be okay

StationInfo

Field Type Label Description
ecgi ECGI station's unique ID
maxNumConnectedUes uint32 station's maximum number of connected UEs - used for MLB

StationLinkInfo

Field Type Label Description
ecgi ECGI target station ID
neighborECGI ECGI repeated list of neighbor stations' ID

StationLinkListRequest

if ECGI is empty, stream all station links' information

Field Type Label Description
ecgi ECGI ecgi - optional station identifier - list for all stations if not present
subscribe bool subscribe indicates whether to subscribe to events (e.g. ADD, UPDATE, and REMOVE) that occur after all stationlinks have been streamed to the client

StationListRequest

if ecgi is empty, stream all stations' information

Field Type Label Description
ecgi ECGI ecgi - optional station identifier - list for all stations if not present
subscribe bool subscribe indicates whether to subscribe to events (e.g. ADD, UPDATE, and REMOVE) that occur after all stations have been streamed to the client

UEInfo

Field Type Label Description
crnti string Both crnti and ecgi are used as a key in our store. UE's local ID in serving station
ecgi ECGI UE's serving station ID
imsi string

UELinkInfo

It shows the link quality between the UE -- having crnti (1) and serviced by the station having ecgi (2) -- and the station -- having targetECGI (3). Target station can be not only UE's serving station but also the station's neighbor stations.

Field Type Label Description
crnti string Both crnti and ecgi are used as a key in our store. UE's local ID in serving station
ecgi ECGI UE's serving station ID
channelQualities ChannelQuality repeated Channel quality values between the UE and its serving or neighbor stations.
imsi string optional value: IMSI which is a global unique UE ID This value is from UEContextUpdate message The crnti is local ID only working in a serving base station. However, sometimes an app may need the unique ID Thus, add IMSI as an optional.

UELinkListRequest

if crnti and ecgi are empty, stream all UE links' information

Field Type Label Description
crnti string crnti - optional UE's local ID in serving station - list for all UE local IDs if not present
ecgi ECGI ecgi - optional UE's serving station identifier - list for all stations if not present
subscribe bool subscribe indicates whether to subscribe to events (e.g. ADD, UPDATE, and REMOVE) that occur after all uelinks have been streamed to the client
noReplay bool noReplay - do not replay the list of UELinks from before the request Used with subscribe, to only get new changes
noimsi bool noimsi - imsi is not needed in the response

UEListRequest

if ECGI is empty, stream all UEs' information

Field Type Label Description
crnti string crnti - optional UE's local ID in serving station - list for all UE local IDs if not present
ecgi ECGI ecgi - optional UE's serving station identifier - list for all stations if not present
subscribe bool subscribe indicates whether to subscribe to events (e.g. ADD, UPDATE, and REMOVE) that occur after all uelinks have been streamed to the client

C1MessageType

Name Number Description
C1_MESSAGE_UNKNOWN 0
C1_GET_RNIBCELLS 1
C1_GET_RNIBUES 2
C1_GET_RNIBLINKS 3
C1_POST_HANDOVERS 4
C1_POST_RMMCONFIGURATION 5

C1RNIBType

Name Number Description
C1_RNIB_UNKNOWN 0
C1_RNIB_CELL 1
C1_RNIB_UE 2
C1_RNIB_LINK 3

C1XICICPA

Name Number Description
C1_XICIC_PA_DB_MINUS6 0
C1_XICIC_PA_DB_MINUX4DOT77 1
C1_XICIC_PA_DB_MINUS3 2
C1_XICIC_PA_DB_MINUS1DOT77 3
C1_XICIC_PA_DB_0 4
C1_XICIC_PA_DB_1 5
C1_XICIC_PA_DB_2 6
C1_XICIC_PA_DB_3 7

StationPowerOffset

Enumerated Power offset - It is defined in E2 interface

Name Number Description
PA_DB_MINUS6 0 TX power of the station - 6 dB
PA_DB_MINUX4DOT77 1 TX power of the station - 4.77 dB
PA_DB_MINUS3 2 TX power of the station - 3 dB
PA_DB_MINUS1DOT77 3 TX power of the station - 1.77 dB
PA_DB_0 4 TX power of the station - 0 dB
PA_DB_1 5 TX power of the station + 1 dB
PA_DB_2 6 TX power of the station + 2 dB
PA_DB_3 7 TX power of the station + 3 dB

C1InterfaceService

Method Name Request Type Response Type Description
ListStations StationListRequest StationInfo stream ListStations returns a stream of base station records.
ListStationLinks StationLinkListRequest StationLinkInfo stream ListStationLinks returns a stream of links between neighboring base stations.
ListUELinks UELinkListRequest UELinkInfo stream ListUELinks returns a stream of UI and base station links; one-time or (later) continuous subscribe.
ListUEs UEListRequest UEInfo stream
TriggerHandOver HandOverRequest HandOverResponse TriggerHandOver returns a hand-over response indicating success or failure. HO app will ask to handover to multiple UEs
TriggerHandOverStream HandOverRequest stream HandOverResponse TriggerHandOverStream is a version that stays open all the time and sends HO messages as they happen
SetRadioPower RadioPowerRequest RadioPowerResponse SetRadioPower returns a response indicating success or failure. MLB app will ask to change transmission power to multiple stations

Scalar Value Types

.proto Type Notes C++ Java Python Go C# PHP Ruby
double double double float float64 double float Float
float float float float float32 float float Float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int int32 int integer Bignum or Fixnum (as required)
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long int64 long integer/string Bignum
uint32 Uses variable-length encoding. uint32 int int/long uint32 uint integer Bignum or Fixnum (as required)
uint64 Uses variable-length encoding. uint64 long int/long uint64 ulong integer/string Bignum or Fixnum (as required)
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int int32 int integer Bignum or Fixnum (as required)
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long int64 long integer/string Bignum
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int uint32 uint integer Bignum or Fixnum (as required)
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long uint64 ulong integer/string Bignum
sfixed32 Always four bytes. int32 int int int32 int integer Bignum or Fixnum (as required)
sfixed64 Always eight bytes. int64 long int/long int64 long integer/string Bignum
bool bool boolean boolean bool bool boolean TrueClass/FalseClass
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode string string string String (UTF-8)
bytes May contain any arbitrary sequence of bytes. string ByteString str []byte ByteString string String (ASCII-8BIT)