NDN-DPDK
High-Speed Named Data Networking Forwarder
Loading...
Searching...
No Matches
face-impl.h
Go to the documentation of this file.
1#ifndef NDNDPDK_IFACE_FACE_IMPL_H
2#define NDNDPDK_IFACE_FACE_IMPL_H
3
5
6#include "face.h"
7
12__attribute__((nonnull)) void
13FaceRx_Input(Face* face, int rxThread, FaceRxInputCtx* ctx);
14
15__attribute__((nonnull)) static __rte_always_inline void
16FaceTx_CheckDirectFragmentMbuf_(struct rte_mbuf* pkt) {
17 NDNDPDK_ASSERT(pkt->pkt_len > 0);
18 NDNDPDK_ASSERT(RTE_MBUF_DIRECT(pkt));
19 NDNDPDK_ASSERT(rte_mbuf_refcnt_read(pkt) == 1);
20 NDNDPDK_ASSERT(rte_pktmbuf_headroom(pkt) >= RTE_PKTMBUF_HEADROOM + LpHeaderHeadroom);
21}
22
29typedef uint16_t (*FaceTx_OutputFunc)(Face* face, int txThread, Packet* npkt,
30 struct rte_mbuf* frames[LpMaxFragments]);
31
33__attribute__((nonnull)) uint16_t
34FaceTx_LinearOne(Face* face, int txThread, Packet* npkt, struct rte_mbuf* frames[LpMaxFragments]);
35
37__attribute__((nonnull)) uint16_t
38FaceTx_ChainedOne(Face* face, int txThread, Packet* npkt, struct rte_mbuf* frames[LpMaxFragments]);
39
41__attribute__((nonnull)) uint16_t
42FaceTx_LinearFrag(Face* face, int txThread, Packet* npkt, struct rte_mbuf* frames[LpMaxFragments]);
43
45__attribute__((nonnull)) uint16_t
46FaceTx_ChainedFrag(Face* face, int txThread, Packet* npkt, struct rte_mbuf* frames[LpMaxFragments]);
47
48#endif // NDNDPDK_IFACE_FACE_IMPL_H
#define NDNDPDK_ASSERT(x)
Definition common.h:60
uint16_t(* FaceTx_OutputFunc)(Face *face, int txThread, Packet *npkt, struct rte_mbuf *frames[LpMaxFragments])
Process an outgoing L3 packet.
Definition face-impl.h:29
uint16_t FaceTx_LinearOne(Face *face, int txThread, Packet *npkt, struct rte_mbuf *frames[LpMaxFragments])
FaceTx_OutputFunc for PacketTxAlign.linearize==true with single-segment packet.
Definition face-tx.c:22
uint16_t FaceTx_ChainedFrag(Face *face, int txThread, Packet *npkt, struct rte_mbuf *frames[LpMaxFragments])
FaceTx_OutputFunc for PacketTxAlign.linearize==false with multi-segment packet.
Definition face-tx.c:69
void FaceRx_Input(Face *face, int rxThread, FaceRxInputCtx *ctx)
Process a burst of received L2 frames.
Definition face-rx.c:8
uint16_t FaceTx_LinearFrag(Face *face, int txThread, Packet *npkt, struct rte_mbuf *frames[LpMaxFragments])
FaceTx_OutputFunc for PacketTxAlign.linearize==true with multi-segment packet.
Definition face-tx.c:32
uint16_t FaceTx_ChainedOne(Face *face, int txThread, Packet *npkt, struct rte_mbuf *frames[LpMaxFragments])
FaceTx_OutputFunc for PacketTxAlign.linearize==false with single-segment packet.
Definition face-tx.c:27
struct Packet Packet
Definition common.h:11
@ LpMaxFragments
Definition enum.h:8
@ LpHeaderHeadroom
Definition enum.h:7
Face_RxInputFunc inputs and outputs.
Definition face.h:14
Generic network interface.
Definition face.h:98