12632SN/A/*
22632SN/A * route.c
32632SN/A *
42632SN/A * Kernel route table operations.
52632SN/A *
62632SN/A * Copyright (c) 2000 Dug Song <dugsong@monkey.org>
72632SN/A *
82632SN/A * $Id: route.h,v 1.6 2002/02/04 04:02:22 dugsong Exp $
92632SN/A */
102632SN/A
112632SN/A#ifndef DNET_ROUTE_H
122632SN/A#define DNET_ROUTE_H
132632SN/A
142632SN/A/*
152632SN/A * Routing table entry
162632SN/A */
172632SN/Astruct route_entry {
182632SN/A        struct addr	route_dst;	/* destination address */
192632SN/A        struct addr	route_gw;	/* gateway address */
202632SN/A};
212632SN/A
222632SN/Atypedef struct route_handle route_t;
232632SN/A
242632SN/Atypedef int (*route_handler)(const struct route_entry *entry, void *arg);
252632SN/A
262632SN/A__BEGIN_DECLS
272632SN/Aroute_t	*route_open(void);
282632SN/Aint	 route_add(route_t *r, const struct route_entry *entry);
292632SN/Aint	 route_delete(route_t *r, const struct route_entry *entry);
302632SN/Aint	 route_get(route_t *r, struct route_entry *entry);
312632SN/Aint	 route_loop(route_t *r, route_handler callback, void *arg);
322632SN/Aroute_t	*route_close(route_t *r);
332632SN/A__END_DECLS
342632SN/A
352632SN/A#endif /* DNET_ROUTE_H */
36