summaryrefslogtreecommitdiff
path: root/ring_rx.h
diff options
context:
space:
mode:
Diffstat (limited to 'ring_rx.h')
-rw-r--r--ring_rx.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/ring_rx.h b/ring_rx.h
new file mode 100644
index 0000000..8d695e5
--- /dev/null
+++ b/ring_rx.h
@@ -0,0 +1,31 @@
+/*
+ * netsniff-ng - the packet sniffing beast
+ * Copyright 2009, 2010 Daniel Borkmann.
+ * Subject to the GPL, version 2.
+ */
+
+#ifndef RX_RING_H
+#define RX_RING_H
+
+#include "ring.h"
+#include "built_in.h"
+
+extern void destroy_rx_ring(int sock, struct ring *ring);
+extern void create_rx_ring(int sock, struct ring *ring, int verbose);
+extern void mmap_rx_ring(int sock, struct ring *ring);
+extern void alloc_rx_ring_frames(struct ring *ring);
+extern void bind_rx_ring(int sock, struct ring *ring, int ifindex);
+extern void setup_rx_ring_layout(int sock, struct ring *ring,
+ unsigned int size, int jumbo_support);
+
+static inline int user_may_pull_from_rx(struct tpacket2_hdr *hdr)
+{
+ return ((hdr->tp_status & TP_STATUS_USER) == TP_STATUS_USER);
+}
+
+static inline void kernel_may_pull_from_rx(struct tpacket2_hdr *hdr)
+{
+ hdr->tp_status = TP_STATUS_KERNEL;
+}
+
+#endif /* RX_RING_H */