diff --git a/zebra/redistribute.c b/zebra/redistribute.c index 9bf7e2cbb..27c8d03f8 100644 --- a/zebra/redistribute.c +++ b/zebra/redistribute.c @@ -5,6 +5,10 @@ #include +#ifdef GNU_LINUX +#include //RT_TABLE_XXX +#endif + #include "vector.h" #include "vty.h" #include "command.h" @@ -154,6 +158,12 @@ static void zebra_redistribute(struct zserv *client, int type, if (!zebra_check_addr(&rn->p)) continue; +#ifdef GNU_LINUX + if ( (newre->table != RT_TABLE_COMPAT && newre->table != RT_TABLE_DEFAULT && newre->table != RT_TABLE_MAIN && newre->table != RT_TABLE_LOCAL) && newre->vrf_id == 0) { + continue; + } +#endif + if (is_table_direct) redistribute_table_direct(client, ZEBRA_REDISTRIBUTE_ROUTE_ADD, rn, newre);