NDN-DPDK
High-Speed Named Data Networking Forwarder
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
face.h
Go to the documentation of this file.
1 #ifndef NDNDPDK_ETHFACE_FACE_H
2 #define NDNDPDK_ETHFACE_FACE_H
3 
6 #include "passthru.h"
7 #include "rxmatch.h"
8 #include "txhdr.h"
9 #include <urcu/rculist.h>
10 
12 typedef struct EthRxFlow {
15  uint16_t port;
16  uint16_t queue;
17  uint8_t hdrLen;
18 } __rte_cache_aligned EthRxFlow;
19 
21 typedef struct EthFacePriv {
26  uint16_t port;
27 
28  struct cds_list_head rxtNode;
31 
33 __attribute__((nonnull)) struct rte_flow*
34 EthFace_SetupFlow(EthFacePriv* priv, const uint16_t queues[], int nQueues, const EthLocator* loc,
35  bool isolated, struct rte_flow_error* error);
36 
38 __attribute__((nonnull)) void
40 
41 __attribute__((nonnull)) uint16_t
42 EthFace_TxBurst(Face* face, struct rte_mbuf** pkts, uint16_t nPkts);
43 
44 #endif // NDNDPDK_ETHFACE_FACE_H
void EthFace_SetupRxMemif(EthFacePriv *priv, const EthLocator *loc)
Setup RX for memif.
Definition: face.c:150
struct EthFacePriv EthFacePriv
Ethernet face private data.
struct rte_flow * EthFace_SetupFlow(EthFacePriv *priv, const uint16_t queues[], int nQueues, const EthLocator *loc, bool isolated, struct rte_flow_error *error)
Setup rte_flow on EthDev for hardware dispatching.
Definition: face.c:90
uint16_t EthFace_TxBurst(Face *face, struct rte_mbuf **pkts, uint16_t nPkts)
Definition: face.c:161
struct EthRxFlow EthRxFlow
rte_flow hardware assisted RX dispatching.
uint16_t FaceID
Numeric face identifier.
Definition: faceid.h:13
@ MaxFaceRxThreads
Definition: enum.h:9
Ethernet face private data.
Definition: face.h:21
EthRxFlow rxf[MaxFaceRxThreads]
Definition: face.h:22
uint16_t port
Definition: face.h:26
EthTxHdr txHdr
Definition: face.h:24
struct cds_list_head rxtNode
Definition: face.h:28
EthRxMatch rxMatch
Definition: face.h:29
EthPassthru passthru
Definition: face.h:23
FaceID faceID
Definition: face.h:25
EthFace address information.
Definition: locator.h:10
Ethernet pass-through face and its associated TAP port.
Definition: passthru.h:22
rte_flow hardware assisted RX dispatching.
Definition: face.h:12
FaceID faceID
Definition: face.h:14
RxGroup base
Definition: face.h:13
uint16_t port
Definition: face.h:15
uint16_t queue
Definition: face.h:16
uint8_t hdrLen
Definition: face.h:17
EthFace RX matcher.
Definition: rxmatch.h:28
EthFace TX header template.
Definition: txhdr.h:31
Generic network interface.
Definition: face.h:98
Receive channel for faces.
Definition: rxloop.h:39