- \ref rrtype — DNS resource record types
- \ref knot-tsig — TSIG operations
- \ref wire — Packet wire data manipulation
+ - \ref xdp — XDP interface
- \ref yparser — Simple YAML parser
\defgroup ctl ctl
\defgroup rrtype rrtype
\defgroup knot-tsig tsig
\defgroup wire wire
+\defgroup xdp xdp
\defgroup yparser yparser
-/* Copyright (C) 2019 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
+/* Copyright (C) 2021 CZ.NIC, z.s.p.o. <knot-dns@labs.nic.cz>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
/*!
* \file
*
+ * \brief DNS resource record descriptions.
+ *
* \addtogroup rr
* @{
*/
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+/*!
+ * \file
+ *
+ * \brief XDP filter constants.
+ *
+ * \addtogroup xdp
+ * @{
+ */
+
#pragma once
enum {
KNOT_XDP_LISTEN_PORT_DROP = 1 << 18, /*!< Drop incoming messages to ports >= port value. */
KNOT_XDP_LISTEN_PORT_ROUTE = 1 << 19, /*!< Consider routing information from kernel. */
};
+
+/*! @} */
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+/*!
+ * \file
+ *
+ * \brief XDP socket interface.
+ *
+ * \addtogroup xdp
+ * @{
+ */
+
#pragma once
#include <bpf/xsk.h>
* \param iface Interface context.
*/
void kxsk_socket_stop(const struct kxsk_iface *iface);
+
+/*! @} */
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+/*!
+ * \file
+ *
+ * \brief Ethernet device info interface.
+ *
+ * \addtogroup xdp
+ * @{
+ */
+
#pragma once
#include <stddef.h>
* \return Current XDP mode.
*/
knot_xdp_mode_t knot_eth_xdp_mode(int if_index);
+
+/*! @} */
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+/*!
+ * \file
+ *
+ * \brief XDP message description.
+ *
+ * \addtogroup xdp
+ * @{
+ */
+
#pragma once
#include <stdint.h>
uint32_t ackno;
struct iovec payload;
} knot_xdp_msg_t;
+
+/*! @} */
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+/*!
+ * \file
+ *
+ * \brief TCP over XDP IO interface.
+ *
+ * \addtogroup xdp
+ * @{
+ */
+
#pragma once
#include "libknot/mm_ctx.h"
*/
int knot_xdp_tcp_send(knot_xdp_socket_t *socket, knot_tcp_relay_t relays[],
uint32_t relay_count);
+
+/*! @} */
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
+/*!
+ * \file
+ *
+ * \brief XDP IO interface.
+ *
+ * \addtogroup xdp
+ * @{
+ */
+
#pragma once
#include <stdbool.h>
* \param file Output file.
*/
void knot_xdp_info(const knot_xdp_socket_t *socket, FILE *file);
+
+/*! @} */