NDN-DPDK
High-Speed Named Data Networking Forwarder
Loading...
Searching...
No Matches
pit-up.h
Go to the documentation of this file.
1#ifndef NDNDPDK_PCCT_PIT_UP_H
2#define NDNDPDK_PCCT_PIT_UP_H
3
5
6#include "../iface/faceid.h"
8
9typedef struct PitEntry PitEntry;
10
11#define PIT_UP_MAX_REJ_NONCES 6
12
14typedef struct PitUp {
15 uint32_t nonce;
18 uint8_t nack;
19
22 uint16_t nTx;
23 uint8_t nexthopIndex;
24
27} __rte_cache_aligned PitUp;
28static_assert(sizeof(PitUp) <= RTE_CACHE_LINE_SIZE, "");
29
30__attribute__((nonnull)) static inline void
31PitUp_Reset(PitUp* up, FaceID face) {
32 *up = (const PitUp){.face = face};
33}
34
36__attribute__((nonnull)) static inline bool
37PitUp_ShouldSuppress(PitUp* up, TscTime now) {
38 return up->lastTx + up->suppress > now;
39}
40
42__attribute__((nonnull)) static inline void
43PitUp_AddRejectedNonce(PitUp* up, uint32_t nonce) {
44 memmove(&up->rejectedNonces[1], &up->rejectedNonces[0],
45 sizeof(up->rejectedNonces) - sizeof(up->rejectedNonces[0]));
46 up->rejectedNonces[0] = nonce;
47}
48
56__attribute__((nonnull)) bool
57PitUp_ChooseNonce(PitUp* up, PitEntry* entry, TscTime now, uint32_t* nonce);
58
64__attribute__((nonnull)) void
65PitUp_RecordTx(PitUp* up, PitEntry* entry, TscTime now, uint32_t nonce,
66 const PitSuppressConfig* suppressCfg);
67
68#endif // NDNDPDK_PCCT_PIT_UP_H
uint16_t FaceID
Numeric face identifier.
Definition faceid.h:13
#define PIT_UP_MAX_REJ_NONCES
Definition pit-up.h:11
void PitUp_RecordTx(PitUp *up, PitEntry *entry, TscTime now, uint32_t nonce, const PitSuppressConfig *suppressCfg)
Record Interest transmission.
Definition pit-up.c:37
bool PitUp_ChooseNonce(PitUp *up, PitEntry *entry, TscTime now, uint32_t *nonce)
Choose a nonce for TX Interest.
Definition pit-up.c:15
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
uint8_t nexthopIndex
FIB nexthop index.
Definition pit-up.h:23
bool canBePrefix
sent Interest has CanBePrefix?
Definition pit-up.h:17
TscDuration suppress
suppression duration since lastTx
Definition pit-up.h:21
FaceID face
the upstream face
Definition pit-up.h:16
uint32_t nonce
nonce on last sent Interest
Definition pit-up.h:15
uint8_t nack
Nack reason against last Interest.
Definition pit-up.h:18
TscTime lastTx
when last Interest was sent
Definition pit-up.h:20
uint32_t rejectedNonces[PIT_UP_MAX_REJ_NONCES]
nonces rejected by Nack~Duplicate from upstream
Definition pit-up.h:26
uint16_t nTx
how many Interests were sent
Definition pit-up.h:22
int64_t TscDuration
Duration in TscTime unit.
Definition tsc.h:12
uint64_t TscTime
TSC clock time point.
Definition tsc.h:9