Changeset View
Changeset View
Standalone View
Standalone View
head/sys/net/radix_mpath.h
Show First 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | |||||
int rn_mpath_capable(struct radix_head *); | int rn_mpath_capable(struct radix_head *); | ||||
struct radix_node *rn_mpath_next(struct radix_node *); | struct radix_node *rn_mpath_next(struct radix_node *); | ||||
u_int32_t rn_mpath_count(struct radix_node *); | u_int32_t rn_mpath_count(struct radix_node *); | ||||
struct rtentry *rt_mpath_matchgate(struct rtentry *, struct sockaddr *); | struct rtentry *rt_mpath_matchgate(struct rtentry *, struct sockaddr *); | ||||
int rt_mpath_conflict(struct rib_head *, struct rtentry *, | int rt_mpath_conflict(struct rib_head *, struct rtentry *, | ||||
struct sockaddr *); | struct sockaddr *); | ||||
void rtalloc_mpath_fib(struct route *, u_int32_t, u_int); | void rtalloc_mpath_fib(struct route *, u_int32_t, u_int); | ||||
struct rtentry *rt_mpath_select(struct rtentry *, uint32_t); | struct rtentry *rt_mpath_select(struct rtentry *, uint32_t); | ||||
struct rtentry *rt_mpath_selectrte(struct rtentry *, uint32_t); | |||||
int rt_mpath_deldup(struct rtentry *, struct rtentry *); | int rt_mpath_deldup(struct rtentry *, struct rtentry *); | ||||
int rn4_mpath_inithead(void **, int, u_int); | int rn4_mpath_inithead(void **, int, u_int); | ||||
int rn6_mpath_inithead(void **, int, u_int); | int rn6_mpath_inithead(void **, int, u_int); | ||||
static inline struct rtentry * | |||||
rt_mpath_next(struct rtentry *rt) | |||||
{ | |||||
struct radix_node *next, *rn; | |||||
rn = (struct radix_node *)rt; | |||||
if (!rn->rn_dupedkey) | |||||
return (NULL); | |||||
next = rn->rn_dupedkey; | |||||
if (rn->rn_mask == next->rn_mask) | |||||
return (struct rtentry *)next; | |||||
else | |||||
return (NULL); | |||||
} | |||||
#endif | #endif | ||||
#endif /* _NET_RADIX_MPATH_H_ */ | #endif /* _NET_RADIX_MPATH_H_ */ |