1*ef8d499eSDavid van Moolenbroek #ifndef MINIX_NET_LWIP_ROUTE_H 2*ef8d499eSDavid van Moolenbroek #define MINIX_NET_LWIP_ROUTE_H 3*ef8d499eSDavid van Moolenbroek 4*ef8d499eSDavid van Moolenbroek #include <net/route.h> 5*ef8d499eSDavid van Moolenbroek 6*ef8d499eSDavid van Moolenbroek struct route_entry; 7*ef8d499eSDavid van Moolenbroek struct rtsock_request; 8*ef8d499eSDavid van Moolenbroek 9*ef8d499eSDavid van Moolenbroek void route_init(void); 10*ef8d499eSDavid van Moolenbroek int route_add(const ip_addr_t * addr, unsigned int prefix, 11*ef8d499eSDavid van Moolenbroek const ip_addr_t * gateway, struct ifdev * ifdev, unsigned int flags, 12*ef8d499eSDavid van Moolenbroek const struct rtsock_request * rtr); 13*ef8d499eSDavid van Moolenbroek int route_can_add(const ip_addr_t * addr, unsigned int prefix, int is_host); 14*ef8d499eSDavid van Moolenbroek struct route_entry *route_find(const ip_addr_t * addr, unsigned int prefix, 15*ef8d499eSDavid van Moolenbroek int is_host); 16*ef8d499eSDavid van Moolenbroek struct route_entry *route_lookup(const ip_addr_t * addr); 17*ef8d499eSDavid van Moolenbroek void route_delete(struct route_entry * route, 18*ef8d499eSDavid van Moolenbroek const struct rtsock_request * rtr); 19*ef8d499eSDavid van Moolenbroek void route_clear(struct ifdev * ifdev); 20*ef8d499eSDavid van Moolenbroek int route_process(unsigned int type, const struct sockaddr * dst, 21*ef8d499eSDavid van Moolenbroek const struct sockaddr * mask, const struct sockaddr * gateway, 22*ef8d499eSDavid van Moolenbroek const struct sockaddr * ifp, const struct sockaddr * ifa, 23*ef8d499eSDavid van Moolenbroek unsigned int flags, unsigned long inits, 24*ef8d499eSDavid van Moolenbroek const struct rt_metrics * rmx, const struct rtsock_request * rtr); 25*ef8d499eSDavid van Moolenbroek void route_get(const struct route_entry * route, union sockaddr_any * addr, 26*ef8d499eSDavid van Moolenbroek union sockaddr_any * mask, union sockaddr_any * gateway, 27*ef8d499eSDavid van Moolenbroek union sockaddr_any * ifp, union sockaddr_any * ifa, 28*ef8d499eSDavid van Moolenbroek struct ifdev ** ifdev, unsigned int * flags, unsigned int * use); 29*ef8d499eSDavid van Moolenbroek unsigned int route_get_flags(const struct route_entry * route); 30*ef8d499eSDavid van Moolenbroek struct ifdev *route_get_ifdev(const struct route_entry * route); 31*ef8d499eSDavid van Moolenbroek int route_is_ipv6(const struct route_entry * route); 32*ef8d499eSDavid van Moolenbroek struct route_entry *route_enum_v4(struct route_entry * last); 33*ef8d499eSDavid van Moolenbroek struct route_entry *route_enum_v6(struct route_entry * last); 34*ef8d499eSDavid van Moolenbroek int route_output_v4(struct ifdev * ifdev, const ip4_addr_t * ipaddr, 35*ef8d499eSDavid van Moolenbroek err_t * err); 36*ef8d499eSDavid van Moolenbroek int route_output_v6(struct ifdev * ifdev, const ip6_addr_t * ipaddr, 37*ef8d499eSDavid van Moolenbroek err_t * err); 38*ef8d499eSDavid van Moolenbroek 39*ef8d499eSDavid van Moolenbroek #endif /* !MINIX_NET_LWIP_ROUTE_H */ 40