NDN-DPDK
High-Speed Named Data Networking Forwarder
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
server.h
Go to the documentation of this file.
1 #ifndef NDNDPDK_FILESERVER_SERVER_H
2 #define NDNDPDK_FILESERVER_SERVER_H
3 
6 #include "../core/uring.h"
7 #include "../dpdk/thread.h"
8 #include "../iface/face.h"
9 #include "../iface/pktqueue.h"
10 #include "enum.h"
11 #include <linux/openat2.h>
12 
13 typedef struct FileServerFd FileServerFd;
14 
15 typedef struct FileServerCounters {
16  uint64_t reqRead;
17  uint64_t reqLs;
18  uint64_t reqMetadata;
19  uint64_t fdNew;
20  uint64_t fdNotFound;
21  uint64_t fdUpdateStat;
22  uint64_t fdClose;
23  uint64_t cqeFail;
25 
27 typedef struct FileServer {
32 
34  struct rte_mempool* opMp;
35  struct rte_mempool* fdMp;
37  struct cds_list_head fdQ;
39  uint32_t versionBypassHi;
40 
42  uint32_t uringWaitLbound;
44  uint16_t segmentLen;
45  uint16_t payloadHeadroom;
46  uint16_t fdQCount;
47  uint16_t fdQCapacity;
48 
49  struct open_how openHow;
54 
55  uint32_t uringCapacity;
56  uint32_t nFdHtBuckets;
58 
59 __attribute__((nonnull)) uint32_t
61 
62 __attribute__((nonnull)) uint32_t
64 
65 __attribute__((nonnull)) int
67 
68 #endif // NDNDPDK_FILESERVER_SERVER_H
uint16_t FaceID
Numeric face identifier.
Definition: faceid.h:13
@ FileServerMaxMounts
Definition: enum.h:7
@ NameMaxLength
Definition: enum.h:10
uint32_t FileServer_RxBurst(FileServer *p)
Definition: server-rx.c:244
int FileServer_Run(FileServer *p)
Definition: server.c:6
struct FileServerCounters FileServerCounters
uint32_t FileServer_TxBurst(FileServer *p)
Definition: server-tx.c:56
struct FileServer FileServer
File server.
Definition: server.h:15
uint64_t fdClose
Definition: server.h:22
uint64_t cqeFail
Definition: server.h:23
uint64_t reqMetadata
Definition: server.h:18
uint64_t fdUpdateStat
Definition: server.h:21
uint64_t reqRead
Definition: server.h:16
uint64_t reqLs
Definition: server.h:17
uint64_t fdNotFound
Definition: server.h:20
uint64_t fdNew
Definition: server.h:19
File descriptor related information in the file server.
Definition: fd.h:21
File server.
Definition: server.h:27
Uring ur
Definition: server.h:28
PktQueue rxQueue
Definition: server.h:30
PacketMempools mp
Definition: server.h:33
ThreadCtrl ctrl
Definition: server.h:29
uint32_t uringCapacity
Definition: server.h:55
uint8_t mountPrefixV[FileServerMaxMounts *NameMaxLength]
Definition: server.h:53
FileServerCounters cnt
Definition: server.h:31
uint32_t uringCongestionLbound
Definition: server.h:41
struct rte_mempool * opMp
Definition: server.h:34
int dfd[FileServerMaxMounts]
Definition: server.h:50
struct cds_list_head fdQ
Definition: server.h:37
struct open_how openHow
Definition: server.h:49
uint16_t payloadHeadroom
Definition: server.h:45
uint32_t versionBypassHi
Definition: server.h:39
uint16_t fdQCount
Definition: server.h:46
uint16_t fdQCapacity
Definition: server.h:47
uint32_t uringWaitLbound
Definition: server.h:42
uint32_t nFdHtBuckets
Definition: server.h:56
uint16_t segmentLen
Definition: server.h:44
FaceID face
Definition: server.h:43
struct rte_mempool * fdMp
Definition: server.h:35
FileServerFd * fdHt
Definition: server.h:36
int16_t mountPrefixComps[FileServerMaxMounts]
Definition: server.h:51
uint16_t mountPrefixL[FileServerMaxMounts]
Definition: server.h:52
TscDuration statValidity
Definition: server.h:38
Mempools for packet modification.
Definition: common.h:17
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
int64_t TscDuration
Duration in TscTime unit.
Definition: tsc.h:12