|
RBC_Template 0.1.0 build 5fb9afb
Workspace master specification — safety-related railway software around an ERTMS Radio Block Centre (RBC), CENELEC EN 50128 / SIL 4
|
The Capella models exported on 2026-10-02 are the architecture this workspace implements. Where they and an older page in this folder disagree, the model wins; LOGICAL_ARCHITECTURE_AND_HW_ALLOCATION.dox (the 2026-09-25 draft that was entered into Capella) is kept for its history and its LC/IF/PC numbering only.
The exports themselves are not in the repository. They live in the project's document store and are read-only from here: change the model, re-export, then update this page.
| Document | Model | Version | Scope |
|---|---|---|---|
| RBC-GP-ARCH-CAP | RBC_GP | 0.1 (2026-10-02, product 0.6) | Whole RBC: system analysis, logical architecture of all products, GP physical architecture and EPBS |
| RBC-GA-NCBIR-ARCH-CAP | RBC_GA_NCBIR | 0.1 (product 0.3, base modules 0.4) | Generic application for PKP PLK: base GA modules plus PL modules |
| OSA-ARCH-CAP | OSA | 0.1 (product 0.2) | OS adapter / SOUP POSIX RTOS |
| HWP-ARCH-CAP | SCP | 0.1 (product 0.5) | Safety Computing Platform hardware, vendor-neutral (candidate: Kontron VPX DEV) |
| CSV-ARCH-CAP | TrainCommServer | 0.1 (product 0.5) | ISDN / FRMCS access server, SIL 0 |
| AID-ARCH-CAP | AI_Diagnostic | 0.1 (product 0.5) | Off-line log analysis, SIL 0 |
Realisation chain in the model: SA -> GA -> GP -> RTE / SafeComm / RTEC (RTE + OSA) -> SCP. Each product model is derived from RBC_GP (system -> subsystem) with GenericTrace links; shared exchange items live in LIB_RBC_Interfaces.
| Model element (LA) | SIL | Repository product |
|---|---|---|
| Generic Product (RBC-GP) | 4 (Gateway 0) | application/RBC_GP |
| Generic Application (RBC-GA) / RBC_GA_NCBIR | 4 | application/RBC_GA (base modules only; no PL modules yet) |
| Site Application (RBC-SA) | 4 (data) | application/RBC_SA |
| Safe Framework (RTE) | 4 | platform/Platform_RTE |
| OS Adapter (part of Safe Framework) / OSA SOUP | 4 | platform/os_adapters/Platform_OS_POSIX |
| Safe Communication Framework (SafeComm) | 4 (ALE, config: 0) | platform/protocol_adapters/Platform_Protocol_SafeComm |
| Key Management Client (in GP) | 4 | application/Platform_Protocol_KM114, used by RBC_GP ab_gp_km114_client.c |
| Event Forwarder (JRU/Syslog) (in GP Gateway) | 0 | platform/protocol_adapters/Platform_Protocol_JRU |
| Maintenance Web UI (in GP Gateway) | 0 | application/RBC_Maintenance_Web |
| Communication Server (ISDN/FRMCS) | 0 | services/RBC_TrainCommServer (placeholder) |
| AI Diagnostic | 0 | services/RBC_AI_Diagnostic_Server (placeholder) |
| Hardware / SCP | 4 | none (containers stand in for CPUA, CPUB, Gateway) |
| Model component | Code today |
|---|---|
| ERTMS Procedure Engine | RBC_GP/src/application/AB/GP/ertms, ertms_procedures, state_machines |
| Route & Train Database | GP/db, GP/train |
| MA Logic Gate (calls GA through ga_interface.h, ab_ga_ma_adaptation_init) | GP/ma_logic, GP/ga_interface |
| Key Management Client | GP/com/ab_gp_km114_client.c |
| Site Role Client (IF-05, declarative) | GP/com/ab_gp_channel_negotiate.c (state codec, transfer policy, local facts), GP/com/ab_gp_site_status.c (readiness); negotiation is in RTE rte_site_role since ADR-040 step 2, but GP still forwards the A/B peer-link frames until step 5 (gap G1) |
| Gateway: Train / IXL / CTC relays, Status Broker, Key File Relay, Takeover Confirmation Relay | RBC_GP C/gateway_c_* (role C processes); the takeover token builder is C/status/gateway_c_takeover_confirm.cpp, the interim issuer RBC_Maintenance_Web (POST /api/takeover/confirm, mTLS) |
| Model component | Code today |
|---|---|
| CTC Adapter | RBC_GA/src/AB/ctc, src/C/ctc |
| IL Adapter | RBC_GA/src/AB/il, src/C/il |
| MA Logic Adaptation | RBC_GA/src/AB/ma_logic_adaptation |
| Site Projection (implemented by RBC-SA, consumed by GA) | RBC_GA/include/ab_siteGA.h + RBC_SA generated tables |
| PL modules: CMI / CTC desk, srk adaptation (signalling, line blocks, level crossings), traffic rules (shunting / OSM, level borders LTA / RADIOSTOP, manual route release), PKP PLK parameters | not started |
| Model component | Code today (platform/Platform_RTE/src) |
|---|---|
| Application Manager | app/appmanager |
| Redundancy Services (dual transfer, cross-comparison, checkpoint, site role, state transfer, takeover verification) | redundancy/{dual,cross_comparator,voter,checkpoint,state_transfer,election,site_role} - site role and takeover verification in redundancy/site_role (ADR-040 steps 1-4); remaining G1 work is step 5 |
| Safe State Manager | utils/safestate, oal/reboot |
| Communication Services (Flows / PI API) | oal/flow - GP still bypasses it for peer links (G3) |
| OS Abstraction Layer | oal/* |
| Watchdog & Health Supervision | redundancy/watchdog |
| Redundancy Configuration (JSON per role and site) | redundancy/config |
| OS Adapter | Platform_OS_POSIX |
Each gap is a work item in TODO.dox (section "Capella architecture baseline"), which holds the plan, the order and the progress: G1 (ADR-040, steps 1-4 done) and G4 (audit, items 1-2 done) are in progress, the rest not started.