Skip to content
George Hicken edited this page Jan 26, 2017 · 1 revision

Tether

This is a working document for updates to tether design.

Functional requirements

  • launch & monitor processes
  • capture and forward process output
    • persistent logging - accessible when powered off
    • timestamps
  • inject process input
  • dispatch signals to processes
  • toolbox commands
    • power/shutdown operations
    • IP address publishing
  • network configuration
    • IP address
    • Firewall
  • hotadd
    • mem
    • cpu
    • NIC - support docker network connect and similar
  • mount configuration
    • switch-root
    • block device mount
    • network share mount
  • bidirectional file copy - support docker cp and similar
  • vmfork
    • pre/post handling
    • fork trigger
  • system limits (e.g. ulimits)
  • status reporting/diagnostics
    • system status (includes tether initialization stages)
    • process status (including exit status)

Non-functional requirements

  • limited filesystem dependencies
  • immutable configuration - accessible when powered off
  • publishing of runtime data - e.g. process status, DHCP-assigned address
  • idempotent application of configuration
  • more portable the better
  • no in-guest network dependency
  • containerVM and endpointVM enforce mutual authentication