summaryrefslogtreecommitdiffstats
path: root/zebra/connected.c
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@diac24.net>2010-02-03 20:05:09 +0100
committerDavid Lamparter <equinox@diac24.net>2010-02-04 02:52:32 +0100
commit85e53d51f723112b44075c658431d9700facd4c0 (patch)
tree9caa82e27309a1690d8c55e3bf740fac92ecd8f9 /zebra/connected.c
parent316ef35ac30edcd56be22a551897f47ebeb91b29 (diff)
downloadquagga-85e53d51f723112b44075c658431d9700facd4c0.tar.bz2
quagga-85e53d51f723112b44075c658431d9700facd4c0.tar.xz
zebra: NetBSD: get IPSRCSEL preference value from kernel
fetch the address preference value from the kernel through SIOCGIFADDRPREF and pass it to quagga through connected_add_ipv4, which stores it in struct connected->preference. IPSRCSEL is a NetBSD kernel option(4), documented in in_getifa(9) and is available since NetBSD 4.0 but not enabled in default GENERIC.
Diffstat (limited to 'zebra/connected.c')
-rw-r--r--zebra/connected.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/zebra/connected.c b/zebra/connected.c
index 82c531e4..0c22582d 100644
--- a/zebra/connected.c
+++ b/zebra/connected.c
@@ -269,7 +269,7 @@ connected_up_ipv4 (struct interface *ifp, struct connected *ifc)
void
connected_add_ipv4 (struct interface *ifp, int flags, struct in_addr *addr,
u_char prefixlen, struct in_addr *broad,
- const char *label, unsigned scope)
+ const char *label, unsigned scope, int preference)
{
struct prefix_ipv4 *p;
struct connected *ifc;
@@ -342,6 +342,7 @@ connected_add_ipv4 (struct interface *ifp, int flags, struct in_addr *addr,
ifc->label = XSTRDUP (MTYPE_CONNECTED_LABEL, label);
ifc->scope = scope;
+ ifc->preference = preference;
/* nothing to do? */
if ((ifc = connected_implicit_withdraw (ifp, ifc)) == NULL)