summaryrefslogtreecommitdiffstats
path: root/sys/net/if_var.h
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2013-02-11 10:58:22 +0000
committerglebius <glebius@FreeBSD.org>2013-02-11 10:58:22 +0000
commita47c0295c5e9d047b28372a33fcabe99a178107f (patch)
treea4b3a19176d84f646cb98e85f72832bbb0fa72ae /sys/net/if_var.h
parentc990c7deec1df4c9024ad3f642005c53e9d7f9c9 (diff)
downloadFreeBSD-src-a47c0295c5e9d047b28372a33fcabe99a178107f.zip
FreeBSD-src-a47c0295c5e9d047b28372a33fcabe99a178107f.tar.gz
Resolve source address selection in presense of CARP. Add a couple
of helper functions: - carp_master() - boolean function which is true if an address is in the MASTER state. - ifa_preferred() - boolean function that compares two addresses, and is aware of CARP. Utilize ifa_preferred() in ifa_ifwithnet(). The previous version of patch also changed source address selection logic in jails using carp_master(), but we failed to negotiate this part with Bjoern. May be we will approach this problem again later. Reported & tested by: Anton Yuzhaninov <citrin citrin.ru> Sponsored by: Nginx, Inc
Diffstat (limited to 'sys/net/if_var.h')
-rw-r--r--sys/net/if_var.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/net/if_var.h b/sys/net/if_var.h
index 7fcbd38..6ccf364 100644
--- a/sys/net/if_var.h
+++ b/sys/net/if_var.h
@@ -939,8 +939,8 @@ struct ifaddr *ifa_ifwithdstaddr(struct sockaddr *);
struct ifaddr *ifa_ifwithnet(struct sockaddr *, int);
struct ifaddr *ifa_ifwithroute(int, struct sockaddr *, struct sockaddr *);
struct ifaddr *ifa_ifwithroute_fib(int, struct sockaddr *, struct sockaddr *, u_int);
-
struct ifaddr *ifaof_ifpforaddr(struct sockaddr *, struct ifnet *);
+int ifa_preferred(struct ifaddr *, struct ifaddr *);
int if_simloop(struct ifnet *ifp, struct mbuf *m, int af, int hlen);
OpenPOWER on IntegriCloud