Changeset View
Changeset View
Standalone View
Standalone View
sys/net/route.h
Show First 20 Lines • Show All 449 Lines • ▼ Show 20 Lines | |||||
void rt_missmsg_fib(int, struct rt_addrinfo *, int, int, int); | void rt_missmsg_fib(int, struct rt_addrinfo *, int, int, int); | ||||
void rt_newaddrmsg(int, struct ifaddr *, int, struct rtentry *); | void rt_newaddrmsg(int, struct ifaddr *, int, struct rtentry *); | ||||
void rt_newaddrmsg_fib(int, struct ifaddr *, int, struct rtentry *, int); | void rt_newaddrmsg_fib(int, struct ifaddr *, int, struct rtentry *, int); | ||||
int rt_addrmsg(int, struct ifaddr *, int); | int rt_addrmsg(int, struct ifaddr *, int); | ||||
int rt_routemsg(int, struct ifnet *ifp, int, struct rtentry *, int); | int rt_routemsg(int, struct ifnet *ifp, int, struct rtentry *, int); | ||||
void rt_newmaddrmsg(int, struct ifmultiaddr *); | void rt_newmaddrmsg(int, struct ifmultiaddr *); | ||||
int rt_setgate(struct rtentry *, struct sockaddr *, struct sockaddr *); | int rt_setgate(struct rtentry *, struct sockaddr *, struct sockaddr *); | ||||
void rt_maskedcopy(struct sockaddr *, struct sockaddr *, struct sockaddr *); | void rt_maskedcopy(struct sockaddr *, struct sockaddr *, struct sockaddr *); | ||||
struct rib_head *rt_table_init(int); | struct rib_head *rt_table_init(int, int, u_int); | ||||
void rt_table_destroy(struct rib_head *); | void rt_table_destroy(struct rib_head *); | ||||
u_int rt_tables_get_gen(int table, int fam); | u_int rt_tables_get_gen(int table, int fam); | ||||
int rtsock_addrmsg(int, struct ifaddr *, int); | int rtsock_addrmsg(int, struct ifaddr *, int); | ||||
int rtsock_routemsg(int, struct ifnet *ifp, int, struct rtentry *, int); | int rtsock_routemsg(int, struct ifnet *ifp, int, struct rtentry *, int); | ||||
/* | /* | ||||
* Note the following locking behavior: | * Note the following locking behavior: | ||||
* | * | ||||
* rtalloc1() returns a locked rtentry | * rtalloc1() returns a locked rtentry | ||||
* | * | ||||
* rtfree() and RTFREE_LOCKED() require a locked rtentry | * rtfree() and RTFREE_LOCKED() require a locked rtentry | ||||
* | * | ||||
* RTFREE() uses an unlocked entry. | * RTFREE() uses an unlocked entry. | ||||
*/ | */ | ||||
void rtfree(struct rtentry *); | void rtfree(struct rtentry *); | ||||
void rt_updatemtu(struct ifnet *); | void rt_updatemtu(struct ifnet *); | ||||
typedef int rt_walktree_f_t(struct rtentry *, void *); | typedef int rt_walktree_f_t(struct rtentry *, void *); | ||||
typedef void rt_setwarg_t(struct rib_head *, uint32_t, int, void *); | typedef void rt_setwarg_t(struct rib_head *, uint32_t, int, void *); | ||||
void rib_walk_del(u_int fibnum, int family, rt_filter_f_t *filter_f, | |||||
void *arg, int report); | |||||
void rt_foreach_fib_walk(int af, rt_setwarg_t *, rt_walktree_f_t *, void *); | void rt_foreach_fib_walk(int af, rt_setwarg_t *, rt_walktree_f_t *, void *); | ||||
void rt_foreach_fib_walk_del(int af, rt_filter_f_t *filter_f, void *arg); | void rt_foreach_fib_walk_del(int af, rt_filter_f_t *filter_f, void *arg); | ||||
void rt_flushifroutes_af(struct ifnet *, int); | void rt_flushifroutes_af(struct ifnet *, int); | ||||
void rt_flushifroutes(struct ifnet *ifp); | void rt_flushifroutes(struct ifnet *ifp); | ||||
/* XXX MRT COMPAT VERSIONS THAT SET UNIVERSE to 0 */ | /* XXX MRT COMPAT VERSIONS THAT SET UNIVERSE to 0 */ | ||||
/* Thes are used by old code not yet converted to use multiple FIBS */ | /* Thes are used by old code not yet converted to use multiple FIBS */ | ||||
struct rtentry *rtalloc1(struct sockaddr *, int, u_long); | struct rtentry *rtalloc1(struct sockaddr *, int, u_long); | ||||
int rtinit(struct ifaddr *, int, int); | int rtinit(struct ifaddr *, int, int); | ||||
/* XXX MRT NEW VERSIONS THAT USE FIBs | /* XXX MRT NEW VERSIONS THAT USE FIBs | ||||
* For now the protocol indepedent versions are the same as the AF_INET ones | * For now the protocol indepedent versions are the same as the AF_INET ones | ||||
* but this will change.. | * but this will change.. | ||||
*/ | */ | ||||
void rtalloc_ign_fib(struct route *ro, u_long ignflags, u_int fibnum); | void rtalloc_ign_fib(struct route *ro, u_long ignflags, u_int fibnum); | ||||
struct rtentry *rtalloc1_fib(struct sockaddr *, int, u_long, u_int); | struct rtentry *rtalloc1_fib(struct sockaddr *, int, u_long, u_int); | ||||
int rtioctl_fib(u_long, caddr_t, u_int); | int rtioctl_fib(u_long, caddr_t, u_int); | ||||
void rtredirect_fib(struct sockaddr *, struct sockaddr *, | int rtredirect_fib(struct sockaddr *, struct sockaddr *, | ||||
struct sockaddr *, int, struct sockaddr *, u_int); | int, struct sockaddr *, int, u_int); | ||||
int rtrequest_fib(int, struct sockaddr *, | int rtrequest_fib(int, struct sockaddr *, | ||||
struct sockaddr *, struct sockaddr *, int, struct rtentry **, u_int); | struct sockaddr *, struct sockaddr *, int, struct rtentry **, u_int); | ||||
int rtrequest1_fib(int, struct rt_addrinfo *, struct rtentry **, u_int); | int rtrequest1_fib(int, struct rt_addrinfo *, struct rtentry **, u_int); | ||||
int rib_lookup_info(uint32_t, const struct sockaddr *, uint32_t, uint32_t, | int rib_lookup_info(uint32_t, const struct sockaddr *, uint32_t, uint32_t, | ||||
struct rt_addrinfo *); | struct rt_addrinfo *); | ||||
void rib_free_info(struct rt_addrinfo *info); | void rib_free_info(struct rt_addrinfo *info); | ||||
#endif | #endif | ||||
#endif | #endif |