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
13 * All functions in this file may be changed or removed without prior notice.
15 * This API allows to do control path functions of ip4_* nodes
16 * like ip4_lookup, ip4_rewrite.
23 #include <rte_common.h>
26 * IP4 lookup next nodes.
28 enum rte_node_ip4_lookup_next {
29 RTE_NODE_IP4_LOOKUP_NEXT_REWRITE,
31 RTE_NODE_IP4_LOOKUP_NEXT_PKT_DROP,
32 /**< Packet drop node. */
33 RTE_NODE_IP4_LOOKUP_NEXT_MAX,
34 /**< Number of next nodes of lookup node. */
38 * Add ipv4 route to lookup table.
41 * IP address of route to be added.
43 * Depth of the rule to be added.
45 * Next hop id of the rule result to be added.
47 * Next node to redirect traffic to.
50 * 0 on success, negative otherwise.
53 int rte_node_ip4_route_add(uint32_t ip, uint8_t depth, uint16_t next_hop,
54 enum rte_node_ip4_lookup_next next_node);
57 * Add a next hop's rewrite data.
60 * Next hop id to add rewrite data to.
64 * Length of rewrite data.
66 * Destination port to redirect traffic to.
69 * 0 on success, negative otherwise.
72 int rte_node_ip4_rewrite_add(uint16_t next_hop, uint8_t *rewrite_data,
73 uint8_t rewrite_len, uint16_t dst_port);
79 #endif /* __INCLUDE_RTE_NODE_IP4_API_H__ */