1 #ifndef NDNDPDK_FWDP_FWD_H
2 #define NDNDPDK_FWDP_FWD_H
6 #include "../core/running-stat.h"
7 #include "../dpdk/thread.h"
8 #include "../fib/fib.h"
9 #include "../fib/nexthop-filter.h"
10 #include "../iface/face.h"
11 #include "../iface/pktqueue.h"
12 #include "../pcct/cs.h"
13 #include "../pcct/pit.h"
14 #include "../strategyapi/api.h"
49 __attribute__((nonnull))
int
52 __attribute__((nonnull))
void
55 __attribute__((nonnull))
void
58 __attribute__((nonnull))
void
95 __attribute__((nonnull))
static inline void
97 Packet_Free(ctx->
npkt);
102 __attribute__((nonnull(1))) static inline
void
104 ctx->fibEntry = fibEntry;
105 if (likely(fibEntry != NULL)) {
106 ctx->fibEntryDyn = FibEntry_PtrDyn(fibEntry, ctx->fwd->fibDynIndex);
108 ctx->fibEntryDyn = NULL;
#define NULLize(x)
Set x to NULL to expose memory access bugs.
Definition: common.h:79
SgEvent
Indicate why the strategy program is invoked.
Definition: api.h:17
uint16_t FaceID
Numeric face identifier.
Definition: faceid.h:13
void FwFwd_RxNack(FwFwd *fwd, FwFwdCtx *ctx)
Definition: fwd-nack.c:182
void FwFwd_RxInterest(FwFwd *fwd, FwFwdCtx *ctx)
Definition: fwd-interest.c:124
int FwFwd_Run(FwFwd *fwd)
Definition: fwd.c:53
void FwFwd_RxData(FwFwd *fwd, FwFwdCtx *ctx)
Definition: fwd-data.c:92
struct FwFwd FwFwd
Forwarding thread.
struct Packet Packet
Definition: common.h:11
uint32_t FibNexthopFilter
A filter over FIB nexthops.
Definition: nexthop-filter.h:13
The Content Store (CS).
Definition: cs-struct.h:63
A FIB entry.
Definition: entry.h:27
A replica of the Forwarding Information Base (FIB).
Definition: fib.h:9
Per-packet context in forwarding.
Definition: fwd.h:71
struct rte_mbuf * pkt
Definition: fwd.h:78
uint32_t dnNonce
Definition: fwd.h:89
PitUp * pitUp
Definition: fwd.h:87
RTE_MARKER endofSgCtx
Definition: fwd.h:85
FwFwd * fwd
Definition: fwd.h:72
SgEvent eventKind
Definition: fwd.h:74
int nForwarded
Definition: fwd.h:90
FibNexthopFilter nhFlt
Definition: fwd.h:75
LpPitToken rxToken
Definition: fwd.h:88
Packet * npkt
Definition: fwd.h:77
FibEntry * fibEntry
Definition: fwd.h:80
PitEntry * pitEntry
Definition: fwd.h:82
FibEntryDyn * fibEntryDyn
Definition: fwd.h:81
TscTime rxTime
Definition: fwd.h:73
FaceID rxFace
Definition: fwd.h:91
Forwarding thread.
Definition: fwd.h:19
ThreadCtrl ctrl
Definition: fwd.h:21
Fib * fib
Definition: fwd.h:26
PacketMempools mp
mempools for packet modification
Definition: fwd.h:41
uint8_t id
fwd process id
Definition: fwd.h:33
SgGlobal sgGlobal
Definition: fwd.h:20
RunningStat latencyStat
Statistics of latency from packet arrival to start processing.
Definition: fwd.h:46
uint8_t fibDynIndex
FibEntry.dyn index.
Definition: fwd.h:34
struct rte_ring * cryptoHelper
queue to crypto helper
Definition: fwd.h:43
uint64_t nSgNoFwd
Interests not forwarded by strategy.
Definition: fwd.h:38
PktQueue queueI
Definition: fwd.h:22
uint64_t nNoFibMatch
Interests dropped due to no FIB match.
Definition: fwd.h:36
PktQueue queueD
Definition: fwd.h:23
Pit * pit
Definition: fwd.h:27
PktQueue queueN
Definition: fwd.h:24
uint64_t nDupNonce
Interests dropped due to duplicate nonce.
Definition: fwd.h:37
Cs * cs
Definition: fwd.h:28
PitSuppressConfig suppressCfg
Definition: fwd.h:31
uint64_t nNackMismatch
Nack dropped due to outdated nonce.
Definition: fwd.h:39
pcg32_random_t sgRng
Definition: fwd.h:30
NDNLPv2 PIT token value.
Definition: lp.h:35
Mempools for packet modification.
Definition: common.h:17
A PIT entry.
Definition: pit-entry.h:24
Interest suppression configuration.
Definition: pit-suppress-config.h:9
A PIT upstream record.
Definition: pit-up.h:14
The Pending Interest Table (PIT).
Definition: pit-struct.h:20
Thread-safe packet queue.
Definition: pktqueue.h:23
Facility to compute mean and variance.
Definition: running-stat.h:9
Global static parameters.
Definition: api.h:12
Thread load stats and stop flag.
Definition: thread.h:10
uint64_t TscTime
TSC clock time point.
Definition: tsc.h:9