NDN-DPDK
High-Speed Named Data Networking Forwarder
|
#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 void(* DiskStore_GetDataCb) (Packet *npkt, uintptr_t ctx) |
DiskStore_GetData completion callback.
npkt | Interest packet. |
ctx | store->getDataCtx . |
This function is invoked on store->th
thread.
typedef struct DiskStoreRequest DiskStoreRequest |
DiskStore request context.
typedef struct DiskStoreSlimRequest DiskStoreSlimRequest |
DiskStore compact request context.
void DiskStore_GetData | ( | DiskStore * | store, |
uint64_t | slotID, | ||
Packet * | npkt, | ||
struct rte_mbuf * | dataBuf, | ||
BdevStoredPacket * | sp | ||
) |
Retrieve a Data packet.
slotID | disk slot number. |
npkt | an Interest packet. DiskStore takes ownership until callback. |
dataBuf | a uniquely owned, unsegmented, direct mbuf for Data packet. DiskStore takes ownership until callback. |
sp | same 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.
void DiskStore_PutData | ( | DiskStore * | store, |
uint64_t | slotID, | ||
Packet * | npkt, | ||
BdevStoredPacket * | sp | ||
) |
Store a Data packet.
slotID | disk slot number; slot 0 cannot be used. |
npkt | a Data packet. DiskStore takes ownership. |
sp | output of a successful DiskStore_PrepareData . |
This function may be invoked on any thread, including non-SPDK thread.