Skip to main content

srum_core/
connectivity.rs

1//! Network connectivity record — L2 connection sessions per process.
2//!
3//! Source table: `{DD6636C4-8929-4683-974E-22C046A43763}` in SRUDB.dat.
4
5use chrono::{DateTime, Utc};
6use serde::{Deserialize, Serialize};
7
8/// One SRUM network connectivity record: a process's L2 connection session.
9///
10/// Forensic value: maps processes to specific network profiles (`WiFi` SSIDs,
11/// VPN adapters) and their connection durations.
12#[derive(Debug, Clone, Serialize, Deserialize)]
13pub struct NetworkConnectivityRecord {
14    /// Integer ID of the application (look up in [`crate::IdMapEntry`]).
15    pub app_id: i32,
16    /// Integer ID of the user account (look up in [`crate::IdMapEntry`]).
17    pub user_id: i32,
18    /// UTC timestamp of the measurement interval start.
19    pub timestamp: DateTime<Utc>,
20    /// L2 profile ID — look up in `SruDbIdMapTable` for profile name.
21    pub profile_id: i32,
22    /// Seconds the connection was active in this interval.
23    pub connected_time: u64,
24}