NDN-DPDK
High-Speed Named Data Networking Forwarder
Loading...
Searching...
No Matches
fib.h
Go to the documentation of this file.
1#ifndef NDNDPDK_FIB_FIB_H
2#define NDNDPDK_FIB_FIB_H
3
5
6#include "entry.h"
7
9typedef struct Fib {
10 struct cds_lfht* lfht;
12 uint32_t insertSeqNum;
14
19__attribute__((nonnull)) void
20Fib_Clear(Fib* fib);
21
23__attribute__((nonnull)) bool
24Fib_AllocBulk(struct rte_mempool* fibMp, FibEntry* entries[], unsigned count);
25
31__attribute__((nonnull)) void
32Fib_Write(Fib* fib, FibEntry* entry);
33
38__attribute__((nonnull)) void
39Fib_Erase(Fib* fib, FibEntry* entry);
40
47__attribute__((nonnull)) FibEntry*
48Fib_Get(Fib* fib, LName name, uint64_t hash);
49
56__attribute__((nonnull)) static __rte_always_inline FibEntry*
57Fib_Find(Fib* fib, LName name, uint64_t hash) {
58 return FibEntry_GetReal(Fib_Get(fib, name, hash));
59}
60
67__attribute__((nonnull)) FibEntry*
68Fib_Lpm(Fib* fib, const PName* name);
69
70#endif // NDNDPDK_FIB_FIB_H
void Fib_Clear(Fib *fib)
Delete all entries.
Definition fib.c:11
void Fib_Erase(Fib *fib, FibEntry *entry)
Erase given FIB entry.
Definition fib.c:63
FibEntry * Fib_Lpm(Fib *fib, const PName *name)
Perform longest prefix match.
Definition fib.c:86
bool Fib_AllocBulk(struct rte_mempool *fibMp, FibEntry *entries[], unsigned count)
Allocate and zero entries.
Definition fib.c:27
FibEntry * Fib_Get(Fib *fib, LName name, uint64_t hash)
Retrieve FIB entry.
Definition fib.c:69
void Fib_Write(Fib *fib, FibEntry *entry)
Insert or replace a FIB entry.
Definition fib.c:43
A FIB entry.
Definition entry.h:27
A replica of the Forwarding Information Base (FIB).
Definition fib.h:9
uint32_t insertSeqNum
Definition fib.h:12
int startDepth
starting depth ('M' of 2-stage LPM algorithm)
Definition fib.h:11
struct cds_lfht * lfht
URCU hashtable.
Definition fib.h:10
Name in linear buffer.
Definition name.h:11
Parsed name.
Definition name.h:139