mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-09-04 18:15:39 +00:00
RoutePeerInfo
This commit is contained in:
@@ -3,8 +3,8 @@ use std::{
|
|||||||
fmt::Debug,
|
fmt::Debug,
|
||||||
net::{IpAddr, Ipv4Addr, Ipv6Addr},
|
net::{IpAddr, Ipv4Addr, Ipv6Addr},
|
||||||
sync::{
|
sync::{
|
||||||
Arc, Weak,
|
atomic::{AtomicBool, AtomicU32, Ordering}, Arc,
|
||||||
atomic::{AtomicBool, AtomicU32, Ordering},
|
Weak,
|
||||||
},
|
},
|
||||||
time::{Duration, Instant, SystemTime},
|
time::{Duration, Instant, SystemTime},
|
||||||
};
|
};
|
||||||
@@ -14,12 +14,12 @@ use cidr::{IpCidr, Ipv4Cidr, Ipv6Cidr};
|
|||||||
use crossbeam::atomic::AtomicCell;
|
use crossbeam::atomic::AtomicCell;
|
||||||
use dashmap::DashMap;
|
use dashmap::DashMap;
|
||||||
use ordered_hash_map::OrderedHashMap;
|
use ordered_hash_map::OrderedHashMap;
|
||||||
use parking_lot::{RwLock, lock_api::RwLockUpgradableReadGuard};
|
use parking_lot::{lock_api::RwLockUpgradableReadGuard, RwLock};
|
||||||
use petgraph::{
|
use petgraph::{
|
||||||
Directed,
|
|
||||||
algo::dijkstra,
|
algo::dijkstra,
|
||||||
graph::{Graph, NodeIndex},
|
graph::{Graph, NodeIndex},
|
||||||
visit::{EdgeRef, IntoNodeReferences},
|
visit::{EdgeRef, IntoNodeReferences},
|
||||||
|
Directed,
|
||||||
};
|
};
|
||||||
use prefix_trie::PrefixMap;
|
use prefix_trie::PrefixMap;
|
||||||
use prost::Message;
|
use prost::Message;
|
||||||
@@ -34,24 +34,24 @@ use crate::common::config::ConfigLoader;
|
|||||||
use crate::proto::utils::TransientDigest;
|
use crate::proto::utils::TransientDigest;
|
||||||
use crate::{
|
use crate::{
|
||||||
common::{
|
common::{
|
||||||
PeerId,
|
|
||||||
config::NetworkIdentity,
|
config::NetworkIdentity,
|
||||||
constants::EASYTIER_VERSION,
|
constants::EASYTIER_VERSION,
|
||||||
global_ctx::{ArcGlobalCtx, GlobalCtxEvent},
|
global_ctx::{ArcGlobalCtx, GlobalCtxEvent},
|
||||||
shrink_dashmap,
|
shrink_dashmap,
|
||||||
stun::StunInfoCollectorTrait,
|
stun::StunInfoCollectorTrait,
|
||||||
|
PeerId,
|
||||||
},
|
},
|
||||||
peers::route_trait::{Route, RouteInterfaceBox},
|
peers::route_trait::{Route, RouteInterfaceBox},
|
||||||
proto::{
|
proto::{
|
||||||
acl::GroupIdentity,
|
acl::GroupIdentity,
|
||||||
common::{Ipv4Inet, NatType, StunInfo},
|
common::{Ipv4Inet, NatType, StunInfo},
|
||||||
peer_rpc::{
|
peer_rpc::{
|
||||||
ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey, OspfRouteRpc,
|
route_foreign_network_infos, route_foreign_network_summary, sync_route_info_request::ConnInfo,
|
||||||
OspfRouteRpcClientFactory, OspfRouteRpcServer, PeerGroupInfo, PeerIdVersion,
|
ForeignNetworkRouteInfoEntry, ForeignNetworkRouteInfoKey, OspfRouteRpc, OspfRouteRpcClientFactory,
|
||||||
PeerIdentityType, RouteForeignNetworkInfos, RouteForeignNetworkSummary, RoutePeerInfo,
|
OspfRouteRpcServer, PeerGroupInfo, PeerIdVersion, PeerIdentityType,
|
||||||
RoutePeerInfos, SyncRouteInfoError, SyncRouteInfoRequest, SyncRouteInfoResponse,
|
RouteForeignNetworkInfos, RouteForeignNetworkSummary, RoutePeerInfo, RoutePeerInfos,
|
||||||
TrustedCredentialPubkey, route_foreign_network_infos, route_foreign_network_summary,
|
SyncRouteInfoError, SyncRouteInfoRequest, SyncRouteInfoResponse,
|
||||||
sync_route_info_request::ConnInfo,
|
TrustedCredentialPubkey,
|
||||||
},
|
},
|
||||||
rpc_types::{
|
rpc_types::{
|
||||||
self,
|
self,
|
||||||
@@ -62,13 +62,13 @@ use crate::{
|
|||||||
};
|
};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
PeerPacketFilter,
|
|
||||||
graph_algo::dijkstra_with_first_hop,
|
graph_algo::dijkstra_with_first_hop,
|
||||||
peer_rpc::PeerRpcManager,
|
peer_rpc::PeerRpcManager,
|
||||||
route_trait::{
|
route_trait::{
|
||||||
DefaultRouteCostCalculator, ForeignNetworkRouteInfoMap, NextHopPolicy, RouteCostCalculator,
|
DefaultRouteCostCalculator, ForeignNetworkRouteInfoMap, NextHopPolicy, RouteCostCalculator,
|
||||||
RouteCostCalculatorInterface,
|
RouteCostCalculatorInterface,
|
||||||
},
|
},
|
||||||
|
PeerPacketFilter,
|
||||||
};
|
};
|
||||||
|
|
||||||
use atomic_shim::AtomicU64;
|
use atomic_shim::AtomicU64;
|
||||||
@@ -223,12 +223,15 @@ impl RoutePeerInfo {
|
|||||||
let dns = cfg_select! {
|
let dns = cfg_select! {
|
||||||
feature = "magic-dns" => {{
|
feature = "magic-dns" => {{
|
||||||
use crate::dns::config::DnsGlobalCtxExt;
|
use crate::dns::config::DnsGlobalCtxExt;
|
||||||
global_ctx.dns_export_config().digest()
|
global_ctx.dns_export_config().digest().into()
|
||||||
}}
|
}}
|
||||||
_ => Default::default(),
|
_ => Default::default(),
|
||||||
};
|
};
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
|
#[allow(deprecated)]
|
||||||
|
quic_port: None,
|
||||||
|
|
||||||
peer_id: my_peer_id,
|
peer_id: my_peer_id,
|
||||||
inst_id: Some(global_ctx.get_id().into()),
|
inst_id: Some(global_ctx.get_id().into()),
|
||||||
cost: 0,
|
cost: 0,
|
||||||
@@ -260,7 +263,7 @@ impl RoutePeerInfo {
|
|||||||
ipv6_addr: global_ctx.get_ipv6().map(|x| x.into()),
|
ipv6_addr: global_ctx.get_ipv6().map(|x| x.into()),
|
||||||
|
|
||||||
groups: global_ctx.get_acl_groups(my_peer_id),
|
groups: global_ctx.get_acl_groups(my_peer_id),
|
||||||
dns: dns.into(),
|
dns,
|
||||||
|
|
||||||
noise_static_pubkey,
|
noise_static_pubkey,
|
||||||
|
|
||||||
@@ -274,8 +277,6 @@ impl RoutePeerInfo {
|
|||||||
} else {
|
} else {
|
||||||
Vec::new()
|
Vec::new()
|
||||||
},
|
},
|
||||||
|
|
||||||
..Default::default()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3680,8 +3681,8 @@ mod tests {
|
|||||||
use std::{
|
use std::{
|
||||||
collections::{BTreeSet, HashMap},
|
collections::{BTreeSet, HashMap},
|
||||||
sync::{
|
sync::{
|
||||||
Arc,
|
|
||||||
atomic::{AtomicU32, Ordering},
|
atomic::{AtomicU32, Ordering},
|
||||||
|
Arc,
|
||||||
},
|
},
|
||||||
time::{Duration, SystemTime},
|
time::{Duration, SystemTime},
|
||||||
};
|
};
|
||||||
@@ -3689,14 +3690,14 @@ mod tests {
|
|||||||
use super::{PeerRoute, REMOVE_DEAD_PEER_INFO_AFTER};
|
use super::{PeerRoute, REMOVE_DEAD_PEER_INFO_AFTER};
|
||||||
use crate::{
|
use crate::{
|
||||||
common::{
|
common::{
|
||||||
|
global_ctx::{tests::get_mock_global_ctx, GlobalCtxEvent, TrustedKeySource},
|
||||||
PeerId,
|
PeerId,
|
||||||
global_ctx::{GlobalCtxEvent, TrustedKeySource, tests::get_mock_global_ctx},
|
|
||||||
},
|
},
|
||||||
connector::udp_hole_punch::tests::replace_stun_info_collector,
|
connector::udp_hole_punch::tests::replace_stun_info_collector,
|
||||||
peers::{
|
peers::{
|
||||||
create_packet_recv_chan,
|
create_packet_recv_chan,
|
||||||
peer_manager::{PeerManager, RouteAlgoType},
|
peer_manager::{PeerManager, RouteAlgoType},
|
||||||
peer_ospf_route::{FORCE_USE_CONN_LIST, PeerIdVersion, PeerRouteServiceImpl},
|
peer_ospf_route::{PeerIdVersion, PeerRouteServiceImpl, FORCE_USE_CONN_LIST},
|
||||||
route_trait::{NextHopPolicy, Route, RouteCostCalculatorInterface, RouteInterface},
|
route_trait::{NextHopPolicy, Route, RouteCostCalculatorInterface, RouteInterface},
|
||||||
tests::{connect_peer_manager, create_mock_peer_manager, wait_route_appear},
|
tests::{connect_peer_manager, create_mock_peer_manager, wait_route_appear},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user