]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/spdk/dpdk/lib/librte_node/rte_node_ip4_api.h
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / dpdk / lib / librte_node / rte_node_ip4_api.h
diff --git a/ceph/src/spdk/dpdk/lib/librte_node/rte_node_ip4_api.h b/ceph/src/spdk/dpdk/lib/librte_node/rte_node_ip4_api.h
new file mode 100644 (file)
index 0000000..31a752b
--- /dev/null
@@ -0,0 +1,78 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2020 Marvell International Ltd.
+ */
+
+#ifndef __INCLUDE_RTE_NODE_IP4_API_H__
+#define __INCLUDE_RTE_NODE_IP4_API_H__
+
+/**
+ * @file rte_node_ip4_api.h
+ *
+ * @warning
+ * @b EXPERIMENTAL: this API may change without prior notice
+ *
+ * This API allows to do control path functions of ip4_* nodes
+ * like ip4_lookup, ip4_rewrite.
+ *
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rte_common.h>
+
+/**
+ * IP4 lookup next nodes.
+ */
+enum rte_node_ip4_lookup_next {
+       RTE_NODE_IP4_LOOKUP_NEXT_REWRITE,
+       /**< Rewrite node. */
+       RTE_NODE_IP4_LOOKUP_NEXT_PKT_DROP,
+       /**< Packet drop node. */
+       RTE_NODE_IP4_LOOKUP_NEXT_MAX,
+       /**< Number of next nodes of lookup node. */
+};
+
+/**
+ * Add ipv4 route to lookup table.
+ *
+ * @param ip
+ *   IP address of route to be added.
+ * @param depth
+ *   Depth of the rule to be added.
+ * @param next_hop
+ *   Next hop id of the rule result to be added.
+ * @param next_node
+ *   Next node to redirect traffic to.
+ *
+ * @return
+ *   0 on success, negative otherwise.
+ */
+__rte_experimental
+int rte_node_ip4_route_add(uint32_t ip, uint8_t depth, uint16_t next_hop,
+                          enum rte_node_ip4_lookup_next next_node);
+
+/**
+ * Add a next hop's rewrite data.
+ *
+ * @param next_hop
+ *   Next hop id to add rewrite data to.
+ * @param rewrite_data
+ *   Rewrite data.
+ * @param rewrite_len
+ *   Length of rewrite data.
+ * @param dst_port
+ *   Destination port to redirect traffic to.
+ *
+ * @return
+ *   0 on success, negative otherwise.
+ */
+__rte_experimental
+int rte_node_ip4_rewrite_add(uint16_t next_hop, uint8_t *rewrite_data,
+                            uint8_t rewrite_len, uint16_t dst_port);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __INCLUDE_RTE_NODE_IP4_API_H__ */