The netopeer container package provides the netopeer netconf service along with a framework to ensure proper interaction with the Voltha service.
NOTE
The netopeer package offers a framework to enable interaction with Voltha through NETCONF RPC calls. Only a few calls have been implemented to demonstrate how it can be done. Therefore, it is not a fully functional service and it is up to the community to enhance it by adding support for standard models (e.g. BBF).
The package contains the necessary components to successfully build and deploy the netopeer container.
voltha-grpc-client:
GRPC client golang library to interact with the Voltha GRPC service. It is compiled as a shared library to serve as a layer between a NETCONF TransAPI C library and the Voltha architecture. TransAPI library -- Voltha GRPC client -- Voltha
voltha-netconf-model
Sample golang library used to translate between a C data structure to the format defined by a given YANG model. This sample uses the VOLTHA YANG model as a reference. This package was implemented to facilitate the serialization from C to XML and thus, is totally optional.
voltha-transapi
Sample transAPI library to add support for the Voltha YANG model to the Netopeer netconf server. This library can be used as a template to add support for other YANG models. The following command was used to build the initial skeleton of the model. ``` lnctool --model voltha.yang transapi ``` The package was also modified to simplify the installation process of dependent libraries such as voltha-grpc-client.
If you wish to build this package, execute the following command.
make netopeer
Please note that the netopeer container does not currently get built by default.
The netopeer container expects a running Voltha environment.
A docker-compose configuration is available to start the instance.
docker-compose -f compose/docker-compose-netopeer.yml -p nc up -d
This installation also comes with the netopeer-cli.
To use it, you will first need to change the root passwd to allow you to login to the netconf-server
Access the console of the netopeer docker instance
docker exec -ti <instance name> bash
Change the root passwd
[root@76531624ce88 /]# passwd Changing password for user root. New password: <enter your new password> Retype new password: <enter your new password again> passwd: all authentication tokens updated successfully. [root@76531624ce88 /]#
Start the netopeer-cli
[root@76531624ce88 /]# netopeer-cli netconf>
Connect to the local netconf-server instance
netconf> connect localhost root@localhost password: <password that you configured above>
Issue a sample RPC command
netconf> user-rpc
Enter the following request:
<voltha:VolthaGlobalService-GetVoltha xmlns:voltha="urn:opencord:params:xml:ns:voltha:voltha"/>
Sample output
netconf> user-rpc Result: <voltha> <version>0.9.0</version> <log_level>INFO</log_level> <instances/> <adapters/> <logical_devices/> <devices/> <device_groups/> </voltha>