1#ifndef NDNDPDK_PCCT_PCC_KEY_H
2#define NDNDPDK_PCCT_PCC_KEY_H
8#define PccKey_CountExtensions_(nameL, fhL) \
9 (SPDK_CEIL_DIV(nameL - PccKeyNameCapacity, PccKeyExtCapacity) + \
10 SPDK_CEIL_DIV(fhL - PccKeyFhCapacity, PccKeyExtCapacity))
27__attribute__((nonnull))
static inline PccSearch
30 .name = PName_ToLName(name),
31 .hash = PName_ComputeHash(name),
34 search.
fh = PName_ToLName(&interest->
fwHint);
35 search.
hash ^= PName_ComputeHash(&interest->
fwHint);
44__attribute__((nonnull, returns_nonnull))
const char*
64__attribute__((nonnull))
bool
68__attribute__((nonnull(2))) static __rte_always_inline
bool
69PccKey_MatchField_(
LName name, const uint8_t* firstV, uint16_t firstCapacity,
71 if (unlikely(name.length > firstCapacity)) {
72 return PccKey_MatchFieldWithExt_(name, firstV, firstCapacity, ext);
74 return memcmp(firstV, name.value, name.length) == 0;
78__attribute__((nonnull))
static inline bool
85__attribute__((nonnull))
static inline bool
87 return search->
fh.
length == key->
fhL && PccKey_MatchName(key, search->
name) &&
92__attribute__((nonnull))
static inline int
93PccKey_CountExtensions(
const PccSearch* search) {
97__attribute__((nonnull))
int
101__attribute__((nonnull))
static __rte_always_inline
int
102PccKey_WriteField_(
LName name, uint8_t* firstV, uint16_t firstCapacity,
PccKeyExt** next,
104 if (unlikely(name.
length > firstCapacity)) {
113__attribute__((nonnull))
static inline void
126__attribute__((nonnull))
static inline int
#define NDNDPDK_ASSERT(x)
Definition common.h:60
@ NameMaxLength
Definition enum.h:10
#define PccKey_CountExtensions_(nameL, fhL)
Definition pcc-key.h:8
bool PccKey_MatchFieldWithExt_(LName name, const uint8_t *firstV, uint16_t firstCapacity, const PccKeyExt *ext)
Definition pcc-key.c:25
int PccKey_WriteFieldWithExt_(LName name, uint8_t *firstV, uint16_t firstCapacity, PccKeyExt **next, PccKeyExt *exts[])
Definition pcc-key.c:43
const char * PccSearch_ToDebugString(const PccSearch *search)
Convert search to a string for debug purpose.
Definition pcc-key.c:9
@ PccKeyMaxExts
Definition pcc-key.h:16
@ PccKeyFhCapacity
Definition pcc-key.h:14
@ PccKeyNameCapacity
Definition pcc-key.h:13
@ PccKeyExtCapacity
Definition pcc-key.h:15
Name in linear buffer.
Definition name.h:11
const uint8_t * value
Definition name.h:12
uint16_t length
Definition name.h:13
Parsed Interest packet.
Definition interest.h:9
int8_t activeFwHint
index of active forwarding hint
Definition interest.h:21
PName fwHint
parsed forwarding hint at activeFwHint
Definition interest.h:27
Parsed name.
Definition name.h:139
PccKeyExt * next
Definition pcc-key.h:60
uint8_t value[PccKeyExtCapacity]
Definition pcc-key.h:61
Hash key stored in PccEntry .
Definition pcc-key.h:50
PccKeyExt * fhExt
Definition pcc-key.h:52
PccKeyExt * nameExt
Definition pcc-key.h:51
uint8_t fhV[PccKeyFhCapacity]
Definition pcc-key.h:56
uint8_t nameV[PccKeyNameCapacity]
Definition pcc-key.h:55
uint16_t fhL
Definition pcc-key.h:54
uint16_t nameL
Definition pcc-key.h:53
Hash key for searching among PccEntry .
Definition pcc-key.h:20
uint64_t hash
Definition pcc-key.h:23
LName name
Definition pcc-key.h:21
LName fh
Definition pcc-key.h:22