When RADIX_MPATH is enabled, the route selection is not rotating
through the multipath entries. The hash value was a signed integer and was always giving a -1 value. PR: 123991 Submitted by: Barrett Lyon
This commit is contained in:
parent
79fe3d02d7
commit
a5f2711eee
@ -76,10 +76,10 @@ rn_mpath_next(struct radix_node *rn)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int
|
||||
u_int32_t
|
||||
rn_mpath_count(struct radix_node *rn)
|
||||
{
|
||||
int i;
|
||||
u_int32_t i;
|
||||
|
||||
i = 1;
|
||||
while ((rn = rn_mpath_next(rn)) != NULL)
|
||||
@ -255,10 +255,10 @@ rt_mpath_conflict(struct radix_node_head *rnh, struct rtentry *rt,
|
||||
}
|
||||
|
||||
void
|
||||
rtalloc_mpath_fib(struct route *ro, int hash, u_int fibnum)
|
||||
rtalloc_mpath_fib(struct route *ro, u_int32_t hash, u_int fibnum)
|
||||
{
|
||||
struct radix_node *rn0, *rn;
|
||||
int n;
|
||||
u_int32_t n;
|
||||
|
||||
/*
|
||||
* XXX we don't attempt to lookup cached route again; what should
|
||||
|
@ -46,11 +46,11 @@ struct rtentry;
|
||||
struct sockaddr;
|
||||
int rn_mpath_capable(struct radix_node_head *);
|
||||
struct radix_node *rn_mpath_next(struct radix_node *);
|
||||
int rn_mpath_count(struct radix_node *);
|
||||
u_int32_t rn_mpath_count(struct radix_node *);
|
||||
struct rtentry *rt_mpath_matchgate(struct rtentry *, struct sockaddr *);
|
||||
int rt_mpath_conflict(struct radix_node_head *, struct rtentry *,
|
||||
struct sockaddr *);
|
||||
void rtalloc_mpath_fib(struct route *, int, u_int);
|
||||
void rtalloc_mpath_fib(struct route *, u_int32_t, u_int);
|
||||
#define rtalloc_mpath(_route, _hash) rtalloc_mpath_fib((_route), (_hash), 0)
|
||||
struct radix_node *rn_mpath_lookup(void *, void *,
|
||||
struct radix_node_head *);
|
||||
|
Loading…
Reference in New Issue
Block a user