NDN-DPDK
High-Speed Named Data Networking Forwarder
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Macros | Typedefs | Functions
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). More...
 
typedef struct PcctEraseBatch PcctEraseBatch
 Context for erasing several PCC entries. More...
 

Functions

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

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)