GRPC_C DEVICE SIMULATOR
This is a executable(voltha_bal_driver), which will received asfvolt16 adapter grpc-c messages and call respective device stub. It will send recevied responses/asynchronous indications from Device stub to Adapter.
GETTING STARTED
prerequisites to install grpc
INSTALLATION
Open Network Linux This guide assumes that Open Network Linux (ONL) is available at ${HOME}/OpenNetworkLinux. All the below steps need to be executed in the ONL build docker context. Refer to ONL build instructions (https://wiki.opencord.org/download/attachments/2556712/ONL_Build_Environment_Installation_Guide.pdf?api=v2).
- Download ONL source code with Kernel 3.7.10.
> git clone https://github.com/Lewis-Kang/OpenNetworkLinux.git -b kernel_3.7.10
- Start ONL build docker workspace
> cd OpenNetworkLinux > docker/tools/onlbuilder -8 # enter the docker workspace
Clone asfvolt16-driver - The guide assumes that the asfvolt16-driver gerrit repo is cloned under the ONL toplevel directory: - git clone ssh://user@gerrit.opencord.org:29418/asfvolt16-driver ${HOME}/OpenNetworkLinux/asfvolt16-driver
steps to install grpc
steps to install grpc-c
Apply grpc-c patch
cd ${HOME}/OpenNetworkLinux/grpc-c/ Patch 1: Apply patch in following link for grpc-c/lib - "https://github.com/Juniper/grpc-c/commit/353b40cd920cd749ed6cf71f8df17f1d5cf2c89d" Note: (This patch is having very few changes in two files(grpc-c/lib/client.c, grpc-c/lib/service.c. Download these two files from above link and replace at grpc-c/lib or merge these changes manually.)
Patch 2: Apply patch in service.c.patch and client.c.patch
cd ${HOME}/OpenNetworkLinux
cp asfvolt16-driver/device_simulator/Makefile.am grpc-c/examples/
cp asfvolt16-driver/device_simulator/voltha_bal_driver.c grpc-c/examples/
cp asfvolt16-driver/device_simulator/bal_stub.c grpc-c/examples/
cp asfvolt16-driver/device_simulator/bal_stub.h grpc-c/examples/
cd ${HOME}/OpenNetworkLinux/grpc-c
autoreconf --install
mkdir build && cd build
../configure
make
sudo make install
To obtain proto files - Have a repo sync of opencord voltha code base: - git clone https://github.com/opencord/voltha.git ${HOME}/voltha - cd ${HOME}/OpenNetworkLinux/grpc-c/ - cp ${HOME}/voltha/voltha/adapters/asfvolt16_olt/protos/* examples/
To autogenerate code from proto files: - cd ${HOME}/OpenNetworkLinux/grpc-c/build/examples - make autogen
Build voltha_bal_driver: - cd ${HOME}/OpenNetworkLinux/grpc-c/build/examples - Note: Remove "-O2" from Makefile - Note: Set EDGECORE and BRCM_PATH in Makefile
EDGECORE = ${HOME}/OpenNetworkLinux/asfvolt16-driver/src/ BRCM_PATH = ${HOME}/OpenNetworkLinux/bal_src_release/bal_release
- make clean_all;make
The ultimate executable voltha_bal_driver can be found under ~/grpc-c/build/examples/.libs/
USAGE: ./voltha_bal_driver "serverIP:port1" -C "serverIP:port2" -A "serverIP:port3" ./bal_core_dist -C "serverIP:port2" -A "serverIP:port3"
NOTE: bal_core_dist is a broadcom executable
CONTRIBUTING
VERSIONING
AUTHORS Radisys Adapter Team
Licence
Acknowledgments