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