1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2020 Marvell International Ltd.
5 #ifndef __INCLUDE_RTE_NODE_IP4_API_H__
6 #define __INCLUDE_RTE_NODE_IP4_API_H__
9 * @file rte_node_ip4_api.h
12 * @b EXPERIMENTAL: this API may change without prior notice
14 * This API allows to do control path functions of ip4_* nodes
15 * like ip4_lookup, ip4_rewrite.
22 #include <rte_common.h>
25 * IP4 lookup next nodes.
27 enum rte_node_ip4_lookup_next {
28 RTE_NODE_IP4_LOOKUP_NEXT_REWRITE,
30 RTE_NODE_IP4_LOOKUP_NEXT_PKT_DROP,
31 /**< Packet drop node. */
32 RTE_NODE_IP4_LOOKUP_NEXT_MAX,
33 /**< Number of next nodes of lookup node. */
37 * Add ipv4 route to lookup table.
40 * IP address of route to be added.
42 * Depth of the rule to be added.
44 * Next hop id of the rule result to be added.
46 * Next node to redirect traffic to.
49 * 0 on success, negative otherwise.
52 int rte_node_ip4_route_add(uint32_t ip, uint8_t depth, uint16_t next_hop,
53 enum rte_node_ip4_lookup_next next_node);
56 * Add a next hop's rewrite data.
59 * Next hop id to add rewrite data to.
63 * Length of rewrite data.
65 * Destination port to redirect traffic to.
68 * 0 on success, negative otherwise.
71 int rte_node_ip4_rewrite_add(uint16_t next_hop, uint8_t *rewrite_data,
72 uint8_t rewrite_len, uint16_t dst_port);
78 #endif /* __INCLUDE_RTE_NODE_IP4_API_H__ */