Skip to content

pbatta/daq

 
 

Repository files navigation

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 daq-users@googlegroups.com 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.

About

DAQ (Device Automated Qualification) framework for IoT devices based on faucet.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 39.0%
  • Java 29.7%
  • Shell 21.0%
  • HTML 5.0%
  • JavaScript 4.5%
  • CSS 0.8%