Commit 7013baf0 authored by nanamicat's avatar nanamicat

clean

parent 6928eebe
Pipeline #42457 passed with stages
in 56 seconds
use crate::connection::Connection;
use crate::data::Router as RouterData;
use crate::protocol::{Hello, MessageType, Uplink};
use crate::router::Router;
use crate::server::Server;
use crate::settings::{Settings, INTERVAL, WINDOW};
use config::Config;
use std::collections::BTreeMap;
use std::fs;
use std::time::SystemTime;
use tokio::net::UdpSocket;
use tokio::time;
mod connection;
mod data;
mod gateway_group;
......@@ -19,8 +6,21 @@ mod router;
mod server;
mod settings;
use crate::{
connection::Connection,
data::Router as RouterData,
protocol::{Hello, MessageType, Uplink},
router::Router,
server::Server,
settings::{Settings, INTERVAL, WINDOW},
};
use config::Config;
use hickory_resolver::Resolver;
use tokio::time::Instant;
use std::{collections::BTreeMap, fs, time::SystemTime};
use tokio::{
net::UdpSocket,
time::{self, Instant},
};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
......
use crate::data::Router as RouterData;
use crate::protocol::{Hello, PeerQuality};
use crate::settings::{INTERVAL, Settings, WINDOW};
use crate::{
data::Router as RouterData,
protocol::{Hello, PeerQuality},
settings::{Settings, INTERVAL, WINDOW},
};
use saturating_cast::SaturatingCast;
use std::collections::BTreeMap;
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
use std::time::SystemTime;
use std::{
collections::BTreeMap,
net::{IpAddr, Ipv4Addr, SocketAddr},
time::SystemTime,
};
use tokio::time::Instant;
pub struct Router {
......@@ -48,16 +52,18 @@ impl Router {
const WINDOW_MIN: i32 = 1 - WINDOW_MAX;
match delta {
WINDOW_MIN..0 => {
// 旧报文,可能是乱序
self.receive |= 1 << (-delta);
return;
}
0 => return,
1..WINDOW_MAX => {
0..WINDOW_MAX => {
// 0 可能是重启
self.receive = (self.receive << delta) | 1;
self.remote_time = data.time;
self.local_time = Instant::now();
}
_ => {
// 可能是下线很久之后上线,也可能是别的异常情况,先承认这个报文,但是不计算丢包和延迟
self.remote_time = data.time;
self.local_time = Instant::now();
return;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment