|
RBC_Test_CommServer 0.1.0 build fe9835b
Non-vital customer-network access point in front of the RBC's role-C gateways
|
Product: RBC_Test_CommServer, the customer-network access point stub (repository RBC_Test_CommServer). Layer: verification and gateway stand-in. C99. Non-vital, not safety-rated.
Stands in for the box a train reaches to open its safe-communication bearer. The finished product would be an ISDN or FRMCS access point; today the train (EVC or simulator) connects over plain TCP/IP and RBC_Test_CommServer relays the byte stream to the RBC's role C train gateway, dual-homed across WEST and EAST, so a site failover is invisible to the train.
flowchart LR
TRAIN["Train sim"] -->|"TCP (512-byte RBC envelopes)"| CS["RBC_Test_CommServer"]
CS -->|rte_netlink UDP| WEST["rte_gateway_c_train (WEST)"]
CS -->|rte_netlink UDP| EAST["rte_gateway_c_train (EAST)"]
It moves bytes it cannot authenticate or alter undetectably. The vital side (safecomm::safety in channels A and B) authenticates everything it receives, so a fault here can drop or misroute a connection but cannot forge a message.
Stub limits: one train at a time, fixed-size framing (the real SaF PDU framing lands with Platform_Protocol_SafeComm), no ISDN, FRMCS or TLS, no per-train ALE peer routing (single default route).
| Interface | Form | Used by |
|---|---|---|
| Train-facing listener | TCP, train.listen_host and train.listen_port | Train simulator, and later real bearer modules |
| Configuration | One key = value file (etc/commserver.conf.example, commserver.compose.conf) | Deployment |
| Binary | dist/<platform>/bin/commserver, image built from Dockerfile | RBC_Test_Env |
Framing must equal the train-to-gateway envelope size (rbc.message_size = 512); a mismatch fragments every frame.
| Needs | From | How |
|---|---|---|
| OAL, rte_netlink | Platform_RTE, Platform_OS_POSIX | add_subdirectory() by the workspace layout, or -DCOMMSERVER_USE_INSTALLED=ON |
| Config loader, ALE peer map | Platform_Protocol_SafeComm (safecomm::config, ::ale) | Same |
Working notes: CLAUDE.md.