Skip to main content

ripestat_common/resources/
ris_peerings.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4pub struct RisPeeringsRequest {
5    pub resource: String,
6    pub query_time: Option<String>,
7}
8
9#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
10pub struct RisPeeringsResponse {
11    pub peerings: Vec<Peering>,
12    pub resource: String,
13    pub query_starttime: String,
14    pub query_endtime: String,
15}
16
17#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
18pub struct Peering {
19    pub probe: RisAtlasProbe,
20    pub peers: Vec<RisPeeringsPeer>,
21}
22
23#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
24pub struct RisAtlasProbe {
25    pub city: String,
26    pub country: String,
27    pub longitude: f64,
28    pub latitude: f64,
29    pub name: String,
30    pub ipv4_peer_count: i64,
31    pub ipv6_peer_count: i64,
32    pub ixp: String,
33}
34
35#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
36pub struct RisPeeringsPeer {
37    pub asn: i64,
38    pub ip: String,
39    pub ip_version: String,
40    pub table_version: String,
41    pub prefix_count: i64,
42    pub routes: Vec<PeerRoute>,
43}
44
45#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
46pub struct PeerRoute {
47    pub as_path: Vec<i64>,
48}