NDN-DPDK
High-Speed Named Data Networking Forwarder
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
fetcher.h
Go to the documentation of this file.
1 #ifndef NDNDPDK_FETCH_FETCHER_H
2 #define NDNDPDK_FETCH_FETCHER_H
3 
6 #include "../core/uring.h"
7 #include "../dpdk/thread.h"
8 #include "../iface/face.h"
9 #include "../iface/pktqueue.h"
10 #include "logic.h"
11 
13 typedef struct FetchTask {
14  struct cds_hlist_node fthNode;
17  uint32_t segmentLen;
18  int fd;
19  uint8_t index;
20  int8_t worker;
21 
29 
31 typedef struct FetchThread {
34 
35  struct rte_mempool* interestMp;
36  struct cds_hlist_head tasksHead;
37  pcg32_random_t nonceRng;
38  uint32_t uringWaitLbound;
40 
41  uint32_t uringCapacity;
43 
44 __attribute__((nonnull)) int
46 
47 #endif // NDNDPDK_FETCH_FETCHER_H
uint16_t FaceID
Numeric face identifier.
Definition: faceid.h:13
struct FetchTask FetchTask
Fetch task that fetches from one prefix.
struct FetchThread FetchThread
Fetch thread that can simultaneously process several fetch tasks.
int FetchThread_Run(FetchThread *fth)
Definition: fetcher.c:157
Fetcher congestion control and scheduling logic.
Definition: logic.h:13
Fetch task that fetches from one prefix.
Definition: fetcher.h:13
struct cds_hlist_node fthNode
FetchThread.head node.
Definition: fetcher.h:14
int8_t worker
FetchThread index running this task, -1 if inactive.
Definition: fetcher.h:20
int fd
if non-negative, write content to file
Definition: fetcher.h:18
uint8_t index
task slot index, used as PIT token
Definition: fetcher.h:19
PktQueue queueD
Definition: fetcher.h:15
FetchLogic logic
Definition: fetcher.h:16
InterestTemplate tpl
Name prefix and Interest template.
Definition: fetcher.h:27
uint32_t segmentLen
expected segment length, used for writing to file
Definition: fetcher.h:17
Fetch thread that can simultaneously process several fetch tasks.
Definition: fetcher.h:31
ThreadCtrl ctrl
Definition: fetcher.h:33
pcg32_random_t nonceRng
Definition: fetcher.h:37
uint32_t uringCapacity
Definition: fetcher.h:41
FaceID face
Definition: fetcher.h:39
struct cds_hlist_head tasksHead
Definition: fetcher.h:36
Uring ur
Definition: fetcher.h:32
struct rte_mempool * interestMp
Definition: fetcher.h:35
uint32_t uringWaitLbound
Definition: fetcher.h:38
Template for Interest encoding.
Definition: interest.h:84
Thread-safe packet queue.
Definition: pktqueue.h:23
Thread load stats and stop flag.
Definition: thread.h:10
io_uring and related counters.
Definition: uring.h:11