Hi all,
I'm using quagga-0.99, I set a route-map by vtysh like this:
vtysh# prefix-list ARP2HOST_PL3 ...
vtysh# route-map ARP2HOST_RM2 deny sequence 6
vtysh# match interface lo
vtysh# route-map ARP2HOST_RM2, permit, sequence 10
vtysh# match ip address prefix-list ARP2HOST_PL3
But I found there are two SAME route-map exist in zebra and bgpd, like this:
vtysh# show route-map
ZEBRA:
route-map ARP2HOST_RM2, deny, sequence 6
Match clauses:
interface eth0
Set clauses:
Call clause:
Action:
Exit routemap
route-map ARP2HOST_RM2, permit, sequence 10
Match clauses:
ip address prefix-list ARP2HOST_PL3
Set clauses:
Call clause:
Action:
Exit routemap
BGP:
route-map ARP2HOST_RM2, deny, sequence 6
Match clauses:
Set clauses:
Call clause:
Action:
Exit routemap
route-map ARP2HOST_RM2, permit, sequence 10
Match clauses:
ip address prefix-list ARP2HOST_PL3
Set clauses:
metric 13
community 0:100
Call clause:
Action:
Exit routemap
And when I use command
vtysh# redistribute static route-map ARP2HOST_RM2
the redistribute will NOT process any static route SOMETIME, not always !!!
Then I compare by add route-map through zebra.conf and bgpd.conf, like this:
zebra.conf:
route-map ARP2HOST_RM2 deny sequence 6
match interface lo
bgpd.conf:
prefix-list ARP2HOST_PL3 ...
route-map ARP2HOST_RM2, permit, sequence 10
match ip address prefix-list ARP2HOST_PL3
And show route-map result beome:
vtysh# show route-map
ZEBRA:
route-map ARP2HOST_RM2, deny, sequence 6
Match clauses:
interface eth0
Set clauses:
Call clause:
Action:
Exit routemap
BGP:
route-map ARP2HOST_RM2, permit, sequence 10
Match clauses:
ip address prefix-list ARP2HOST_PL3
Set clauses:
metric 13
community 0:100
Call clause:
Action:
Exit routemap
Then the redistribute will work.
focus on code, I guess ALL of zebra(zebra_routemap.c) and bgpd(bgp_routemap.c) will process route-map from vtysh command, which cause this bug?
If it is, how to set route-map correctly by vtysh?
Thanks !!!