xref: /dpdk/app/graph/route.h (revision 2cfebc3f1046e4166e13b4f906e3ddc1c26c7eeb)
1aff63b6dSSunil Kumar Kori /* SPDX-License-Identifier: BSD-3-Clause
2aff63b6dSSunil Kumar Kori  * Copyright(c) 2023 Marvell.
3aff63b6dSSunil Kumar Kori  */
4aff63b6dSSunil Kumar Kori 
5aff63b6dSSunil Kumar Kori #ifndef APP_GRAPH_ROUTE_H
6aff63b6dSSunil Kumar Kori #define APP_GRAPH_ROUTE_H
7aff63b6dSSunil Kumar Kori 
8*2cfebc3fSRobin Jarry #include <rte_ip6.h>
9*2cfebc3fSRobin Jarry 
10aff63b6dSSunil Kumar Kori #define MAX_ROUTE_ENTRIES 32
11aff63b6dSSunil Kumar Kori 
12aff63b6dSSunil Kumar Kori struct route_ipv4_config {
13aff63b6dSSunil Kumar Kori 	TAILQ_ENTRY(route_ipv4_config) next;
14aff63b6dSSunil Kumar Kori 	uint32_t ip;
15aff63b6dSSunil Kumar Kori 	uint32_t netmask;
16aff63b6dSSunil Kumar Kori 	uint32_t via;
17aff63b6dSSunil Kumar Kori 	bool is_used;
18aff63b6dSSunil Kumar Kori };
19aff63b6dSSunil Kumar Kori 
20aff63b6dSSunil Kumar Kori TAILQ_HEAD(ip4_route, route_ipv4_config);
21aff63b6dSSunil Kumar Kori 
2283b8e58eSRakesh Kudurumalla struct route_ipv6_config {
2383b8e58eSRakesh Kudurumalla 	TAILQ_ENTRY(route_ipv6_config) next;
24*2cfebc3fSRobin Jarry 	struct rte_ipv6_addr ip;
25*2cfebc3fSRobin Jarry 	struct rte_ipv6_addr mask;
26*2cfebc3fSRobin Jarry 	struct rte_ipv6_addr gateway;
2783b8e58eSRakesh Kudurumalla 	bool is_used;
2883b8e58eSRakesh Kudurumalla };
2983b8e58eSRakesh Kudurumalla 
3083b8e58eSRakesh Kudurumalla TAILQ_HEAD(ip6_route, route_ipv6_config);
3183b8e58eSRakesh Kudurumalla 
32aff63b6dSSunil Kumar Kori int route_ip4_add_to_lookup(void);
3383b8e58eSRakesh Kudurumalla int route_ip6_add_to_lookup(void);
34aff63b6dSSunil Kumar Kori void route_ip4_list_clean(void);
3583b8e58eSRakesh Kudurumalla void route_ip6_list_clean(void);
36aff63b6dSSunil Kumar Kori 
37aff63b6dSSunil Kumar Kori #endif
38