Skip to content

Rückverfolgbarkeit Anforderung → Code → Nachweis ​

Erzeugt mit cargo xtask trace; die CI prüft mit cargo xtask trace --check, dass dieser Bericht aktuell ist. Nicht von Hand bearbeiten.

Je Anforderung: Gefährdungen, Code, der die ID nennt, und Nachweise (Tests und Kani-Nachweise, die die ID nennen, im Nachweis genannte Funktionen, Szenarien).

bedienplatz.md ​

IDGefährdungCodeNachweis
REQ-UI-001H-016apps/railitd/ui/src/plan.ts
crates/railit-layout/src/lib.rs
beispielstadt_is_a_station_with_two_tracks
nordbahn_has_three_areas_from_west_to_east
railml_branch_and_svg
operator_desk_is_static_and_locked_down
apps/railitd/tests/api.rs
apps/railitd/tests/security.rs
apps/railitd/ui/e2e/bedienplatz.test.ts
apps/railitd/ui/e2e/nordbahn.test.ts
crates/railit-layout/tests/layout.rs
REQ-UI-002H-016apps/railitd/ui/src/main.ts
apps/railitd/ui/src/model.ts
operator_desk_is_static_and_locked_down
apps/railitd/tests/security.rs
apps/railitd/ui/e2e/bedienplatz.test.ts
apps/railitd/ui/test/model.test.ts
REQ-UI-003H-006, H-016apps/railitd/src/service.rs
apps/railitd/ui/src/check.ts
apps/railitd/ui/src/main.ts
crates/railit-runtime/src/names.rs
check_code_vectors
aux_operation_and_journal
apps/railitd/tests/api.rs
apps/railitd/ui/e2e/bedienplatz.test.ts
apps/railitd/ui/test/check.test.ts
REQ-UI-004H-006, H-013, H-016–apps/railitd/ui/e2e/nordbahn.test.ts
apps/railitd/ui/test/model.test.ts
REQ-UI-005H-016, H-011apps/railitd/ui/src/api.ts
apps/railitd/ui/src/main.ts
apps/railitd/ui/src/model.ts
apps/railitd/ui/src/panels.ts
apps/railitd/ui/e2e/bedienplatz.test.ts
apps/railitd/ui/test/review.test.ts

betrieb.md ​

IDGefährdungCodeNachweis
REQ-OPS-001H-013crates/railit-ops/src/ops.rstrain_numbers_follow_the_routes
apps/railitd/tests/api.rs
crates/railit-ops/tests/ops.rs
Szenario 14
REQ-OPS-002H-013–timetable_is_validated_against_the_network
times_are_parsed_and_formatted
crates/railit-ops/tests/ops.rs
REQ-OPS-003H-013crates/railit-ops/src/ops.rsars_departs_on_time_and_requests_permissions
ars_waits_for_permission_and_follows_platform_changes
crates/railit-ops/tests/ops.rs
Szenario 14
REQ-OPS-004H-013crates/railit-ops/src/ops.rsauto_signals_clear_for_any_described_train
crates/railit-ops/tests/ops.rs
REQ-OPS-005H-013crates/railit-ops/src/ops.rsars_waits_for_permission_and_follows_platform_changes
timetable_and_dispatching_over_api
Szenario 15
REQ-OPS-006H-013crates/railit-adapters/src/ils.rs
crates/railit-ops/src/net.rs
crates/railit-ops/src/ops.rs
crates/railit-runtime/src/runtime.rs
trains_are_handed_over_eastwards
trains_are_handed_over_westwards
handover_telegram_roundtrip
handover_waits_for_the_link
only_local_trains_are_spawned_and_described
takeover_does_not_spawn_running_trains_again
sci_ils
crates/railit-ops/tests/ops.rs
crates/railit-runtime/tests/ils.rs
REQ-OPS-007H-013, H-017apps/railitd/src/api.rs
apps/railitd/src/standby.rs
apps/railitd/src/takeover.rs
crates/railit-ops/src/ops.rs
crates/railit-runtime/src/names.rs
ops_state_moves_to_another_computer
standby_takes_over_with_the_followed_state
apps/railitd/tests/field.rs
crates/railit-ops/tests/ops.rs

dienst.md ​

IDGefährdungCodeNachweis
REQ-SVC-001H-004–check_correspondence
REQ-SVC-002H-003, H-006–Analyse (Architektur)
REQ-SVC-003H-006–operate_station_over_api
roles_areas_and_audit_with_tokens
REQ-SVC-004H-006–operate_station_over_api
REQ-SVC-005H-008–keygen_compile_verify_info
REQ-SVC-006H-006–aux_operation_and_journal
mutual_tls_identifies_users_by_certificate
REQ-SVC-007H-004, H-012–network_with_areas_over_api
every_area_journal_replays
REQ-SVC-008H-006–interlocking_over_grpc
mutual_tls_identifies_users_by_certificate
apps/railitd/tests/grpc.rs
REQ-SVC-009H-015, H-016apps/railitd/src/api.rs
apps/railitd/src/metrics.rs
operate_station_over_api
safe_computer_nodes_over_api
histogram_is_cumulative_and_consistent
apps/railitd/tests/api.rs
REQ-SVC-010H-011, H-016apps/railitd/src/api.rs
apps/railitd/src/review.rs
aux_operation_and_journal
apps/railitd/tests/api.rs
REQ-SVC-011H-011, H-015, H-016apps/railitd/src/api.rs
apps/railitd/src/standby.rs
apps/railitd/ui/src/model.ts
apps/railitd/ui/src/panels.ts
crates/railit-runtime/src/replication.rs
standby_follows_the_primary
area_names_are_encoded
apps/railitd/tests/api.rs
apps/railitd/ui/e2e/bedienplatz.test.ts
apps/railitd/ui/test/role.test.ts
REQ-SVC-012H-001, H-003, H-010, H-015, H-017apps/railitd/src/auth.rs
apps/railitd/src/engine.rs
apps/railitd/src/metrics.rs
apps/railitd/src/service.rs
apps/railitd/src/standby.rs
apps/railitd/src/takeover.rs
crates/railit-runtime/src/replication.rs
crates/railit-runtime/src/runtime.rs
outputs_wait_for_all_areas
lapse_releases_everything_and_rearms_after_catching_up
area_without_journal_lapses
takeover_in_beispielstadt_is_safe
takeover_in_nordbahn_is_safe
stale_takeover_without_gate_opens_the_crossing_before_a_train
gate_covers_only_a_current_standby
apps/railitd/tests/field.rs
crates/railit-runtime/tests/takeover.rs
REQ-SVC-013H-001, H-003, H-015, H-017apps/railit-field/src/main.rs
apps/railitd/src/takeover.rs
crates/railit-adapters/src/net.rs
crates/railit-fuzz/src/lib.rs
second_interlocking_is_rejected_while_the_leader_lives
standby_leads_after_the_leader_is_lost
switch_per_area
apps/railitd/tests/field.rs
crates/railit-adapters/tests/net.rs
REQ-SVC-014H-001, H-003, H-015, H-016, H-017apps/railitd/src/takeover.rs
apps/railitd/ui/src/model.ts
standby_takes_over_with_the_followed_state
standby_restarts_without_a_promise
apps/railitd/tests/field.rs
apps/railitd/ui/test/role.test.ts

embedded.md ​

IDGefährdungCodeNachweis
REQ-EMB-001H-007, H-015–node_matches_reference_kernel
memory_capacity_is_checked
crates/railit-embedded/tests/node.rs
REQ-EMB-002H-005, H-014crates/railit-runtime/src/remote.rslink_loss_is_fail_safe
crates/railit-embedded/tests/node.rs
REQ-EMB-003H-014–safety_layer_over_the_wire
malformed_payload_drops_the_link
roundtrip_across_payloads
garbage_is_malformed
packer_respects_the_payload_limit
node_wire
crates/railit-embedded/tests/node.rs
REQ-EMB-004H-007, H-015–watchdog_trips_on_overrun
crates/railit-embedded/tests/node.rs
REQ-EMB-005H-007, H-015, H-016crates/railit-runtime/src/remote.rsall_scenarios_pass_on_safe_computer_nodes
node_process_over_udp
safe_computer_nodes_over_api
apps/railit-node/tests/udp.rs
apps/railitd/tests/api.rs
crates/railit-runtime/tests/scenarios.rs
REQ-EMB-006H-015, H-016crates/railit-embedded/src/node.rs
crates/railit-kernel/src/kernel.rs
crates/railit-runtime/src/remote.rs
state_sync_rebuilds_the_mirror
state_transfer_reproduces_the_state
mirror_state
crates/railit-embedded/tests/node.rs
Szenario 18

etcs.md ​

IDGefährdungCodeNachweis
REQ-ETCS-001H-009–etcs_train_over_api
apps/railitd/tests/api.rs
Szenario 16
REQ-ETCS-002H-001, H-009, H-012crates/railit-etcs/src/lib.rsetcs_train_over_api
apps/railitd/tests/api.rs
Szenario 16
REQ-ETCS-003H-001, H-009crates/railit-etcs/src/lib.rsSzenario 17
REQ-ETCS-004H-001, H-009apps/railit-field/src/main.rs
apps/railitd/src/field.rs
crates/railit-adapters/src/ils.rs
crates/railit-etcs/src/lib.rs
crates/railit-runtime/src/runtime.rs
etcs_authority_reaches_into_another_process
previews_roundtrip_and_are_bounded
etcs_train_crosses_into_another_process
apps/railitd/tests/field.rs
crates/railit-runtime/tests/ils.rs

fahrerlaubnis.md ​

IDGefährdungCodeNachweis
REQ-MOV-001H-002, H-009–ks_diverging_entry_shows_zs3_and_is_announced
hv_diverging_is_hp2_and_vr2
hv_combined_and_distant
REQ-MOV-002H-009–pictures_are_consistent
signal_drop_turns_announcement_back
crates/railit-movement/tests/aspects.rs
REQ-MOV-003H-009–display_of_dark_and_substitute
Analyse (Architektur)
REQ-MOV-004H-001, H-002, H-009crates/railit-movement/src/etcs.rsetcs_authority_follows_the_routes_with_proceed
etcs_authority_carries_speed_and_survives_passing
crates/railit-movement/tests/aspects.rs
REQ-MOV-007H-009crates/railit-sim/src/lib.rspzb_2000_hz_brakes_at_a_stop_signal
pzb_500_hz_stops_before_the_announced_signal
pzb_90_supervision
crates/railit-sim/tests/sim.rs
Szenario 26

journal.md ​

IDGefährdungCodeNachweis
REQ-JRN-001H-011crates/railit-journal/src/lib.rs
crates/railit-runtime/src/runtime.rs
tampering_breaks_the_chain
journal_verify_and_replay
apps/railit/tests/cli.rs
apps/railitd/tests/api.rs
crates/railit-runtime/tests/journal.rs
REQ-JRN-002H-011, H-007crates/railit-journal/src/lib.rs
crates/railit-runtime/src/scenario.rs
journal_replays_to_the_same_state
forged_journal_is_detected_by_replay
replay_needs_the_recorded_plan
aux_operation_and_journal
apps/railit/tests/cli.rs
apps/railitd/tests/api.rs
crates/railit-runtime/tests/journal.rs
crates/railit-runtime/tests/scenarios.rs
REQ-JRN-003H-011crates/railit-runtime/src/runtime.rsaux_operation_and_journal
REQ-JRN-004H-011crates/railit-journal/src/audit.rs
crates/railit-journal/src/lib.rs
crates/railit-journal/src/seal.rs
crates/railit-runtime/src/runtime.rs
sealed_journal_verifies_with_the_station_key
rewritten_journal_cannot_carry_the_station_seal
tampered_signature_is_detected
sealed_audit_log
foreign_seals_block_reopening
sealed_journal_and_audit_log
apps/railitd/tests/api.rs
crates/railit-journal/tests/seal.rs
REQ-JRN-005H-011crates/railit-journal/src/lib.rsdeltas_reconstruct_every_input_list
malformed_deltas_are_rejected
forged_journal_is_detected_by_replay
REQ-JRN-006H-011apps/railit/src/bench.rs
crates/railit-journal/src/lib.rs
crates/railit-runtime/src/scenario.rs
snapshots_split_the_replay
forged_snapshot_is_detected_by_replay
journal_covers_trip_and_reset_of_the_safety_layer
crates/railit-runtime/tests/scenarios.rs
REQ-JRN-007H-011crates/railit-journal/src/lib.rs
crates/railit-runtime/src/remote.rs
crates/railit-runtime/src/scenario.rs
node_journal_replays_across_resyncs
safe_computer_nodes_over_api
all_scenarios_pass_on_safe_computer_nodes
apps/railitd/tests/api.rs
crates/railit-runtime/tests/journal.rs
crates/railit-runtime/tests/scenarios.rs
REQ-JRN-008H-011apps/railitd/src/review.rs
crates/railit-journal/src/lib.rs
window_replays_from_the_nearest_snapshot
journal_follow_state_and_events
apps/railit/tests/cli.rs
crates/railit-runtime/tests/journal.rs
REQ-JRN-009H-011, H-015crates/railit-journal/src/lib.rsfollower_tracks_the_running_interlocking
follower_reads_node_journal
journal_follow_state_and_events
mutated_journals
rechained_snapshot_mutations
apps/railit/tests/cli.rs
crates/railit-fuzz/tests/smoke.rs
crates/railit-runtime/tests/journal.rs
REQ-JRN-010H-011apps/railit/src/journal.rs
crates/railit-journal/src/seal.rs
crates/railit-journal/src/witness.rs
seals_carry_signed_times_and_witnesses_attest_them
witnesses_attest_lines_in_order
journal_witness
apps/railit/tests/cli.rs
crates/railit-journal/tests/seal.rs

kern.md ​

IDGefährdungCodeNachweis
REQ-IXL-001H-007crates/railit-kernel/src/kernel.rskernel_is_deterministic
crates/railit-kernel/tests/kernel.rs
REQ-IXL-002H-001crates/railit-kernel/src/kernel.rs
crates/railit-kernel/src/lib.rs
conflicting_routes_are_rejected
no_conflicting_routes
crates/railit-kernel/tests/kernel.rs
Szenario 03
REQ-IXL-003H-001, H-005crates/railit-kernel/src/kernel.rs
crates/railit-kernel/src/lib.rs
occupied_or_disturbed_sections_block_routes
continuation_may_use_the_overlap
flank_signals_are_held_at_stop
crates/railit-kernel/tests/kernel.rs
Szenario 07
Szenario 08
REQ-IXL-004H-003crates/railit-kernel/src/kernel.rssingle_point_operation
aux_force_point
command_point
crates/railit-kernel/tests/kernel.rs
REQ-IXL-005H-001, H-002, H-010crates/railit-kernel/src/kernel.rs
crates/railit-kernel/src/lib.rs
signal_drops_when_point_loses_supervision
signal_drops_when_section_ahead_is_occupied
occupied_overlap_blocks_proceed
proceed_only_when_safe
crates/railit-kernel/tests/kernel.rs
Szenario 04
REQ-IXL-006H-001, H-009crates/railit-kernel/src/kernel.rscancelling_respects_time_lock
train_entering_cancelled_route_keeps_locks
crates/railit-kernel/tests/kernel.rs
crates/railit-kernel/tests/phase2.rs
Szenario 05
REQ-IXL-007H-001, H-003crates/railit-kernel/src/kernel.rsroute_lifecycle_with_partial_release
overlap_release_waits_for_time_and_vacancy
flank_protection_is_released_with_its_section
Szenario 01
Szenario 02
REQ-IXL-008H-007crates/railit-kernel/src/invariants.rs
crates/railit-kernel/src/kernel.rs
crates/railit-kernel/src/lib.rs
invariant_violation_enters_safe_state
first_cycle_commands_stop_everywhere
crates/railit-kernel/tests/invariants.rs
crates/railit-kernel/tests/kernel.rs
REQ-IXL-009H-005crates/railit-adapters/src/lib.rs
crates/railit-kernel/src/lib.rs
nothing_is_clear_without_reports
stale_reports_drop_the_signal
crates/railit-kernel/tests/kernel.rs
REQ-IXL-010H-002crates/railit-kernel/src/kernel.rssetting_times_out_when_points_do_not_move
Szenario 06
REQ-IXL-011H-009crates/railit-kernel/src/kernel.rs
crates/railit-kernel/src/lib.rs
unauthorized_occupancy_is_alarmed
signal_passed_at_danger
crates/railit-kernel/tests/borders.rs
crates/railit-kernel/tests/phase2.rs
Szenario 11
REQ-IXL-012H-001, H-009crates/railit-kernel/src/kernel.rs
crates/railit-kernel/src/lib.rs
overlap_is_locked_and_points_are_set
continuation_may_use_the_overlap
crates/railit-kernel/tests/phase2.rs
Szenario 08
REQ-IXL-013H-001crates/railit-kernel/src/kernel.rs
crates/railit-kernel/src/lib.rs
flank_signals_are_held_at_stop
crates/railit-kernel/tests/phase2.rs
Szenario 08
REQ-IXL-014H-006crates/railit-kernel/src/kernel.rs
crates/railit-kernel/src/lib.rs
aux_needs_a_second_operator_in_time
aux_release_of_occupied_route
aux_reset_tvd
aux_force_point
apps/railitd/tests/api.rs
crates/railit-kernel/tests/borders.rs
crates/railit-kernel/tests/coupling.rs
crates/railit-kernel/tests/phase2.rs
Szenario 10
Szenario 12
REQ-IXL-015H-001, H-009crates/railit-kernel/src/kernel.rs
crates/railit-kernel/src/lib.rs
substitute_signal_lets_train_pass
substitute_signal_times_out_and_drops
cancel_with_substitute_uses_time_lock
substitute_only_when_justified
crates/railit-kernel/tests/phase2.rs
Szenario 10
REQ-IXL-016H-010crates/railit-kernel/src/kernel.rs
crates/railit-kernel/src/lib.rs
level_crossing_must_be_closed_before_proceed
level_crossing_opens_after_train_has_left
shared_locks_match_routes
crates/railit-kernel/tests/phase2.rs
Szenario 09
REQ-IXL-017H-012crates/railit-adapters/src/ils.rs
crates/railit-kernel/src/invariants.rs
crates/railit-kernel/src/invariants/reference.rs
crates/railit-kernel/src/kernel/border.rs
never_both_sides_hold_permission
designated_side_takes_permission_after_settle_time
only_newer_offers_are_taken
take_back_permission_by_aux_operation
permission_conflict_is_alarmed
apps/railitd/tests/api.rs
crates/railit-kernel/tests/borders.rs
crates/railit-runtime/tests/ils.rs
REQ-IXL-018H-012crates/railit-kernel/src/kernel/border.rspermission_is_given_only_when_safe
crates/railit-kernel/tests/borders.rs
REQ-IXL-019H-001, H-012crates/railit-kernel/src/kernel/border.rsincoming_trains_are_authorized_only_without_permission
borders_are_consistent
crates/railit-kernel/tests/borders.rs
REQ-IXL-020H-001, H-012crates/railit-kernel/src/invariants.rs
crates/railit-kernel/src/invariants/reference.rs
crates/railit-kernel/src/kernel/border.rs
exit_needs_permission_and_clear_neighbour
lost_neighbour_drops_exit_signal
proceed_only_when_safe
crates/railit-kernel/tests/borders.rs
REQ-IXL-021H-012crates/railit-kernel/src/kernel/border.rsnever_two_stations_feed_the_single_track
single_track_direction_changes_in_order
crates/railit-kernel/tests/borders.rs
crates/railit-runtime/tests/ils.rs
Szenario 13
REQ-IXL-022H-006, H-016apps/railitd/src/service.rs
crates/railit-kernel/src/io.rs
confirmation_must_restate_the_operation
apps/railitd/tests/api.rs
apps/railitd/ui/e2e/bedienplatz.test.ts
crates/railit-kernel/tests/phase2.rs
Szenario 12
REQ-IXL-023H-007crates/railit-kernel/src/invariants.rslinear_check_agrees_with_reference
kernel_never_becomes_unsafe
REQ-IXL-024H-015apps/railit/src/bench.rsbench_measures_a_small_corridor
REQ-IXL-025H-001, H-003, H-015, H-017apps/railitd/src/takeover.rs
crates/railit-kernel/src/kernel.rs
crates/railit-runtime/src/runtime.rs
proceed_falls_to_halt_and_locks_remain
locked_route_and_train_in_route_continue
pending_aux_expires_and_substitute_goes_out
safe_state_is_kept
kernel_never_becomes_unsafe
crates/railit-kernel/tests/common/mod.rs
crates/railit-kernel/tests/invariants.rs
crates/railit-kernel/tests/takeover.rs
crates/railit-runtime/tests/takeover.rs
REQ-IXL-026H-002, H-003crates/railit-kernel/src/kernel.rssingle_move_takes_the_partner_along
route_locks_all_four_points
forced_move_takes_the_partner_along
coupled_points_share_one_drive
crates/railit-adapters/tests/drives.rs
crates/railit-kernel/tests/coupling.rs
Szenario 25
Szenario 27

kommunikation.md ​

IDGefährdungCodeNachweis
REQ-COM-001H-005, H-014–corruption_is_detected
crates/railit-rasta/tests/rasta.rs
Szenario 18
REQ-COM-002H-014–foreign_sender_is_rejected
crates/railit-rasta/tests/rasta.rs
REQ-COM-003H-014crates/railit-rasta/src/lib.rsreplayed_messages_are_discarded
lost_messages_are_retransmitted_in_order
lost_last_message_is_noticed_by_heartbeat
delivery_is_an_in_order_prefix
both_directions_deliver_in_order_prefixes
crates/railit-rasta/tests/rasta.rs
REQ-COM-004H-014–delayed_messages_break_the_connection
crates/railit-rasta/tests/rasta.rs
REQ-COM-005H-005, H-014–heartbeats_keep_the_connection_alive
silence_times_out
crates/railit-rasta/tests/rasta.rs
REQ-COM-006H-005, H-014–field_over_eulynx_and_rasta
apps/railitd/tests/api.rs
Szenario 18
Szenario 19
REQ-COM-007H-005, H-014crates/railit-rasta/src/lib.rstwenty_percent_loss_does_not_break_the_connection
both_directions_deliver_in_order_prefixes
crates/railit-rasta/tests/rasta.rs
Szenario 18
REQ-COM-008H-014, H-015apps/railit-field/src/main.rs
apps/railitd/src/field.rs
crates/railit-adapters/src/ils.rs
crates/railit-adapters/src/net.rs
crates/railit-fuzz/src/lib.rs
leader_connects_and_controls_the_field
remote_field_over_rasta
field_network_must_match
apps/railitd/tests/field.rs
crates/railit-adapters/tests/net.rs
REQ-COM-009H-012, H-014–telegram_roundtrip_and_rejects
interrupted_link_delivers_nothing_and_recovers
corruption_is_never_delivered
permission_stays_exclusive_over_disturbed_ils
direction_change_waits_for_the_link
all_scenarios_pass_over_sci_ils
borders_over_sci_ils
sci_ils
apps/railitd/tests/api.rs
crates/railit-runtime/tests/ils.rs
crates/railit-runtime/tests/scenarios.rs
Szenario 22
REQ-COM-010H-012, H-014crates/railit-adapters/src/ils.rs
crates/railit-adapters/src/net.rs
split_processes_exchange_over_the_network
border_between_processes
areas_in_separate_processes
switch_per_area
standby_takes_over_a_part_of_the_network
ils_net
apps/railitd/tests/api.rs
apps/railitd/tests/field.rs
crates/railit-adapters/tests/net.rs
crates/railit-runtime/tests/ils.rs
REQ-COM-011H-014apps/railit-field/src/main.rs
crates/railit-adapters/src/net.rs
crates/railit-adapters/src/redundant.rs
crates/railit-fuzz/src/lib.rs
crates/railit-rasta/src/redundancy.rs
duplicates_from_the_second_channel_are_filtered
a_lost_frame_comes_over_the_other_channel
a_gap_is_skipped_after_t_seq
diagnosis_counts_missing_frames_per_channel
redundant_channels_survive_a_channel_failure
rasta_redundancy
apps/railitd/tests/field.rs

plan.md ​

IDGefährdungCodeNachweis
REQ-PLN-001H-004crates/railit-plan/src/lib.rs
crates/railit-plan/src/view.rs
Analyse (Typsystem)
REQ-PLN-002H-004crates/railit-plan/src/error.rs
crates/railit-plan/src/view.rs
crates/railit-planning/src/error.rs
inconsistent_plans_are_rejected
crates/railit-plan/tests/image.rs
REQ-PLN-003H-004, H-008–every_single_bit_flip_is_detected
crates/railit-plan/tests/image.rs
REQ-PLN-004H-008crates/railit-plan/src/approval.rs
crates/railit-plan/src/lib.rs
crates/railit-plan/src/model.rs
crates/railit-plan/src/view.rs
crates/railit-planning/src/lib.rs
crates/railit-runtime/src/keys.rs
crates/railit-runtime/src/lib.rs
signatures_are_checked
unsigned_or_foreign_plans_are_refused
keygen_compile_verify_info
apps/railitd/tests/api.rs
crates/railit-plan/tests/image.rs
REQ-PLN-010H-001, H-005crates/railit-planning/src/error.rs
crates/railit-planning/src/generate.rs
crates/railit-planning/src/lib.rs
crates/railit-planning/src/verify.rs
signals_must_stand_at_tvd_boundaries
signals_may_stand_shortly_before_the_tvd_boundary
crates/railit-planning/tests/planning.rs
REQ-PLN-011H-001, H-002crates/railit-planning/src/error.rs
crates/railit-planning/src/lib.rs
example_routes_are_generated
ladder_stations_plan_and_verify
REQ-PLN-012H-001crates/railit-plan/src/view.rs
crates/railit-planning/src/generate.rs
crates/railit-planning/src/lib.rs
example_routes_are_generated
example_phase2_data
ladder_stations_plan_and_verify
crates/railit-planning/tests/planning.rs
REQ-PLN-013H-004crates/railit-planning/src/error.rs
crates/railit-planning/src/lib.rs
crates/railit-planning/src/verify.rs
verification_detects_tampering
crates/railit-planning/tests/planning.rs
REQ-PLN-014H-004crates/railit-planning/src/error.rsloops_without_signal_are_rejected
crates/railit-planning/tests/planning.rs
REQ-PLN-015H-001, H-009crates/railit-planning/src/generate.rs
crates/railit-planning/src/lib.rs
example_phase2_data
crates/railit-planning/tests/planning.rs
REQ-PLN-016H-001crates/railit-planning/src/error.rs
crates/railit-planning/src/generate.rs
crates/railit-planning/src/lib.rs
flanks_must_be_protectable
example_phase2_data
crates/railit-planning/tests/planning.rs
REQ-PLN-017H-009crates/railit-planning/src/error.rs
crates/railit-planning/src/generate.rs
crates/railit-planning/src/lib.rs
distant_signals_need_a_unique_main_signal
crates/railit-planning/tests/planning.rs
REQ-PLN-018H-010, H-002crates/railit-planning/src/lib.rsexample_phase2_data
level_crossing_within_long_overlap
crates/railit-planning/tests/planning.rs
REQ-PLN-019H-001, H-012crates/railit-planning/src/error.rs
crates/railit-planning/src/generate.rs
crates/railit-planning/src/lib.rs
nordbahn_compiles_per_area
borders_need_an_entry_signal
inconsistent_border_data_is_rejected
crates/railit-planning/tests/planning.rs
REQ-PLN-020H-007crates/railit-plan/src/view.rsinconsistent_phase2_data_is_rejected
REQ-PLN-021H-001, H-002, H-004crates/railit-plan/src/format.rs
crates/railit-plan/src/model.rs
crates/railit-plan/src/view.rs
crates/railit-planning/src/error.rs
crates/railit-planning/src/generate.rs
routes_over_a_double_slip_require_all_four_points
single_slip_has_one_curve
crossover_points_move_together
tampered_couplings_are_rejected
coupled_points_must_not_lie_in_an_approach
crates/railit-kernel/tests/coupling.rs
crates/railit-planning/tests/slip.rs
Szenario 25
REQ-PLN-022H-008, H-004apps/railit-node/src/main.rs
apps/railit/src/plan.rs
apps/railitd/src/main.rs
crates/railit-plan/src/approval.rs
crates/railit-runtime/src/keys.rs
plans_need_approvals_from_distinct_trusted_reviewers
plans_need_four_eyes_approval
keygen_compile_verify_info
apps/railit/tests/cli.rs

sicherheit.md ​

IDGefährdungCodeNachweis
REQ-SEC-001H-006apps/railitd/src/auth.rsusers_file_is_validated
roles_areas_and_audit_with_tokens
token_and_audit_verification
apps/railit/tests/cli.rs
apps/railitd/tests/security.rs
REQ-SEC-002H-006apps/railitd/src/tls.rsmutual_tls_identifies_users_by_certificate
apps/railitd/tests/security.rs
REQ-SEC-003H-006apps/railitd/src/auth.rsroles_grant_their_permissions
roles_areas_and_audit_with_tokens
interlocking_over_grpc
apps/railitd/tests/security.rs
REQ-SEC-004H-006, H-011apps/railit/src/admin.rs
apps/railitd/src/service.rs
crates/railit-journal/src/audit.rs
chain_detects_tampering
reopened_log_continues_the_chain
roles_areas_and_audit_with_tokens
token_and_audit_verification
apps/railit/tests/cli.rs
apps/railitd/tests/security.rs
REQ-SEC-005H-006–open_mode_only_on_loopback
REQ-SEC-006H-006apps/railitd/src/tls.rsrevoked_client_certificates_are_refused
apps/railitd/tests/security.rs

sicherheitsschicht.md ​

IDGefährdungCodeNachweis
REQ-SAF-001H-001, H-007, H-015crates/railit-safety/src/channels.rs
crates/railit-safety/src/lib.rs
healthy_channels_are_transparent
two_out_of_two_trips_on_stray_command
two_out_of_two_detects_state_divergence
voted_outputs_are_reference_outputs_or_safe
all_scenarios_pass_with_three_channels
voter_forwards_only_confirmed_outputs
crates/railit-runtime/tests/scenarios.rs
crates/railit-safety/tests/voter.rs
Szenario 21
REQ-SAF-002H-007, H-015crates/railit-safety/src/channels.rs
crates/railit-safety/src/lib.rs
two_out_of_three_masks_one_channel
voted_outputs_are_reference_outputs_or_safe
voter_forwards_only_confirmed_outputs
redundant_channels_over_api
apps/railitd/tests/api.rs
crates/railit-safety/tests/voter.rs
Szenario 20
REQ-SAF-003H-007, H-015crates/railit-kernel/src/state.rs
crates/railit-runtime/src/runtime.rs
crates/railit-safety/src/channels.rs
crates/railit-safety/src/lib.rs
two_out_of_three_masks_one_channel
journal_covers_trip_and_reset_of_the_safety_layer
redundant_channels_over_api
apps/railitd/tests/api.rs
crates/railit-safety/tests/voter.rs
Szenario 20
REQ-SAF-004H-001, H-006, H-009, H-015crates/railit-runtime/src/runtime.rs
crates/railit-safety/src/channels.rs
crates/railit-safety/src/lib.rs
two_out_of_two_trips_on_stray_command
external_trip_holds_all_signals
output_overflow_trips
journal_covers_trip_and_reset_of_the_safety_layer
redundant_channels_over_api
roles_grant_their_permissions
apps/railitd/tests/api.rs
crates/railit-runtime/tests/journal.rs
Szenario 20
Szenario 21
REQ-SAF-005H-007, H-015crates/railit-safety/src/lib.rs
crates/railit-safety/src/watchdog.rs
deadline_and_gap
backward_clock_trips_even_without_deadline
external_trip_holds_all_signals
watchdog_detects_every_overrun
watchdog_trips_on_overrun
crates/railit-safety/tests/voter.rs
REQ-SAF-006H-007, H-014–voter_forwards_only_confirmed_outputs
watchdog_detects_every_overrun
fixed_outputs_never_lose_silently
bitset_insert_remove_are_exact
bitset_union_is_exact
time_never_overflows
md4_never_panics_on_shortest_pdu
md4_never_panics_on_two_blocks
closed_connection_never_delivers
packer_respects_the_payload_limit
crates/railit-embedded/src/proofs.rs
crates/railit-rasta/src/proofs.rs
crates/railit-safety/src/proofs.rs
crates/railit-types/src/proofs.rs
REQ-SAF-007H-004, H-008, H-014–seeds_pass
plan_mutation_sweep
truncated_sources
random_plan_mutations
random_bytes
crates/railit-fuzz/tests/smoke.rs
REQ-SAF-008H-015crates/railit-embedded/src/node.rs
crates/railit-runtime/src/remote.rs
crates/railit-runtime/src/runtime.rs
crates/railit-safety/src/channels.rs
crates/railit-safety/src/lib.rs
crates/railit-safety/src/memory.rs
a_flipped_plan_bit_is_found_within_one_pass
intact_memory_passes_and_counts_passes
memory_check_finds_a_corrupted_plan
crates/railit-embedded/tests/node.rs

topologie.md ​

IDGefährdungCodeNachweis
REQ-TOP-001H-004crates/railit-topology/src/error.rsduplicate_names_are_rejected_across_kinds
crates/railit-import/tests/toml_format.rs
crates/railit-topology/tests/validation.rs
REQ-TOP-002H-004crates/railit-topology/src/builder.rs
crates/railit-topology/src/error.rs
open_and_double_connected_ports_are_rejected
apps/railit/tests/cli.rs
crates/railit-import/tests/toml_format.rs
crates/railit-topology/tests/validation.rs
REQ-TOP-003H-004crates/railit-topology/src/error.rsinvalid_ports_and_self_connections_are_rejected
crates/railit-topology/tests/validation.rs
REQ-TOP-004H-004crates/railit-topology/src/error.rszero_length_tracks_are_rejected
crates/railit-topology/tests/validation.rs
REQ-TOP-005H-004crates/railit-topology/src/error.rssignals_outside_their_track_are_rejected
crates/railit-import/tests/toml_format.rs
crates/railit-topology/tests/validation.rs
REQ-TOP-006H-001, H-005crates/railit-topology/src/builder.rs
crates/railit-topology/src/error.rs
tvd_coverage_must_be_complete_and_unique
crates/railit-import/tests/toml_format.rs
crates/railit-topology/tests/validation.rs
REQ-TOP-007H-002crates/railit-topology/src/lib.rs
crates/railit-topology/src/topology.rs
points_can_only_be_traversed_tip_to_branch
exits_stay_on_node
crates/railit-topology/tests/validation.rs
REQ-TOP-008H-004crates/railit-topology/src/lib.rs
crates/railit-topology/src/topology.rs
Analyse (Typsystem)
REQ-TOP-009crates/railit-topology/src/builder.rs
crates/railit-topology/src/error.rs
all_errors_are_collected_with_context
REQ-TOP-010H-004crates/railit-topology/src/builder.rs
crates/railit-topology/src/error.rs
open_and_double_connected_ports_are_rejected
REQ-TOP-011H-004, H-012crates/railit-topology/src/builder.rs
crates/railit-topology/src/error.rs
nordbahn_has_three_areas_and_two_links
every_tvd_needs_exactly_one_area
crates/railit-import/tests/areas.rs
REQ-TOP-012H-004crates/railit-topology/src/builder.rs
crates/railit-topology/src/error.rs
platforms_need_route_signals
REQ-TOP-013H-004, H-012crates/railit-topology/src/area.rsarea_cut_replaces_neighbours_by_borders
border_terminals_can_be_written_by_hand
crates/railit-import/tests/areas.rs
REQ-TOP-014H-004–handmade_railml_is_imported
errors_are_collected_with_location
beispielstadt_survives_the_roundtrip
nordbahn_with_areas_and_stations_survives_the_roundtrip
railml_roundtrip_yields_identical_plans
railml_export_validate_compile
apps/railit/tests/cli.rs
crates/railit-import/tests/railml.rs
crates/railit-planning/tests/planning.rs
REQ-TOP-015H-004–handmade_planpro_is_imported
errors_are_collected_with_location
beispielstadt_survives_the_roundtrip
generated_corridor_survives_the_roundtrip
planpro_roundtrip_yields_identical_plans
planpro_network
crates/railit-import/tests/planpro.rs
crates/railit-planning/tests/planning.rs
Szenario 23
REQ-TOP-016H-001, H-004crates/railit-import/src/toml_format.rs
crates/railit-topology/src/builder.rs
crates/railit-topology/src/error.rs
crates/railit-topology/src/model.rs
crossing_legs_share_one_tvd
crossing_survives_the_roundtrip
crates/railit-import/tests/planpro.rs
crates/railit-import/tests/railml.rs
crates/railit-import/tests/toml_format.rs
Szenario 24
REQ-TOP-017H-001, H-002, H-004crates/railit-adapters/src/lib.rs
crates/railit-import/src/planpro.rs
crates/railit-import/src/railml.rs
crates/railit-sim/src/lib.rs
crates/railit-topology/src/area.rs
crates/railit-topology/src/builder.rs
crates/railit-topology/src/error.rs
crates/railit-topology/src/model.rs
crates/railit-topology/src/topology.rs
double_slip_is_built_from_coupled_points
invalid_couplings_are_rejected
slip_names_are_checked_first
slips_and_couplings_survive_the_roundtrip
slips_survive_the_planpro_roundtrip
broken_slip_is_rejected
crates/railit-adapters/tests/drives.rs
crates/railit-import/tests/planpro.rs
crates/railit-import/tests/railml.rs
crates/railit-planning/tests/slip.rs
Szenario 25

136 Anforderungen, davon 136 mit Nachweis.

Lizenz: NCSL v1.0 · Nicht zugelassen für den realen Bahnbetrieb.