NDN-DPDK
High-Speed Named Data Networking Forwarder
Loading...
Searching...
No Matches
pcct.h File Reference
#include "cs-struct.h"
#include "pcc-entry.h"
#include "pit-struct.h"

Go to the source code of this file.

Data Structures

struct  Pcct
 The PIT-CS Composite Table (PCCT). More...
struct  PcctEraseBatch
 Context for erasing several PCC entries. More...

Macros

#define PCCT_ERASE_BURST   32

Typedefs

typedef struct Pcct Pcct
 The PIT-CS Composite Table (PCCT).
typedef struct PcctEraseBatch PcctEraseBatch
 Context for erasing several PCC entries.

Functions

bool Pcct_Init (Pcct *pcct, const char *id, uint32_t maxEntries, int numaSocket)
 Initialize keyHt and tokenHt.
void Pcct_Clear (Pcct *pcct)
 Clear keyHt and tokenHt, and free cached Data.
PccEntryPcct_Insert (Pcct *pcct, const PccSearch *search, bool *isNew)
 Insert or find an entry.
void Pcct_Erase (Pcct *pcct, PccEntry *entry)
 Erase an entry.
uint64_t Pcct_AddToken (Pcct *pcct, PccEntry *entry)
 Assign a token to an entry.
void Pcct_RemoveToken (Pcct *pcct, PccEntry *entry)
 Clear the token on an entry.
PccEntryPcct_FindByToken (const Pcct *pcct, uint64_t token)
 Find an entry by token.
void PcctEraseBatch_EraseBurst_ (PcctEraseBatch *peb)

Macro Definition Documentation

◆ PCCT_ERASE_BURST

#define PCCT_ERASE_BURST   32

Typedef Documentation

◆ Pcct

typedef struct Pcct Pcct

The PIT-CS Composite Table (PCCT).

◆ PcctEraseBatch

typedef struct PcctEraseBatch PcctEraseBatch

Context for erasing several PCC entries.

Function Documentation

◆ Pcct_AddToken()

uint64_t Pcct_AddToken ( Pcct * pcct,
PccEntry * entry )

Assign a token to an entry.

Returns
New or existing token.

◆ Pcct_Clear()

void Pcct_Clear ( Pcct * pcct)

Clear keyHt and tokenHt, and free cached Data.

Postcondition
Pcct mempool can be deallocated.

◆ Pcct_Erase()

void Pcct_Erase ( Pcct * pcct,
PccEntry * entry )

Erase an entry.

See also
PcctEraseBatch

◆ Pcct_FindByToken()

PccEntry * Pcct_FindByToken ( const Pcct * pcct,
uint64_t token )

Find an entry by token.

Parameters
tokenthe token, only lower 48 bits are significant.

◆ Pcct_Init()

bool Pcct_Init ( Pcct * pcct,
const char * id,
uint32_t maxEntries,
int numaSocket )

Initialize keyHt and tokenHt.

Parameters
idmemzone identifier, must be unique.
maxEntriesPCCT capacity; hashtable capacity will be calculated accordingly.
Returns
whether success. Error code is in rte_errno .

◆ Pcct_Insert()

PccEntry * Pcct_Insert ( Pcct * pcct,
const PccSearch * search,
bool * isNew )

Insert or find an entry.

Parameters
[out]isNewwhether the entry is new
Return values
NULLallocation error.

◆ Pcct_RemoveToken()

void Pcct_RemoveToken ( Pcct * pcct,
PccEntry * entry )

Clear the token on an entry.

◆ PcctEraseBatch_EraseBurst_()

void PcctEraseBatch_EraseBurst_ ( PcctEraseBatch * peb)