|
|
@ -243,44 +243,44 @@ fn maybe_warn_rlimit() {
|
|
|
|
pub enum Map {
|
|
|
|
pub enum Map {
|
|
|
|
/// An [`Array`] map.
|
|
|
|
/// An [`Array`] map.
|
|
|
|
Array(MapData),
|
|
|
|
Array(MapData),
|
|
|
|
/// A [`PerCpuArray`] map.
|
|
|
|
/// A [`BloomFilter`] map.
|
|
|
|
PerCpuArray(MapData),
|
|
|
|
BloomFilter(MapData),
|
|
|
|
/// A [`ProgramArray`] map.
|
|
|
|
/// A [`CpuMap`] map.
|
|
|
|
ProgramArray(MapData),
|
|
|
|
CpuMap(MapData),
|
|
|
|
|
|
|
|
/// A [`DevMap`] map.
|
|
|
|
|
|
|
|
DevMap(MapData),
|
|
|
|
|
|
|
|
/// A [`DevMapHash`] map.
|
|
|
|
|
|
|
|
DevMapHash(MapData),
|
|
|
|
/// A [`HashMap`] map.
|
|
|
|
/// A [`HashMap`] map.
|
|
|
|
HashMap(MapData),
|
|
|
|
HashMap(MapData),
|
|
|
|
/// A [`PerCpuHashMap`] map.
|
|
|
|
/// A [`LpmTrie`] map.
|
|
|
|
PerCpuHashMap(MapData),
|
|
|
|
LpmTrie(MapData),
|
|
|
|
/// A [`HashMap`] map that uses a LRU eviction policy.
|
|
|
|
/// A [`HashMap`] map that uses a LRU eviction policy.
|
|
|
|
LruHashMap(MapData),
|
|
|
|
LruHashMap(MapData),
|
|
|
|
|
|
|
|
/// A [`PerCpuArray`] map.
|
|
|
|
|
|
|
|
PerCpuArray(MapData),
|
|
|
|
|
|
|
|
/// A [`PerCpuHashMap`] map.
|
|
|
|
|
|
|
|
PerCpuHashMap(MapData),
|
|
|
|
/// A [`PerCpuHashMap`] map that uses a LRU eviction policy.
|
|
|
|
/// A [`PerCpuHashMap`] map that uses a LRU eviction policy.
|
|
|
|
PerCpuLruHashMap(MapData),
|
|
|
|
PerCpuLruHashMap(MapData),
|
|
|
|
/// A [`PerfEventArray`] map.
|
|
|
|
/// A [`PerfEventArray`] map.
|
|
|
|
PerfEventArray(MapData),
|
|
|
|
PerfEventArray(MapData),
|
|
|
|
/// A [`SockMap`] map.
|
|
|
|
/// A [`ProgramArray`] map.
|
|
|
|
SockMap(MapData),
|
|
|
|
ProgramArray(MapData),
|
|
|
|
|
|
|
|
/// A [`Queue`] map.
|
|
|
|
|
|
|
|
Queue(MapData),
|
|
|
|
/// A [`SockHash`] map.
|
|
|
|
/// A [`SockHash`] map.
|
|
|
|
SockHash(MapData),
|
|
|
|
SockHash(MapData),
|
|
|
|
/// A [`BloomFilter`] map.
|
|
|
|
/// A [`SockMap`] map.
|
|
|
|
BloomFilter(MapData),
|
|
|
|
SockMap(MapData),
|
|
|
|
/// A [`LpmTrie`] map.
|
|
|
|
|
|
|
|
LpmTrie(MapData),
|
|
|
|
|
|
|
|
/// A [`Stack`] map.
|
|
|
|
/// A [`Stack`] map.
|
|
|
|
Stack(MapData),
|
|
|
|
Stack(MapData),
|
|
|
|
/// A [`StackTraceMap`] map.
|
|
|
|
/// A [`StackTraceMap`] map.
|
|
|
|
StackTraceMap(MapData),
|
|
|
|
StackTraceMap(MapData),
|
|
|
|
/// A [`Queue`] map.
|
|
|
|
|
|
|
|
Queue(MapData),
|
|
|
|
|
|
|
|
/// A [`CpuMap`] map.
|
|
|
|
|
|
|
|
CpuMap(MapData),
|
|
|
|
|
|
|
|
/// A [`DevMap`] map.
|
|
|
|
|
|
|
|
DevMap(MapData),
|
|
|
|
|
|
|
|
/// A [`DevMapHash`] map.
|
|
|
|
|
|
|
|
DevMapHash(MapData),
|
|
|
|
|
|
|
|
/// A [`XskMap`] map.
|
|
|
|
|
|
|
|
XskMap(MapData),
|
|
|
|
|
|
|
|
/// An unsupported map type.
|
|
|
|
/// An unsupported map type.
|
|
|
|
Unsupported(MapData),
|
|
|
|
Unsupported(MapData),
|
|
|
|
|
|
|
|
/// A [`XskMap`] map.
|
|
|
|
|
|
|
|
XskMap(MapData),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
impl Map {
|
|
|
|
impl Map {
|
|
|
@ -288,25 +288,25 @@ impl Map {
|
|
|
|
fn map_type(&self) -> u32 {
|
|
|
|
fn map_type(&self) -> u32 {
|
|
|
|
match self {
|
|
|
|
match self {
|
|
|
|
Self::Array(map) => map.obj.map_type(),
|
|
|
|
Self::Array(map) => map.obj.map_type(),
|
|
|
|
Self::PerCpuArray(map) => map.obj.map_type(),
|
|
|
|
Self::BloomFilter(map) => map.obj.map_type(),
|
|
|
|
Self::ProgramArray(map) => map.obj.map_type(),
|
|
|
|
Self::CpuMap(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::DevMap(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::DevMapHash(map) => map.obj.map_type(),
|
|
|
|
Self::HashMap(map) => map.obj.map_type(),
|
|
|
|
Self::HashMap(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::LpmTrie(map) => map.obj.map_type(),
|
|
|
|
Self::LruHashMap(map) => map.obj.map_type(),
|
|
|
|
Self::LruHashMap(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::PerCpuArray(map) => map.obj.map_type(),
|
|
|
|
Self::PerCpuHashMap(map) => map.obj.map_type(),
|
|
|
|
Self::PerCpuHashMap(map) => map.obj.map_type(),
|
|
|
|
Self::PerCpuLruHashMap(map) => map.obj.map_type(),
|
|
|
|
Self::PerCpuLruHashMap(map) => map.obj.map_type(),
|
|
|
|
Self::PerfEventArray(map) => map.obj.map_type(),
|
|
|
|
Self::PerfEventArray(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::ProgramArray(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::Queue(map) => map.obj.map_type(),
|
|
|
|
Self::SockHash(map) => map.obj.map_type(),
|
|
|
|
Self::SockHash(map) => map.obj.map_type(),
|
|
|
|
Self::SockMap(map) => map.obj.map_type(),
|
|
|
|
Self::SockMap(map) => map.obj.map_type(),
|
|
|
|
Self::BloomFilter(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::LpmTrie(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::Stack(map) => map.obj.map_type(),
|
|
|
|
Self::Stack(map) => map.obj.map_type(),
|
|
|
|
Self::StackTraceMap(map) => map.obj.map_type(),
|
|
|
|
Self::StackTraceMap(map) => map.obj.map_type(),
|
|
|
|
Self::Queue(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::CpuMap(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::DevMap(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::DevMapHash(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::XskMap(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::Unsupported(map) => map.obj.map_type(),
|
|
|
|
Self::Unsupported(map) => map.obj.map_type(),
|
|
|
|
|
|
|
|
Self::XskMap(map) => map.obj.map_type(),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -442,13 +442,13 @@ macro_rules! impl_try_from_map {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
impl_try_from_map!(() {
|
|
|
|
impl_try_from_map!(() {
|
|
|
|
ProgramArray,
|
|
|
|
|
|
|
|
SockMap,
|
|
|
|
|
|
|
|
PerfEventArray,
|
|
|
|
|
|
|
|
StackTraceMap,
|
|
|
|
|
|
|
|
CpuMap,
|
|
|
|
CpuMap,
|
|
|
|
DevMap,
|
|
|
|
DevMap,
|
|
|
|
DevMapHash,
|
|
|
|
DevMapHash,
|
|
|
|
|
|
|
|
PerfEventArray,
|
|
|
|
|
|
|
|
ProgramArray,
|
|
|
|
|
|
|
|
SockMap,
|
|
|
|
|
|
|
|
StackTraceMap,
|
|
|
|
XskMap,
|
|
|
|
XskMap,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
@ -460,17 +460,17 @@ impl_try_from_map!(() {
|
|
|
|
|
|
|
|
|
|
|
|
impl_try_from_map!((V) {
|
|
|
|
impl_try_from_map!((V) {
|
|
|
|
Array,
|
|
|
|
Array,
|
|
|
|
PerCpuArray,
|
|
|
|
|
|
|
|
SockHash,
|
|
|
|
|
|
|
|
BloomFilter,
|
|
|
|
BloomFilter,
|
|
|
|
|
|
|
|
PerCpuArray,
|
|
|
|
Queue,
|
|
|
|
Queue,
|
|
|
|
|
|
|
|
SockHash,
|
|
|
|
Stack,
|
|
|
|
Stack,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
impl_try_from_map!((K, V) {
|
|
|
|
impl_try_from_map!((K, V) {
|
|
|
|
HashMap from HashMap|LruHashMap,
|
|
|
|
HashMap from HashMap|LruHashMap,
|
|
|
|
PerCpuHashMap from PerCpuHashMap|PerCpuLruHashMap,
|
|
|
|
|
|
|
|
LpmTrie,
|
|
|
|
LpmTrie,
|
|
|
|
|
|
|
|
PerCpuHashMap from PerCpuHashMap|PerCpuLruHashMap,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
pub(crate) fn check_bounds(map: &MapData, index: u32) -> Result<(), MapError> {
|
|
|
|
pub(crate) fn check_bounds(map: &MapData, index: u32) -> Result<(), MapError> {
|
|
|
|