#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct DriverConfig {
pub provided_buf_entries: u16,
pub provided_buf_len: usize,
}
impl Default for DriverConfig {
fn default() -> Self {
Self {
provided_buf_entries: 128,
provided_buf_len: 4096,
}
}
}
impl dope_core::driver::DriverConfig for DriverConfig {
fn for_profile<P: dope_core::profile::Profile>() -> Self {
let _ = P::RING_ENTRIES;
Self::default()
}
fn for_tcp_profile(_ring_entries: u32, max_conn: usize, buf_len: usize) -> Self {
Self {
provided_buf_entries: (max_conn.max(2048) * 4).min(32768) as u16,
provided_buf_len: buf_len,
}
}
fn for_quic_udp(provided_buf_entries: u32, provided_buf_len: u32) -> Self {
Self {
provided_buf_entries: provided_buf_entries as u16,
provided_buf_len: provided_buf_len as usize,
}
}
}