Skip to content

Commit 177c6d2

Browse files
authored
Merge pull request #17066 from FRRouting/mergify/bp/dev/10.2/pr-17059
bgpd: Move some non BGP-specific route-map functions to lib (backport #17059)
2 parents c3bf0d6 + 3be4912 commit 177c6d2

File tree

2 files changed

+73
-80
lines changed

2 files changed

+73
-80
lines changed

bgpd/bgp_routemap.c

-80
Original file line numberDiff line numberDiff line change
@@ -7232,43 +7232,6 @@ DEFUN_YANG (no_set_aggregator_as,
72327232
return nb_cli_apply_changes(vty, NULL);
72337233
}
72347234

7235-
DEFUN_YANG (match_ipv6_next_hop,
7236-
match_ipv6_next_hop_cmd,
7237-
"match ipv6 next-hop ACCESSLIST6_NAME",
7238-
MATCH_STR
7239-
IPV6_STR
7240-
"Match IPv6 next-hop address of route\n"
7241-
"IPv6 access-list name\n")
7242-
{
7243-
const char *xpath =
7244-
"./match-condition[condition='frr-route-map:ipv6-next-hop-list']";
7245-
char xpath_value[XPATH_MAXLEN];
7246-
7247-
nb_cli_enqueue_change(vty, xpath, NB_OP_CREATE, NULL);
7248-
snprintf(xpath_value, sizeof(xpath_value),
7249-
"%s/rmap-match-condition/list-name", xpath);
7250-
nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY,
7251-
argv[argc - 1]->arg);
7252-
7253-
return nb_cli_apply_changes(vty, NULL);
7254-
}
7255-
7256-
DEFUN_YANG (no_match_ipv6_next_hop,
7257-
no_match_ipv6_next_hop_cmd,
7258-
"no match ipv6 next-hop [ACCESSLIST6_NAME]",
7259-
NO_STR
7260-
MATCH_STR
7261-
IPV6_STR
7262-
"Match IPv6 next-hop address of route\n"
7263-
"IPv6 access-list name\n")
7264-
{
7265-
const char *xpath =
7266-
"./match-condition[condition='frr-route-map:ipv6-next-hop-list']";
7267-
7268-
nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
7269-
return nb_cli_apply_changes(vty, NULL);
7270-
}
7271-
72727235
DEFUN_YANG (match_ipv6_next_hop_address,
72737236
match_ipv6_next_hop_address_cmd,
72747237
"match ipv6 next-hop address X:X::X:X",
@@ -7326,45 +7289,6 @@ ALIAS_HIDDEN (no_match_ipv6_next_hop_address,
73267289
"Match IPv6 next-hop address of route\n"
73277290
"IPv6 address of next hop\n")
73287291

7329-
DEFUN_YANG (match_ipv6_next_hop_prefix_list,
7330-
match_ipv6_next_hop_prefix_list_cmd,
7331-
"match ipv6 next-hop prefix-list PREFIXLIST_NAME",
7332-
MATCH_STR
7333-
IPV6_STR
7334-
"Match IPv6 next-hop address of route\n"
7335-
"Match entries by prefix-list\n"
7336-
"IPv6 prefix-list name\n")
7337-
{
7338-
const char *xpath =
7339-
"./match-condition[condition='frr-route-map:ipv6-next-hop-prefix-list']";
7340-
char xpath_value[XPATH_MAXLEN];
7341-
7342-
nb_cli_enqueue_change(vty, xpath, NB_OP_CREATE, NULL);
7343-
snprintf(xpath_value, sizeof(xpath_value),
7344-
"%s/rmap-match-condition/list-name", xpath);
7345-
nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY,
7346-
argv[argc - 1]->arg);
7347-
7348-
return nb_cli_apply_changes(vty, NULL);
7349-
}
7350-
7351-
DEFUN_YANG (no_match_ipv6_next_hop_prefix_list,
7352-
no_match_ipv6_next_hop_prefix_list_cmd,
7353-
"no match ipv6 next-hop prefix-list [PREFIXLIST_NAME]",
7354-
NO_STR
7355-
MATCH_STR
7356-
IPV6_STR
7357-
"Match IPv6 next-hop address of route\n"
7358-
"Match entries by prefix-list\n"
7359-
"IPv6 prefix-list name\n")
7360-
{
7361-
const char *xpath =
7362-
"./match-condition[condition='frr-route-map:ipv6-next-hop-prefix-list']";
7363-
7364-
nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
7365-
return nb_cli_apply_changes(vty, NULL);
7366-
}
7367-
73687292
DEFPY_YANG (match_ipv4_next_hop,
73697293
match_ipv4_next_hop_cmd,
73707294
"match ip next-hop address A.B.C.D",
@@ -8037,12 +7961,8 @@ void bgp_route_map_init(void)
80377961
route_map_install_set(&route_set_ipv6_nexthop_peer_cmd);
80387962
route_map_install_match(&route_match_rpki_extcommunity_cmd);
80397963

8040-
install_element(RMAP_NODE, &match_ipv6_next_hop_cmd);
80417964
install_element(RMAP_NODE, &match_ipv6_next_hop_address_cmd);
8042-
install_element(RMAP_NODE, &match_ipv6_next_hop_prefix_list_cmd);
8043-
install_element(RMAP_NODE, &no_match_ipv6_next_hop_cmd);
80447965
install_element(RMAP_NODE, &no_match_ipv6_next_hop_address_cmd);
8045-
install_element(RMAP_NODE, &no_match_ipv6_next_hop_prefix_list_cmd);
80467966
install_element(RMAP_NODE, &match_ipv6_next_hop_old_cmd);
80477967
install_element(RMAP_NODE, &no_match_ipv6_next_hop_old_cmd);
80487968
install_element(RMAP_NODE, &match_ipv4_next_hop_cmd);

lib/routemap_cli.c

+73
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,74 @@ DEFPY_YANG(
417417
return nb_cli_apply_changes(vty, NULL);
418418
}
419419

420+
DEFUN_YANG (match_ipv6_next_hop,
421+
match_ipv6_next_hop_cmd,
422+
"match ipv6 next-hop ACCESSLIST6_NAME",
423+
MATCH_STR
424+
IPV6_STR
425+
"Match IPv6 next-hop address of route\n"
426+
"IPv6 access-list name\n")
427+
{
428+
const char *xpath = "./match-condition[condition='frr-route-map:ipv6-next-hop-list']";
429+
char xpath_value[XPATH_MAXLEN];
430+
431+
nb_cli_enqueue_change(vty, xpath, NB_OP_CREATE, NULL);
432+
snprintf(xpath_value, sizeof(xpath_value), "%s/rmap-match-condition/list-name", xpath);
433+
nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY, argv[argc - 1]->arg);
434+
435+
return nb_cli_apply_changes(vty, NULL);
436+
}
437+
438+
DEFUN_YANG (no_match_ipv6_next_hop,
439+
no_match_ipv6_next_hop_cmd,
440+
"no match ipv6 next-hop [ACCESSLIST6_NAME]",
441+
NO_STR
442+
MATCH_STR
443+
IPV6_STR
444+
"Match IPv6 next-hop address of route\n"
445+
"IPv6 access-list name\n")
446+
{
447+
const char *xpath = "./match-condition[condition='frr-route-map:ipv6-next-hop-list']";
448+
449+
nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
450+
return nb_cli_apply_changes(vty, NULL);
451+
}
452+
453+
DEFUN_YANG (match_ipv6_next_hop_prefix_list,
454+
match_ipv6_next_hop_prefix_list_cmd,
455+
"match ipv6 next-hop prefix-list PREFIXLIST_NAME",
456+
MATCH_STR
457+
IPV6_STR
458+
"Match IPv6 next-hop address of route\n"
459+
"Match entries by prefix-list\n"
460+
"IPv6 prefix-list name\n")
461+
{
462+
const char *xpath = "./match-condition[condition='frr-route-map:ipv6-next-hop-prefix-list']";
463+
char xpath_value[XPATH_MAXLEN];
464+
465+
nb_cli_enqueue_change(vty, xpath, NB_OP_CREATE, NULL);
466+
snprintf(xpath_value, sizeof(xpath_value), "%s/rmap-match-condition/list-name", xpath);
467+
nb_cli_enqueue_change(vty, xpath_value, NB_OP_MODIFY, argv[argc - 1]->arg);
468+
469+
return nb_cli_apply_changes(vty, NULL);
470+
}
471+
472+
DEFUN_YANG (no_match_ipv6_next_hop_prefix_list,
473+
no_match_ipv6_next_hop_prefix_list_cmd,
474+
"no match ipv6 next-hop prefix-list [PREFIXLIST_NAME]",
475+
NO_STR
476+
MATCH_STR
477+
IPV6_STR
478+
"Match IPv6 next-hop address of route\n"
479+
"Match entries by prefix-list\n"
480+
"IPv6 prefix-list name\n")
481+
{
482+
const char *xpath = "./match-condition[condition='frr-route-map:ipv6-next-hop-prefix-list']";
483+
484+
nb_cli_enqueue_change(vty, xpath, NB_OP_DESTROY, NULL);
485+
return nb_cli_apply_changes(vty, NULL);
486+
}
487+
420488
DEFPY_YANG(
421489
match_ipv6_next_hop_type, match_ipv6_next_hop_type_cmd,
422490
"match ipv6 next-hop type <blackhole>$type",
@@ -1665,6 +1733,11 @@ void route_map_cli_init(void)
16651733
install_element(RMAP_NODE, &match_ipv6_next_hop_type_cmd);
16661734
install_element(RMAP_NODE, &no_match_ipv6_next_hop_type_cmd);
16671735

1736+
install_element(RMAP_NODE, &match_ipv6_next_hop_cmd);
1737+
install_element(RMAP_NODE, &match_ipv6_next_hop_prefix_list_cmd);
1738+
install_element(RMAP_NODE, &no_match_ipv6_next_hop_cmd);
1739+
install_element(RMAP_NODE, &no_match_ipv6_next_hop_prefix_list_cmd);
1740+
16681741
install_element(RMAP_NODE, &match_metric_cmd);
16691742
install_element(RMAP_NODE, &no_match_metric_cmd);
16701743

0 commit comments

Comments
 (0)