mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-07 02:09:06 +00:00
introduce uptime monitor for easytier public nodes (#1250)
This commit is contained in:
@@ -40,7 +40,9 @@ use crate::{
|
||||
self, list_global_foreign_network_response::OneForeignNetwork,
|
||||
ListGlobalForeignNetworkResponse,
|
||||
},
|
||||
peer_rpc::{ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey},
|
||||
peer_rpc::{
|
||||
ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey, RouteForeignNetworkSummary,
|
||||
},
|
||||
},
|
||||
tunnel::{
|
||||
self,
|
||||
@@ -953,6 +955,10 @@ impl PeerManager {
|
||||
resp
|
||||
}
|
||||
|
||||
pub async fn get_foreign_network_summary(&self) -> RouteForeignNetworkSummary {
|
||||
self.get_route().get_foreign_network_summary().await
|
||||
}
|
||||
|
||||
async fn run_nic_packet_process_pipeline(&self, data: &mut ZCPacket) {
|
||||
if !self
|
||||
.global_ctx
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use std::{
|
||||
collections::BTreeSet,
|
||||
collections::{BTreeMap, BTreeSet},
|
||||
fmt::Debug,
|
||||
net::{Ipv4Addr, Ipv6Addr},
|
||||
sync::{
|
||||
@@ -35,9 +35,10 @@ use crate::{
|
||||
proto::{
|
||||
common::{Ipv4Inet, NatType, StunInfo},
|
||||
peer_rpc::{
|
||||
route_foreign_network_infos, ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey,
|
||||
OspfRouteRpc, OspfRouteRpcClientFactory, OspfRouteRpcServer, PeerIdVersion,
|
||||
RouteForeignNetworkInfos, RoutePeerInfo, RoutePeerInfos, SyncRouteInfoError,
|
||||
route_foreign_network_infos, route_foreign_network_summary,
|
||||
ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey, OspfRouteRpc,
|
||||
OspfRouteRpcClientFactory, OspfRouteRpcServer, PeerIdVersion, RouteForeignNetworkInfos,
|
||||
RouteForeignNetworkSummary, RoutePeerInfo, RoutePeerInfos, SyncRouteInfoError,
|
||||
SyncRouteInfoRequest, SyncRouteInfoResponse,
|
||||
},
|
||||
rpc_types::{
|
||||
@@ -2320,6 +2321,16 @@ impl Route for PeerRoute {
|
||||
foreign_networks
|
||||
}
|
||||
|
||||
async fn get_foreign_network_summary(&self) -> RouteForeignNetworkSummary {
|
||||
let mut info_map: BTreeMap<PeerId, route_foreign_network_summary::Info> = BTreeMap::new();
|
||||
for item in self.service_impl.synced_route_info.foreign_network.iter() {
|
||||
let entry = info_map.entry(item.key().peer_id).or_default();
|
||||
entry.network_count += 1;
|
||||
entry.peer_count += item.value().foreign_peer_ids.len() as u32;
|
||||
}
|
||||
RouteForeignNetworkSummary { info_map }
|
||||
}
|
||||
|
||||
async fn list_peers_own_foreign_network(
|
||||
&self,
|
||||
network_identity: &NetworkIdentity,
|
||||
|
||||
@@ -9,7 +9,7 @@ use crate::{
|
||||
common::{global_ctx::NetworkIdentity, PeerId},
|
||||
proto::peer_rpc::{
|
||||
ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey, RouteForeignNetworkInfos,
|
||||
RoutePeerInfo,
|
||||
RouteForeignNetworkSummary, RoutePeerInfo,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -102,6 +102,10 @@ pub trait Route {
|
||||
Default::default()
|
||||
}
|
||||
|
||||
async fn get_foreign_network_summary(&self) -> RouteForeignNetworkSummary {
|
||||
Default::default()
|
||||
}
|
||||
|
||||
// my peer id in foreign network is different from the one in local network
|
||||
// this function is used to get the peer id in local network
|
||||
async fn get_origin_my_peer_id(
|
||||
|
||||
Reference in New Issue
Block a user