FD.io CSIT system design needs to meet continuously expanding requirements of FD.io projects including VPP, related sub-systems (e.g. plugin applications, DPDK drivers) and FD.io applications (e.g. DPDK applications), as well as growing number of compute platforms running those applications. With CSIT project scope and charter including both FD.io continuous testing AND performance trending/comparisons, those evolving requirements further amplify the need for CSIT framework modularity, flexibility and usability.
CSIT follows a hierarchical system design with SUTs and DUTs at the bottom level of the hierarchy, presentation level at the top level and a number of functional layers in-between. The current CSIT system design including CSIT framework is depicted in the figure below.
.
└── tests
├── dpdk
│ └── perf # DPDK performance tests
├── trex
│ └── perf # TRex performance tests
└── vpp
├── device # VPP device tests
└── perf # VPP performance tests
.
resources
└── libraries
├── bash # Contains a dependency of KubernetesUtils
│ ├── config # Config for KubernetesUtils dependency
│ ├── entry # Main bootstrap entry directory
│ ├── function # Bootstrap function library
│ └── shell # Various functions for KubernetesUtils
├── python # Python L1 KWs
└── robot # Robot Framework L2 KWs
.
│── csit.infra.dash # CDash code
│── csit.infra.etl # ETL pipeline code
│── csit.infra.hugo # CDocs local provisioning
│── csit.infra.vagrant # VPP device vagrant environment
├── docs # Main documentaion
|── fdio.infra.ansible # Infrastructure provisioning
|── fdio.infra.packer # Infrastructure provisioning
|── fdio.infra.pxe # Preboot eXecution Environment
|── fdio.infra.terraform # Virtual infrastructure provisioning
|── GPL # Files licensed under GPL
│ ├── traffic_profiles # Performance tests traffic profiles
│ └── traffic_scripts # Functional tests traffic profiles
├── PyPI # PyPI packages provided by CSIT
│ ├── jumpavg
│ └── MLRsearch
├── resources
│ ├── api # API coverage
│ ├── job_specs # Test selection for jenkins job execution
│ ├── model_schema # Test results model schema
│ ├── templates # Templates (vpp_api_test, kubernetes, ...)
│ ├── test_data # Robot Test configuration
│ ├── tools
│ │ └── papi # PAPI driver
│ ├── topology_schemas
└── topologies # Linux Foundation topology files
├── available
└── enabled