OCP Plugin: Carbon: System Test Report

Contents

Feature name

The OCP Plugin project has two top level karaf features, odl-ocpplugin-all and odl-ocpjava-all, which contain the following sub-features

  • odl-ocpplugin-southbound

  • odl-ocpplugin-app-ocp-service

  • odl-ocpjava-protocol

Description

The OCP service (odl-ocpplugin-app-ocp-service), together with the OCP southbound (odl-ocpplugin-southbound) and OCP protocol library (odl-ocpjava-protocol), provides the ODL controller with basic OCP v4.1.1 functionality:

  • OCP-capable radio heads connection

  • OCP inventory: radio heads

  • OCP elementary functions: device management, config management, object lifecycle, object state management, fault management

  • OCP indication message processing

For more information please visit main wiki page OCP_Plugin:Main

Enabling The Feature

Make sure the following prerequisite features are installed beforehand.

feature:install odl-restconf odl-l2switch-switch

Then install the odl-ocpplugin-all feature which includes the odl-ocpplugin-southbound and odl-ocpplugin-app-ocp-service features. Note that the odl-ocpjava-all feature will be installed automatically as the odl-ocpplugin-southbound feature is dependent on the odl-ocpjava-protocol feature.

feature:install odl-ocpplugin-all

After all required features are installed, use following command from karaf console to check and make sure features are correctly installed and initialized.

feature:list | grep ocp

Using The Feature

Currently there are two ways to interact with OCP service: one is via RESTCONF (programmatic) and the other is using DLUX web interface (manual).

Information on how to use the feature is available in OCP_Plugin:Main#Installation

Incompatibilities

OCP service only interacts with OCP-capable radio heads and therefore it does not show incompatibilities with other plugins.

Feature Pro-activeness

OCP Plugin uses TCP port 1033, on which it listens for connection requests from radio heads. The connection established between the radio head and controller (ocpplugin) is for transmission of OCP request/response/indication messages.

Based on the OCP specification, OCP service will perform the alignment procedure against a newly connected radio head upon connection establishment. After that, with the exception of periodic health check, OCP service does not send any request to the radio head unless you program it through NBI.

How to test

There is an OCP service system test suite running in CI:

The test brings a number of OCP agents representing fake radio heads, using the simple OCP agent that can be found in the ocpplugin repository, and verifies:

  • Radio head connectivity

  • Access to radio head configuration

  • Scalability

  • Clustering support

Test Case Description

Pre-conditions or Pre-requisites

Test Procedure

Expected Results

Test Case Description

Pre-conditions or Pre-requisites

Test Procedure

Expected Results

Radio head connectivity

Fresh installation of the controller, then

  • Install prerequisite features

  • Install odl-ocpjava-all

  • Install odl-ocpplugin-all

  • Launch and connect a fake radio head to the controller

  • View the radio head's corresponding inventory node via REST API

  • Verify REST API succeeded

  • GET http://<controller_ip_addr>:8181/restconf/operational/opendaylight-inventory:nodes/node/ocp:TST-1 REST response should succeed with status of 200 OK

Access to radio head configuration

Fresh installation of the controller, then

  • Install prerequisite features

  • Install odl-ocpjava-all

  • Install odl-ocpplugin-all

  • Launch and connect a fake radio head to the controller

  • Read RE:0 object from the radio head's resource model via REST API

  • Verify REST API succeeded

  • POST http://<controller_ip_addr>:8181/restconf/operations/ocp-service:get-param-nb REST response should succeed with status of 200 OK and result code of SUCCESS

Scalability

Fresh installation of the controller, then

  • Install prerequisite features

  • Install odl-ocpjava-all

  • Install odl-ocpplugin-all

  • Launch and connect 200 fake radio heads to the controller

  • View the last radio head's corresponding inventory node via REST API

  • Verify REST API succeeded

  • Read the last radio head's resource model via REST API