Skip to content

Latest commit

 

History

History
72 lines (62 loc) · 3.93 KB

README.md

File metadata and controls

72 lines (62 loc) · 3.93 KB

CI Tests

DAQ: Device Automated Qualification for IoT Devices.

DAQ is a framework designed to test and operate IoT devices in an enterprise IoT environment. Nominally about device testing and qualification, Device Automated Qualification (DAQ), provides a means to automate many capabilities, resulting in a more manageable, robust, and secure platform.

Join the [email protected] email list for ongoing discussion about using DAQ for enterprise IoT devices.

There are several main categories of capabilities that DAQ addresses:

System Requirements

Most aspects of DAQ assume a baseline setup consisting of:

  • Linux install: DAQ has been tested against both Ubuntu 18.04.2 LTS bionic and Debian GNU/Linux 9.4 stretch, YMMV with other platforms.
  • Dedicated network adapters: At the very minimum one dedicated ethernet adapter is required. This could either be a separate built-in NIC, or a USB-Ethernet dongle.
  • (Optional) OpenFlow-compatible hardware switch, described in the Network Topologies overview.

Quick Start

Please reference here

Folder Structure

The top-level DAQ folders correspond to the following structure:

  • bin/: System setup and management commands.
  • build/: Dynamically created directory for build logs.
  • cmd/: Primary commands for running DAQ testing.
  • config/: System and module configuration files.
  • daq/: Python source for DAQ runtime.
  • docker/: Docker build files for DAQ components and tests.
  • docs/: Documentation.
  • etc/: Version files and external switch setup files.
  • faucet/: Dynamically downloaded version of SDN controller.
  • forch/: Dynamically downloaded version of SDN orchestrator.
  • firebase/: Hosted pages and functions for web dashboard.
  • functions/: Additional Cloud Functions for data processing.
  • inst/: Install directory for specific runtime contents.
  • local/: Local setup and config information.
  • mininet/: Local version of the mininet virtual network host framework.
  • mudacl/: Utilities for managing and testing MUD network files.
  • mud_files/: Examples and prototype device MUD files.
  • out/: Misc transitory output files.
  • proto/: Protobuf related files.
  • protoc-gen-doc/: Dynamically downloaded Protobuf documentation generator.
  • pubber/: Sample code for generating cloud-ingest traffic.
  • resources/: Templates for reports, module configs, test-site definitions.
  • schemas/: Device/cloud data exchange schemas.
  • subset/: Subsets of device tests (e.g. penetration tests).
  • testing/: Scripts for system continuous integration testing.
  • topology/: Network topology setups.
  • validator/: Tools for validating data exchange schemas.
  • venv/: Dynamically downloaded python virtual environment files.

Items in italics can generally be deleted without any loss of functionality (dynamically created at install/runtime). The local subdirectory contains local setup information that is not part of the source distribution.