TEST PLAN for CORD 6.0 Release

Test Plan consists of various sections/feature areas for CORD 6.0 Release and tests included here are at high level.

CORD Platform Related

  • Kubernetes Sanity POD Tests (expected resources to be looked up dependings on the profile/helm-charts deployed). This test is meant to give us a good level of certainty that the cluster has been brought up as expected, and we can then get into deeper level of testing each individual component/service on CORD. [High]

    • Validate all deployments are successfully rolled out and matches replicas to available replicas

    • Validate all pods are running

    • Validate all services are running

    • Validate pods have external connectivity*

    • Validate all pods can ping the kube-system namespace*

    • Validate all nodes are healthy (checking “ready”, “outofdisk”, “memorypressure”, “diskpressure”)

    • Validate all containers are in running state

    • Health checks

  • Helm upgrade test [Not ready for 6.0]

    • Possibly after testing a successful build -> upgrade helm charts and re-test

  • Validate Tests on  Minikube and KubeSpary environments

  • KubeSpray and Minikube (Hardware )

    • Helm install RCORD Lite profile

    • Post Installation Tests (needs to be realigned)

      • Profile based container checks

      • Validating container logs for errors

    • Control Plane Tests

    • Data Plane Tests (Manual Scenarios will be tested in the release using OLT/ONU)

  • New tests for validating the scripts to install environment

    • Install Kubespray + helm (Verify base containers)

    • Install OpenStack

    • Install base packages on ubuntu (required for OpenStack)

R-CORD Specific

  • Validate the change in the existing CORDSubscriberRoot Service Chain

    • Validate using `rcord` profile on PODs and `rcord-virtual` on Virtual Environment

    • New control plane tests to validate new service chain for CordSubscriber creations

    • Verify that by creating a subscriber, vOLTServiceInstance is created and subsequently vSGServiceInstances, Core Instances are created properly.

    • New models defined for CORDSubscriberRoot, OLT Device and PON-Port, ONU Device modelsare used to POST to the APIs

    • Do we need to still validate the old way of R-CORD profile for 6.0?

  • Validate “rcord-lite” (or no vSG) profile [High]

    • Verify the profile on Kubernetes Environment

    • New models defined for CORDSubscriberRoot, OLT Device, PON-Port and ONU Device models are used to POST to the APIs

    • Write new control plane tests to verify the new service chain

      • creating a subscriber, a vOLTServiceInstance is created and a vSG-HWServiceInstance is created

      • No vSG instances/containers are created

    • Data Plane Verification

      • Testing will be performed once the implementation has been completely defined

      • Testing is also dependant on the availability of OLT/ONU devices

      • Manual data plane verifications will be performed in this release

      • Investigate how to validate data plane connectivity with `rcord-lite` profile in automated tests

  • R-CORD Lite Data Plane with ONU/OLT

    • Currently QA does not have any hardware available to test/validate using ONU/OLT devices

    • What are the most important tests required for 6.0 ? [Ping tests, multiple subscriber traffic tests]

  • M-CORD

    • Openstack changes and instance validations

    • Validate installation of M-CORD using helm-charts

    • Perform a simple end-end test.

    • Platform that will be used is a single node platform only (one node- CiaB)


Jenkins Environment

  • Migrate old jenkins jobs to new JJB. Migration will be done based on the following prioritized list

    • `xos-api-sanity-pipeline` will be migrated first along with changes that includes usage of new light weight profiles with minikube environment.

      • The new ‘xos-api-sanity-pipeline’ job have been ported over to ‘verify_<project>_api_test’ jobs in the new jenkins. Still using the old ‘make <profile>-local’ configs (docker-compose).

      • WIP on the environment to be deployed and run the tests. (minikube)

      • [JOB Migrated by Zack and tests will be provided by QA]

    • POD related jobs

      • Build procedure updates (test on Calix POD for master branch with Kubernetes deployment)

      • Port changes on other PODs

      • Migrate Soak PODs to 6.0 towards the end

R-CORD Performance/Scale/Stability Testing

  • Performance/Scale/Stability Testing will be performed using CORD 5.0 stable version

  • Scale vCPEs in a single vSG

    • Required test scripts will be achieved for CORD 5.0 release

    • Tests will be performed Flex POD

  • Scale vSGs

    • Verify that the vSGs created are ACTIVE

    • Verify that the respective containers are created within

    • Verify the stability of CORD (memory utilization, restart checks and any error checks)

  • Stability Tests

    • POD runs for almost 3 month time

    • Following checks are performed to check the health of the POD

      • Errors in Containers, ONOS Logs

      • Restart checks on any containers

      • Memory utilization on the containers

      • Out of Memory issues


    • Traffic Emulation tests using Spirent Test Tools

      • Generation of continuous traffic scenarios using multiple vSGs

      • Scaling of vSGs and vCPEs followed by generation of more taffic

  • TestBed Setup is shown below

    • Flex POD-1

      • Compute (Flex 1U Victoria)

        • 2x Intel E5-2630v3 8c 2.4Ghz, 192GB RAM

        • 2x1G, 2x40G dual port Mellanox NIC

        • 1x Intel SSD 480GB

      • Switch (Accton AS6712-54X 48x40G, 6x40G)


  


M-CORD

  • Validate EPC in M-CORD 4.1 release if it is compliant to 3GPP standards or not

  • Functional Tester Tool from Polaris is used to verify

  • MME FT - 786 tests

    • S1-MME Management

    • UE Attach

    • UE Context Management

    • UE Detach

    • Service Request

    • Tracking Area Update

    • Dedicated Bearer Handling

    • S1 based Handover

    • X2 based Handover

    • Trace

    • Location Services

    • And other functionality

  • PGW FT - 387 tests

  • SGW FT - 344 tests

  • SPGW FT - 173 tests


Diagram below how the Functional Tester tool connects to M-CORD and perform tests.

The System Under Test can be one of the EPC Nodes like MME, SGW or PGW. SPGW is a combined SGW + PGW.


In M-CORD, few nodes from the EPC are available such as (NG4T provides MME, Intel provides SPGW and Sprint(?) provides MME & HSS in 5.0).

R-CORD Performance/Scale/Stability Testing

Additional Information about test setup and actual tests


 

Scenario 1 -

As RCORD Solution is deployed on Open-stack – Spirent test center virtual(STCv)VM’s are created and deployed on the same environment.

Detailed Packet flow

  • The test client (STCv) emits double-tagged VLAN packets (S-Tag and C-Tag) onto the “vSG” interface on the compute node.

  • Depending on the functionality configured on the vSG the test client (STCv) on the receiver end receives the traffic.


 

Wireshark Capture

Scenario 2

Detailed Packet flow

  • The test client (STCv) emits double-tagged VLAN packets (S-Tag and C-Tag) onto the “fabric”.

    • Fabric here in the above picture is a switch running ONOS.

    • Flows are configured on this switch in ONOS such that when it receives double-tagged traffic, the traffic is routed to corresponding vSG’s.

  • All the packets are always forwarded on the “fabric” interface of the compute nodes, where they are forwarded to the corresponding vSG.

  • Depending upon the functionality of the vSG the test client (STCv) on the receiver end receives the traffic.

  • Analytical report is generated by the Spirent tool. This report has a detailed insight that provides us various details like frame size, latency, throughput, dropped frames, etc.

  • These reports help us analyze the life of the packet in the CORD environment.



Spirent Frame Details -