-
Notifications
You must be signed in to change notification settings - Fork 0
5.1.0: Standards: vDevice Controller
Ulrond edited this page Oct 24, 2024
·
1 revision
Purpose:
Provides a software-based vDevice for simulating the environment of the target platform. Designed to be modular and flexible, allowing for the testing and development of various components.
Key Components:
-
vDevice Controller:
- The central orchestrator of the virtualised system.
- Manages the lifecycle of vComponent instances (initialising, starting, and stopping).
- Handles the control plane socket, routing control messages to appropriate vComponent instances.
-
vComponent:
- Represents a specific HAL / Operational module within the software stack.
- Receives and processes control plane messages and will extract information relevant to its specific domain.
- Can optionally run in standalone mode with their own control plane sockets.
-
Control Plane:
- Provides a WebSocket interface for sending control messages to alter the behaviour of internal components.
- Allows external users or systems to control, configure, or trigger actions in vComponents.
- Supports communication across multiple modules using YAML-based messages, enabling flexible and scalable control.
Architecture:
-
Modular Design: vComponent instances are packaged as component libraries, ideally moving towards
opkg
for easier integration. - Centralized Control: The vDevice Controller acts as the main coordinator.
- Unified Control Plane: The vDevice Controller provides a common control plane socket for all modules.
System Workflow (Boot Sequence)
- Initialization: vDevice Controller starts up and loads configuration.
- Component Registration: Initialization and exit functions of each vComponent instance are registered with the vDevice Controller.
- Control Plane Activation: vDevice Controller initiates the control plane socket.
-
Component Startup: vDevice Controller triggers the initialization (
init()
function) of all registered vComponent instances based on the provided platform profile.
Considerations:
-
Platform Profile: Ensure that the
platformProfile.yaml
format is well-defined, enabling flexible configuration of vComponent instances during startup. - Control Plane Messages: Clearly define the structure and types of control plane messages that the system will use.
- Documentation: Thoroughly document each vComponent instance's API, supported control messages, and configuration options.
graph TD
subgraph System
subgraph High Level Overview
EmulatorController[vDevice] --> |Initializes/Terminates| ModuleEmulator1[vComponent 1]
EmulatorController --> |Initializes/Terminates| ModuleEmulator2[vComponent 2]
EmulatorController --> |Initializes/Terminates| ModuleEmulatorN[vComponent N]
end
subgraph Starting/Stopping
EmulatorController --> |Starts/Stops| ModuleEmulator1
EmulatorController --> |Starts/Stops| ModuleEmulator2
EmulatorController --> |Starts/Stops| ModuleEmulatorN
end
EmulatorController --> |Control Plane Socket| ControlPlane[Control Plane]
subgraph MessageSending
ControlPlane -- Sends Messages --> ModuleEmulator1
ControlPlane -- Sends Messages --> ModuleEmulator2
ControlPlane -- Sends Messages --> ModuleEmulatorN
end
end