00001 /* 00002 * route.c 00003 * 00004 * Kernel route table operations. 00005 * 00006 * Copyright (c) 2000 Dug Song <dugsong@monkey.org> 00007 * 00008 * $Id: route.h,v 1.6 2002/02/04 04:02:22 dugsong Exp $ 00009 */ 00010 00011 #ifndef DNET_ROUTE_H 00012 #define DNET_ROUTE_H 00013 00014 /* 00015 * Routing table entry 00016 */ 00017 struct route_entry { 00018 struct addr route_dst; /* destination address */ 00019 struct addr route_gw; /* gateway address */ 00020 }; 00021 00022 typedef struct route_handle route_t; 00023 00024 typedef int (*route_handler)(const struct route_entry *entry, void *arg); 00025 00026 __BEGIN_DECLS 00027 route_t *route_open(void); 00028 int route_add(route_t *r, const struct route_entry *entry); 00029 int route_delete(route_t *r, const struct route_entry *entry); 00030 int route_get(route_t *r, struct route_entry *entry); 00031 int route_loop(route_t *r, route_handler callback, void *arg); 00032 route_t *route_close(route_t *r); 00033 __END_DECLS 00034 00035 #endif /* DNET_ROUTE_H */