From d9d00a689ea636af58f89cb62291245bb2a1bc7d Mon Sep 17 00:00:00 2001 From: Paul Jakma Date: Tue, 10 Apr 2007 19:28:04 +0000 Subject: [testzebra] stubs should call kernel_address_add on IP address install 2007-04-08 Paul Jakma * {ioctl,kernel}_null.c: Install of IP address should reflect back to zebra via kernel_address_add..., makes testzebra more useful. --- zebra/ChangeLog | 6 ++++++ zebra/ioctl_null.c | 18 ++++++++++++++---- zebra/kernel_null.c | 19 +++++++++++++++++-- 3 files changed, 37 insertions(+), 6 deletions(-) (limited to 'zebra') diff --git a/zebra/ChangeLog b/zebra/ChangeLog index 602de50d..3cd30bd5 100644 --- a/zebra/ChangeLog +++ b/zebra/ChangeLog @@ -1,3 +1,9 @@ +2007-04-08 Paul Jakma + + * {ioctl,kernel}_null.c: Install of IP address should + reflect back to zebra via kernel_address_add..., makes + testzebra more useful. + 2007-04-07 Paul Jakma * redistribute.c: (zebra_check_addr) Don't redistribute routes diff --git a/zebra/ioctl_null.c b/zebra/ioctl_null.c index d1f3db08..6d8e13a0 100644 --- a/zebra/ioctl_null.c +++ b/zebra/ioctl_null.c @@ -6,10 +6,20 @@ void ifreq_set_name (struct ifreq *a, struct interface *b) { return; } -int if_set_prefix (struct interface *a, struct connected *b) { return 0; } -#pragma weak if_unset_prefix = if_set_prefix -#pragma weak if_prefix_add_ipv6 = if_set_prefix -#pragma weak if_prefix_delete_ipv6 = if_set_prefix +int if_set_prefix (struct interface *a, struct connected *b) +{ + kernel_address_add_ipv4 (a, b); + return 0; +} + +int if_unset_prefix (struct interface *a, struct connected *b) +{ + kernel_address_delete_ipv4 (a, b); + return 0; +} + +int if_prefix_add_ipv6 (struct interface *a, struct connected *b) { return 0; } +#pragma weak if_prefix_delete_ipv6 = if_prefix_add_ipv6 int if_ioctl (u_long a, caddr_t b) { return 0; } diff --git a/zebra/kernel_null.c b/zebra/kernel_null.c index a84f4371..94b7b3c7 100644 --- a/zebra/kernel_null.c +++ b/zebra/kernel_null.c @@ -1,10 +1,12 @@ /* NULL kernel methods for testing. */ #include +#include #include "zebra/zserv.h" #include "zebra/rt.h" #include "zebra/redistribute.h" +#include "zebra/connected.h" int kernel_add_ipv4 (struct prefix *a, struct rib *b) { return 0; } #pragma weak kernel_delete_ipv4 = kernel_add_ipv4 @@ -18,8 +20,21 @@ int kernel_add_route (struct prefix_ipv4 *a, struct in_addr *b, int c, int d) { return 0; } int kernel_address_add_ipv4 (struct interface *a, struct connected *b) -{ return 0; } -#pragma weak kernel_address_delete_ipv4 = kernel_address_add_ipv4 +{ + zlog_debug ("%s", __func__); + connected_add_ipv4 (a, 0, &b->address->u.prefix4, b->address->prefixlen, + (b->destination ? &b->destination->u.prefix4 : NULL), + NULL); + return 0; +} + +int kernel_address_delete_ipv4 (struct interface *a, struct connected *b) +{ + zlog_debug ("%s", __func__); + connected_delete_ipv4 (a, 0, &b->address->u.prefix4, b->address->prefixlen, + (b->destination ? &b->destination->u.prefix4 : NULL)); + return 0; +} void kernel_init (void) { return; } #pragma weak route_read = kernel_init -- cgit v1.2.1