Skip to content

Everflow test plan

Oleksandr Ivantsiv edited this page Feb 14, 2017 · 16 revisions

[DRAFT, UNDER DEVELOPMENT]

##Overview The purpose is to test functionality of Everflow on the SONIC switch DUT with and without LAGs configured, closely resembling production environment. The test assumes all necessary configuration, including Everflow session and ACL rules, LAG configuration and BGP routes, are already pre-configured on the SONIC switch before test runs.

###Scope The test is targeting a running SONIC system with fully functioning configuration. The purpose of the test is not to test specific SAI API, but functional testing of Everflow on SONIC system, making sure that traffic flows correctly, according to BGP routes advertised by BGP peers of SONIC switch, and the LAG configuration.

NOTE: Everflow+LAG test will be able to run only in the testbed specifically created for LAG.

###Related DUT CLI commands Manual Everflow configuration can be done using swssconfig utility in swss container.

swssconfig <json-file to apply>

##Test structure ###Setup configuration Everflow configuration should be created on the DUT before running the test. Configuration could be deployed using ansible sonic test playbook with the tag TODO specify tag here.

Scripts for generating ACL configuration on SONIC

There will be three j2 template files for the Everflow test configuration: everflow_tb_test_session.j2, everflow_tb_test_acl_table.j2 and everflow_tb_test_acl_rue.j2. They will be used by Ansible playbook to generate json files and apply them on the switch.

Ansible scripts to setup and run Everflow test

everflow_testbed.yml

everflow_testbed.yml when run with tag "everflow_tb" will to the following:

  1. Generate JSON files and apply them on the switch.
  2. Run test.
  3. Clean up all configuration and temporary configuration on the DUT.

Everflow test consists of a number of subtests, and each of them will include the following steps:

  1. Run lognanalyzer 'init' phase
  2. Run ACL Sub Test
  3. Run loganalyzer 'analyze' phase

Everflow subtests will be implemented in the PTF (everflow_testbed_test.py). Every subtest will be implemented in a separate class.

Clone this wiki locally