Skip to main content

ripestat_common/resources/
routing_history.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4pub struct RoutingHistoryRequest {
5    pub resource: String,
6    pub max_rows: Option<i64>,
7    pub include_first_hop: Option<bool>,
8    pub normalise_visibility: Option<bool>,
9    pub min_peers: Option<i64>,
10    pub starttime: Option<String>,
11    pub endtime: Option<String>,
12}
13
14#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
15pub struct RoutingHistoryResponse {
16    pub by_origin: Vec<ByOrigin>,
17    pub resource: String,
18    pub query_starttime: String,
19    pub query_endtime: String,
20    pub time_granularity: i64,
21    pub latest_max_ff_peers: LatestMaxFfPeers,
22}
23
24#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
25pub struct ByOrigin {
26    pub origin: String,
27    pub prefixes: Vec<Prefix>,
28}
29
30#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
31pub struct Prefix {
32    pub prefix: String,
33    pub timelines: Vec<RoutingHistoryTimeline>,
34}
35
36#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
37pub struct RoutingHistoryTimeline {
38    pub starttime: String,
39    pub endtime: String,
40    pub full_peers_seeing: f64,
41}
42
43#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
44pub struct LatestMaxFfPeers {
45    pub v4: i64,
46    pub v6: i64,
47}