Cord-Tester

CORD Automated Tester Suite:

The CORD Automated Tester Suite (CATS) is an extensible end-to-end system test suite targeting CORD PODs. It is typically deployed as one or more Docker containers, either on the CORD POD or adjacent to the POD and interacts with the POD through the PODs interfaces.

Its intended use includes:

● Functional Testing

● Regression testing for CORD related component development

● Acceptance testing of a deployed CORD POD

● Health-testing of an existing CORD POD (including non-service-impacting and possibly service-impacting tests)

**Test Cases (Implemented and Planned) : **

Test Plan CORD TESTER Implemented Features





Table of Contents



** **IGMP

**AUTHENTICATION **

** DHCP **

** DHCPRelay**

** SUBSCRIBER**

** VROUTER**

** ACL **

** Proxy-Arp**

** Flows**

Cluster

** XOS**

** Cbench**

** iPerf**

** Cord-Subscriber**

** netCondition**

** Mininet**

IGMP


Authentication


Set up for EAP-TLS :

-------------------------

**1. **ea.conf file (

** in eap section default_eap_type = tls **

** in gtc section comment the #auth_type = EAP }**


2. TLS Client Certification PEM file. (File name - inno-dev-ca-certificate..pem) .

**3. Copy and past Client crt in server installed CA.crt file. (File name -inno-dev-ca-certificate.crt) **

DHCP


Activate the DHPC app

**Subscriber **

**Vrouter **


** Start the quagga container and activate the Vrouter app.**

ACL

IPV6




Flows


This is to verify that the flow subsystem is compiling flows correctly.

We use a packet generation tool called Scapy which allows us to construct a packet that is tailor made for each flow.


Metrics


R****EST API is used for Collecting and Querying System Metrics.

1. Install CollectD plugin which is in charging of reporting all metric values to ONOS through REST API.

2. Install ONOS and activate CPMan application to receive system metrics from CollectD.




Platform tests


Docker engine and docker.py should be installed on test host.



Ovsdb


Onos should be running well and Install feature ovsdb-web-provider ovsdb onos-core-netvirt on onos.



Netconf


start ONOS and activate the netconf app


netconf-cfg.json file ($ONOS_ROOT/tools/test/configs/netconf-cfg.json)

{

** "devices":{**

** "netconf::":{**

** "basic":{**

** "driver": **

** }**

** }**

** },**

** "apps":{**

** "org.onosproject.netconf":{**

** "devices":[{**

** "name":,**

** "password":,**

** "ip":,**

** "port":**

** }]**

** }**

** }**

}




Proxy ARP

Network config link provider:


The network config link provider allows specifying the link topology via the netcfg mechanism, and disallows any links that are not in the defined configuration.


Here is an example of a configuration that defines a set of links in a topology:

Sample Config

{

** "links" : {**

** "of:0000000000000001/1-of:0000000000000191/1" : {**

** "basic" : {}**

** },**

** "of:0000000000000001/3-of:0000000000000192/1" : {**

** "basic" : {}**

** },**

** "of:0000000000000002/1-of:0000000000000191/3" : {**

** "basic" : {}**

** },**

** "of:0000000000000002/3-of:0000000000000192/3" : {**

** "basic" : {}**

** },**

** "of:0000000000000191/1-of:0000000000000001/1" : {**

** "basic" : {}**

** },**

** "of:0000000000000192/1-of:0000000000000001/3" : {**

** "basic" : {}**

** },**

** "of:0000000000000191/3-of:0000000000000002/1" : {**

** "basic" : {}**

** },**

** "of:0000000000000192/3-of:0000000000000002/3" : {**

** "basic" : {}**

** }**

** },**

** "apps" : {**

** "org.onosproject.core" : {**

** "core" : {**

** "linkDiscoveryMode" : "STRICT"**

** } **

** }**

** }**

}





Network Configuration


REST api are used to add/modify/delete and view network configurations in ONOS.




Reactive Routing


Configure each gateway address together with each IP prefix in the configuration file "sdnip.json" which is located at onos/tools/package/config/sdnip.json.


** "ip4LocalPrefixes" : [**

** {**

** "ipPrefix" : "100.0.0.0/24",**

** "type" : "PUBLIC",**

** "gatewayIp" : "100.0.0.1"**

** },**

** {**

** "ipPrefix" : "200.0.0.0/8",**

** "type" : "PUBLIC",**

** "gatewayIp" : "200.0.0.3"**

** },**

** {**

** "ipPrefix" : "192.0.0.0/24",**

** "type" : "PRIVATE",**

** "gatewayIp" : "192.0.0.254"**

** }**

** ],**

"virtualGatewayMacAddress" : "00:00:00:00:00:01"


Activate the apps - "onos-app-sdnip" first, and then “onos-app-reactive-routing” in ONOS.


DHCPRelay


Activate the DHCPRelay app

Cluster :

Onos cluster is multi-instance of ONOS deployment.

Each device connected to clustrer, has a master to controller the device.

Each Onos instance in a cluster, can be its state ‘None’, ‘Standby’, or ‘Master’ to a connected device.

</td>
<td>Acl traffic should receive on interface before and after cluster members goes down</td>
<td>Pass</td>

XOS:

Cbench :

iPerf :

Cord-Subscriber :

netCondition:

Mininet: