NDN-DPDK
High-Speed Named Data Networking Forwarder
Loading...
Searching...
No Matches
nexthop-filter.h
Go to the documentation of this file.
1
#ifndef NDNDPDK_FIB_NEXTHOP_FILTER_H
2
#define NDNDPDK_FIB_NEXTHOP_FILTER_H
3
5
6
#include "
entry.h
"
7
13
typedef
uint32_t
FibNexthopFilter
;
14
15
static_assert
(CHAR_BIT *
sizeof
(
FibNexthopFilter
) >=
FibMaxNexthops
,
""
);
16
22
__attribute__((nonnull))
static
inline
int
23
FibNexthopFilter_Reject(
FibNexthopFilter
* filter,
const
FibEntry
* entry,
FaceID
nh) {
24
for
(uint8_t i = 0; i < entry->
nNexthops
; ++i) {
25
if
(entry->
nexthops
[i] == nh) {
26
rte_bit_set(filter, i);
27
break
;
28
}
29
}
30
static_assert
(__builtin_types_compatible_p(typeof(*filter), uint32_t),
""
);
31
return
entry->
nNexthops
- rte_popcount32(*filter);
32
}
33
34
#endif
// NDNDPDK_FIB_NEXTHOP_FILTER_H
FaceID
uint16_t FaceID
Numeric face identifier.
Definition
faceid.h:13
entry.h
FibMaxNexthops
@ FibMaxNexthops
Definition
enum.h:8
FibNexthopFilter
uint32_t FibNexthopFilter
A filter over FIB nexthops.
Definition
nexthop-filter.h:13
FibEntry
A FIB entry.
Definition
entry.h:27
FibEntry::nNexthops
uint8_t nNexthops
number of nexthops
Definition
entry.h:50
FibEntry::nexthops
FaceID nexthops[FibMaxNexthops]
Definition
entry.h:61
csrc
fib
nexthop-filter.h
Generated by
1.15.0