From d13c3b4fcf802f904ef47ad82fdc9763fc704fdf Mon Sep 17 00:00:00 2001 From: Mathieu Goessens Date: Tue, 23 Jun 2009 15:59:45 +0100 Subject: [zebra] linux policy routing support with ipv6 Quagga support linux policy routing (ip route ... table $X) with zebra.conf table $X option. It works fine on ipv4. On ipv6 the parameter is ignored (table 0 is used). * zebra/...: Pass appropriate table arg to rib_{add,delete}_ipv6 --- zebra/zserv.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'zebra/zserv.c') diff --git a/zebra/zserv.c b/zebra/zserv.c index 05380d62..a566e6d4 100644 --- a/zebra/zserv.c +++ b/zebra/zserv.c @@ -964,10 +964,10 @@ zread_ipv6_add (struct zserv *client, u_short length) api.metric = 0; if (IN6_IS_ADDR_UNSPECIFIED (&nexthop)) - rib_add_ipv6 (api.type, api.flags, &p, NULL, ifindex, 0, api.metric, + rib_add_ipv6 (api.type, api.flags, &p, NULL, ifindex, zebrad.rtm_table_default, api.metric, api.distance); else - rib_add_ipv6 (api.type, api.flags, &p, &nexthop, ifindex, 0, api.metric, + rib_add_ipv6 (api.type, api.flags, &p, &nexthop, ifindex, zebrad.rtm_table_default, api.metric, api.distance); return 0; } @@ -1030,9 +1030,9 @@ zread_ipv6_delete (struct zserv *client, u_short length) api.metric = 0; if (IN6_IS_ADDR_UNSPECIFIED (&nexthop)) - rib_delete_ipv6 (api.type, api.flags, &p, NULL, ifindex, 0); + rib_delete_ipv6 (api.type, api.flags, &p, NULL, ifindex, client->rtm_table); else - rib_delete_ipv6 (api.type, api.flags, &p, &nexthop, ifindex, 0); + rib_delete_ipv6 (api.type, api.flags, &p, &nexthop, ifindex, client->rtm_table); return 0; } -- cgit v1.2.1