NDN-DPDK
High-Speed Named Data Networking Forwarder
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Typedefs | Functions
store.h File Reference
#include "../dpdk/bdev.h"
#include "../dpdk/hashtable.h"
#include "../dpdk/spdk-thread.h"
#include "../ndni/packet.h"

Go to the source code of this file.

Data Structures

struct  DiskStoreSlimRequest
 DiskStore compact request context. More...
 
struct  DiskStoreRequest
 DiskStore request context. More...
 
struct  DiskStore
 Disk-backed Data packet store. More...
 

Typedefs

typedef struct DiskStore DiskStore
 
typedef struct DiskStoreSlimRequest DiskStoreSlimRequest
 DiskStore compact request context. More...
 
typedef struct DiskStoreRequest DiskStoreRequest
 DiskStore request context. More...
 
typedef void(* DiskStore_GetDataCb) (Packet *npkt, uintptr_t ctx)
 DiskStore_GetData completion callback. More...
 

Functions

void DiskStore_PutData (DiskStore *store, uint64_t slotID, Packet *npkt, BdevStoredPacket *sp)
 Store a Data packet. More...
 
void DiskStore_GetData (DiskStore *store, uint64_t slotID, Packet *npkt, struct rte_mbuf *dataBuf, BdevStoredPacket *sp)
 Retrieve a Data packet. More...
 

Typedef Documentation

◆ DiskStore

typedef struct DiskStore DiskStore

◆ DiskStore_GetDataCb

typedef void(* DiskStore_GetDataCb) (Packet *npkt, uintptr_t ctx)

DiskStore_GetData completion callback.

Parameters
npktInterest packet.
ctxstore->getDataCtx .

This function is invoked on store->th thread.

◆ DiskStoreRequest

DiskStore request context.

◆ DiskStoreSlimRequest

DiskStore compact request context.

Function Documentation

◆ DiskStore_GetData()

void DiskStore_GetData ( DiskStore store,
uint64_t  slotID,
Packet npkt,
struct rte_mbuf *  dataBuf,
BdevStoredPacket sp 
)

Retrieve a Data packet.

Parameters
slotIDdisk slot number.
npktan Interest packet. DiskStore takes ownership until callback.
dataBufa uniquely owned, unsegmented, direct mbuf for Data packet. DiskStore takes ownership until callback.
spsame BdevStoredPacket used during PutData, will be copied.

This function asynchronously reads from a specified slot of the underlying disk, and parses the content as a Data packet. Upon success, it assigns interest->diskSlot and interest->diskData . Upon failure, it assigns interest->diskSlot and clears interest->diskData . It then calls store->getDataCb with the npkt .

This function may be invoked on any thread, including non-SPDK thread.

◆ DiskStore_PutData()

void DiskStore_PutData ( DiskStore store,
uint64_t  slotID,
Packet npkt,
BdevStoredPacket sp 
)

Store a Data packet.

Parameters
slotIDdisk slot number; slot 0 cannot be used.
npkta Data packet. DiskStore takes ownership.
spoutput of a successful DiskStore_PrepareData .

This function may be invoked on any thread, including non-SPDK thread.