summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <donaldsharp72@gmail.com>2024-05-20 09:57:20 -0400
committerGitHub <noreply@github.com>2024-05-20 09:57:20 -0400
commit0babb933e73a1355786ac3722fb882d7a4bc0d79 (patch)
tree3c61811b99e4d9659f390bed06ef89c1b00f6e19
parent815e40c0c1ae998489f2e081c3490ab7807ad4b4 (diff)
parentedfc03614f0c5e14cffde25afae111908cb3bf30 (diff)
Merge pull request #16022 from opensourcerouting/fix/match_peer
bgpd: Fix `match peer` when switching between IPv4/IPv6/interface
-rw-r--r--bgpd/bgp_routemap.c38
1 files changed, 17 insertions, 21 deletions
diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c
index df5c2557bd..dc26a1f5dd 100644
--- a/bgpd/bgp_routemap.c
+++ b/bgpd/bgp_routemap.c
@@ -5234,27 +5234,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);
}