1 #ifndef NDNDPDK_IFACE_INPUT_DEMUX_H
2 #define NDNDPDK_IFACE_INPUT_DEMUX_H
6 #include "../ndt/ndt.h"
51 __attribute__((nonnull, returns_nonnull))
NdtQuerier*
54 __attribute__((nonnull))
void
57 __attribute__((nonnull))
void
65 __attribute__((nonnull, warn_unused_result))
static inline uint64_t
78 __attribute__((nonnull))
static inline void
79 InputDemux_FreeRejected(
struct rte_mbuf** frees, uint16_t* nFree,
Packet** npkts, uint64_t mask) {
81 while (rte_bsf64_safe(mask, &i)) {
82 frees[(*nFree)++] = Packet_ToMbuf(npkts[i]);
83 rte_bit_clear(&mask, i);
91 __attribute__((nonnull, returns_nonnull))
static __rte_always_inline
InputDemux*
93 return &((
InputDemux*)demuxes)[PktType_ToFull(t) - 1];
struct vlanhdr __rte_packed
#define NDNDPDK_ASSERT(x)
Definition: common.h:60
@ MaxInputDemuxDest
Definition: enum.h:8
struct Packet Packet
Definition: common.h:11
PktType
Definition: enum.h:35
@ PktMax
Definition: enum.h:43
NDT querier with counters.
Definition: ndt.h:48
Thread-safe packet queue.
Definition: pktqueue.h:23