The RRC library is a module that extends the GLCT with the capability to implement GPS aspects of the RRC protocol. The module accepts incoming RRC messages, acts upon them, and generates RRC responses.
The RRC library is designed as an independent module. It has its own abstraction layer through which it talks with the GLCT on one hand and the protocol stack on the other.
The RRC library is used internally within the ADS Application Request Processor to process RRC messages received from the Spirent ULTS. See ADS/RRC Application Request Processor for more information on the ADS application. The source code the the ADS ARP is available as sample code for this interface.
The function glrrcInit() is called to initialize the RRC library.
To deliver an RRC message to the library, the function glrrc_DL_DCCH() is called with a pointer to the message.
To implement the RRC protocol the library requires knowledge of the current state of the user element (UE). To set this state the function glrrcUeState() is used. The possible states are defined by GL_RRC_UE_STATE and include:
To input a Type 15 message to the RRC processing the function glrrcSIB() is used.
The possible message types are:
When the library needs to send a message back to the network it invokes the callback glcb_rrc_Send(). The HAL must include an implementation of this function to send data to the RRC stack.
The RRC library calls the following functions to inform the upper level stack that an RRC session is in progress or complete.
To abort an RRC session the function glrrcAbort() is called.
There interfaces between the RRC library and the GLCT are abstracted to provide visibility to this interface. An examples of these functions is glcb_rrc_SetReferenceTime() which the RRC library uses to send reference time to the GPS core software. Broadcom supplies implementations for all these callbacks; nothing needs to be developed to use the software as supplied.