pub const BUILD_VERSION: usize = 0;
pub const STREAM_SHUTDOWN: u8 = 0;
pub const STREAM_RESTART: u8 = 1;
pub const CONNECTION_HANDLER_POLL_INTERVAL: std::time::Duration =
std::time::Duration::from_millis(1000);
pub const HDP_NODELAY: bool = false;
pub const HDP_WAVE_PAYLOAD_DELAY: std::time::Duration = std::time::Duration::from_millis(250);
pub const NANOSECONDS_PER_SECOND: i64 = 1_000_000_000;
pub const LAYER2_ETHERNET_HEADER_BYTE_LEN: usize = 18;
pub const LAYER3_IPV4_HEADER_BYTE_LEN: usize = 20;
pub const LAYER3_IPV6_HEADER_BYTE_LEN: usize = 40;
pub const UDP_HEADER_BYTE_LEN: usize = 8;
pub const HDP_HEADER_BYTE_LEN: usize = 52; pub const MTU: usize = 1280;
pub const BASE_HEADER_LEN_IPV4: usize = LAYER2_ETHERNET_HEADER_BYTE_LEN
+ LAYER3_IPV4_HEADER_BYTE_LEN
+ UDP_HEADER_BYTE_LEN
+ HDP_HEADER_BYTE_LEN;
pub const BASE_HEADER_LEN_IPV6: usize = LAYER2_ETHERNET_HEADER_BYTE_LEN
+ LAYER3_IPV6_HEADER_BYTE_LEN
+ UDP_HEADER_BYTE_LEN
+ HDP_HEADER_BYTE_LEN;
pub const MAX_PAYLOAD_SIZE_IPV4: usize = MTU - BASE_HEADER_LEN_IPV4;
pub const MAX_PAYLOAD_SIZE_IPV6: usize = MTU - BASE_HEADER_LEN_IPV6;
pub const INITIAL_RECONNECT_LOCKOUT_TIME_NS: i64 = NANOSECONDS_PER_SECOND;
pub const KEEP_ALIVE_INTERVAL_MS: u64 = 15000;
pub const KEEP_ALIVE_TIMEOUT_NS: i64 = (KEEP_ALIVE_INTERVAL_MS * 3 * 1_000_000) as i64;
pub const DRILL_UPDATE_TIMEOUT_NS: i64 = KEEP_ALIVE_TIMEOUT_NS;
pub const GROUP_TIMEOUT_MS: usize = KEEP_ALIVE_INTERVAL_MS as usize;
pub const INDIVIDUAL_WAVE_TIMEOUT_MS: usize = (GROUP_TIMEOUT_MS / 2) as usize;
pub const DO_DEREGISTER_EXPIRE_TIME_NS: i64 = KEEP_ALIVE_TIMEOUT_NS;
pub const FIREWALL_KEEP_ALIVE_UDP: std::time::Duration = std::time::Duration::from_secs(60);
pub const MAX_GROUP_SIZE_BYTES: usize = 1_000_000 * 8;
pub const CODEC_BUFFER_CAPACITY: usize = u16::max_value() as usize;
pub const CODEC_MIN_BUFFER: usize = 8192;
pub const GROUP_EXPIRE_TIME_MS: std::time::Duration = std::time::Duration::from_millis(4000);
pub const DO_REGISTER_EXPIRE_TIME_MS: std::time::Duration = std::time::Duration::from_millis(4000);
pub const DO_CONNECT_EXPIRE_TIME_MS: std::time::Duration = std::time::Duration::from_millis(8000);
pub const UPNP_FIREWALL_LOAD_TIMEOUT: std::time::Duration = std::time::Duration::from_millis(1500);
pub const MULTIPORT_START: u16 = 25000;
pub const MULTIPORT_END: u16 = 1 + MULTIPORT_START;
pub const PRIMARY_PORT: u16 = 25021;
pub const DEFAULT_PQC_ALGORITHM: u8 = citadel_pqcrypto::algorithm_dictionary::FIRESABER;
pub const DRILL_UPDATE_FREQUENCY_LOW_BASE: u64 = 1 * 240 * 1_000_000_000;
pub const DRILL_UPDATE_FREQUENCY_MEDIUM_BASE: u64 = 1 * 240 * 1_000_000_000;
pub const DRILL_UPDATE_FREQUENCY_HIGH_BASE: u64 = 1 * 240 * 1_000_000_000;
pub const DRILL_UPDATE_FREQUENCY_ULTRA_BASE: u64 = 1 * 240 * 1_000_000_000;
pub const DRILL_UPDATE_FREQUENCY_DIVINE_BASE: u64 = 1 * 240 * 1_000_000_000;
pub const HOLE_PUNCH_SYNC_TIME_MULTIPLIER: f64 = 2.0f64;
pub const PEER_EVENT_MAILBOX_SIZE: usize = 50;
pub const TIMED_TICKET_LIFETIME: std::time::Duration = std::time::Duration::from_secs(30);
pub const LOGIN_EXPIRATION_TIME: std::time::Duration = std::time::Duration::from_secs(8);
pub const NTP_RESYNC_FREQUENCY: std::time::Duration = std::time::Duration::from_secs(60 * 30);