NDN-DPDK
High-Speed Named Data Networking Forwarder
Main Page
Related Pages
Data Structures
Data Structures
Data Structure Index
Data Fields
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Functions
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
z
Files
File List
Globals
All
_
a
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
v
w
Functions
_
b
c
d
e
f
h
i
l
m
n
p
r
s
t
u
Variables
_
b
c
d
e
f
g
i
l
m
p
r
s
t
v
w
Typedefs
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
v
Enumerations
Enumerator
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
v
Macros
a
b
c
d
f
h
i
l
m
n
p
r
s
t
u
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
csrc
strategyapi
fib.h
Go to the documentation of this file.
1
#ifndef NDNDPDK_STRATEGYAPI_FIB_H
2
#define NDNDPDK_STRATEGYAPI_FIB_H
3
6
#include "../core/rttest.h"
7
#include "../fib/enum.h"
8
#include "
common.h
"
9
10
typedef
struct
SgFibEntryDyn
{
11
uint8_t
a_
[32];
12
uint8_t
scratch
[
FibScratchSize
];
13
RttValue
rtt
[
FibMaxNexthops
];
14
}
SgFibEntryDyn
;
15
16
typedef
struct
SgFibEntry
{
17
uint8_t
a_
[525];
18
uint8_t
nNexthops
;
19
uint8_t
b_
[2];
20
FaceID
nexthops
[
FibMaxNexthops
];
21
}
SgFibEntry
;
22
23
typedef
uint32_t
SgFibNexthopFilter
;
24
25
SUBROUTINE
bool
26
SgFibNexthopFilter_Rejected
(
SgFibNexthopFilter
filter, uint8_t i) {
27
static_assert(__builtin_types_compatible_p(typeof(filter), uint32_t),
""
);
28
return
rte_bit_test(&filter, i);
29
}
30
44
typedef
struct
SgFibNexthopIt
{
45
const
SgFibEntry
*
entry
;
46
SgFibNexthopFilter
filter
;
47
uint8_t
i
;
48
FaceID
nh
;
49
}
SgFibNexthopIt
;
50
51
SUBROUTINE
bool
52
SgFibNexthopIt_Valid
(
const
SgFibNexthopIt
* it) {
53
return
it->
i
< it->
entry
->
nNexthops
;
54
}
55
56
SUBROUTINE
void
57
SgFibNexthopIt_Advance_
(
SgFibNexthopIt
* it) {
58
for
(;
SgFibNexthopIt_Valid
(it); ++it->
i
) {
59
if
(
SgFibNexthopFilter_Rejected
(it->
filter
, it->
i
)) {
60
continue
;
61
}
62
it->
nh
= it->
entry
->
nexthops
[it->
i
];
63
return
;
64
}
65
it->
nh
= 0;
66
}
67
68
SUBROUTINE
void
69
SgFibNexthopIt_Init
(
SgFibNexthopIt
* it,
const
SgFibEntry
* entry,
SgFibNexthopFilter
filter) {
70
it->
entry
= entry;
71
it->
filter
= filter;
72
it->
i
= 0;
73
SgFibNexthopIt_Advance_
(it);
74
}
75
76
SUBROUTINE
void
77
SgFibNexthopIt_Next
(
SgFibNexthopIt
* it) {
78
++it->
i
;
79
SgFibNexthopIt_Advance_
(it);
80
}
81
82
#endif
// NDNDPDK_STRATEGYAPI_FIB_H
FaceID
uint16_t FaceID
Numeric face identifier.
Definition:
faceid.h:13
FibScratchSize
@ FibScratchSize
Definition:
enum.h:9
FibMaxNexthops
@ FibMaxNexthops
Definition:
enum.h:8
SUBROUTINE
#define SUBROUTINE
Indicate that a function is a subroutine.
Definition:
common.h:20
SgFibEntryDyn
struct SgFibEntryDyn SgFibEntryDyn
SgFibNexthopFilter
uint32_t SgFibNexthopFilter
Definition:
fib.h:23
SgFibNexthopFilter_Rejected
SUBROUTINE bool SgFibNexthopFilter_Rejected(SgFibNexthopFilter filter, uint8_t i)
Definition:
fib.h:26
SgFibNexthopIt_Valid
SUBROUTINE bool SgFibNexthopIt_Valid(const SgFibNexthopIt *it)
Definition:
fib.h:52
SgFibNexthopIt
struct SgFibNexthopIt SgFibNexthopIt
Iterator of FIB nexthops passing a filter.
SgFibEntry
struct SgFibEntry SgFibEntry
SgFibNexthopIt_Next
SUBROUTINE void SgFibNexthopIt_Next(SgFibNexthopIt *it)
Definition:
fib.h:77
SgFibNexthopIt_Init
SUBROUTINE void SgFibNexthopIt_Init(SgFibNexthopIt *it, const SgFibEntry *entry, SgFibNexthopFilter filter)
Definition:
fib.h:69
SgFibNexthopIt_Advance_
SUBROUTINE void SgFibNexthopIt_Advance_(SgFibNexthopIt *it)
Definition:
fib.h:57
RttValue
SRTT and RTTVAR values in RTT estimator.
Definition:
rttest.h:13
SgFibEntryDyn
Definition:
fib.h:10
SgFibEntryDyn::scratch
uint8_t scratch[FibScratchSize]
Definition:
fib.h:12
SgFibEntryDyn::rtt
RttValue rtt[FibMaxNexthops]
Definition:
fib.h:13
SgFibEntryDyn::a_
uint8_t a_[32]
Definition:
fib.h:11
SgFibEntry
Definition:
fib.h:16
SgFibEntry::nexthops
FaceID nexthops[FibMaxNexthops]
Definition:
fib.h:20
SgFibEntry::b_
uint8_t b_[2]
Definition:
fib.h:19
SgFibEntry::a_
uint8_t a_[525]
Definition:
fib.h:17
SgFibEntry::nNexthops
uint8_t nNexthops
Definition:
fib.h:18
SgFibNexthopIt
Iterator of FIB nexthops passing a filter.
Definition:
fib.h:44
SgFibNexthopIt::nh
FaceID nh
Definition:
fib.h:48
SgFibNexthopIt::entry
const SgFibEntry * entry
Definition:
fib.h:45
SgFibNexthopIt::filter
SgFibNexthopFilter filter
Definition:
fib.h:46
SgFibNexthopIt::i
uint8_t i
Definition:
fib.h:47
common.h
Generated by
1.9.1