diff --git a/doc/docs/structure.md b/doc/docs/structure.md index 87fe499..ea8add1 100644 --- a/doc/docs/structure.md +++ b/doc/docs/structure.md @@ -18,6 +18,7 @@ | Version | Date | Comment | Author | Approver | |---------|------|---------|--------|----------| +| 0.0c | 2026-05-14 | Added scope legends to timpani-o and timpani-n block diagrams | LGSI-KarumuriHari | - | | 0.0b | 2026-05-13 | Added HLD section and features/requirements documentation | LGSI-KarumuriHari | - | | 0.0a | 2026-05-13 | Initial structure documentation | Eclipse timpani Team | - | @@ -27,9 +28,222 @@ This document describes the current structure of the timpani repository. All fil --- -![alt text](../images/tt_1.png) -![alt text](../images/tt_2.png) -![alt text](../images/tt_3.png) +## timpani System Block Diagrams + +### timpani-o System Block Diagram + +```mermaid +graph TB + subgraph "External Systems" + PICCOLO[Piccolo Orchestrator] + ADMIN[System Administrator] + end + + subgraph "Distributed Nodes" + NODE1[timpani-n Node 1] + NODE2[timpani-n Node 2] + NODEN[timpani-n Node N] + end + + subgraph "timpani-o Global" + subgraph "Interface Layer" + DBUS_SRV[D-Bus Server
replaced by gRPC] + GRPC_SRV[gRPC Server
SchedInfoService] + FAULT_CLI[Fault Client
gRPC to Piccolo] + end + + subgraph "Core Processing Layer" + SCHEDINFO[SchedInfoServiceImpl] + HYPER[HyperperiodManager] + GLOBAL[GlobalScheduler] + NODECONFIG[NodeConfigManager] + CLI[CLI/Config] + end + + subgraph "Data Management Layer" + TASKCONV[Task Converter] + SCHEDMAP[SchedInfoMap] + SCHEDUTIL[Scheduler Utils] + end + + subgraph "Storage Layer" + SCHEDSTATE[Schedule State] + HYPERINFO[Hyperperiod Info] + NODEFILES[Node Config Files] + end + end + + subgraph Legend[" "] + L1["timpani-o (Our Scope)"] + L2["timpani-n Nodes (Our Scope)"] + L3["gRPC Communication (Our Scope)"] + L4["External Systems"] + end + + PICCOLO -->|gRPC SchedInfo| GRPC_SRV + ADMIN -->|CLI Config| CLI + + GRPC_SRV --> SCHEDINFO + DBUS_SRV -.->|legacy| SCHEDINFO + + SCHEDINFO --> HYPER + SCHEDINFO --> GLOBAL + SCHEDINFO --> TASKCONV + + CLI --> NODECONFIG + NODECONFIG --> NODEFILES + + HYPER --> HYPERINFO + GLOBAL --> SCHEDUTIL + GLOBAL --> SCHEDMAP + + TASKCONV --> SCHEDMAP + SCHEDMAP --> SCHEDSTATE + + FAULT_CLI -->|gRPC FaultNotify| PICCOLO + + GRPC_SRV -->|Deadline Miss| NODE1 + GRPC_SRV -->|Deadline Miss| NODE2 + GRPC_SRV -->|Deadline Miss| NODEN + + NODE1 -->|libtrpc Schedule| GRPC_SRV + NODE2 -->|libtrpc Schedule| GRPC_SRV + NODEN -->|libtrpc Schedule| GRPC_SRV + + NODE1 -.->|Deadline Miss| FAULT_CLI + NODE2 -.->|Deadline Miss| FAULT_CLI + NODEN -.->|Deadline Miss| FAULT_CLI + + style PICCOLO fill:#f5f5f5,stroke:#757575,stroke-width:2px + style ADMIN fill:#f5f5f5,stroke:#757575,stroke-width:2px + style NODE1 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px + style NODE2 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px + style NODEN fill:#e8f5e9,stroke:#388e3c,stroke-width:3px + style GRPC_SRV fill:#fff3e0,stroke:#f57c00,stroke-width:3px + style DBUS_SRV fill:#d3d3d3,stroke:#757575,stroke-width:2px + style FAULT_CLI fill:#fff3e0,stroke:#f57c00,stroke-width:2px + style SCHEDINFO fill:#e3f2fd,stroke:#1976d2,stroke-width:2px + style HYPER fill:#e3f2fd,stroke:#1976d2,stroke-width:2px + style GLOBAL fill:#e3f2fd,stroke:#1976d2,stroke-width:3px + style NODECONFIG fill:#e3f2fd,stroke:#1976d2,stroke-width:2px + style CLI fill:#e3f2fd,stroke:#1976d2,stroke-width:2px + style TASKCONV fill:#e3f2fd,stroke:#1976d2,stroke-width:2px + style SCHEDMAP fill:#e3f2fd,stroke:#1976d2,stroke-width:2px + style SCHEDUTIL fill:#e3f2fd,stroke:#1976d2,stroke-width:2px + style SCHEDSTATE fill:#e3f2fd,stroke:#1976d2,stroke-width:2px + style HYPERINFO fill:#e3f2fd,stroke:#1976d2,stroke-width:2px + style NODEFILES fill:#e3f2fd,stroke:#1976d2,stroke-width:2px + style L1 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px + style L2 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px + style L3 fill:#fff3e0,stroke:#f57c00,stroke-width:3px + style L4 fill:#f5f5f5,stroke:#757575,stroke-width:2px +``` + +### timpani-n System Block Diagram + +```mermaid +graph TB + subgraph "Linux Kernel" + SCHED[Scheduling Events
tracepoints] + SYSCALL[System Calls
sigtimedwait] + end + + subgraph "External Systems" + SAMPLE[Sample Applications
Execution Tasks] + TIMPANIO[timpani-o
Global Scheduler] + end + + subgraph "timpani-n (time-trigger)" + subgraph "BPF Monitoring" + SCHEDSTAT[schedstat.bpf.c
Scheduler Monitoring] + SIGWAIT[sigwait.bpf.c
Signal Monitoring] + RINGBUF[BPF Ring Buffer] + end + + subgraph "Core Layer" + MAIN[main.c
Main Controller] + CONFIG[config.c
Configuration Manager] + CONTEXT[Context Structure
internal.h] + end + + subgraph "Execution Layer" + TASK[task.c
Task Manager] + RTSCHED[sched.c
RT Scheduler] + TIMER[timer.c
Timer Manager] + SIGNAL[Signal Handler
sigwait] + end + + subgraph "System Interface" + LSCHED[Linux Scheduler
SCHED_DEADLINE] + AFFINITY[CPU Affinity
Control] + POSIX[POSIX Timers] + end + + subgraph "Communication Layer" + TRPC[trpc.c
libtrpc Client] + DBUS[D-Bus Connection] + end + end + + subgraph Legend2[" "] + L21["timpani-n (Our Scope)"] + L22["timpani-o (Our Scope)"] + L23["Communication (Our Scope)"] + L24["External Systems"] + end + + TIMPANIO --> TRPC + TRPC --> DBUS + SAMPLE --> TASK + + MAIN --> CONFIG + MAIN --> CONTEXT + MAIN --> TASK + + TASK --> RTSCHED + TASK --> TIMER + TASK --> SIGNAL + + RTSCHED --> LSCHED + RTSCHED --> AFFINITY + TIMER --> POSIX + + SIGNAL --> SYSCALL + + SCHEDSTAT --> RINGBUF + SIGWAIT --> RINGBUF + RINGBUF --> MAIN + + SCHED -.-> SCHEDSTAT + SYSCALL -.-> SIGWAIT + + style TIMPANIO fill:#e3f2fd,stroke:#1976d2,stroke-width:3px + style SAMPLE fill:#f5f5f5,stroke:#757575,stroke-width:2px + style SCHED fill:#f5f5f5,stroke:#757575,stroke-width:2px + style SYSCALL fill:#f5f5f5,stroke:#757575,stroke-width:2px + style MAIN fill:#e8f5e9,stroke:#388e3c,stroke-width:3px + style CONFIG fill:#e8f5e9,stroke:#388e3c,stroke-width:2px + style CONTEXT fill:#e8f5e9,stroke:#388e3c,stroke-width:2px + style TASK fill:#e8f5e9,stroke:#388e3c,stroke-width:2px + style RTSCHED fill:#e8f5e9,stroke:#388e3c,stroke-width:2px + style TIMER fill:#e8f5e9,stroke:#388e3c,stroke-width:2px + style SIGNAL fill:#e8f5e9,stroke:#388e3c,stroke-width:2px + style SCHEDSTAT fill:#e8f5e9,stroke:#388e3c,stroke-width:2px + style SIGWAIT fill:#e8f5e9,stroke:#388e3c,stroke-width:2px + style RINGBUF fill:#e8f5e9,stroke:#388e3c,stroke-width:2px + style LSCHED fill:#f5f5f5,stroke:#757575,stroke-width:2px + style AFFINITY fill:#f5f5f5,stroke:#757575,stroke-width:2px + style POSIX fill:#f5f5f5,stroke:#757575,stroke-width:2px + style TRPC fill:#fff3e0,stroke:#f57c00,stroke-width:2px + style DBUS fill:#fff3e0,stroke:#f57c00,stroke-width:2px + style L21 fill:#e8f5e9,stroke:#388e3c,stroke-width:3px + style L22 fill:#e3f2fd,stroke:#1976d2,stroke-width:3px + style L23 fill:#fff3e0,stroke:#f57c00,stroke-width:3px + style L24 fill:#f5f5f5,stroke:#757575,stroke-width:2px +``` + +--- + ## Current Repository Layout diff --git a/doc/images/tt_1.png b/doc/images/tt_1.png deleted file mode 100644 index 795c8ba..0000000 Binary files a/doc/images/tt_1.png and /dev/null differ diff --git a/doc/images/tt_2.png b/doc/images/tt_2.png deleted file mode 100644 index 164f0a6..0000000 Binary files a/doc/images/tt_2.png and /dev/null differ diff --git a/doc/images/tt_3.png b/doc/images/tt_3.png deleted file mode 100644 index cffc913..0000000 Binary files a/doc/images/tt_3.png and /dev/null differ