Configuration excerpt:
policy {
route-map CL_OSPF_IN {
rule 10 {
action deny
match {
ip {
address {
prefix-len 0
}
}
}
}
rule 20 {
action permit
}
}
route-map CL_OSPF_IN6 {
rule 10 {
action deny
match {
ipv6 {
address {
prefix-len 0
}
}
}
}
rule 20 {
action permit
}
}
}
protocols {
ospf {
interface eth0 {
area 0
}
log-adjacency-changes {
}
parameters {
router-id 1.2.3.4
}
redistribute {
static {
}
}
route-map CL_OSPF_IN
}
ospfv3 {
interface eth0 {
area 0
}
log-adjacency-changes {
}
parameters {
router-id 1.2.3.4
}
redistribute {
static {
}
}
route-map CL_OSPF_IN6
}The resulting /etc/frr/frr.conf includes:
route-map CL_OSPF_IN6 deny 10 match ipv6 address prefix-len 0 exit ! route-map CL_OSPF_IN6 permit 20 exit ! route-map CL_OSPF_IN deny 10 match ip address prefix-len 0 exit ! route-map CL_OSPF_IN permit 20 exit ! ip protocol ospf route-map CL_OSPF_IN
but no equivalent of the last line for ospf6. I think the code to apply route maps is simply absent from /usr/libexec/vyos/conf_mode/protocols_ospfv3.py:
root@glenachulish:/usr/libexec/vyos/conf_mode# grep frr_cfg.modify_section protocols_ospf.py
frr_cfg.modify_section('(\s+)?ip protocol ospf route-map [-a-zA-Z0-9.]+', stop_pattern='(\s|!)')
frr_cfg.modify_section(f'^router ospf{vrf}', stop_pattern='^exit', remove_stop_mark=True)
frr_cfg.modify_section(f'^interface {interface}{vrf}', stop_pattern='^exit', remove_stop_mark=True)
root@glenachulish:/usr/libexec/vyos/conf_mode# grep frr_cfg.modify_section protocols_ospfv3.py
frr_cfg.modify_section(f'^router ospf6{vrf}', stop_pattern='^exit', remove_stop_mark=True)
frr_cfg.modify_section(f'^interface {interface}{vrf}', stop_pattern='^exit', remove_stop_mark=True)