Merge pull request #16047 from FRRouting/mergify/bp/stable/10.0/pr-16022

bgpd: Fix `match peer` when switching between IPv4/IPv6/interface (backport #16022)
This commit is contained in:
Donald Sharp 2024-05-20 15:20:12 -04:00 committed by GitHub
commit 1608b27c5c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -5219,27 +5219,23 @@ DEFPY_YANG (match_peer,
nb_cli_enqueue_change(vty, xpath, NB_OP_CREATE, NULL);
if (addrv4_str) {
snprintf(
xpath_value, sizeof(xpath_value),
"%s/rmap-match-condition/frr-bgp-route-map:peer-ipv4-address",
xpath);
nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY,
addrv4_str);
} else if (addrv6_str) {
snprintf(
xpath_value, sizeof(xpath_value),
"%s/rmap-match-condition/frr-bgp-route-map:peer-ipv6-address",
xpath);
nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY,
addrv6_str);
} else {
snprintf(
xpath_value, sizeof(xpath_value),
"%s/rmap-match-condition/frr-bgp-route-map:peer-interface",
xpath);
nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY, intf);
}
snprintf(xpath_value, sizeof(xpath_value),
"%s/rmap-match-condition/frr-bgp-route-map:peer-ipv4-address",
xpath);
nb_cli_enqueue_change(vty, xpath_value,
addrv4_str ? NB_OP_MODIFY : NB_OP_DESTROY,
addrv4_str);
snprintf(xpath_value, sizeof(xpath_value),
"%s/rmap-match-condition/frr-bgp-route-map:peer-ipv6-address",
xpath);
nb_cli_enqueue_change(vty, xpath_value,
addrv6_str ? NB_OP_MODIFY : NB_OP_DESTROY,
addrv6_str);
snprintf(xpath_value, sizeof(xpath_value),
"%s/rmap-match-condition/frr-bgp-route-map:peer-interface",
xpath);
nb_cli_enqueue_change(vty, xpath_value,
intf ? NB_OP_MODIFY : NB_OP_DESTROY, intf);
return nb_cli_apply_changes(vty, NULL);
}