]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: Move some non BGP-specific route-map functions to lib
authorDonatas Abraitis <donatas@opensourcerouting.org>
Thu, 10 Oct 2024 13:50:38 +0000 (16:50 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Thu, 10 Oct 2024 13:52:57 +0000 (16:52 +0300)
They are managed under `frr-route-map`, not under `frr-bgp-route-map`.

Fixes: https://github.com/FRRouting/frr/issues/17055
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd/bgp_routemap.c
lib/routemap_cli.c

index 583b9e7980f5e47adc6046a6048bd51d483e715f..4900bb3ce35142c66771c92215524c8c22b9e0d3 100644 (file)
@@ -7232,43 +7232,6 @@ DEFUN_YANG (no_set_aggregator_as,
        return nb_cli_apply_changes(vty, NULL);
 }
 
-DEFUN_YANG (match_ipv6_next_hop,
-           match_ipv6_next_hop_cmd,
-           "match ipv6 next-hop ACCESSLIST6_NAME",
-           MATCH_STR
-           IPV6_STR
-           "Match IPv6 next-hop address of route\n"
-           "IPv6 access-list name\n")
-{
-       const char *xpath =
-               "./match-condition[condition='frr-route-map:ipv6-next-hop-list']";
-       char xpath_value[XPATH_MAXLEN];
-
-       nb_cli_enqueue_change(vty, xpath, NB_OP_CREATE, NULL);
-       snprintf(xpath_value, sizeof(xpath_value),
-                "%s/rmap-match-condition/list-name", xpath);
-       nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY,
-                             argv[argc - 1]->arg);
-
-       return nb_cli_apply_changes(vty, NULL);
-}
-
-DEFUN_YANG (no_match_ipv6_next_hop,
-           no_match_ipv6_next_hop_cmd,
-           "no match ipv6 next-hop [ACCESSLIST6_NAME]",
-           NO_STR
-           MATCH_STR
-           IPV6_STR
-           "Match IPv6 next-hop address of route\n"
-           "IPv6 access-list name\n")
-{
-       const char *xpath =
-               "./match-condition[condition='frr-route-map:ipv6-next-hop-list']";
-
-       nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
-       return nb_cli_apply_changes(vty, NULL);
-}
-
 DEFUN_YANG (match_ipv6_next_hop_address,
            match_ipv6_next_hop_address_cmd,
            "match ipv6 next-hop address X:X::X:X",
@@ -7326,45 +7289,6 @@ ALIAS_HIDDEN (no_match_ipv6_next_hop_address,
              "Match IPv6 next-hop address of route\n"
              "IPv6 address of next hop\n")
 
-DEFUN_YANG (match_ipv6_next_hop_prefix_list,
-           match_ipv6_next_hop_prefix_list_cmd,
-           "match ipv6 next-hop prefix-list PREFIXLIST_NAME",
-           MATCH_STR
-           IPV6_STR
-           "Match IPv6 next-hop address of route\n"
-           "Match entries by prefix-list\n"
-           "IPv6 prefix-list name\n")
-{
-       const char *xpath =
-               "./match-condition[condition='frr-route-map:ipv6-next-hop-prefix-list']";
-       char xpath_value[XPATH_MAXLEN];
-
-       nb_cli_enqueue_change(vty, xpath, NB_OP_CREATE, NULL);
-       snprintf(xpath_value, sizeof(xpath_value),
-                "%s/rmap-match-condition/list-name", xpath);
-       nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY,
-                             argv[argc - 1]->arg);
-
-       return nb_cli_apply_changes(vty, NULL);
-}
-
-DEFUN_YANG (no_match_ipv6_next_hop_prefix_list,
-           no_match_ipv6_next_hop_prefix_list_cmd,
-           "no match ipv6 next-hop prefix-list [PREFIXLIST_NAME]",
-           NO_STR
-           MATCH_STR
-           IPV6_STR
-           "Match IPv6 next-hop address of route\n"
-           "Match entries by prefix-list\n"
-           "IPv6 prefix-list name\n")
-{
-       const char *xpath =
-               "./match-condition[condition='frr-route-map:ipv6-next-hop-prefix-list']";
-
-       nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
-       return nb_cli_apply_changes(vty, NULL);
-}
-
 DEFPY_YANG (match_ipv4_next_hop,
        match_ipv4_next_hop_cmd,
        "match ip next-hop address A.B.C.D",
@@ -8037,12 +7961,8 @@ void bgp_route_map_init(void)
        route_map_install_set(&route_set_ipv6_nexthop_peer_cmd);
        route_map_install_match(&route_match_rpki_extcommunity_cmd);
 
-       install_element(RMAP_NODE, &match_ipv6_next_hop_cmd);
        install_element(RMAP_NODE, &match_ipv6_next_hop_address_cmd);
-       install_element(RMAP_NODE, &match_ipv6_next_hop_prefix_list_cmd);
-       install_element(RMAP_NODE, &no_match_ipv6_next_hop_cmd);
        install_element(RMAP_NODE, &no_match_ipv6_next_hop_address_cmd);
-       install_element(RMAP_NODE, &no_match_ipv6_next_hop_prefix_list_cmd);
        install_element(RMAP_NODE, &match_ipv6_next_hop_old_cmd);
        install_element(RMAP_NODE, &no_match_ipv6_next_hop_old_cmd);
        install_element(RMAP_NODE, &match_ipv4_next_hop_cmd);
index f22d5880807c039c5bd9813b4c4197c66d33d011..f64c3c2376a908f6a027238398c5566738354126 100644 (file)
@@ -417,6 +417,74 @@ DEFPY_YANG(
        return nb_cli_apply_changes(vty, NULL);
 }
 
+DEFUN_YANG (match_ipv6_next_hop,
+           match_ipv6_next_hop_cmd,
+           "match ipv6 next-hop ACCESSLIST6_NAME",
+           MATCH_STR
+           IPV6_STR
+           "Match IPv6 next-hop address of route\n"
+           "IPv6 access-list name\n")
+{
+       const char *xpath = "./match-condition[condition='frr-route-map:ipv6-next-hop-list']";
+       char xpath_value[XPATH_MAXLEN];
+
+       nb_cli_enqueue_change(vty, xpath, NB_OP_CREATE, NULL);
+       snprintf(xpath_value, sizeof(xpath_value), "%s/rmap-match-condition/list-name", xpath);
+       nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY, argv[argc - 1]->arg);
+
+       return nb_cli_apply_changes(vty, NULL);
+}
+
+DEFUN_YANG (no_match_ipv6_next_hop,
+           no_match_ipv6_next_hop_cmd,
+           "no match ipv6 next-hop [ACCESSLIST6_NAME]",
+           NO_STR
+           MATCH_STR
+           IPV6_STR
+           "Match IPv6 next-hop address of route\n"
+           "IPv6 access-list name\n")
+{
+       const char *xpath = "./match-condition[condition='frr-route-map:ipv6-next-hop-list']";
+
+       nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
+       return nb_cli_apply_changes(vty, NULL);
+}
+
+DEFUN_YANG (match_ipv6_next_hop_prefix_list,
+           match_ipv6_next_hop_prefix_list_cmd,
+           "match ipv6 next-hop prefix-list PREFIXLIST_NAME",
+           MATCH_STR
+           IPV6_STR
+           "Match IPv6 next-hop address of route\n"
+           "Match entries by prefix-list\n"
+           "IPv6 prefix-list name\n")
+{
+       const char *xpath = "./match-condition[condition='frr-route-map:ipv6-next-hop-prefix-list']";
+       char xpath_value[XPATH_MAXLEN];
+
+       nb_cli_enqueue_change(vty, xpath, NB_OP_CREATE, NULL);
+       snprintf(xpath_value, sizeof(xpath_value), "%s/rmap-match-condition/list-name", xpath);
+       nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY, argv[argc - 1]->arg);
+
+       return nb_cli_apply_changes(vty, NULL);
+}
+
+DEFUN_YANG (no_match_ipv6_next_hop_prefix_list,
+           no_match_ipv6_next_hop_prefix_list_cmd,
+           "no match ipv6 next-hop prefix-list [PREFIXLIST_NAME]",
+           NO_STR
+           MATCH_STR
+           IPV6_STR
+           "Match IPv6 next-hop address of route\n"
+           "Match entries by prefix-list\n"
+           "IPv6 prefix-list name\n")
+{
+       const char *xpath = "./match-condition[condition='frr-route-map:ipv6-next-hop-prefix-list']";
+
+       nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
+       return nb_cli_apply_changes(vty, NULL);
+}
+
 DEFPY_YANG(
        match_ipv6_next_hop_type, match_ipv6_next_hop_type_cmd,
        "match ipv6 next-hop type <blackhole>$type",
@@ -1665,6 +1733,11 @@ void route_map_cli_init(void)
        install_element(RMAP_NODE, &match_ipv6_next_hop_type_cmd);
        install_element(RMAP_NODE, &no_match_ipv6_next_hop_type_cmd);
 
+       install_element(RMAP_NODE, &match_ipv6_next_hop_cmd);
+       install_element(RMAP_NODE, &match_ipv6_next_hop_prefix_list_cmd);
+       install_element(RMAP_NODE, &no_match_ipv6_next_hop_cmd);
+       install_element(RMAP_NODE, &no_match_ipv6_next_hop_prefix_list_cmd);
+
        install_element(RMAP_NODE, &match_metric_cmd);
        install_element(RMAP_NODE, &no_match_metric_cmd);