1 #ifndef NDNDPDK_IFACE_PKTQUEUE_H
2 #define NDNDPDK_IFACE_PKTQUEUE_H
44 __attribute__((nonnull))
static inline uint32_t
45 PktQueue_Push(
PktQueue* q,
struct rte_mbuf* pkts[], uint32_t count) {
46 return Mbuf_EnqueueVector(pkts, count, q->
ring,
false);
61 PktQueue_Pop(
PktQueue* q,
struct rte_mbuf* pkts[], uint32_t count,
TscTime now) {
struct vlanhdr __rte_packed
PktQueuePopAct
Packet queue dequeue method.
Definition: pktqueue.h:9
@ PktQueuePopActDelay
Definition: pktqueue.h:11
@ PktQueuePopActPlain
Definition: pktqueue.h:10
@ PktQueuePopActCoDel
Definition: pktqueue.h:12
struct PktQueue PktQueue
Thread-safe packet queue.
const PktQueue_PopFunc PktQueue_PopJmp[]
Definition: pktqueue.c:106
struct PktQueuePopResult PktQueuePopResult
Packet queue pop result.
PktQueuePopResult(* PktQueue_PopFunc)(PktQueue *q, struct rte_mbuf *pkts[], uint32_t count, TscTime now)
Definition: pktqueue.h:55
Packet queue pop result.
Definition: pktqueue.h:50
bool drop
whether the first packet should be dropped/ECN-marked
Definition: pktqueue.h:52
uint32_t count
number of dequeued packets
Definition: pktqueue.h:51
Thread-safe packet queue.
Definition: pktqueue.h:23
TscDuration interval
CoDel interval.
Definition: pktqueue.h:26
uint32_t count
CoDel internal variable.
Definition: pktqueue.h:28
TscTime firstAboveTime
CoDel internal variable.
Definition: pktqueue.h:33
struct rte_ring * ring
ringbuffer of packets in queue
Definition: pktqueue.h:24
uint16_t recInvSqrt
CoDel internal variable.
Definition: pktqueue.h:30
bool dropping
CoDel internal variable.
Definition: pktqueue.h:31
TscDuration target
delay target or CoDel target
Definition: pktqueue.h:25
PktQueuePopAct pop
dequeue function index
Definition: pktqueue.h:32
TscDuration sojourn
CoDel internal variable.
Definition: pktqueue.h:35
uint64_t nDrops
number of packets marked as dropped by CoDel
Definition: pktqueue.h:36
uint32_t lastCount
CoDel internal variable.
Definition: pktqueue.h:29
TscTime dropNext
CoDel internal variable.
Definition: pktqueue.h:34
uint32_t dequeueBurstSize
maximum dequeue burst size
Definition: pktqueue.h:27
int64_t TscDuration
Duration in TscTime unit.
Definition: tsc.h:12
uint64_t TscTime
TSC clock time point.
Definition: tsc.h:9