NDN-DPDK
High-Speed Named Data Networking Forwarder
Loading...
Searching...
No Matches
pit.h
Go to the documentation of this file.
1#ifndef NDNDPDK_PCCT_PIT_H
2#define NDNDPDK_PCCT_PIT_H
3
5
6#include "pcct.h"
7#include "pit-result.h"
8
10#define PIT_MAX_LIFETIME 120000
11
13__attribute__((nonnull)) void
14Pit_Init(Pit* pit);
15
17__attribute__((nonnull)) static inline void
18Pit_TriggerTimers(Pit* pit) {
19 MinSched_Trigger(pit->timeoutSched);
20}
21
23__attribute__((nonnull(1))) void
24Pit_SetSgTimerCb(Pit* pit, Pit_SgTimerCb cb, uintptr_t ctx);
25
40__attribute__((nonnull)) PitInsertResult
41Pit_Insert(Pit* pit, Packet* npkt, const FibEntry* fibEntry);
42
47__attribute__((nonnull)) void
48Pit_Erase(Pit* pit, PitEntry* entry);
49
54__attribute__((nonnull)) void
56
62__attribute__((nonnull)) PitFindResult
63Pit_FindByData(Pit* pit, Packet* npkt, uint64_t token);
64
70__attribute__((nonnull)) PitEntry*
71Pit_FindByNack(Pit* pit, Packet* npkt, uint64_t token);
72
73__attribute__((nonnull)) static inline uint64_t
74PitEntry_GetToken(PitEntry* entry) {
75 // Declaration is in pit-entry.h.
76 PccEntry* pccEntry = entry->pccEntry;
77 NDNDPDK_ASSERT(pccEntry->hasToken);
78 return pccEntry->token;
79}
80
81#endif // NDNDPDK_PCCT_PIT_H
#define NDNDPDK_ASSERT(x)
Definition common.h:60
struct Packet Packet
Definition common.h:11
PitEntry * Pit_FindByNack(Pit *pit, Packet *npkt, uint64_t token)
Find PIT entry matching a Nack.
Definition pit.c:188
PitInsertResult Pit_Insert(Pit *pit, Packet *npkt, const FibEntry *fibEntry)
Insert or find a PIT entry for the given Interest.
Definition pit.c:31
PitFindResult Pit_FindByData(Pit *pit, Packet *npkt, uint64_t token)
Find PIT entries matching a Data.
Definition pit.c:160
void Pit_Erase(Pit *pit, PitEntry *entry)
Erase a PIT entry.
Definition pit.c:99
void Pit_SetSgTimerCb(Pit *pit, Pit_SgTimerCb cb, uintptr_t ctx)
Set callback when strategy timer expires.
Definition pit.c:25
void Pit_EraseSatisfied(Pit *pit, PitFindResult res)
Erase satisfied PIT entries but retain the PccEntry.
Definition pit.c:123
void Pit_Init(Pit *pit)
Constructor.
Definition pit.c:15
void(* Pit_SgTimerCb)(Pit *pit, PitEntry *entry, uintptr_t ctx)
Callback to handle strategy timer triggers.
Definition pit-struct.h:13
A FIB entry.
Definition entry.h:27
PIT-CS composite entry.
Definition pcc-entry.h:56
bool hasToken
Definition pcc-entry.h:63
uint64_t token
Definition pcc-entry.h:69
A PIT entry.
Definition pit-entry.h:24
Result of PIT find.
Definition pit-result.h:37
Result of PIT insert.
Definition pit-result.h:16
The Pending Interest Table (PIT).
Definition pit-struct.h:20
MinSched * timeoutSched
Definition pit-struct.h:33