diff --git a/README.md b/README.md
index 2595bdc..e1a78ac 100644
--- a/README.md
+++ b/README.md
@@ -3,16 +3,16 @@
* SPDX-License-Identifier: MIT
-->
-# TIMPANI
+# timpani
-Distributed real-time scheduling system with time-triggered execution capabilities. TIMPANI provides both C and Rust implementations of node executors and schedulers for deterministic real-time applications.
+Distributed real-time scheduling system with time-triggered execution capabilities. timpani provides both C and Rust implementations of node executors and schedulers for deterministic real-time applications.
This repository contains both original C implementations and modern Rust ports with enhanced type safety and memory safety.
## Architecture
-- **TIMPANI-N (Node Executor)**: Executes time-triggered tasks on individual nodes
-- **TIMPANI-O (Node Scheduler)**: Orchestrates and schedules tasks across distributed nodes
+- **timpani-n(Node Executor)**: Executes time-triggered tasks on individual nodes
+- **timpani-o (Node Scheduler)**: Orchestrates and schedules tasks across distributed nodes
- **Sample Applications**: Real-time test applications for system validation
## Getting Started
@@ -20,8 +20,8 @@ This repository contains both original C implementations and modern Rust ports w
### Clone the Repository
```bash
-git clone --recurse-submodules https://github.com/MCO-PICCOLO/TIMPANI.git
-cd TIMPANI
+git clone --recurse-submodules https://github.com/eclipse-timpani/timpani.git
+cd timpani
```
> **Note:** Use `--recurse-submodules` to automatically clone the required submodules (libbpf, etc.).
@@ -42,7 +42,7 @@ make
```
*For detailed setup and usage β [Full Documentation](sample-apps/README.md)*
-### [TIMPANI-N (Node Executor)](timpani-n/README.md)
+### [timpani-n(Node Executor)](timpani-n/README.md)
C implementation of the time-triggered node executor component.
**Quick Build:**
@@ -58,7 +58,7 @@ make
*For detailed setup, dependencies, and usage β [Full Documentation](timpani-n/README.md)*
-### [TIMPANI-O (Node Scheduler)](timpani-o/README.md)
+### [timpani-o (Node Scheduler)](timpani-o/README.md)
C implementation of the orchestrator component with gRPC & protobuf support for distributed scheduling.
**Quick Build:**
@@ -70,10 +70,10 @@ make
```
*For detailed setup, protobuf configuration, and usage β [Full Documentation](timpani-o/README.md)*
-### [TIMPANI Rust Components](timpani_rust/README.md)
-Rust ports of TIMPANI components with enhanced type safety and memory safety.
+### [timpani Rust Components](timpani_rust/README.md)
+Rust ports of timpani components with enhanced type safety and memory safety.
-#### [Rust TIMPANI-N (Node Executor)](timpani_rust/timpani-n/README.md)
+#### [Rust timpani-n(Node Executor)](timpani_rust/timpani-n/README.md)
Rust implementation of the node executor with comprehensive CLI interface, configuration validation, and structured logging. **Status**: Configuration parsing complete, runtime features in development.
**Quick Build:**
@@ -84,7 +84,7 @@ cargo test # Run tests
```
*For detailed setup, usage examples, and current status β [Full Documentation](timpani_rust/timpani-n/README.md)*
-#### [Rust TIMPANI-O (Node Scheduler)](timpani_rust/timpani-o/)
+#### [Rust timpani-o (Node Scheduler)](timpani_rust/timpani-o/)
Rust implementation of the global scheduler component. **Status**: In development.
**Quick Build:**
@@ -102,7 +102,7 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
## π Documentation Structure
```
-TIMPANI/
+timpani/
βββ README.md # This file - main project overview
βββ sample-apps/
β βββ README.md # Sample applications documentation
@@ -124,4 +124,4 @@ TIMPANI/
---
-**Navigation:** [Sample Apps](sample-apps/) | [TIMPANI-N (C)](timpani-n/) | [TIMPANI-O (C)](timpani-o/) | [Rust Components](timpani_rust/) | [Rust TIMPANI-N](timpani_rust/timpani-n/)
+**Navigation:** [Sample Apps](sample-apps/) | [timpani-n(C)](timpani-n/) | [timpani-o (C)](timpani-o/) | [Rust Components](timpani_rust/) | [Rust timpani-n](timpani_rust/timpani-n/)
diff --git a/doc/README.md b/doc/README.md
index fa682e5..8ad7c21 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -3,17 +3,17 @@
* SPDX-License-Identifier: MIT
-->
-# TIMPANI Documentation Guide
+# timpani Documentation Guide
**Last Updated:** May 12, 2026
-**Project:** Eclipse TIMPANI (Rust Migration)
+**Project:** Eclipse timpani (Rust Migration)
**Version:** Milestone 1 & 2 (gRPC Integration)
---
## π Documentation Overview
-This documentation provides a comprehensive guide to the TIMPANI project's migration from C/C++ to Rust, including architecture documentation, high-level design (HLD) comparisons, and implementation details. This structure is designed for **developers and contributors** to understand the system architecture and implementation.
+This documentation provides a comprehensive guide to the timpani project's migration from C/C++ to Rust, including architecture documentation, low-level design (LLD) comparisons, and implementation details. This structure is designed for **developers and contributors** to understand the system architecture and implementation.
---
@@ -24,16 +24,16 @@ This documentation provides a comprehensive guide to the TIMPANI project's migra
System architecture, communication protocols, and high-level design documentation.
-- [TIMPANI Architecture](architecture/timpani_architecture.md) - Overall system architecture
+- [timpani Architecture](architecture/timpani_architecture.md) - Overall system architecture
- [gRPC Architecture](architecture/grpc_architecture.md) - Communication layer design
-#### High-Level Design (HLD) Documents
-π [`architecture/HLD/`](architecture/HLD/)
+#### Low-Level Design (LLD) Documents
+π [`architecture/LLD/`](architecture/LLD/)
-Component-level HLD documents comparing legacy C/C++ with Rust implementations.
+Component-level LLD documents comparing legacy C/C++ with Rust implementations.
-**Timpani-O (Global Orchestrator):**
-- [`HLD/timpani-o/`](architecture/HLD/timpani-o/) - 10 component HLD documents
+**timpani-o (Global Orchestrator):**
+- [`LLD/timpani-o/`](architecture/LLD/timpani-o/) - 10 component LLD documents
- 01: SchedInfo Service
- 02: Fault Service Client
- 03: D-Bus β gRPC Node Service
@@ -44,10 +44,10 @@ Component-level HLD documents comparing legacy C/C++ with Rust implementations.
- 08: Data Structures
- 09: Communication Protocols
- 10: Error Handling
- - [README](architecture/HLD/timpani-o/README.md) - Component overview & migration themes
+ - [README](architecture/LLD/timpani-o/README.md) - Component overview & migration themes
-**Timpani-N (Node Executor):**
-- [`HLD/timpani-n/`](architecture/HLD/timpani-n/) - 10 component HLD documents
+**timpani-n (Node Executor):**
+- [`LLD/timpani-n/`](architecture/LLD/timpani-n/) - 10 component LLD documents
- 01: Initialization & Main
- 02: Configuration Management β
- 03: Time Trigger Core
@@ -58,7 +58,7 @@ Component-level HLD documents comparing legacy C/C++ with Rust implementations.
- 08: Communication (libtrpc β gRPC)
- 09: Resource Management
- 10: Data Structures
- - [README](architecture/HLD/timpani-n/README.md) - Component overview & migration status
+ - [README](architecture/LLD/timpani-n/README.md) - Component overview & migration status
**π Focus:** Understand system architecture and component-level AS-IS vs WILL-BE comparisons
@@ -91,7 +91,7 @@ Development standards, coding rules, and workflow guidelines.
---
-## π Documentation Flow (Architecture β HLD β Implementation)
+## π Documentation Flow (Architecture β LLD β Implementation)
```mermaid
graph TD
@@ -100,9 +100,9 @@ graph TD
A2[gRPC Architecture
grpc_architecture.md]
end
- subgraph "2. Component HLD"
- H1[Timpani-O HLD
10 Components]
- H2[Timpani-N HLD
10 Components]
+ subgraph "2. Component LLD"
+ H1[timpani-o LLD
10 Components]
+ H2[timpani-n LLD
10 Components]
H3[AS-IS vs WILL-BE
Comparisons]
end
@@ -150,12 +150,12 @@ graph TD
eclipse_timpani/
βββ doc/ # π All documentation (YOU ARE HERE)
β βββ README.md # This file
-β βββ architecture/ # Architecture & HLD documentation
+β βββ architecture/ # Architecture & LLD documentation
β β βββ timpani_architecture.md
β β βββ grpc_architecture.md
-β β βββ HLD/ # High-Level Design documents
-β β βββ timpani-o/ # Timpani-O component HLDs
-β β βββ timpani-n/ # Timpani-N component HLDs
+β β βββ LLD/ # Low-Level Design documents
+β β βββ timpani-o/ # timpani-o component LLDs
+β β βββ timpani-n/ # timpani-n component LLDs
β βββ docs/ # Implementation guides
β β βββ api.md
β β βββ getting-started.md
@@ -180,24 +180,24 @@ eclipse_timpani/
## π Development Checklist
-### Phase 1: Architecture Review
+### Step 1: Architecture Review
- [ ] System architecture documentation is complete and accurate
- [ ] gRPC architecture addresses all communication requirements
- [ ] Component boundaries are clearly defined
-### Phase 2: Component HLD Review
+### Step 2: Component LLD Review
- [ ] AS-IS architecture accurately reflects legacy implementation (C/C++)
- [ ] WILL-BE architecture documents Rust implementation status
-- [ ] Component HLDs are verified against actual source code
+- [ ] Component LLDs are verified against actual source code
- [ ] Migration notes capture key design decisions
-### Phase 3: Implementation Verification
+### Step 3: Implementation Verification
- [ ] API documentation matches protobuf definitions
- [ ] Build process is reproducible
- [ ] Test coverage meets acceptance criteria (>80% for critical paths)
- [ ] Performance benchmarks validate requirements
-### Phase 4: Quality Assurance
+### Step 4: Quality Assurance
- [ ] Code follows Rust coding standards (clippy, rustfmt)
- [ ] All PRs follow branching and review guidelines
- [ ] CI/CD pipeline enforces quality gates
@@ -214,12 +214,12 @@ eclipse_timpani/
- Consult [GitHub Issues](https://github.com/eclipse-timpani/timpani/issues)
### For Architecture Clarifications
-- Refer to [TIMPANI Architecture](architecture/timpani_architecture.md)
+- Refer to [timpani Architecture](architecture/timpani_architecture.md)
- Review [gRPC Architecture](architecture/grpc_architecture.md)
-- Check component HLDs in [HLD/timpani-o/](architecture/HLD/timpani-o/) or [HLD/timpani-n/](architecture/HLD/timpani-n/)
+- Check component LLDs in [LLD/timpani-o/](architecture/LLD/timpani-o/) or [LLD/timpani-n/](architecture/LLD/timpani-n/)
### For Development Queries
-- Review architecture documentation: `architecture/` β `HLD/` β `docs/`
+- Review architecture documentation: `architecture/` β `LLD/` β `docs/`
- Check test coverage reports: `timpani_rust/target/coverage/`
- Review CI/CD logs: GitHub Actions workflow results
diff --git a/doc/architecture/HLD/timpani-n/01-initialization-main.md b/doc/architecture/LLD/timpani-n/01-initialization-main.md
similarity index 93%
rename from doc/architecture/HLD/timpani-n/01-initialization-main.md
rename to doc/architecture/LLD/timpani-n/01-initialization-main.md
index 8fb0dd8..f28ba9a 100644
--- a/doc/architecture/HLD/timpani-n/01-initialization-main.md
+++ b/doc/architecture/LLD/timpani-n/01-initialization-main.md
@@ -3,17 +3,17 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Initialization & Main Entry Point
+# LLD: Initialization & Main Entry Point
-**Component Type:** Application Entry Point
-**Responsibility:** Program initialization, main execution loop coordination, graceful shutdown
+**Component Type:** Application Entry Point
+**Responsibility:** Program initialization, main execution loop coordination, graceful shutdown
**Status:** π Partially Migrated (C β Rust)
---
## Component Overview
-The Initialization & Main component serves as the entry point for Timpani-N, coordinating the startup sequence, initialization of all subsystems, runtime execution, and graceful shutdown.
+The Initialization & Main component serves as the entry point for timpani-n, coordinating the startup sequence, initialization of all subsystems, runtime execution, and graceful shutdown.
---
@@ -86,7 +86,7 @@ static tt_error_t initialize(struct context *ctx)
return TT_ERROR_BPF;
}
- // 5. Initialize TRPC and get schedule from Timpani-O
+ // 5. Initialize TRPC and get schedule from timpani-o
if (init_trpc(ctx) != TT_SUCCESS) {
return TT_ERROR_NETWORK;
}
@@ -113,7 +113,7 @@ static tt_error_t initialize(struct context *ctx)
```c
static tt_error_t run(struct context *ctx)
{
- // 1. Synchronize with Timpani-O server
+ // 1. Synchronize with timpani-o server
if (sync_timer_with_server(ctx) != TT_SUCCESS) {
return TT_ERROR_NETWORK;
}
@@ -144,27 +144,27 @@ graph TD
A[main: Start] --> B[memset context]
B --> C[parse_config]
C --> D[initialize]
-
+
D --> E[setup_signal_handlers]
E --> F[set_affinity CPU]
F --> G[set_schedattr RT prio]
G --> H[calibrate_bpf_time_offset]
H --> I[init_trpc]
I --> J{Apex.OS mode?}
-
+
J -->|Yes| K[init_apex_list]
J -->|No| L[bpf_on]
L --> M[init_task_list]
-
+
K --> N[apex_monitor_init]
M --> N
-
+
N --> O[run]
O --> P[sync_timer_with_server]
P --> Q[start_timers]
Q --> R[start_hyperperiod_timer]
R --> S[epoll_loop]
-
+
S --> T[cleanup_context]
T --> U[exit]
```
@@ -208,7 +208,7 @@ async fn main() -> anyhow::Result<()> {
```rust
pub async fn run_app(config: Config) -> TimpaniResult<()> {
- info!("Starting Timpani-N node executor");
+ info!("Starting timpani-n node executor");
info!("Configuration: {:?}", config);
// Initialize context
@@ -226,12 +226,12 @@ pub async fn run_app(config: Config) -> TimpaniResult<()> {
/// Initialize the context (βΈοΈ TBD - placeholders only)
pub fn initialize(ctx: &mut Context) -> TimpaniResult<()> {
- info!("Initializing Timpani-N context...");
+ info!("Initializing timpani-n context...");
// TODO: Signal handlers
// TODO: CPU affinity
// TODO: RT priority
// TODO: BPF initialization
- // TODO: Connect to Timpani-O
+ // TODO: Connect to timpani-o
// TODO: Fetch schedule
warn!("Initialization phase not fully implemented yet");
Ok(())
@@ -316,7 +316,7 @@ calibrate_bpf_time_offset();
### 5. TRPC Connection (C: β
| Rust: βΈοΈ)
```c
// C implementation
-init_trpc(ctx); // Connect to Timpani-O via D-Bus
+init_trpc(ctx); // Connect to timpani-o via D-Bus
```
- **Purpose:** Establish connection to orchestrator
- **Rust Status:** βΈοΈ Planned (will use gRPC, not D-Bus)
@@ -393,7 +393,7 @@ Ok(())
---
-**Document Version:** 1.0
-**Last Updated:** May 12, 2026
-**Status:** π Partial (CLI + Config β
, Runtime βΈοΈ)
+**Document Version:** 1.0
+**Last Updated:** May 12, 2026
+**Status:** π Partial (CLI + Config β
, Runtime βΈοΈ)
**Verified Against:** `timpani-n/src/main.c`, `timpani_rust/timpani-n/src/main.rs`
diff --git a/doc/architecture/HLD/timpani-n/02-configuration-management.md b/doc/architecture/LLD/timpani-n/02-configuration-management.md
similarity index 94%
rename from doc/architecture/HLD/timpani-n/02-configuration-management.md
rename to doc/architecture/LLD/timpani-n/02-configuration-management.md
index 4035146..cb6b5cf 100644
--- a/doc/architecture/HLD/timpani-n/02-configuration-management.md
+++ b/doc/architecture/LLD/timpani-n/02-configuration-management.md
@@ -3,17 +3,17 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Configuration Management
+# LLD: Configuration Management
-**Component Type:** Configuration System
-**Responsibility:** CLI parsing, configuration validation, defaults management
+**Component Type:** Configuration System
+**Responsibility:** CLI parsing, configuration validation, defaults management
**Status:** β
Complete in Rust
---
## Component Overview
-Configuration Management handles command-line argument parsing, configuration validation, and default value management for all Timpani-N runtime parameters.
+Configuration Management handles command-line argument parsing, configuration validation, and default value management for all timpani-n runtime parameters.
---
@@ -77,7 +77,7 @@ struct config {
#[derive(Debug, Clone, Parser)]
#[command(
name = "timpani-n",
- about = "Timpani-N Node Executor - Time-Triggered Real-Time Task Scheduler",
+ about = "timpani-n Node Executor - Time-Triggered Real-Time Task Scheduler",
version
)]
pub struct Config {
@@ -180,6 +180,6 @@ impl Config {
---
-**Document Version:** 1.0
-**Status:** β
Complete
+**Document Version:** 1.0
+**Status:** β
Complete
**Verified Against:** `timpani_rust/timpani-n/src/config/mod.rs`
diff --git a/doc/architecture/HLD/timpani-n/03-time-trigger-core.md b/doc/architecture/LLD/timpani-n/03-time-trigger-core.md
similarity index 90%
rename from doc/architecture/HLD/timpani-n/03-time-trigger-core.md
rename to doc/architecture/LLD/timpani-n/03-time-trigger-core.md
index b2184da..89299af 100644
--- a/doc/architecture/HLD/timpani-n/03-time-trigger-core.md
+++ b/doc/architecture/LLD/timpani-n/03-time-trigger-core.md
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Time Trigger Core
+# LLD: Time Trigger Core
-**Component Type:** Core Runtime Engine
-**Responsibility:** Event loop, hyperperiod management, timer coordination
+**Component Type:** Core Runtime Engine
+**Responsibility:** Event loop, hyperperiod management, timer coordination
**Status:** βΈοΈ Not Started in Rust (C implementation documented)
---
@@ -18,14 +18,14 @@
### Hyperperiod Calculation
```c
-tt_error_t init_hyperperiod(struct context *ctx,
+tt_error_t init_hyperperiod(struct context *ctx,
const char *workload_id,
uint64_t hyperperiod_us,
struct hyperperiod_manager *hp_mgr) {
hp_mgr->hyperperiod_us = hyperperiod_us;
hp_mgr->hp_count = 0;
strncpy(hp_mgr->workload_id, workload_id, sizeof(hp_mgr->workload_id) - 1);
-
+
clock_gettime(CLOCK_MONOTONIC, &hp_mgr->hp_timer_start);
return TT_SUCCESS;
}
@@ -36,10 +36,10 @@ tt_error_t init_hyperperiod(struct context *ctx,
```c
tt_error_t epoll_loop(struct context *ctx) {
int epfd = epoll_create1(0);
-
+
while (!ctx->shutdown_requested) {
int nfds = epoll_wait(epfd, events, MAX_EVENTS, -1);
-
+
for (int i = 0; i < nfds; i++) {
if (events[i].data.fd == ctx->runtime.hyperperiod_timer_fd) {
handle_hyperperiod_tick(ctx);
@@ -48,7 +48,7 @@ tt_error_t epoll_loop(struct context *ctx) {
}
}
}
-
+
return TT_SUCCESS;
}
```
@@ -61,7 +61,7 @@ tt_error_t start_hyperperiod_timer(struct context *ctx) {
its.it_interval.tv_sec = 0;
its.it_interval.tv_nsec = ctx->hp_manager.hyperperiod_us * 1000;
its.it_value = its.it_interval;
-
+
return timerfd_settime(ctx->runtime.hyperperiod_timer_fd, 0, &its, NULL) == 0
? TT_SUCCESS : TT_ERROR_TIMER;
}
@@ -80,6 +80,6 @@ tt_error_t start_hyperperiod_timer(struct context *ctx) {
---
-**Document Version:** 1.0
-**Status:** C β
, Rust βΈοΈ
+**Document Version:** 1.0
+**Status:** C β
, Rust βΈοΈ
**Verified Against:** `timpani-n/src/core.c`, `timpani-n/src/hyperperiod.c`
diff --git a/doc/architecture/HLD/timpani-n/04-task-management.md b/doc/architecture/LLD/timpani-n/04-task-management.md
similarity index 91%
rename from doc/architecture/HLD/timpani-n/04-task-management.md
rename to doc/architecture/LLD/timpani-n/04-task-management.md
index 1e6611e..0faac3d 100644
--- a/doc/architecture/HLD/timpani-n/04-task-management.md
+++ b/doc/architecture/LLD/timpani-n/04-task-management.md
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Task Management
+# LLD: Task Management
-**Component Type:** Task Lifecycle Management
-**Responsibility:** Task list management, activation scheduling, state tracking
+**Component Type:** Task Lifecycle Management
+**Responsibility:** Task list management, activation scheduling, state tracking
**Status:** βΈοΈ Not Started in Rust
---
@@ -33,22 +33,22 @@ struct time_trigger {
```c
tt_error_t init_task_list(struct context *ctx) {
int task_count = ctx->sinfo.task_count;
-
+
ctx->runtime.tt_list = calloc(task_count, sizeof(struct time_trigger));
-
+
for (int i = 0; i < task_count; i++) {
struct task_info *task = &ctx->sinfo.tasks[i];
struct time_trigger *tt = &ctx->runtime.tt_list[i];
-
+
tt->task = *task;
tt->period.tv_sec = task->period_us / 1000000;
tt->period.tv_nsec = (task->period_us % 1000000) * 1000;
tt->ctx = ctx;
-
+
// Add PID to BPF filter
bpf_add_pid(task->pid);
}
-
+
return TT_SUCCESS;
}
```
@@ -73,5 +73,5 @@ static void activate_task(struct time_trigger *tt) {
---
-**Document Version:** 1.0
+**Document Version:** 1.0
**Status:** C β
, Rust βΈοΈ
diff --git a/doc/architecture/HLD/timpani-n/05-realtime-scheduling.md b/doc/architecture/LLD/timpani-n/05-realtime-scheduling.md
similarity index 91%
rename from doc/architecture/HLD/timpani-n/05-realtime-scheduling.md
rename to doc/architecture/LLD/timpani-n/05-realtime-scheduling.md
index c21cccd..69046a2 100644
--- a/doc/architecture/HLD/timpani-n/05-realtime-scheduling.md
+++ b/doc/architecture/LLD/timpani-n/05-realtime-scheduling.md
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Real-Time Scheduling
+# LLD: Real-Time Scheduling
-**Component Type:** RT Scheduling Control
-**Responsibility:** CPU affinity, RT priority, sched_setattr() syscalls
+**Component Type:** RT Scheduling Control
+**Responsibility:** CPU affinity, RT priority, sched_setattr() syscalls
**Status:** βΈοΈ Not Started in Rust
---
@@ -22,7 +22,7 @@ ttsched_error_t set_affinity(pid_t pid, int cpu) {
cpu_set_t cpuset;
CPU_ZERO(&cpuset);
CPU_SET(cpu, &cpuset);
-
+
return sched_setaffinity(pid, sizeof(cpu_set_t), &cpuset) == 0
? TTSCHED_SUCCESS : TTSCHED_ERROR_SYSTEM;
}
@@ -30,13 +30,13 @@ ttsched_error_t set_affinity(pid_t pid, int cpu) {
ttsched_error_t set_affinity_cpumask(pid_t pid, uint64_t cpumask) {
cpu_set_t cpuset;
CPU_ZERO(&cpuset);
-
+
for (int i = 0; i < 64; i++) {
if (cpumask & (1ULL << i)) {
CPU_SET(i, &cpuset);
}
}
-
+
return sched_setaffinity(pid, sizeof(cpu_set_t), &cpuset) == 0
? TTSCHED_SUCCESS : TTSCHED_ERROR_SYSTEM;
}
@@ -48,7 +48,7 @@ ttsched_error_t set_affinity_cpumask(pid_t pid, uint64_t cpumask) {
ttsched_error_t set_schedattr(pid_t pid, unsigned int priority, unsigned int policy) {
struct sched_param param;
param.sched_priority = priority;
-
+
return sched_setscheduler(pid, policy, ¶m) == 0
? TTSCHED_SUCCESS : TTSCHED_ERROR_PERMISSION;
}
@@ -65,5 +65,5 @@ ttsched_error_t set_schedattr(pid_t pid, unsigned int priority, unsigned int pol
---
-**Document Version:** 1.0
+**Document Version:** 1.0
**Status:** C β
, Rust βΈοΈ
diff --git a/doc/architecture/HLD/timpani-n/06-signal-handling.md b/doc/architecture/LLD/timpani-n/06-signal-handling.md
similarity index 91%
rename from doc/architecture/HLD/timpani-n/06-signal-handling.md
rename to doc/architecture/LLD/timpani-n/06-signal-handling.md
index 3b4bd8d..c1aaeac 100644
--- a/doc/architecture/HLD/timpani-n/06-signal-handling.md
+++ b/doc/architecture/LLD/timpani-n/06-signal-handling.md
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Signal Handling
+# LLD: Signal Handling
-**Component Type:** Signal Management
-**Responsibility:** SIGALRM handlers, task signal delivery, shutdown signals
+**Component Type:** Signal Management
+**Responsibility:** SIGALRM handlers, task signal delivery, shutdown signals
**Status:** βΈοΈ Not Started in Rust
---
@@ -20,19 +20,19 @@
```c
tt_error_t setup_signal_handlers(struct context *ctx) {
struct sigaction sa;
-
+
// SIGINT/SIGTERM: Graceful shutdown
sa.sa_handler = signal_handler_shutdown;
sa.sa_flags = 0;
sigemptyset(&sa.sa_mask);
sigaction(SIGINT, &sa, NULL);
sigaction(SIGTERM, &sa, NULL);
-
+
// SIGALRM: Task activation timer
sa.sa_handler = signal_handler_alarm;
sa.sa_flags = SA_RESTART;
sigaction(SIGALRM, &sa, NULL);
-
+
return TT_SUCCESS;
}
@@ -52,7 +52,7 @@ tt_error_t send_signal_pidfd(int pidfd, int signal) {
struct siginfo info = {0};
info.si_signo = signal;
info.si_code = SI_QUEUE;
-
+
return syscall(__NR_pidfd_send_signal, pidfd, signal, &info, 0) == 0
? TT_SUCCESS : TT_ERROR_SIGNAL;
}
@@ -68,5 +68,5 @@ tt_error_t send_signal_pidfd(int pidfd, int signal) {
---
-**Document Version:** 1.0
+**Document Version:** 1.0
**Status:** C β
, Rust βΈοΈ
diff --git a/doc/architecture/HLD/timpani-n/07-ebpf-monitoring.md b/doc/architecture/LLD/timpani-n/07-ebpf-monitoring.md
similarity index 89%
rename from doc/architecture/HLD/timpani-n/07-ebpf-monitoring.md
rename to doc/architecture/LLD/timpani-n/07-ebpf-monitoring.md
index 8756711..b1cd018 100644
--- a/doc/architecture/HLD/timpani-n/07-ebpf-monitoring.md
+++ b/doc/architecture/LLD/timpani-n/07-ebpf-monitoring.md
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: eBPF Monitoring System
+# LLD: eBPF Monitoring System
-**Component Type:** Kernel Monitoring
-**Responsibility:** Deadline miss detection, scheduler statistics via eBPF
+**Component Type:** Kernel Monitoring
+**Responsibility:** Deadline miss detection, scheduler statistics via eBPF
**Status:** βΈοΈ Not Started in Rust
---
@@ -21,11 +21,11 @@
SEC("tp/syscalls/sys_enter_rt_sigtimedwait")
int handle_sigwait_enter(struct trace_event_raw_sys_enter *ctx) {
pid_t pid = bpf_get_current_pid_tgid() >> 32;
-
+
// Check if PID is in filter map
int *filtered = bpf_map_lookup_elem(&pid_filter_map, &pid);
if (!filtered) return 0;
-
+
// Record entry timestamp
u64 ts = bpf_ktime_get_ns();
struct sigwait_event event = {
@@ -33,7 +33,7 @@ int handle_sigwait_enter(struct trace_event_raw_sys_enter *ctx) {
.timestamp_ns = ts,
.event_type = SIGWAIT_ENTER
};
-
+
bpf_ringbuf_output(&events, &event, sizeof(event), 0);
return 0;
}
@@ -47,35 +47,35 @@ int handle_sigwait_exit(struct trace_event_raw_sys_exit *ctx) {
### Ring Buffer Handling (Userspace)
```c
-int bpf_on(ring_buffer_sample_fn sigwait_cb,
- ring_buffer_sample_fn schedstat_cb,
+int bpf_on(ring_buffer_sample_fn sigwait_cb,
+ ring_buffer_sample_fn schedstat_cb,
void *ctx) {
struct sigwait_bpf *skel = sigwait_bpf__open_and_load();
sigwait_bpf__attach(skel);
-
+
struct ring_buffer *rb = ring_buffer__new(
bpf_map__fd(skel->maps.events), sigwait_cb, ctx, NULL);
-
+
return 0;
}
static int handle_sigwait_bpf_event(void *ctx, void *data, size_t size) {
struct sigwait_event *event = data;
struct context *timpani_ctx = ctx;
-
+
// Find corresponding task
struct time_trigger *tt = find_task_by_pid(timpani_ctx, event->pid);
-
+
if (event->event_type == SIGWAIT_EXIT) {
// Check if deadline was missed
uint64_t elapsed_ns = event->timestamp_ns - tt->sigwait_ts;
uint64_t deadline_ns = tt->deadline.tv_sec * 1000000000 + tt->deadline.tv_nsec;
-
+
if (elapsed_ns > deadline_ns) {
report_deadline_miss(timpani_ctx, tt->task.name);
}
}
-
+
return 0;
}
```
@@ -91,5 +91,5 @@ static int handle_sigwait_bpf_event(void *ctx, void *data, size_t size) {
---
-**Document Version:** 1.0
+**Document Version:** 1.0
**Status:** C β
, Rust βΈοΈ
diff --git a/doc/architecture/HLD/timpani-n/08-communication-libtrpc.md b/doc/architecture/LLD/timpani-n/08-communication-libtrpc.md
similarity index 96%
rename from doc/architecture/HLD/timpani-n/08-communication-libtrpc.md
rename to doc/architecture/LLD/timpani-n/08-communication-libtrpc.md
index 274d4bd..242f2b5 100644
--- a/doc/architecture/HLD/timpani-n/08-communication-libtrpc.md
+++ b/doc/architecture/LLD/timpani-n/08-communication-libtrpc.md
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Communication (libtrpc β gRPC)
+# LLD: Communication (libtrpc β gRPC)
**Component Type:** RPC Communication
-**Responsibility:** Communication with Timpani-O, schedule retrieval, synchronization, deadline miss reporting
+**Responsibility:** Communication with timpani-o, schedule retrieval, synchronization, deadline miss reporting
**Status:** β
Complete in Rust (gRPC client implemented)
---
@@ -23,7 +23,7 @@ tt_error_t init_trpc(struct context *ctx) {
int ret = trpc_client_create(ctx->config.address, NULL, &ctx->runtime.dbus);
if (ret != 0) return TT_ERROR_NETWORK;
- // Fetch schedule from Timpani-O
+ // Fetch schedule from timpani-o
serial_buf_t *sbuf = NULL;
ret = trpc_client_schedinfo(ctx->runtime.dbus, ctx->config.node_id, &sbuf);
if (ret != 0) return TT_ERROR_NETWORK;
@@ -78,13 +78,13 @@ tt_error_t report_deadline_miss(struct context *ctx, const char *taskname) {
```protobuf
service NodeService {
- // Pull assigned schedule from Timpani-O
+ // Pull assigned schedule from timpani-o
rpc GetSchedInfo (NodeSchedRequest) returns (NodeSchedResponse) {}
// Barrier synchronization across all nodes
rpc SyncTimer (SyncRequest) returns (SyncResponse) {}
- // Report deadline miss to Timpani-O
+ // Report deadline miss to timpani-o
rpc ReportDMiss (DeadlineMissInfo) returns (NodeResponse) {}
}
```
@@ -279,8 +279,8 @@ pub fn report_dmiss(&self, node_id: String, task_name: String) {
```
### 2. Server-Side Filtering
-**C:** Timpani-O sends all tasks, each node filters by node_id
-**Rust:** Timpani-O filters in `GetSchedInfo`, returns only relevant tasks
+**C:** timpani-o sends all tasks, each node filters by node_id
+**Rust:** timpani-o filters in `GetSchedInfo`, returns only relevant tasks
### 3. Barrier Synchronization
**C:** 100ms polling loop waiting for ack
diff --git a/doc/architecture/HLD/timpani-n/09-resource-management.md b/doc/architecture/LLD/timpani-n/09-resource-management.md
similarity index 90%
rename from doc/architecture/HLD/timpani-n/09-resource-management.md
rename to doc/architecture/LLD/timpani-n/09-resource-management.md
index 4d20cba..cec3d51 100644
--- a/doc/architecture/HLD/timpani-n/09-resource-management.md
+++ b/doc/architecture/LLD/timpani-n/09-resource-management.md
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Resource Management
+# LLD: Resource Management
-**Component Type:** Cleanup & State Management
-**Responsibility:** Resource cleanup, global state, graceful shutdown
+**Component Type:** Cleanup & State Management
+**Responsibility:** Resource cleanup, global state, graceful shutdown
**Status:** βΈοΈ Not Started in Rust
---
@@ -21,22 +21,22 @@
void cleanup_context(struct context *ctx) {
// Stop BPF monitoring
bpf_off();
-
+
// Close timer file descriptors
if (ctx->runtime.hyperperiod_timer_fd >= 0) {
close(ctx->runtime.hyperperiod_timer_fd);
}
-
+
// Close D-Bus connection
if (ctx->runtime.dbus) {
sd_bus_unref(ctx->runtime.dbus);
}
-
+
// Free task list
if (ctx->runtime.tt_list) {
free(ctx->runtime.tt_list);
}
-
+
// Free schedule info
destroy_task_info_list(ctx->sinfo.tasks);
}
@@ -63,5 +63,5 @@ void set_global_context(struct context *ctx) {
---
-**Document Version:** 1.0
+**Document Version:** 1.0
**Status:** C β
, Rust βΈοΈ
diff --git a/doc/architecture/HLD/timpani-n/10-data-structures.md b/doc/architecture/LLD/timpani-n/10-data-structures.md
similarity index 94%
rename from doc/architecture/HLD/timpani-n/10-data-structures.md
rename to doc/architecture/LLD/timpani-n/10-data-structures.md
index 929d725..5a983e1 100644
--- a/doc/architecture/HLD/timpani-n/10-data-structures.md
+++ b/doc/architecture/LLD/timpani-n/10-data-structures.md
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Data Structures
+# LLD: Data Structures
-**Component Type:** Core Data Models
-**Responsibility:** Context, task info, runtime state structures
+**Component Type:** Core Data Models
+**Responsibility:** Context, task info, runtime state structures
**Status:** π Partial (structures defined in Rust, not used yet)
---
@@ -21,7 +21,7 @@
struct context {
struct config config; // Configuration
struct runtime runtime; // Runtime state
- struct sched_info sinfo; // Schedule from Timpani-O
+ struct sched_info sinfo; // Schedule from timpani-o
struct hyperperiod_manager hp_manager; // Hyperperiod info
bool shutdown_requested; // Shutdown flag
};
@@ -109,5 +109,5 @@ pub struct TaskInfo {
---
-**Document Version:** 1.0
+**Document Version:** 1.0
**Status:** C β
, Rust π (structures only)
diff --git a/doc/architecture/HLD/timpani-n/README.md b/doc/architecture/LLD/timpani-n/README.md
similarity index 90%
rename from doc/architecture/HLD/timpani-n/README.md
rename to doc/architecture/LLD/timpani-n/README.md
index 8228945..eeef026 100644
--- a/doc/architecture/HLD/timpani-n/README.md
+++ b/doc/architecture/LLD/timpani-n/README.md
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: MIT
-->
-# Timpani-N High-Level Design (HLD) Documentation
+# timpani-n Low-Level Design (LLD) Documentation
**Project:** Eclipse Timpani - Real-Time Task Orchestration Framework
-**Component:** Timpani-N (Node Executor)
+**Component:** timpani-n (Node Executor)
**Migration:** C β Rust (In Progress - Initialization Phase Only)
**Status:** π Milestone 2 In Progress
**Document Set Version:** 1.0
@@ -16,7 +16,7 @@
## Overview
-This directory contains 10 High-Level Design (HLD) documents for Timpani-N (node executor) components. **Unlike Timpani-O**, these documents are primarily **AS-IS focused** because the Rust implementation is still in early development (only initialization/configuration complete).
+This directory contains 10 Low-Level Design (LLD) documents for timpani-n (node executor) components. **Unlike timpani-o**, these documents are primarily **AS-IS focused** because the Rust implementation is still in early development (only initialization/configuration complete).
### Document Structure
- **AS-IS (C Implementation):** Comprehensive documentation from `timpani-n/src/` (legacy C code)
@@ -86,9 +86,9 @@ This directory contains 10 High-Level Design (HLD) documents for Timpani-N (node
---
-## Key Differences from Timpani-O HLD
+## Key Differences from timpani-o LLD
-| Aspect | Timpani-O HLD | Timpani-N HLD |
+| Aspect | timpani-o LLD | timpani-n LLD |
|--------|---------------|---------------|
| **Rust Status** | β
Complete (M1) | π Initialization only (M2 in progress) |
| **Focus** | AS-IS vs WILL-BE comparison | Primarily AS-IS (C documentation) |
@@ -98,29 +98,29 @@ This directory contains 10 High-Level Design (HLD) documents for Timpani-N (node
---
-## Timpani-N Architecture
+## timpani-n Architecture
### System Role
-Timpani-N is the **node executor** in the distributed Timpani system:
-- **Receives** scheduled tasks from Timpani-O (global orchestrator)
+timpani-n is the **node executor** in the distributed Timpani system:
+- **Receives** scheduled tasks from timpani-o (global orchestrator)
- **Executes** time-triggered tasks with real-time guarantees
- **Monitors** task execution via eBPF
-- **Reports** deadline misses back to Timpani-O
+- **Reports** deadline misses back to timpani-o
### High-Level Flow
```
-Timpani-O (Orchestrator)
+timpani-o (Orchestrator)
β (gRPC: GetSchedInfo, SyncTimer, ReportDMiss)
-Timpani-N (Node Executor)
+timpani-n (Node Executor)
β (Load eBPF programs)
Linux Kernel (eBPF hooks)
β (Signal tasks)
Task Processes (exprocs)
β (Ring buffer events)
-Timpani-N (Deadline monitoring)
+timpani-n (Deadline monitoring)
β (Report deadline miss via gRPC)
-Timpani-O β Fault Manager
+timpani-o β Fault Manager
```
---
@@ -176,7 +176,7 @@ Timpani-O β Fault Manager
Start with these to understand the legacy system:
1. [03 - Time Trigger Core](03-time-trigger-core.md) - Main execution loop
2. [07 - eBPF Monitoring](07-ebpf-monitoring.md) - Deadline detection mechanism
-3. [08 - Communication](08-communication-libtrpc.md) - Interaction with Timpani-O
+3. [08 - Communication](08-communication-libtrpc.md) - Interaction with timpani-o
### For Rust Migration Status
Check these to see what's been ported:
@@ -235,8 +235,8 @@ Check these to see what's been ported:
| Term | Definition |
|------|------------|
-| **Timpani-N** | Node executor - runs on each compute node |
-| **Timpani-O** | Global orchestrator - distributes tasks to nodes |
+| **timpani-n** | Node executor - runs on each compute node |
+| **timpani-o** | Global orchestrator - distributes tasks to nodes |
| **Time-Triggered** | Tasks activated by timer signals, not events |
| **Hyperperiod** | LCM of all task periods (smallest repeating window) |
| **eBPF** | Extended Berkeley Packet Filter (kernel monitoring) |
@@ -252,27 +252,27 @@ Check these to see what's been ported:
## Migration Roadmap
-### Phase 1: Foundation (Current - M2)
+### Step 1: Foundation (Current - M2)
- β
CLI and configuration parsing
- π Basic initialization structure
- βΈοΈ Context management
-### Phase 2: Core Runtime (Planned)
+### Step 2: Core Runtime (Planned)
- βΈοΈ Time trigger execution loop
- βΈοΈ Hyperperiod calculation
- βΈοΈ Timer management
-### Phase 3: Communication (Planned)
-- βΈοΈ gRPC client to Timpani-O
+### Step 3: Communication (Planned)
+- βΈοΈ gRPC client to timpani-o
- βΈοΈ Task schedule retrieval
- βΈοΈ Synchronization protocol
-### Phase 4: Execution (Planned)
+### Step 4: Execution (Planned)
- βΈοΈ Real-time scheduling (CPU affinity, RT priority)
- βΈοΈ Signal handling
- βΈοΈ Task activation
-### Phase 5: Monitoring (Planned)
+### Step 5: Monitoring (Planned)
- βΈοΈ eBPF integration (aya or libbpf-rs)
- βΈοΈ Deadline miss detection
- βΈοΈ Performance statistics
@@ -282,7 +282,7 @@ Check these to see what's been ported:
## Important Notes
### Documentation Purpose
-These HLD documents serve as:
+These LLD documents serve as:
1. **Reference** for the legacy C implementation
2. **Migration Guide** for Rust developers
3. **Comparison** showing C vs Rust approaches (when implemented)
@@ -311,7 +311,7 @@ These HLD documents serve as:
## Feedback & Updates
These documents will be updated as the Rust migration progresses:
-- **After each component migration:** Update corresponding HLD with WILL-BE section
+- **After each component migration:** Update corresponding LLD with WILL-BE section
- **After major design decisions:** Add design decision rationale
- **After testing:** Add test coverage notes
- **After M2 completion:** Comprehensive review and update
diff --git a/doc/architecture/HLD/timpani-o/01-schedinfo-service.md b/doc/architecture/LLD/timpani-o/01-schedinfo-service.md
similarity index 99%
rename from doc/architecture/HLD/timpani-o/01-schedinfo-service.md
rename to doc/architecture/LLD/timpani-o/01-schedinfo-service.md
index fb129d5..482d894 100644
--- a/doc/architecture/HLD/timpani-o/01-schedinfo-service.md
+++ b/doc/architecture/LLD/timpani-o/01-schedinfo-service.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: SchedInfoService Component
+# LLD: SchedInfoService Component
**Component Type:** gRPC Service
**Responsibility:** Receive and process workload schedules from Pullpiri orchestrator
diff --git a/doc/architecture/HLD/timpani-o/02-fault-service-client.md b/doc/architecture/LLD/timpani-o/02-fault-service-client.md
similarity index 97%
rename from doc/architecture/HLD/timpani-o/02-fault-service-client.md
rename to doc/architecture/LLD/timpani-o/02-fault-service-client.md
index 3c541a1..9c71dd8 100644
--- a/doc/architecture/HLD/timpani-o/02-fault-service-client.md
+++ b/doc/architecture/LLD/timpani-o/02-fault-service-client.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: FaultService Client Component
+# LLD: FaultService Client Component
**Component Type:** gRPC Client
**Responsibility:** Report fault events (deadline misses) to Pullpiri orchestrator
@@ -11,7 +11,7 @@
## Component Overview
-The FaultService Client component is responsible for forwarding fault notifications (primarily deadline misses) from Timpani-N nodes back to the Pullpiri orchestrator. It maintains a persistent gRPC connection and handles failures gracefully.
+The FaultService Client component is responsible for forwarding fault notifications (primarily deadline misses) from timpani-n nodes back to the Pullpiri orchestrator. It maintains a persistent gRPC connection and handles failures gracefully.
---
@@ -184,7 +184,7 @@ bool Initialize(const std::string& server_address) {
// Connect immediately - fails if Pullpiri not running
channel_ = grpc::CreateChannel(server_address, ...);
if (!channel_->WaitForConnected(...)) {
- return false; // Timpani-O won't start
+ return false; // timpani-o won't start
}
return true;
}
@@ -195,12 +195,12 @@ bool Initialize(const std::string& server_address) {
pub fn connect_lazy(addr: String) -> anyhow::Result> {
// Connection established on first RPC call
let channel = Endpoint::from_shared(addr)?.connect_lazy();
- // Timpani-O can start even if Pullpiri is down
+ // timpani-o can start even if Pullpiri is down
Ok(Arc::new(FaultClient { stub: ProtoFaultClient::new(channel) }))
}
```
-**Rationale:** Lazy connection avoids hard startup ordering dependency. Timpani-O can start before Pullpiri is running. The first fault notification will trigger connection establishment.
+**Rationale:** Lazy connection avoids hard startup ordering dependency. timpani-o can start before Pullpiri is running. The first fault notification will trigger connection establishment.
---
diff --git a/doc/architecture/HLD/timpani-o/03-dbus-server-node-service.md b/doc/architecture/LLD/timpani-o/03-dbus-server-node-service.md
similarity index 96%
rename from doc/architecture/HLD/timpani-o/03-dbus-server-node-service.md
rename to doc/architecture/LLD/timpani-o/03-dbus-server-node-service.md
index 040615d..7d2452a 100644
--- a/doc/architecture/HLD/timpani-o/03-dbus-server-node-service.md
+++ b/doc/architecture/LLD/timpani-o/03-dbus-server-node-service.md
@@ -3,15 +3,15 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: D-Bus Server / Node Service Component
+# LLD: D-Bus Server / Node Service Component
**Component Type:** Communication Server
-**Responsibility:** Serve scheduling information and coordinate synchronization with Timpani-N nodes
+**Responsibility:** Serve scheduling information and coordinate synchronization with timpani-n nodes
**Status:** β
Migrated (C++ D-Bus β Rust gRPC)
## Component Overview
-This component provides the communication interface between Timpani-O (global orchestrator) and Timpani-N nodes (local schedulers). It handles three primary operations: serving schedules, coordinating synchronized starts, and receiving deadline miss reports.
+This component provides the communication interface between timpani-o (global orchestrator) and timpani-n nodes (local schedulers). It handles three primary operations: serving schedules, coordinating synchronized starts, and receiving deadline miss reports.
---
@@ -39,7 +39,7 @@ public:
### Responsibilities (C++)
1. **Listen** for incoming connections on TCP port 7777
-2. **Serve** scheduling information to Timpani-N nodes (via `trpc_client_schedinfo`)
+2. **Serve** scheduling information to timpani-n nodes (via `trpc_client_schedinfo`)
3. **Coordinate** synchronization barrier for all nodes (via `trpc_client_sync`)
4. **Receive** deadline miss reports (via `trpc_client_dmiss`)
5. **Serialize** messages using custom binary format (libtrpc)
@@ -54,13 +54,13 @@ public:
### Data Flow (C++)
```
-Timpani-N (libtrpc client)
+timpani-n (libtrpc client)
β TCP connection to port 7777
DBusServer::GetSchedInfoCallback()
β sched_info_service_->GetSchedInfoMap()
β Serialize schedinfo_t struct
β
-Return binary message to Timpani-N
+Return binary message to timpani-n
```
### Configuration (C++)
@@ -92,7 +92,7 @@ pub struct NodeServiceImpl {
### Responsibilities (Rust)
-1. **GetSchedInfo:** Timpani-N pulls its task list via gRPC
+1. **GetSchedInfo:** timpani-n pulls its task list via gRPC
2. **SyncTimer:** Blocking barrier - all nodes synchronize start time
3. **ReportDMiss:** Deadline miss forwarded to Pullpiri
4. **Barrier Management:** Watch channel coordination for sync barrier
@@ -458,20 +458,20 @@ tokio::select! {
### Breaking Changes
-1. **Protocol Change:** D-Bus β gRPC (Timpani-N must use gRPC client)
+1. **Protocol Change:** D-Bus β gRPC (timpani-n must use gRPC client)
2. **Port Change:** 7777 β 50054
3. **Message Format:** Binary struct β Protobuf
### Backwards Compatibility
**None** - this is a breaking change. Requires:
-- Timpani-N migration to gRPC client (Milestone 2)
+- timpani-n migration to gRPC client (Milestone 2)
- Both components must be upgraded together
### Migration Path
-1. Implement Rust Timpani-O with gRPC NodeService
-2. Migrate Timpani-N from libtrpc to Tonic gRPC client
+1. Implement Rust timpani-o with gRPC NodeService
+2. Migrate timpani-n from libtrpc to Tonic gRPC client
3. Deploy both simultaneously
4. Decommission D-Bus server and libtrpc
diff --git a/doc/architecture/HLD/timpani-o/04-global-scheduler.md b/doc/architecture/LLD/timpani-o/04-global-scheduler.md
similarity index 99%
rename from doc/architecture/HLD/timpani-o/04-global-scheduler.md
rename to doc/architecture/LLD/timpani-o/04-global-scheduler.md
index 0b65a54..60e946d 100644
--- a/doc/architecture/HLD/timpani-o/04-global-scheduler.md
+++ b/doc/architecture/LLD/timpani-o/04-global-scheduler.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Global Scheduler Component
+# LLD: Global Scheduler Component
**Component Type:** Core Scheduling Logic
**Responsibility:** Allocate tasks to nodes and CPUs using real-time scheduling algorithms
@@ -11,7 +11,7 @@
## Component Overview
-The Global Scheduler component implements the core task allocation logic for Timpani-O. It receives a set of real-time tasks and distributes them across available compute nodes and CPUs, ensuring schedulability constraints are met.
+The Global Scheduler component implements the core task allocation logic for timpani-o. It receives a set of real-time tasks and distributes them across available compute nodes and CPUs, ensuring schedulability constraints are met.
---
diff --git a/doc/architecture/HLD/timpani-o/05-hyperperiod-manager.md b/doc/architecture/LLD/timpani-o/05-hyperperiod-manager.md
similarity index 99%
rename from doc/architecture/HLD/timpani-o/05-hyperperiod-manager.md
rename to doc/architecture/LLD/timpani-o/05-hyperperiod-manager.md
index ce419c1..8f43a9d 100644
--- a/doc/architecture/HLD/timpani-o/05-hyperperiod-manager.md
+++ b/doc/architecture/LLD/timpani-o/05-hyperperiod-manager.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Hyperperiod Manager Component
+# LLD: Hyperperiod Manager Component
**Component Type:** Mathematical Utility
**Responsibility:** Calculate Least Common Multiple (LCM) of task periods for hyperperiod determination
diff --git a/doc/architecture/HLD/timpani-o/06-node-configuration-manager.md b/doc/architecture/LLD/timpani-o/06-node-configuration-manager.md
similarity index 99%
rename from doc/architecture/HLD/timpani-o/06-node-configuration-manager.md
rename to doc/architecture/LLD/timpani-o/06-node-configuration-manager.md
index ce30085..4f6687a 100644
--- a/doc/architecture/HLD/timpani-o/06-node-configuration-manager.md
+++ b/doc/architecture/LLD/timpani-o/06-node-configuration-manager.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Node Configuration Manager Component
+# LLD: Node Configuration Manager Component
**Component Type:** Configuration Loader
**Responsibility:** Load and manage node hardware specifications from YAML configuration files
diff --git a/doc/architecture/HLD/timpani-o/07-scheduler-utilities.md b/doc/architecture/LLD/timpani-o/07-scheduler-utilities.md
similarity index 99%
rename from doc/architecture/HLD/timpani-o/07-scheduler-utilities.md
rename to doc/architecture/LLD/timpani-o/07-scheduler-utilities.md
index 9af4996..57c5d68 100644
--- a/doc/architecture/HLD/timpani-o/07-scheduler-utilities.md
+++ b/doc/architecture/LLD/timpani-o/07-scheduler-utilities.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Scheduler Utilities Component
+# LLD: Scheduler Utilities Component
**Component Type:** Helper Functions & Utilities
**Responsibility:** Provide reusable scheduling utilities, feasibility checks, and mathematical functions
diff --git a/doc/architecture/HLD/timpani-o/08-data-structures.md b/doc/architecture/LLD/timpani-o/08-data-structures.md
similarity index 98%
rename from doc/architecture/HLD/timpani-o/08-data-structures.md
rename to doc/architecture/LLD/timpani-o/08-data-structures.md
index 1614f0a..d4bbe30 100644
--- a/doc/architecture/HLD/timpani-o/08-data-structures.md
+++ b/doc/architecture/LLD/timpani-o/08-data-structures.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Data Structures Component
+# LLD: Data Structures Component
**Component Type:** Core Data Models
**Responsibility:** Define task representations, scheduling results, and type-safe enumerations
@@ -11,7 +11,7 @@
## Component Overview
-Data Structures component defines the core types used throughout Timpani-O for representing tasks, scheduling policies, CPU affinity constraints, and final scheduling assignments.
+Data Structures component defines the core types used throughout timpani-o for representing tasks, scheduling policies, CPU affinity constraints, and final scheduling assignments.
---
@@ -191,7 +191,7 @@ impl Task {
}
}
-/// Wire-ready task (sent to Timpani-N)
+/// Wire-ready task (sent to timpani-n)
#[derive(Debug, Clone)]
pub struct SchedTask {
pub name: String, // No length limit
@@ -279,7 +279,7 @@ impl SchedTask {
**Rationale:**
- **Internal:** Use Β΅s (microseconds) everywhere
-- **Wire Protocol:** Convert to ns (nanoseconds) only when sending to Timpani-N
+- **Wire Protocol:** Convert to ns (nanoseconds) only when sending to timpani-n
- **No Duplication:** Single field eliminates sync issues
---
diff --git a/doc/architecture/HLD/timpani-o/09-communication-protocols.md b/doc/architecture/LLD/timpani-o/09-communication-protocols.md
similarity index 93%
rename from doc/architecture/HLD/timpani-o/09-communication-protocols.md
rename to doc/architecture/LLD/timpani-o/09-communication-protocols.md
index 052a181..a862069 100644
--- a/doc/architecture/HLD/timpani-o/09-communication-protocols.md
+++ b/doc/architecture/LLD/timpani-o/09-communication-protocols.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Communication Protocols Component
+# LLD: Communication Protocols Component
**Component Type:** Protocol Definitions & Wire Format
**Responsibility:** Define gRPC services, message formats, and protocol buffers for all communication
@@ -12,8 +12,8 @@
## Component Overview
Communication Protocols component defines all inter-process communication between:
-1. **Pullpiri β Timpani-O** (gRPC): Workload submission and fault reporting
-2. **Timpani-O β Timpani-N** (C++: D-Bus | Rust: gRPC): Schedule distribution and synchronization
+1. **Pullpiri β timpani-o** (gRPC): Workload submission and fault reporting
+2. **timpani-o β timpani-n** (C++: D-Bus | Rust: gRPC): Schedule distribution and synchronization
---
@@ -23,9 +23,9 @@ Communication Protocols component defines all inter-process communication betwee
| Connection | Protocol | Port | Serialization |
|------------|----------|------|---------------|
-| Pullpiri β Timpani-O (SchedInfo) | gRPC | 50052 | Protobuf |
-| Timpani-O β Pullpiri (Fault) | gRPC | 50053 | Protobuf |
-| Timpani-N β Timpani-O | **D-Bus over TCP** | **7777** | **Custom binary (libtrpc)** |
+| Pullpiri β timpani-o (SchedInfo) | gRPC | 50052 | Protobuf |
+| timpani-o β Pullpiri (Fault) | gRPC | 50053 | Protobuf |
+| timpani-n β timpani-o | **D-Bus over TCP** | **7777** | **Custom binary (libtrpc)** |
### D-Bus Protocol (C++ Only)
@@ -85,9 +85,9 @@ message TaskInfo {
| Connection | Protocol | Port | Serialization |
|------------|----------|------|---------------|
-| Pullpiri β Timpani-O (SchedInfo) | gRPC | 50052 | Protobuf |
-| Timpani-O β Pullpiri (Fault) | gRPC | 50053 | Protobuf |
-| Timpani-N β Timpani-O | **gRPC/HTTP2** | **50054** | **Protobuf** |
+| Pullpiri β timpani-o (SchedInfo) | gRPC | 50052 | Protobuf |
+| timpani-o β Pullpiri (Fault) | gRPC | 50053 | Protobuf |
+| timpani-n β timpani-o | **gRPC/HTTP2** | **50054** | **Protobuf** |
### **BREAKING CHANGE: D-Bus β gRPC**
@@ -107,7 +107,7 @@ message TaskInfo {
## Service Definitions
-### 1. SchedInfoService (Pullpiri β Timpani-O)
+### 1. SchedInfoService (Pullpiri β timpani-o)
**Proto Definition:**
```protobuf
@@ -155,7 +155,7 @@ impl SchedInfoService for SchedInfoServiceImpl {
---
-### 2. FaultService (Timpani-O β Pullpiri)
+### 2. FaultService (timpani-o β Pullpiri)
**Proto Definition:**
```protobuf
@@ -202,7 +202,7 @@ impl FaultNotifier for FaultClient {
---
-### 3. NodeService (Timpani-O β Timpani-N)
+### 3. NodeService (timpani-o β timpani-n)
**Proto Definition:**
```protobuf
@@ -324,7 +324,7 @@ impl NodeService for NodeServiceImpl {
5. **Debugging:** Wireshark has gRPC dissectors (D-Bus was opaque binary)
**Migration Cost:**
-- β **Breaking:** Timpani-N must migrate from libtrpc to gRPC client
+- β **Breaking:** timpani-n must migrate from libtrpc to gRPC client
- β
**Benefit:** Removes ~2000 lines of custom serialization code
- β
**Benefit:** libtrpc dependency eliminated
@@ -521,14 +521,14 @@ tonic::transport::Server::builder()
### Breaking Changes
-**Timpani-N Side:**
+**timpani-n Side:**
```cpp
// OLD (C++ libtrpc client)
#include "peer_dbus.h"
schedinfo_t* info = trpc_client_schedinfo(node_id);
// NEW (Rust gRPC client)
-// Timpani-N will need Tonic client or C++ gRPC client
+// timpani-n will need Tonic client or C++ gRPC client
auto channel = grpc::CreateChannel("localhost:50054", ...);
auto stub = NodeService::NewStub(channel);
NodeSchedRequest request;
@@ -538,8 +538,8 @@ stub->GetSchedInfo(&context, request, &response);
```
**Must Migrate Together:**
-- Rust Timpani-O (NodeService server) deployed with gRPC support
-- Timpani-N updated to use gRPC client (libtrpc removed)
+- Rust timpani-o (NodeService server) deployed with gRPC support
+- timpani-n updated to use gRPC client (libtrpc removed)
- Cannot mix old/new protocols
---
diff --git a/doc/architecture/HLD/timpani-o/10-error-handling.md b/doc/architecture/LLD/timpani-o/10-error-handling.md
similarity index 99%
rename from doc/architecture/HLD/timpani-o/10-error-handling.md
rename to doc/architecture/LLD/timpani-o/10-error-handling.md
index 74db62d..7fd8549 100644
--- a/doc/architecture/HLD/timpani-o/10-error-handling.md
+++ b/doc/architecture/LLD/timpani-o/10-error-handling.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# HLD: Error Handling and Fault Tolerance Component
+# LLD: Error Handling and Fault Tolerance Component
**Component Type:** Error Management System
**Responsibility:** Define error types, propagation strategies, and fault recovery mechanisms
@@ -11,7 +11,7 @@
## Component Overview
-Error Handling component provides structured error types, propagation mechanisms, and recovery strategies for all failure scenarios in Timpani-O, including scheduling failures, resource exhaustion, RPC errors, and configuration problems.
+Error Handling component provides structured error types, propagation mechanisms, and recovery strategies for all failure scenarios in timpani-o, including scheduling failures, resource exhaustion, RPC errors, and configuration problems.
---
diff --git a/doc/architecture/HLD/timpani-o/README.md b/doc/architecture/LLD/timpani-o/README.md
similarity index 90%
rename from doc/architecture/HLD/timpani-o/README.md
rename to doc/architecture/LLD/timpani-o/README.md
index 4072ec4..6cf0a4b 100644
--- a/doc/architecture/HLD/timpani-o/README.md
+++ b/doc/architecture/LLD/timpani-o/README.md
@@ -3,10 +3,10 @@
* SPDX-License-Identifier: MIT
-->
-# Timpani-O High-Level Design (HLD) Documentation
+# timpani-o Low-Level Design (LLD) Documentation
**Project:** Eclipse Timpani - Real-Time Task Orchestration Framework
-**Component:** Timpani-O (Global Orchestrator)
+**Component:** timpani-o (Global Orchestrator)
**Migration:** C++ β Rust
**Status:** β
Milestone 1 Complete (Rust Implementation)
**Document Set Version:** 1.0
@@ -16,7 +16,7 @@
## Overview
-This directory contains 10 High-Level Design (HLD) documents that compare the **legacy C++ implementation** (As-Is) with the **completed Rust implementation** (Will-Be) of Timpani-O components.
+This directory contains 10 Low-Level Design (LLD) documents that compare the **legacy C++ implementation** (As-Is) with the **completed Rust implementation** (Will-Be) of timpani-o components.
Each document provides:
- **Component Overview:** Purpose and responsibility
@@ -36,7 +36,7 @@ Each document provides:
|---|-----------|--------|-------------|
| [01](01-schedinfo-service.md) | **SchedInfoService** | β
Complete | gRPC server receiving workload schedules from Pullpiri |
| [02](02-fault-service-client.md) | **FaultService Client** | β
Complete | gRPC client reporting faults (deadline misses) to Pullpiri |
-| [03](03-dbus-server-node-service.md) | **D-Bus Server / NodeService** | β
Complete | Communication with Timpani-N nodes (D-Bus β gRPC migration) |
+| [03](03-dbus-server-node-service.md) | **D-Bus Server / NodeService** | β
Complete | Communication with timpani-n nodes (D-Bus β gRPC migration) |
### Scheduling Logic
@@ -71,7 +71,7 @@ Each document provides:
**Change Summary:**
- **Legacy (C++):** D-Bus peer-to-peer over TCP (port 7777) with custom binary serialization (`libtrpc`)
- **Migrated (Rust):** gRPC/HTTP2 (port 50054) with Protocol Buffers
-- **Impact:** Breaking change - requires Timpani-N migration to gRPC client
+- **Impact:** Breaking change - requires timpani-n migration to gRPC client
**Benefits:**
- β
Industry-standard protocol (better tooling: grpcurl, Wireshark)
@@ -209,7 +209,7 @@ pub fn check_liu_layland(tasks_on_node: &[&Task]) -> Option {
## Verification Status
-All 10 HLD documents have been **verified against actual source code**:
+All 10 LLD documents have been **verified against actual source code**:
| Source | Files Verified |
|--------|----------------|
@@ -234,8 +234,8 @@ All 10 HLD documents have been **verified against actual source code**:
3. Review [10 - Error Handling](10-error-handling.md) (cross-cutting pattern)
**Focus on Communication:**
-1. [01 - SchedInfoService](01-schedinfo-service.md) (Pullpiri β Timpani-O)
-2. [03 - NodeService](03-dbus-server-node-service.md) (Timpani-O β Timpani-N)
+1. [01 - SchedInfoService](01-schedinfo-service.md) (Pullpiri β timpani-o)
+2. [03 - NodeService](03-dbus-server-node-service.md) (timpani-o β timpani-n)
3. [09 - Communication Protocols](09-communication-protocols.md) (gRPC overview)
**Focus on Algorithms:**
@@ -261,7 +261,7 @@ All 10 HLD documents have been **verified against actual source code**:
## Reference Architecture Documents
-These HLDs are based on the following authenticated source documents:
+These LLDs are based on the following authenticated source documents:
### Legacy C++ Documentation
@@ -290,9 +290,9 @@ These HLDs are based on the following authenticated source documents:
|------|------------|
| **As-Is** | Legacy C++ implementation (before migration) |
| **Will-Be** | Completed Rust implementation (after migration) |
-| **Timpani-O** | Global orchestrator component (this codebase) |
-| **Timpani-N** | Node-local scheduler (separate component) |
-| **Pullpiri** | Higher-level orchestrator that sends workloads to Timpani-O |
+| **timpani-o** | Global orchestrator component (this codebase) |
+| **timpani-n** | Node-local scheduler (separate component) |
+| **Pullpiri** | Higher-level orchestrator that sends workloads to timpani-o |
| **Hyperperiod** | LCM of all task periods (smallest repeating window) |
| **Liu & Layland** | Theoretical schedulability bound for Rate Monotonic scheduling |
| **WCET** | Worst-Case Execution Time (`runtime_us` field) |
@@ -328,18 +328,7 @@ All documents follow this structure:
---
-## Migration Status Summary
-| Milestone | Status | Components |
-|-----------|--------|------------|
-| **M1: Timpani-O Rust** | β
Complete | All 10 components documented |
-| **M2: Timpani-N Rust** | π In Progress | Not covered by these HLDs |
-| **M3: gRPC Integration** | βΈοΈ Not Started | Requires M2 completion |
-
-**Completion Date (M1):** Q4 2025
-**Documentation Date:** May 2026
-
----
## Feedback & Updates
diff --git a/doc/architecture/timpani_architecture.md b/doc/architecture/timpani_architecture.md
index cf45970..c9eccab 100644
--- a/doc/architecture/timpani_architecture.md
+++ b/doc/architecture/timpani_architecture.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# TIMPANI System Architecture
+# timpani System Architecture
**Document Version:** 1.0
**Last Updated:** May 12, 2026
@@ -13,10 +13,10 @@
## System Overview
-TIMPANI is a **distributed real-time task orchestration framework** designed for time-triggered systems. It consists of two primary components:
+timpani is a **distributed real-time task orchestration framework** designed for time-triggered systems. It consists of two primary components:
-- **Timpani-O (Orchestrator):** Global scheduler that manages workloads across multiple nodes
-- **Timpani-N (Node):** Local executor that runs time-triggered tasks with real-time guarantees
+- **timpani-o (Orchestrator):** Global scheduler that manages workloads across multiple nodes
+- **timpani-n (Node):** Local executor that runs time-triggered tasks with real-time guarantees
---
@@ -24,7 +24,7 @@ TIMPANI is a **distributed real-time task orchestration framework** designed for
```mermaid
graph TB
- subgraph "Timpani-O (Global Orchestrator)"
+ subgraph "timpani-o (Global Orchestrator)"
O1[Global Scheduler]
O2[Hyperperiod Manager]
O3[Node Configuration Manager]
@@ -33,7 +33,7 @@ graph TB
O6[gRPC Server]
end
- subgraph "Timpani-N (Node Executor)"
+ subgraph "timpani-n (Node Executor)"
N1[Time Trigger Core]
N2[Task Management]
N3[Real-Time Scheduler]
@@ -70,7 +70,7 @@ graph TB
---
-## Timpani-O Components
+## timpani-o Components
| Component | Responsibility | Implementation |
|-----------|---------------|----------------|
@@ -81,11 +81,11 @@ graph TB
| **Fault Service Client** | Deadline miss reporting | C++ β Rust β
|
| **gRPC Server** | Node communication (port 50054) | D-Bus β gRPC β
|
-**Detailed Documentation:** [HLD/timpani-o/](HLD/timpani-o/)
+**Detailed Documentation:** [LLD/timpani-o/](LLD/timpani-o/)
---
-## Timpani-N Components
+## timpani-n Components
| Component | Responsibility | Implementation |
|-----------|---------------|----------------|
@@ -95,9 +95,9 @@ graph TB
| **eBPF Monitoring** | Deadline miss detection (kernel) | C β Rust βΈοΈ |
| **Signal Handlers** | SIGALRM, task activation signals | C β Rust βΈοΈ |
| **Configuration** | CLI parsing, validation | C β Rust β
|
-| **gRPC Client** | Communication with Timpani-O | libtrpc β gRPC π |
+| **gRPC Client** | Communication with timpani-o | libtrpc β gRPC π |
-**Detailed Documentation:** [HLD/timpani-n/](HLD/timpani-n/)
+**Detailed Documentation:** [LLD/timpani-n/](LLD/timpani-n/)
**Legend:** β
Complete | π In Progress | βΈοΈ Not Started
@@ -108,8 +108,8 @@ graph TB
```mermaid
sequenceDiagram
participant App as Sample Apps
- participant TN as Timpani-N
- participant TO as Timpani-O
+ participant TN as timpani-n
+ participant TO as timpani-o
participant FM as Fault Manager
Note over TO: Startup Phase
@@ -165,19 +165,19 @@ sequenceDiagram
```mermaid
graph LR
subgraph "Node 1"
- N1[Timpani-N]
+ N1[timpani-n]
A1[App Tasks]
N1 -.->|monitors| A1
end
subgraph "Node 2"
- N2[Timpani-N]
+ N2[timpani-n]
A2[App Tasks]
N2 -.->|monitors| A2
end
subgraph "Orchestration Node"
- TO[Timpani-O]
+ TO[timpani-o]
FM[Fault Manager]
end
@@ -200,8 +200,8 @@ graph LR
- **Deadline Monitoring:** eBPF tracks rt_sigtimedwait syscalls
### 2. Distributed Coordination
-- **Centralized Scheduling:** Timpani-O computes global schedule
-- **Decentralized Execution:** Timpani-N executes local schedule
+- **Centralized Scheduling:** timpani-o computes global schedule
+- **Decentralized Execution:** timpani-n executes local schedule
- **Synchronization:** Coordinated start time across nodes
### 3. Fault Tolerance
@@ -211,19 +211,11 @@ graph LR
---
-## Migration Status
-| Milestone | Component | Status | Documentation |
-|-----------|-----------|--------|---------------|
-| **M1** | Timpani-O | β
Complete | [HLD/timpani-o/](HLD/timpani-o/) |
-| **M2** | Timpani-N | π Partial | [HLD/timpani-n/](HLD/timpani-n/) |
-| **M3** | gRPC Integration | π In Progress | [grpc_architecture.md](grpc_architecture.md) |
-
----
## References
-- **Component HLD:** [HLD/timpani-o/](HLD/timpani-o/), [HLD/timpani-n/](HLD/timpani-n/)
+- **Component LLD:** [LLD/timpani-o/](LLD/timpani-o/), [LLD/timpani-n/](LLD/timpani-n/)
- **gRPC Architecture:** [grpc_architecture.md](grpc_architecture.md)
- **API Documentation:** [../docs/api.md](../docs/api.md)
- **Getting Started:** [../docs/getting-started.md](../docs/getting-started.md)
@@ -231,5 +223,5 @@ graph LR
---
**Document Version:** 1.0
-**Verified Against:** Component HLD documents, source code (timpani_rust/, timpani-n/, timpani-o/)
+**Verified Against:** Component LLD documents, source code (timpani_rust/, timpani-n/, timpani-o/)
diff --git a/doc/architecture/grpc_architecture.md b/doc/architecture/timpani_rust_grpc_architecture.md
similarity index 84%
rename from doc/architecture/grpc_architecture.md
rename to doc/architecture/timpani_rust_grpc_architecture.md
index aa208f8..83ad145 100644
--- a/doc/architecture/grpc_architecture.md
+++ b/doc/architecture/timpani_rust_grpc_architecture.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# TIMPANI gRPC Integration Architecture
+# timpani gRPC Integration Architecture
**Document Version:** 1.0
**Last Updated:** May 2026
@@ -27,7 +27,7 @@
## Overview
-TIMPANI's Rust migration replaces the legacy D-Bus communication layer with **gRPC/Protobuf**, introducing:
+timpani's Rust migration replaces the legacy D-Bus communication layer with **gRPC/Protobuf**, introducing:
- **Type-safe** service contracts via Protobuf schemas
- **Async/non-blocking** RPC calls with Tokio runtime
@@ -37,11 +37,11 @@ TIMPANI's Rust migration replaces the legacy D-Bus communication layer with **gR
### Motivation for gRPC
-The Rust migration replaces D-Bus + libtrpc with gRPC/Protobuf while maintaining functional equivalence with Timpani 25. Key improvements focus on **performance**, **type safety**, and **future extensibility**.
+The Rust migration replaces D-Bus + libtrpc with gRPC/Protobuf while maintaining functional equivalence with timpani 25. Key improvements focus on **performance**, **type safety**, and **future extensibility**.
#### D-Bus (libtrpc) Limitations
-TIMPANI's legacy C/C++ implementation used **libtrpc** (custom serialization over D-Bus):
+timpani's legacy C/C++ implementation used **libtrpc** (custom serialization over D-Bus):
- Manual serialization prone to type mismatches
- D-Bus broker adds IPC overhead (~500ΞΌs latency)
- No compile-time schema validation
@@ -64,10 +64,6 @@ TIMPANI's legacy C/C++ implementation used **libtrpc** (custom serialization ove
- Equivalent service methods: `AddSchedInfo`, `GetSchedInfo`, `SyncTimer`, `ReportDMiss`
- No behavioral changes to scheduling logic or fault reporting
-**Future Extensions (Post-Milestone 2):**
-- Bidirectional streaming for runtime workload updates (planned)
-- Health checks and node status telemetry (under design)
-- gPTP time synchronization support (Milestone 3)
**Decision:** gRPC chosen for automotive/cloud hybrid deployments, with performance gains and extensibility for future features (OSS roadmap).
@@ -84,13 +80,13 @@ graph TB
end
subgraph GlobalScheduler["Global Scheduler"]
- TimpaniO["Timpani-O
(Global Scheduler)"]
+ TimpaniO["timpani-o
(Global Scheduler)"]
end
subgraph Nodes["Execution Nodes"]
- Node1["Node 1
Timpani-N"]
- Node2["Node 2
Timpani-N"]
- NodeN["Node N
Timpani-N"]
+ Node1["Node 1
timpani-n"]
+ Node2["Node 2
timpani-n"]
+ NodeN["Node N
timpani-n"]
end
Pullpiri <-->|"D-Bus
com.lge.timpani"| TimpaniO
@@ -122,13 +118,13 @@ graph TB
end
subgraph GlobalScheduler["Global Scheduler"]
- TimpaniO["Timpani-O
(Global Scheduler)
Rust"]
+ TimpaniO["timpani-o
(Global Scheduler)
Rust"]
end
subgraph Nodes["Execution Nodes"]
- Node1["Node 1
Timpani-N
(gRPC Client)"]
- Node2["Node 2
Timpani-N
(gRPC Client)"]
- NodeN["Node N
Timpani-N
(gRPC Client)"]
+ Node1["Node 1
timpani-n
(gRPC Client)"]
+ Node2["Node 2
timpani-n
(gRPC Client)"]
+ NodeN["Node N
timpani-n
(gRPC Client)"]
end
Pullpiri <-->|"gRPC
SchedInfoService
FaultService"| TimpaniO
@@ -162,7 +158,7 @@ graph TB
FaultServer["Fault Service
(gRPC Server)
:50052"]
end
- subgraph TimpaniO["Timpani-O (Global Scheduler)"]
+ subgraph TimpaniO["timpani-o (Global Scheduler)"]
SchedInfoSvc["SchedInfo Service
(gRPC Server)
:50051"]
GlobalSched["Global Scheduler
β’ node_priority
β’ task_priority
β’ best_fit"]
NodeSvc["Node Service
(gRPC Server)
:50051
β’ GetSchedInfo
β’ SyncTimer
β’ ReportDMiss"]
@@ -171,7 +167,7 @@ graph TB
GlobalSched --> NodeSvc
end
- subgraph Node1["Timpani-N (Node 1)"]
+ subgraph Node1["timpani-n (Node 1)"]
NodeClient1["Node Client
(gRPC Client)"]
SchedLoop1["Scheduler Loop"]
BPF1["eBPF Monitor"]
@@ -180,7 +176,7 @@ graph TB
SchedLoop1 --> BPF1
end
- subgraph Node2["Timpani-N (Node 2)"]
+ subgraph Node2["timpani-n (Node 2)"]
NodeClient2["Node Client"]
SchedLoop2["Scheduler Loop"]
BPF2["eBPF Monitor"]
@@ -189,7 +185,7 @@ graph TB
SchedLoop2 --> BPF2
end
- subgraph NodeN["Timpani-N (Node N)"]
+ subgraph NodeN["timpani-n (Node N)"]
NodeClientN["Node Client"]
SchedLoopN["Scheduler Loop"]
BPFN["eBPF Monitor"]
@@ -218,7 +214,7 @@ graph TB
graph TD
subgraph AppLayer["Application Layer"]
Pullpiri["Pullpiri Orchestrator"]
- WorkloadApps["Workload Apps
(scheduled by Timpani-N)"]
+ WorkloadApps["Workload Apps
(scheduled by timpani-n)"]
end
subgraph gRPCLayer["gRPC Service Layer"]
@@ -230,8 +226,8 @@ graph TD
end
subgraph BusinessLayer["Business Logic Layer"]
- TimpaniO["Timpani-O
β’ GlobalScheduler
β’ HyperperiodCalc
β’ NodeConfigMgr
β’ FaultClient"]
- TimpaniN["Timpani-N
β’ Task Executor
β’ Linux Scheduler API
β’ Signal Handling
β’ eBPF Integration"]
+ TimpaniO["timpani-o
β’ GlobalScheduler
β’ HyperperiodCalc
β’ NodeConfigMgr
β’ FaultClient"]
+ TimpaniN["timpani-n
β’ Task Executor
β’ Linux Scheduler API
β’ Signal Handling
β’ eBPF Integration"]
end
subgraph OSLayer["Operating System Layer"]
@@ -257,12 +253,12 @@ graph TD
### 1. Workload Submission & Scheduling
-**Scenario:** Pullpiri submits a new workload to Timpani-O
+**Scenario:** Pullpiri submits a new workload to timpani-o
```mermaid
sequenceDiagram
participant Pullpiri
- participant TimpaniO as Timpani-O
+ participant TimpaniO as timpani-o
participant WorkloadDB as WorkloadDB
(In-mem)
Pullpiri->>TimpaniO: AddSchedInfo(tasks)
@@ -283,7 +279,7 @@ sequenceDiagram
**Key Steps:**
1. Pullpiri calls `AddSchedInfo` RPC with task list
-2. Timpani-O validates Protobuf message
+2. timpani-o validates Protobuf message
3. Converts `TaskInfo` β internal `Task` structs
4. Runs global scheduler (selects algorithm)
5. Calculates hyperperiod (LCM of periods)
@@ -295,12 +291,12 @@ sequenceDiagram
### 2. Node Startup & Schedule Retrieval
-**Scenario:** Timpani-N starts up and fetches its schedule
+**Scenario:** timpani-n starts up and fetches its schedule
```mermaid
sequenceDiagram
- participant TimpaniN as Timpani-N
(node1)
- participant TimpaniO as Timpani-O
+ participant TimpaniN as timpani-n
(node1)
+ participant TimpaniO as timpani-o
participant WorkloadDB
TimpaniN->>TimpaniO: GetSchedInfo(node_id="node1")
@@ -318,7 +314,7 @@ sequenceDiagram
Note over TimpaniN: Store Schedule Locally
```
-**Optimization:** Timpani-O filters tasks by `node_id` before sending (reduces bandwidth).
+**Optimization:** timpani-o filters tasks by `node_id` before sending (reduces bandwidth).
---
@@ -328,10 +324,10 @@ sequenceDiagram
```mermaid
sequenceDiagram
- participant Node1 as Timpani-N
(node1)
- participant Node2 as Timpani-N
(node2)
- participant Node3 as Timpani-N
(node3)
- participant TimpaniO as Timpani-O
+ participant Node1 as timpani-n
(node1)
+ participant Node2 as timpani-n
(node2)
+ participant Node3 as timpani-n
(node3)
+ participant TimpaniO as timpani-o
Node1->>TimpaniO: SyncTimer(node1)
activate TimpaniO
@@ -374,14 +370,14 @@ sequenceDiagram
### 4. Deadline Miss Reporting
-**Scenario:** Timpani-N detects deadline miss, reports to Pullpiri via Timpani-O
+**Scenario:** timpani-n detects deadline miss, reports to Pullpiri via timpani-o
```mermaid
sequenceDiagram
participant Task as Task
(RT loop)
- participant TimpaniN as Timpani-N
(gRPC Client)
+ participant TimpaniN as timpani-n
(gRPC Client)
participant Worker as Background
Worker Thread
- participant TimpaniO as Timpani-O
(gRPC Server)
+ participant TimpaniO as timpani-o
(gRPC Server)
participant Pullpiri
Task->>TimpaniN: Deadline Miss Detected!
@@ -410,7 +406,7 @@ sequenceDiagram
**Non-Blocking Design:**
1. RT loop detects miss β queues task name to MPSC channel (~10 ns)
2. Background worker thread dequeues and calls gRPC
-3. Timpani-O forwards to Pullpiri via `FaultService`
+3. timpani-o forwards to Pullpiri via `FaultService`
4. RT loop never blocks on network I/O
**Queue Backpressure:**
@@ -426,8 +422,8 @@ sequenceDiagram
```mermaid
sequenceDiagram
participant Pullpiri
- participant TimpaniO as Timpani-O
- participant TimpaniN as Timpani-N
(node1)
+ participant TimpaniO as timpani-o
+ participant TimpaniN as timpani-n
(node1)
participant Tasks as Workload
Tasks
Pullpiri->>TimpaniO: 1. AddSchedInfo(tasks)
@@ -463,23 +459,23 @@ sequenceDiagram
| Service | Method | Endpoint | Caller | Handler |
|---------|--------|----------|--------|---------|
-| **SchedInfoService** | AddSchedInfo | `timpani-o:50051` | Pullpiri | Timpani-O |
-| **FaultService** | NotifyFault | `pullpiri:50052` | Timpani-O | Pullpiri |
-| **NodeService** | GetSchedInfo | `timpani-o:50051` | Timpani-N | Timpani-O |
-| **NodeService** | SyncTimer | `timpani-o:50051` | Timpani-N | Timpani-O |
-| **NodeService** | ReportDMiss | `timpani-o:50051` | Timpani-N | Timpani-O |
+| **SchedInfoService** | AddSchedInfo | `timpani-o:50051` | Pullpiri | timpani-o |
+| **FaultService** | NotifyFault | `pullpiri:50052` | timpani-o | Pullpiri |
+| **NodeService** | GetSchedInfo | `timpani-o:50051` | timpani-n | timpani-o |
+| **NodeService** | SyncTimer | `timpani-o:50051` | timpani-n | timpani-o |
+| **NodeService** | ReportDMiss | `timpani-o:50051` | timpani-n | timpani-o |
### Message Flow Summary
```
Pullpiri:
- β SchedInfoService.AddSchedInfo β Timpani-O
- β FaultService.NotifyFault β Timpani-O
+ β SchedInfoService.AddSchedInfo β timpani-o
+ β FaultService.NotifyFault β timpani-o
-Timpani-N:
- β NodeService.GetSchedInfo β Timpani-O
- β NodeService.SyncTimer β Timpani-O (blocks until barrier)
- β NodeService.ReportDMiss β Timpani-O (non-blocking)
+timpani-n:
+ β NodeService.GetSchedInfo β timpani-o
+ β NodeService.SyncTimer β timpani-o (blocks until barrier)
+ β NodeService.ReportDMiss β timpani-o (non-blocking)
```
---
@@ -570,7 +566,7 @@ rx.changed().await?; // Block until barrier fires
### Bandwidth Optimization
-**D-Bus (libtrpc):** Sends all nodes' tasks to every Timpani-N (broadcast)
+**D-Bus (libtrpc):** Sends all nodes' tasks to every timpani-n (broadcast)
**Example:**
- 3 nodes, 30 tasks total
@@ -581,7 +577,7 @@ rx.changed().await?; // Block until barrier fires
**Example:**
- 3 nodes, 30 tasks total
-- Each node receives ~10 tasks (filtered by Timpani-O)
+- Each node receives ~10 tasks (filtered by timpani-o)
- Bandwidth per node: ~1.7 KB
**Savings:** ~66% bandwidth reduction.
diff --git a/doc/docs/api.md b/doc/docs/api.md
index 5564968..f7fa674 100644
--- a/doc/docs/api.md
+++ b/doc/docs/api.md
@@ -3,15 +3,15 @@
* SPDX-License-Identifier: MIT
-->
-# TIMPANI Rust API Documentation
+# timpani Rust API Documentation
-This document describes the gRPC API and Rust module interfaces for TIMPANI's Rust implementation.
+This document describes the gRPC API and Rust module interfaces for timpani's Rust implementation.
## Table of Contents
1. [Overview](#overview)
2. [gRPC Services](#grpc-services)
-3. [Timpani-O Public API](#timpani-o-public-api)
-4. [Timpani-N Public API](#timpani-n-public-api)
+3. [timpani-o Public API](#timpani-o-public-api)
+4. [timpani-n Public API](#timpani-n-public-api)
5. [Common Types](#common-types)
6. [Error Handling](#error-handling)
@@ -19,12 +19,12 @@ This document describes the gRPC API and Rust module interfaces for TIMPANI's Ru
## Overview
-TIMPANI Rust replaces the D-Bus communication layer from the C/C++ implementation with gRPC/Protobuf for inter-component communication.
+timpani Rust replaces the D-Bus communication layer from the C/C++ implementation with gRPC/Protobuf for inter-component communication.
**Architecture:**
```
βββββββββββββββ βββββββββββββββ
-β Pullpiri ββββgRPC/SchedInfoββΊβ Timpani-O β
+β Pullpiri ββββgRPC/SchedInfoββΊβ timpani-o β
β Orchestratorβ β (Global) β
βββββββββββββββ βββββββ¬ββββββββ
β gRPC/NodeService
@@ -40,12 +40,12 @@ TIMPANI Rust replaces the D-Bus communication layer from the C/C++ implementatio
## gRPC Services
-### 1. SchedInfoService (Pullpiri β Timpani-O)
+### 1. SchedInfoService (Pullpiri β timpani-o)
Defined in: `timpani_rust/timpani-o/proto/schedinfo.proto`
#### SchedInfoService
-Allows orchestrators to submit workloads to Timpani-O.
+Allows orchestrators to submit workloads to timpani-o.
**Methods:**
```protobuf
@@ -84,7 +84,7 @@ message Response {
```
#### FaultService
-Allows Timpani-O to report faults back to the orchestrator.
+Allows timpani-o to report faults back to the orchestrator.
**Methods:**
```protobuf
@@ -111,7 +111,7 @@ enum FaultType {
---
-### 2. NodeService (Timpani-O β Timpani-N)
+### 2. NodeService (timpani-o β timpani-n)
Defined in: `timpani_rust/timpani-n/proto/node_service.proto`
@@ -130,7 +130,7 @@ service NodeService {
```
#### GetSchedInfo
-Timpani-N calls this at startup to retrieve its task schedule.
+timpani-n calls this at startup to retrieve its task schedule.
**Request: NodeSchedRequest**
```protobuf
@@ -186,7 +186,7 @@ message SyncResponse {
- **Workload change:** Returns `ABORTED` if workload replaced while waiting
#### ReportDMiss
-Timpani-N reports deadline misses via this non-blocking call.
+timpani-n reports deadline misses via this non-blocking call.
**Request: DeadlineMissInfo**
```protobuf
@@ -205,7 +205,7 @@ message NodeResponse {
---
-## Timpani-O Public API
+## timpani-o Public API
### GlobalScheduler
@@ -292,19 +292,19 @@ println!("Node has {} CPUs", node_info.cpus);
---
-## Timpani-N Public API
+## timpani-n Public API
### NodeClient (gRPC Client)
**Module:** `timpani_rust/timpani-n/src/grpc/`
-**Purpose:** gRPC client for communicating with Timpani-O.
+**Purpose:** gRPC client for communicating with timpani-o.
#### Methods
```rust
impl NodeClient {
- // Connect to Timpani-O (with retry)
+ // Connect to timpani-o (with retry)
pub async fn connect(uri: &str, node_id: &str) -> TimpaniResult;
// Fetch schedule at startup
@@ -351,7 +351,7 @@ impl NodeClient {
- Still type-safe via internal `SchedPolicy` enum and priority validation (0-99)
- **D-N-007:** Single client instance for process lifetime
- - Timpani-N is pure client (never hosts gRPC server)
+ - timpani-n is pure client (never hosts gRPC server)
- Avoids connection overhead and resource leaks
- **D-N-008:** Auto-retry with 1s interval on connection failure
@@ -422,7 +422,7 @@ cargo build --features plot
### Task Representation
-**Timpani-O:**
+**timpani-o:**
```rust
pub struct Task {
pub name: String,
@@ -438,7 +438,7 @@ pub struct Task {
}
```
-**Timpani-N:**
+**timpani-n:**
```rust
pub struct TaskConfig {
pub name: String,
@@ -476,7 +476,7 @@ pub enum CpuAffinity {
## Error Handling
-### Timpani-O Error Types
+### timpani-o Error Types
```rust
// Scheduler errors
@@ -495,7 +495,7 @@ pub enum ConfigError {
}
```
-### Timpani-N Error Types
+### timpani-n Error Types
```rust
pub enum TimpaniError {
@@ -511,7 +511,7 @@ pub type TimpaniResult = Result;
### Error Propagation
-Both Timpani-O and Timpani-N use `anyhow::Result` for application-level errors and `thiserror` for library error types:
+Both timpani-o and timpani-n use `anyhow::Result` for application-level errors and `thiserror` for library error types:
```rust
use anyhow::{Context, Result};
@@ -562,12 +562,12 @@ cargo test -p timpani-o scheduler::tests::test_node_priority
### Running
```bash
-# Timpani-O
+# timpani-o
./target/release/timpani-o \
--config examples/node_configurations.yaml \
--listen 0.0.0.0:50051
-# Timpani-N
+# timpani-n
./target/release/timpani-n \
--node-id node1 \
--timpani-o-uri http://192.168.1.100:50051
diff --git a/doc/docs/developments.md b/doc/docs/developments.md
index a2311e8..0874752 100644
--- a/doc/docs/developments.md
+++ b/doc/docs/developments.md
@@ -4,9 +4,9 @@
* SPDX-License-Identifier: MIT
-->
-# TIMPANI Development Guide
+# timpani Development Guide
-This document describes the development workflow, testing, static analysis, and best practices for contributing to the TIMPANI project.
+This document describes the development workflow, testing, static analysis, and best practices for contributing to the timpani project.
---
diff --git a/doc/docs/getting-started.md b/doc/docs/getting-started.md
index 5996523..f1228a9 100644
--- a/doc/docs/getting-started.md
+++ b/doc/docs/getting-started.md
@@ -4,9 +4,9 @@
* SPDX-License-Identifier: MIT
-->
-# Getting Started with TIMPANI
+# Getting Started with timpani
-Welcome to the TIMPANI project! This guide will help you get up and running with the main components, sample applications, and documentation structure.
+Welcome to the timpani project! This guide will help you get up and running with the main components, sample applications, and documentation structure.
---
@@ -21,7 +21,7 @@ sudo apt install -y libelf-dev zlib1g-dev clang linux-tools-$(uname -r)
sudo apt install -y pkg-config libsystemd-dev libyaml-dev
```
-### For gRPC & Protobuf (TIMPANI-O)
+### For gRPC & Protobuf (timpani-o)
```bash
sudo apt install -y libgrpc++-dev libprotobuf-dev protobuf-compiler-grpc
@@ -38,8 +38,8 @@ See the detailed instructions in:
## 2. Cloning the Repository
```bash
-git clone --recurse-submodules https://github.com/MCO-PICCOLO/TIMPANI.git
-cd TIMPANI
+git clone --recurse-submodules https://github.com/eclipse-timpani/timpani.git
+cd timpani
```
---
@@ -47,7 +47,7 @@ cd TIMPANI
## 3. Building the Components
-### Timpani-N
+### timpani-n
```bash
cd timpani-n
@@ -56,7 +56,7 @@ cmake ..
make
```
-### Timpani-O
+### timpani-o
```bash
cd timpani-o
@@ -65,7 +65,7 @@ cmake ..
make
```
-#### Cross-compilation for ARM64 (Timpani-O)
+#### Cross-compilation for ARM64 (timpani-o)
```bash
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain-aarch64-gcc.cmake ..
@@ -85,7 +85,7 @@ cmake --build .
## 4. Running the System
-### Example: Running Timpani-N
+### Example: Running timpani-n
1. Start the main system:
```bash
diff --git a/doc/docs/release.md b/doc/docs/release.md
index 5590a06..a306180 100644
--- a/doc/docs/release.md
+++ b/doc/docs/release.md
@@ -3,7 +3,7 @@
#* SPDX-License-Identifier: MIT
#-->
-# TIMPANI
+# timpani
## Release Management
@@ -36,8 +36,8 @@ Milestone 1: Milestone 2: Milestone 3:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Key Features to Port (across milestones):
-- Timpani-O: Global scheduling (Rust, gRPC)
-- Timpani-N: Local execution, microsecond precision (POSIX timers)
+- timpani-o: Global scheduling (Rust, gRPC)
+- timpani-n: Local execution, microsecond precision (POSIX timers)
- Linux RT policies: SCHED_DEADLINE, SCHED_FIFO, SCHED_RR
- Hyperperiod synchronization
- Deadline miss detection
@@ -50,9 +50,9 @@ Key Features to Port (across milestones):
## Overview
-This release plan covers the migration and feature development for all major TIMPANI components:
-- **Timpani-O** (Orchestrator)
-- **Timpani-N** (Time Trigger Node)
+This release plan covers the migration and feature development for all major timpani components:
+- **timpani-o** (Orchestrator)
+- **timpani-n** (Time Trigger Node)
- **Sample Apps** (Real-time Workload Demos)
- **libbpf** (eBPF Integration)
diff --git a/doc/docs/structure.md b/doc/docs/structure.md
index afb5f4c..cec564d 100644
--- a/doc/docs/structure.md
+++ b/doc/docs/structure.md
@@ -6,7 +6,7 @@
# Project Structure
-This document describes the current structure of the TIMPANI repository. All files and folders listed here are considered stable and will remain untouched in the future, except for the `timpani_rust` folder, which will be the sole focus of ongoing development.
+This document describes the current structure of the timpani repository. All files and folders listed here are considered stable and will remain untouched in the future, except for the `timpani_rust` folder, which will be the sole focus of ongoing development.
---
@@ -17,7 +17,7 @@ This document describes the current structure of the TIMPANI repository. All fil
## Current Repository Layout
```bash
-TIMPANI/
+timpani/
βββ LICENSE
βββ README.md
βββ doc/
@@ -25,9 +25,9 @@ TIMPANI/
β βββ architecture/
β β βββ timpani_architecture.md # System architecture
β β βββ grpc_architecture.md # gRPC design
-β β βββ HLD/ # High-Level Design documents
-β β βββ timpani-o/ # Timpani-O component HLDs (10 docs)
-β β βββ timpani-n/ # Timpani-N component HLDs (10 docs)
+β β βββ LLD/ # Low-Level Design documents
+β β βββ timpani-o/ # timpani-o component LLDs (10 docs)
+β β βββ timpani-n/ # timpani-n component LLDs (10 docs)
β βββ contribution/
β β βββ coding-rule.md
β β βββ guidelines-en.md
@@ -155,11 +155,11 @@ timpani_rust/
The `doc/` directory contains all project documentation:
-- **architecture/**: System architecture and HLD component documents
+- **architecture/**: System architecture and LLD component documents
- `timpani_architecture.md`: Overall system design
- `grpc_architecture.md`: Communication layer design
- - `HLD/timpani-o/`: 10 component HLD documents (AS-IS vs WILL-BE)
- - `HLD/timpani-n/`: 10 component HLD documents (AS-IS vs WILL-BE)
+ - `LLD/timpani-o/`: 10 component LLD documents (AS-IS vs WILL-BE)
+ - `LLD/timpani-n/`: 10 component LLD documents (AS-IS vs WILL-BE)
- **docs/**: Implementation and developer guides
- `api.md`: gRPC services and Rust APIs
@@ -178,9 +178,9 @@ The `doc/` directory contains all project documentation:
| Component | Legacy | Rust | Status | Documentation |
|-----------|--------|------|--------|---------------|
-| **Timpani-O** | C++ | Rust | β
Complete | [HLD/timpani-o/](../architecture/HLD/timpani-o/) |
-| **Timpani-N** | C | Rust | π Partial | [HLD/timpani-n/](../architecture/HLD/timpani-n/) |
-| **Communication** | D-Bus | gRPC | β
Timpani-O, βΈοΈ Timpani-N | [grpc_architecture.md](../architecture/grpc_architecture.md) |
+| **timpani-o** | C++ | Rust | β
Complete | [LLD/timpani-o/](../architecture/LLD/timpani-o/) |
+| **timpani-n** | C | Rust | π Partial | [LLD/timpani-n/](../architecture/LLD/timpani-n/) |
+| **Communication** | D-Bus | gRPC | β
timpani-o, βΈοΈ timpani-n | [grpc_architecture.md](../architecture/grpc_architecture.md) |
---
@@ -188,6 +188,6 @@ The `doc/` directory contains all project documentation:
- **Legacy code** (timpani-n/, timpani-o/, libtrpc/) remains for reference and backward compatibility
- **Active development** occurs exclusively in `timpani_rust/`
-- **Documentation** follows architecture β HLD β implementation flow
+- **Documentation** follows architecture β LLD β implementation flow
- **Build system** uses Cargo workspace for Rust components, CMake for legacy C/C++
- **Testing** includes both unit tests (Rust) and integration tests (test-tools/)
diff --git a/sample-apps/README.md b/sample-apps/README.md
index da572f2..9d23243 100644
--- a/sample-apps/README.md
+++ b/sample-apps/README.md
@@ -27,7 +27,7 @@ This project provides sample applications for real-time system analysis. It offe
## Build Instructions
```bash
-git clone https://github.com/MCO-PICCOLO/TIMPANI.git
+git clone https://github.com/eclipse-timpani/timpani.git
cd sample-apps
mkdir build
cd build
diff --git a/timpani-n/README.md b/timpani-n/README.md
index 4d9b526..2055994 100644
--- a/timpani-n/README.md
+++ b/timpani-n/README.md
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: MIT
-->
-# Timpani-N
+# timpani-n
## Getting started
@@ -42,7 +42,7 @@ sudo apt install -y libyaml-dev
## Build
```
-git clone https://github.com/MCO-PICCOLO/TIMPANI.git
+git clone https://github.com/eclipse-timpani/timpani.git
cd TIMPANI
git submodule add https://github.com/libbpf/libbpf.git libbpf
git submodule update --init --recursive
diff --git a/timpani-o/.github/copilot-instructions.md b/timpani-o/.github/copilot-instructions.md
index f5ad6de..b8f546f 100644
--- a/timpani-o/.github/copilot-instructions.md
+++ b/timpani-o/.github/copilot-instructions.md
@@ -5,17 +5,17 @@
# Project Overview
-This `Timpani-O` project is a C++ application that interacts with a time-triggered scheduling system for real-time tasks.
+This `timpani-o` project is a C++ application that interacts with a time-triggered scheduling system for real-time tasks.
It includes a gRPC server that allows `Pullpiri`, a workload orchestrator, to add new scheduling tables, and a gRPC client to notify `Pullpiri` of deadline miss faults.
-Additionally, it provides a D-Bus peer-to-peer server that offers the following time-triggered scheduling features for `Timpani-N` (also known as the Timpani node manager):
+Additionally, it provides a D-Bus peer-to-peer server that offers the following time-triggered scheduling features for `timpani-n` (also known as the Timpani node manager):
- - Send scheduling tables to `Timpani-N`
- - Receive deadline miss faults from `Timpani-N`
+ - Send scheduling tables to `timpani-n`
+ - Receive deadline miss faults from `timpani-n`
- Multi-node synchronization for starting time-triggered tasks
## Folder Structure
-- `src/`: Contains the main source code files for the `Timpani-O` program.
+- `src/`: Contains the main source code files for the `timpani-o` program.
- `proto/`: Contains Protocol Buffers definitions for gRPC communication with the workload orchestrator.
- `cmake/`: Contains CMake modules for building the project.
- `tests/`: Contains unit tests for testing the project.
@@ -23,7 +23,7 @@ Additionally, it provides a D-Bus peer-to-peer server that offers the following
## Libraries and Dependencies
- CMake: For building the project.
-- gRPC: For communication between `Timpani-O` and `Pullpiri`.
+- gRPC: For communication between `timpani-o` and `Pullpiri`.
- Protocol Buffers: For serializing structured data.
## Coding Style
diff --git a/timpani-o/README.md b/timpani-o/README.md
index 8444ab0..9e40b33 100644
--- a/timpani-o/README.md
+++ b/timpani-o/README.md
@@ -37,7 +37,7 @@ Refer to [TIMPANI-N's README.md](https://github.com/MCO-PICCOLO/TIMPANI/blob/mai
## How to build
```
-git clone --recurse-submodules https://github.com/MCO-PICCOLO/TIMPANI.git
+git clone --recurse-submodules https://github.com/eclipse-timpani/timpani.git
cd timpani-o
mkdir build
cd build
@@ -77,11 +77,11 @@ cpack -G TGZ
## How to run
-- To run Timpani-O with default options:
+- To run timpani-o with default options:
```
timpani-o
```
-- To run Timpani-O with specific options, refer to the help message:
+- To run timpani-o with specific options, refer to the help message:
```
timpani-o -h
```
diff --git a/timpani_rust/timpani-n/README.md b/timpani_rust/timpani-n/README.md
index 20911a1..3767e6e 100644
--- a/timpani_rust/timpani-n/README.md
+++ b/timpani_rust/timpani-n/README.md
@@ -1,14 +1,14 @@
-# Timpani-N Node Executor
+# timpani-n Node Executor
> **β οΈ Development Status**: This is a **work-in-progress** Rust port of the C implementation. Core configuration and CLI are complete, but runtime features are still being developed. See [Current Implementation Status](#current-implementation-status) for details.
-Timpani-N is a Rust implementation of the Timpani node executor, providing time-triggered scheduling capabilities for distributed real-time systems. This is a complete port from the original C implementation with enhanced type safety, memory safety, and modern Rust features.
+timpani-n is a Rust implementation of the Timpani node executor, providing time-triggered scheduling capabilities for distributed real-time systems. This is a complete port from the original C implementation with enhanced type safety, memory safety, and modern Rust features.
## Overview
-Timpani-N acts as a **node executor** in the Timpani distributed real-time system architecture:
-- **Timpani-N (Node Executor)**: Executes scheduled tasks on individual nodes
-- **Timpani-O (Node Scheduler)**: Orchestrates and schedules tasks across the distributed system
+timpani-n acts as a **node executor** in the Timpani distributed real-time system architecture:
+- **timpani-n (Node Executor)**: Executes scheduled tasks on individual nodes
+- **timpani-o (Node Scheduler)**: Orchestrates and schedules tasks across the distributed system
## Features
@@ -340,7 +340,7 @@ docker run --rm timpani-n --node-id docker-node --log-level 3 scheduler.local
```ini
# /etc/systemd/system/timpani-n.service
[Unit]
-Description=Timpani-N Node Executor
+Description=timpani-n Node Executor
After=network.target
[Service]