NDN-DPDK
High-Speed Named Data Networking Forwarder
Loading...
Searching...
No Matches
pktqueue.h
Go to the documentation of this file.
1#ifndef NDNDPDK_IFACE_PKTQUEUE_H
2#define NDNDPDK_IFACE_PKTQUEUE_H
3
5
6#include "common.h"
7
14
38
44__attribute__((nonnull)) static inline uint32_t
45PktQueue_Push(PktQueue* q, struct rte_mbuf* pkts[], uint32_t count) {
46 return Mbuf_EnqueueVector(pkts, count, q->ring, false);
47}
48
50typedef struct PktQueuePopResult {
51 uint32_t count;
52 bool drop;
54
55typedef PktQueuePopResult (*PktQueue_PopFunc)(PktQueue* q, struct rte_mbuf* pkts[], uint32_t count,
56 TscTime now);
58
60__attribute__((nonnull)) static inline PktQueuePopResult
61PktQueue_Pop(PktQueue* q, struct rte_mbuf* pkts[], uint32_t count, TscTime now) {
62 return PktQueue_PopJmp[q->pop](q, pkts, count, now);
63}
64
65#endif // NDNDPDK_IFACE_PKTQUEUE_H
struct __rte_packed_begin vlanhdr __rte_packed_end
const PktQueue_PopFunc PktQueue_PopJmp[]
Definition pktqueue.c:106
PktQueuePopActCoDel
Definition pktqueue.h:12
enum __rte_packed_begin PktQueuePopAct PktQueuePopAct
Packet queue dequeue method.
Definition pktqueue.h:9
PktQueuePopActPlain
Definition pktqueue.h:10
PktQueuePopActDelay
Definition pktqueue.h:11
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