aboutsummaryrefslogtreecommitdiffstats
path: root/pingu_iface.c
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2011-08-15 17:00:47 +0200
committerNatanael Copa <ncopa@alpinelinux.org>2011-08-15 17:00:47 +0200
commitb8496d9a1211144b86eade1a8617e58e20d13eaa (patch)
tree2f417c4b60bb82d7a643fc7ff6bbfd58f6e284ca /pingu_iface.c
parentfeddb5d300640855717c4eca3002a0e4887f5da3 (diff)
downloadpingu-b8496d9a1211144b86eade1a8617e58e20d13eaa.tar.bz2
pingu-b8496d9a1211144b86eade1a8617e58e20d13eaa.tar.xz
pingu: implement load balancing with nexthops
We do loadbalancing by creating a new default gw with nexthops
Diffstat (limited to 'pingu_iface.c')
-rw-r--r--pingu_iface.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/pingu_iface.c b/pingu_iface.c
index 1cf4ca6..4eef78b 100644
--- a/pingu_iface.c
+++ b/pingu_iface.c
@@ -154,6 +154,7 @@ void pingu_iface_gw_action(struct pingu_iface *iface,
log_debug("%s: removed default gateway", iface->name);
break;
}
+ kernel_route_multipath(action, &iface_list, RT_TABLE_MAIN);
}
void pingu_iface_update_routes(struct pingu_iface *iface, int action)
@@ -162,6 +163,7 @@ void pingu_iface_update_routes(struct pingu_iface *iface, int action)
list_for_each_entry(route, &iface->gateway_list, gateway_list_entry) {
kernel_route_modify(action, route, iface, RT_TABLE_MAIN);
}
+ kernel_route_multipath(action, &iface_list, &iface->default_gw, RT_TABLE_MAIN);
}
int pingu_iface_set_route_table(struct pingu_iface *iface, int table)