NDN-DPDK
High-Speed Named Data Networking Forwarder
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
cs-struct.h
Go to the documentation of this file.
1 #ifndef NDNDPDK_PCCT_CS_STRUCT_H
2 #define NDNDPDK_PCCT_CS_STRUCT_H
3 
6 #include "../core/common.h"
7 #include "cs-enum.h"
8 
9 typedef struct CsNode CsNode;
10 
12 struct CsNode {
15 };
16 
18 typedef struct CsList {
21  uint32_t count;
22  uint32_t capacity;
24 
25 typedef struct CsEntry CsEntry;
26 
27 typedef void (*CsArc_MoveCb)(CsEntry* entry, CsListID src, CsListID dst, uintptr_t ctx);
28 
30 typedef struct CsArc {
31  double c;
32  double p;
38 
40  uintptr_t moveCtx;
42 
44 #define CsArc_c(arc) ((arc)->B1.capacity)
45 
47 #define CsArc_2c(arc) ((arc)->Del.capacity)
48 
50 #define CsArc_p(arc) ((arc)->T1.capacity)
51 
53 #define CsArc_p1(arc) ((arc)->T2.capacity)
54 
55 typedef struct DiskStore DiskStore;
56 typedef struct DiskAlloc DiskAlloc;
57 
63 typedef struct Cs {
66 
69 
70  uint64_t nHitMemory;
71  uint64_t nHitDisk;
72  uint64_t nHitIndirect;
73  uint64_t nDiskInsert;
74  uint64_t nDiskDelete;
75  uint64_t nDiskFull;
76 } Cs;
77 
78 #endif // NDNDPDK_PCCT_CS_STRUCT_H
CsListID
Definition: cs-enum.h:18
void(* CsArc_MoveCb)(CsEntry *entry, CsListID src, CsListID dst, uintptr_t ctx)
Definition: cs-struct.h:27
struct CsArc CsArc
Lists for Adaptive Replacement Cache (ARC).
struct Cs Cs
The Content Store (CS).
struct CsList CsList
A doubly linked list within CS.
Lists for Adaptive Replacement Cache (ARC).
Definition: cs-struct.h:30
CsList B2
tracked entries that appeared more than once
Definition: cs-struct.h:36
CsArc_MoveCb moveCb
handler function when entry is moved between lists
Definition: cs-struct.h:39
CsList T1
stored entries that appeared once
Definition: cs-struct.h:33
CsList Del
deleted entries
Definition: cs-struct.h:37
CsList T2
stored entries that appeared more than once
Definition: cs-struct.h:35
uintptr_t moveCtx
context argument to moveCb
Definition: cs-struct.h:40
CsList B1
tracked entries that appeared once
Definition: cs-struct.h:34
double c
capacity c as float
Definition: cs-struct.h:31
double p
target size of T1
Definition: cs-struct.h:32
A CS entry.
Definition: cs-entry.h:22
A doubly linked list within CS.
Definition: cs-struct.h:18
uint32_t count
number of entries
Definition: cs-struct.h:21
uint32_t capacity
unused by CsList
Definition: cs-struct.h:22
CsNode * next
front pointer, self if list is empty
Definition: cs-struct.h:20
CsNode * prev
back pointer, self if list is empty
Definition: cs-struct.h:19
The prev-next pointers common in CsEntry and CsList.
Definition: cs-struct.h:12
CsNode * prev
Definition: cs-struct.h:13
CsNode * next
Definition: cs-struct.h:14
The Content Store (CS).
Definition: cs-struct.h:63
uint64_t nDiskFull
Definition: cs-struct.h:75
CsArc direct
ARC lists of direct entries.
Definition: cs-struct.h:64
uint64_t nHitDisk
Definition: cs-struct.h:71
uint64_t nDiskInsert
Definition: cs-struct.h:73
uint64_t nHitMemory
Definition: cs-struct.h:70
uint64_t nDiskDelete
Definition: cs-struct.h:74
uint64_t nHitIndirect
Definition: cs-struct.h:72
DiskStore * diskStore
Definition: cs-struct.h:67
DiskAlloc * diskAlloc
Definition: cs-struct.h:68
CsList indirect
LRU list of indirect entries.
Definition: cs-struct.h:65
Disk slot allocator.
Definition: alloc.h:14
Disk-backed Data packet store.
Definition: store.h:40