pub const MaximumReceiveQueues: usize = RTE_MAX_QUEUES_PER_PORT;
#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct ReceiveQueueConfiguration
{
pub numberOfReceiveDescriptorsForTheReceiveRingAlsoKnownAsRingSize: u16,
pub overrideDefaultDeviceConfiguration: Option<ReceiveQueueDeviceConfiguration>,
pub enableVlanStripping: Option<bool>,
}
impl Default for ReceiveQueueConfiguration
{
#[inline(always)]
fn default() -> Self
{
ReceiveQueueConfiguration
{
numberOfReceiveDescriptorsForTheReceiveRingAlsoKnownAsRingSize: Self::DefaultNumberOfReceiveDescriptorsForTheReceiveRingAlsoKnownAsRingSize,
overrideDefaultDeviceConfiguration: None,
enableVlanStripping: None,
}
}
}
impl ReceiveQueueConfiguration
{
pub const DefaultNumberOfReceiveDescriptorsForTheReceiveRingAlsoKnownAsRingSize: u16 = 512;
pub const TldkNumberOfReceiveDescriptorsForTheReceiveRingAlsoKnownAsRingSize: u16 = 1024;
#[inline(always)]
pub fn new(numberOfReceiveDescriptorsForTheReceiveRingAlsoKnownAsRingSize: u16, overrideDefaultDeviceConfiguration: Option<ReceiveQueueDeviceConfiguration>, enableVlanStripping: Option<bool>) -> Self
{
ReceiveQueueConfiguration
{
numberOfReceiveDescriptorsForTheReceiveRingAlsoKnownAsRingSize: numberOfReceiveDescriptorsForTheReceiveRingAlsoKnownAsRingSize,
overrideDefaultDeviceConfiguration: overrideDefaultDeviceConfiguration,
enableVlanStripping: enableVlanStripping,
}
}
#[inline(always)]
pub fn startQueueWhenEthernetDeviceStarted(&self) -> bool
{
if self.overrideDefaultDeviceConfiguration.is_some()
{
self.overrideDefaultDeviceConfiguration.unwrap().startQueueWhenEthernetDeviceStarted
}
else
{
true
}
}
}