Skip to main content

ripestat_common/resources/
routing_status.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4pub struct RoutingStatusRequest {
5    pub resource: String,
6    pub timestamp: Option<String>,
7    pub min_peers_seeing: Option<i64>,
8}
9
10#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
11pub struct RoutingStatusResponse {
12    pub first_seen: FirstSeen,
13    pub last_seen: LastSeen,
14    pub visibility: IpVisibility,
15
16    // Only for resource type AS
17    pub announced_space: AnnouncedSpace,
18    pub observed_neighbours: i64,
19
20    // Only for resource type prefix
21    pub origins: Vec<Origin>,
22    pub less_specifics: Vec<SpecificOrigin>,
23    pub more_specifics: Vec<SpecificOrigin>,
24
25    pub resource: String,
26    pub query_time: String,
27}
28
29#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
30pub struct Origin {
31    pub origin: String,
32    pub route_objects: Vec<String>,
33}
34
35#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
36pub struct SpecificOrigin {
37    pub prefix: String,
38    pub origin: String,
39}
40
41#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
42pub struct FirstSeen {
43    pub prefix: String,
44    pub origin: String,
45    pub time: String,
46}
47
48#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
49pub struct LastSeen {
50    pub prefix: String,
51    pub origin: String,
52    pub time: String,
53}
54
55#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
56pub struct IpVisibility {
57    pub v4: V4RisPeers,
58    pub v6: V6RisPeers,
59}
60
61#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
62pub struct AnnouncedSpace {
63    pub v4: V4RisPeers,
64    pub v6: V6RisPeers,
65}
66
67#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
68pub struct V4RisPeers {
69    pub ris_peers_seeing: i64,
70    pub total_ris_peers: i64,
71}
72
73#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
74pub struct V6RisPeers {
75    pub ris_peers_seeing: i64,
76    pub total_ris_peers: i64,
77}