From 0ea8d871c527ee431fb45a8704b3882e97d918f3 Mon Sep 17 00:00:00 2001 From: Igor Ryzhov Date: Fri, 14 May 2021 01:43:23 +0300 Subject: [PATCH] Revert "bgpd: convert nbr rmap transactional cli" This reverts commit c6685575336566680aeb537e8ed5abb164be0268. --- bgpd/bgp_nb_config.c | 657 +++++++++++++++---------------------------- bgpd/bgp_vty.c | 131 ++++++--- 2 files changed, 314 insertions(+), 474 deletions(-) diff --git a/bgpd/bgp_nb_config.c b/bgpd/bgp_nb_config.c index e871831771..402c02455f 100644 --- a/bgpd/bgp_nb_config.c +++ b/bgpd/bgp_nb_config.c @@ -15114,66 +15114,6 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_bo return NB_OK; } -static int bgp_neighbor_afi_safi_rmap_modify(struct nb_cb_modify_args *args, - int direct) -{ - struct bgp *bgp; - const char *peer_str; - struct peer *peer; - const struct lyd_node *nbr_dnode; - const struct lyd_node *nbr_af_dnode; - const char *af_name; - afi_t afi; - safi_t safi; - const char *name_str; - struct route_map *route_map; - int ret; - - nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi"); - af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name"); - yang_afi_safi_identity2value(af_name, &afi, &safi); - - nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor"); - bgp = nb_running_get_entry(nbr_dnode, NULL, true); - peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address"); - peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg, - args->errmsg_len); - - name_str = yang_dnode_get_string(args->dnode, NULL); - route_map = route_map_lookup_by_name(name_str); - ret = peer_route_map_set(peer, afi, safi, direct, name_str, route_map); - - return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret); -} - -static int bgp_neighbor_afi_safi_rmap_destroy(struct nb_cb_destroy_args *args, - int direct) -{ - struct bgp *bgp; - const char *peer_str; - struct peer *peer; - const struct lyd_node *nbr_dnode; - const struct lyd_node *nbr_af_dnode; - const char *af_name; - afi_t afi; - safi_t safi; - int ret; - - nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi"); - af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name"); - yang_afi_safi_identity2value(af_name, &afi, &safi); - - nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor"); - bgp = nb_running_get_entry(nbr_dnode, NULL, true); - peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address"); - peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg, - args->errmsg_len); - - ret = peer_route_map_unset(peer, afi, safi, direct); - - return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret); -} - /* * XPath: * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/rmap-import @@ -15185,9 +15125,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_im case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -15200,9 +15140,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_im case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -15219,9 +15159,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_ex case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -15234,9 +15174,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_ex case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -16560,9 +16500,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_im case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -16575,9 +16515,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_im case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -16594,9 +16534,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_ex case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -16609,9 +16549,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_ex case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -17859,9 +17799,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_ case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -17874,9 +17814,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_ case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -17893,9 +17833,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_ case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -17908,9 +17848,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_ case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -19157,9 +19097,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_ case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -19172,9 +19112,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_ case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -19191,9 +19131,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_ case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -19206,9 +19146,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_ case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -20455,9 +20395,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -20470,9 +20410,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -20489,9 +20429,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -20504,9 +20444,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -21753,9 +21693,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -21768,9 +21708,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -21787,9 +21727,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -21802,9 +21742,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -22896,9 +22836,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -22911,9 +22851,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -22930,9 +22870,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -22945,9 +22885,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -24039,9 +23979,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -24054,9 +23994,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -24073,9 +24013,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -24088,9 +24028,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -24654,9 +24594,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_impo case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -24669,9 +24609,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_impo case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -24688,9 +24628,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_expo case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -24703,9 +24643,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_expo case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -25063,9 +25003,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_i case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -25078,9 +25018,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_i case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -25097,9 +25037,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_e case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -25112,9 +25052,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_e case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -25472,9 +25412,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_i case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -25487,9 +25427,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_i case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -25506,9 +25446,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_e case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -25521,9 +25461,9 @@ int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_e case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -26951,68 +26891,6 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capabi return NB_OK; } -static int -bgp_unnumbered_neighbor_afi_safi_rmap_modify(struct nb_cb_modify_args *args, - int direct) -{ - struct bgp *bgp; - const char *peer_str; - struct peer *peer; - const struct lyd_node *nbr_dnode; - const struct lyd_node *nbr_af_dnode; - const char *af_name; - afi_t afi; - safi_t safi; - const char *name_str; - struct route_map *route_map; - int ret; - - nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi"); - af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name"); - yang_afi_safi_identity2value(af_name, &afi, &safi); - - nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor"); - bgp = nb_running_get_entry(nbr_dnode, NULL, true); - peer_str = yang_dnode_get_string(nbr_dnode, "./interface"); - peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg, - args->errmsg_len); - - name_str = yang_dnode_get_string(args->dnode, NULL); - route_map = route_map_lookup_by_name(name_str); - ret = peer_route_map_set(peer, afi, safi, direct, name_str, route_map); - - return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret); -} - -static int -bgp_unnumbered_neighbor_afi_safi_rmap_destroy(struct nb_cb_destroy_args *args, - int direct) -{ - struct bgp *bgp; - const char *peer_str; - struct peer *peer; - const struct lyd_node *nbr_dnode; - const struct lyd_node *nbr_af_dnode; - const char *af_name; - afi_t afi; - safi_t safi; - int ret; - - nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi"); - af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name"); - yang_afi_safi_identity2value(af_name, &afi, &safi); - - nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor"); - bgp = nb_running_get_entry(nbr_dnode, NULL, true); - peer_str = yang_dnode_get_string(nbr_dnode, "./interface"); - peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg, - args->errmsg_len); - - ret = peer_route_map_unset(peer, afi, safi, direct); - - return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret); -} - /* * XPath: * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/rmap-import @@ -27024,10 +26902,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_con case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -27040,10 +26917,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_con case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -27060,10 +26936,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_con case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -27076,10 +26951,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_con case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -28409,10 +28283,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_con case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -28425,10 +28298,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_con case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -28445,10 +28317,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_con case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -28461,10 +28332,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_con case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -29716,10 +29586,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_c case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -29732,10 +29601,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_c case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -29752,10 +29620,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_c case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -29768,10 +29635,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_c case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -31023,10 +30889,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_c case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -31039,10 +30904,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_c case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -31059,10 +30923,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_c case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -31075,10 +30938,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_c case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -32331,10 +32193,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_fi case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -32347,10 +32208,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_fi case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -32367,10 +32227,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_fi case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -32383,10 +32242,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_fi case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -35590,10 +35448,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -35606,10 +35463,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -35626,10 +35482,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -35642,10 +35497,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -36007,10 +35861,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -36023,10 +35876,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -36043,10 +35895,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -36059,10 +35910,9 @@ int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args, - RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -37482,62 +37332,6 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_or return NB_OK; } -static int bgp_peer_group_afi_safi_rmap_modify(struct nb_cb_modify_args *args, - int direct) -{ - struct bgp *bgp; - const char *peer_str; - struct peer *peer; - const struct lyd_node *nbr_dnode; - const struct lyd_node *nbr_af_dnode; - const char *af_name; - afi_t afi; - safi_t safi; - const char *name_str; - struct route_map *route_map; - int ret; - - nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi"); - af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name"); - yang_afi_safi_identity2value(af_name, &afi, &safi); - nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group"); - bgp = nb_running_get_entry(nbr_dnode, NULL, true); - peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name"); - peer = bgp_peer_group_peer_lookup(bgp, peer_str); - - name_str = yang_dnode_get_string(args->dnode, NULL); - route_map = route_map_lookup_by_name(name_str); - ret = peer_route_map_set(peer, afi, safi, direct, name_str, route_map); - - return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret); -} - -static int bgp_peer_group_afi_safi_rmap_destroy(struct nb_cb_destroy_args *args, - int direct) -{ - struct bgp *bgp; - const char *peer_str; - struct peer *peer; - const struct lyd_node *nbr_dnode; - const struct lyd_node *nbr_af_dnode; - const char *af_name; - afi_t afi; - safi_t safi; - int ret; - - nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi"); - af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name"); - yang_afi_safi_identity2value(af_name, &afi, &safi); - nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group"); - bgp = nb_running_get_entry(nbr_dnode, NULL, true); - peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name"); - peer = bgp_peer_group_peer_lookup(bgp, peer_str); - - ret = peer_route_map_unset(peer, afi, safi, direct); - - return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret); -} - /* * XPath: * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/filter-config/rmap-import @@ -37549,9 +37343,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rma case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -37564,9 +37358,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rma case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -37583,9 +37377,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rma case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -37598,9 +37392,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rma case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -38921,9 +38715,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rma case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -38936,9 +38730,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rma case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -38955,9 +38749,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rma case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -38970,9 +38764,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rma case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -40219,9 +40013,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -40234,9 +40028,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -40253,9 +40047,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -40268,9 +40062,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -41517,9 +41311,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -41532,9 +41326,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -41551,9 +41345,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -41566,9 +41360,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_r case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -42815,9 +42609,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -42830,9 +42624,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -42849,9 +42643,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -42864,9 +42658,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -42919,7 +42713,7 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_co case NB_EV_ABORT: break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT); + return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT); } return NB_OK; @@ -44113,9 +43907,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -44128,9 +43922,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -44147,9 +43941,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -44162,9 +43956,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_co case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -45256,9 +45050,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_conf case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -45271,9 +45065,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_conf case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -45290,9 +45084,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_conf case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -45305,9 +45099,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_conf case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -46399,9 +46193,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_conf case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -46414,9 +46208,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_conf case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -46433,9 +46227,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_conf case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -46448,9 +46242,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_conf case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -47083,9 +46877,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rm case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -47098,9 +46892,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rm case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -47117,9 +46911,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rm case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -47132,9 +46926,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rm case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -47492,9 +47286,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rm case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -47507,9 +47301,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rm case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN); + /* TODO: implement me. */ + break; } return NB_OK; @@ -47526,9 +47320,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rm case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; @@ -47541,7 +47335,6 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rm case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN); } @@ -47575,9 +47368,9 @@ int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_pl case NB_EV_VALIDATE: case NB_EV_PREPARE: case NB_EV_ABORT: - break; case NB_EV_APPLY: - return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT); + /* TODO: implement me. */ + break; } return NB_OK; diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index 81712c5893..59a75857f0 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -7952,7 +7952,7 @@ DEFPY_YANG( { char base_xpath[XPATH_MAXLEN]; char af_xpath[XPATH_MAXLEN]; - char plist_xpath[XPATH_MAXLEN]; + char plist_xpath[80]; afi_t afi = bgp_node_afi(vty); safi_t safi = bgp_node_safi(vty); @@ -8166,52 +8166,70 @@ ALIAS_HIDDEN(neighbor_advertise_map, neighbor_advertise_map_hidden_cmd, "Name of the exist or non exist map\n") /* Set route-map to the peer. */ -DEFPY_YANG( - neighbor_route_map, neighbor_route_map_cmd, - "[no$no] neighbor $neighbor_str route-map WORD$rmap_str $direction", - NO_STR NEIGHBOR_STR NEIGHBOR_ADDR_STR2 - "Apply route map to neighbor\n" - "Name of route map\n" - "Apply map to incoming routes\n" - "Apply map to outbound routes\n") +static int peer_route_map_set_vty(struct vty *vty, const char *ip_str, + afi_t afi, safi_t safi, const char *name_str, + const char *direct_str) { - char base_xpath[XPATH_MAXLEN]; - char af_xpath[XPATH_MAXLEN]; - char rmap_xpath[XPATH_MAXLEN]; - afi_t afi = bgp_node_afi(vty); - safi_t safi = bgp_node_safi(vty); + int ret; + struct peer *peer; + int direct = RMAP_IN; + struct route_map *route_map; - snprintf(af_xpath, sizeof(af_xpath), FRR_BGP_AF_XPATH, - yang_afi_safi_value2identity(afi, safi)); - if (peer_and_group_lookup_nb(vty, neighbor_str, base_xpath, - sizeof(base_xpath), af_xpath) - < 0) + peer = peer_and_group_lookup_vty(vty, ip_str); + if (!peer) return CMD_WARNING_CONFIG_FAILED; - if (strmatch(direction, "in")) - snprintf(rmap_xpath, sizeof(rmap_xpath), - "./%s/filter-config/rmap-import", - bgp_afi_safi_get_container_str(afi, safi)); - else if (strmatch(direction, "out")) - snprintf(rmap_xpath, sizeof(rmap_xpath), - "./%s/filter-config/rmap-export", - bgp_afi_safi_get_container_str(afi, safi)); + /* Check filter direction. */ + if (strncmp(direct_str, "in", 2) == 0) + direct = RMAP_IN; + else if (strncmp(direct_str, "o", 1) == 0) + direct = RMAP_OUT; - if (!no) { - if (!yang_dnode_existsf( - vty->candidate_config->dnode, - "/frr-route-map:lib/route-map[name='%s']", - rmap_str)) { - if (vty_shell_serv(vty)) - vty_out(vty, - "The route-map '%s' does not exist.\n", - rmap_str); - } - nb_cli_enqueue_change(vty, rmap_xpath, NB_OP_MODIFY, rmap_str); - } else - nb_cli_enqueue_change(vty, rmap_xpath, NB_OP_DESTROY, NULL); + route_map = route_map_lookup_warn_noexist(vty, name_str); + ret = peer_route_map_set(peer, afi, safi, direct, name_str, route_map); - return nb_cli_apply_changes(vty, base_xpath); + return bgp_vty_return(vty, ret); +} + +static int peer_route_map_unset_vty(struct vty *vty, const char *ip_str, + afi_t afi, safi_t safi, + const char *direct_str) +{ + int ret; + struct peer *peer; + int direct = RMAP_IN; + + peer = peer_and_group_lookup_vty(vty, ip_str); + if (!peer) + return CMD_WARNING_CONFIG_FAILED; + + /* Check filter direction. */ + if (strncmp(direct_str, "in", 2) == 0) + direct = RMAP_IN; + else if (strncmp(direct_str, "o", 1) == 0) + direct = RMAP_OUT; + + ret = peer_route_map_unset(peer, afi, safi, direct); + + return bgp_vty_return(vty, ret); +} + +DEFUN (neighbor_route_map, + neighbor_route_map_cmd, + "neighbor route-map WORD ", + NEIGHBOR_STR + NEIGHBOR_ADDR_STR2 + "Apply route map to neighbor\n" + "Name of route map\n" + "Apply map to incoming routes\n" + "Apply map to outbound routes\n") +{ + int idx_peer = 1; + int idx_word = 3; + int idx_in_out = 4; + return peer_route_map_set_vty( + vty, argv[idx_peer]->arg, bgp_node_afi(vty), bgp_node_safi(vty), + argv[idx_word]->arg, argv[idx_in_out]->arg); } ALIAS_HIDDEN(neighbor_route_map, neighbor_route_map_hidden_cmd, @@ -8222,7 +8240,25 @@ ALIAS_HIDDEN(neighbor_route_map, neighbor_route_map_hidden_cmd, "Apply map to incoming routes\n" "Apply map to outbound routes\n") -ALIAS_HIDDEN(neighbor_route_map, no_neighbor_route_map_hidden_cmd, +DEFUN (no_neighbor_route_map, + no_neighbor_route_map_cmd, + "no neighbor route-map WORD ", + NO_STR + NEIGHBOR_STR + NEIGHBOR_ADDR_STR2 + "Apply route map to neighbor\n" + "Name of route map\n" + "Apply map to incoming routes\n" + "Apply map to outbound routes\n") +{ + int idx_peer = 2; + int idx_in_out = 5; + return peer_route_map_unset_vty(vty, argv[idx_peer]->arg, + bgp_node_afi(vty), bgp_node_safi(vty), + argv[idx_in_out]->arg); +} + +ALIAS_HIDDEN(no_neighbor_route_map, no_neighbor_route_map_hidden_cmd, "no neighbor route-map WORD ", NO_STR NEIGHBOR_STR NEIGHBOR_ADDR_STR2 "Apply route map to neighbor\n" @@ -19445,16 +19481,27 @@ void bgp_vty_init(void) install_element(BGP_NODE, &neighbor_route_map_hidden_cmd); install_element(BGP_NODE, &no_neighbor_route_map_hidden_cmd); install_element(BGP_IPV4_NODE, &neighbor_route_map_cmd); + install_element(BGP_IPV4_NODE, &no_neighbor_route_map_cmd); install_element(BGP_IPV4M_NODE, &neighbor_route_map_cmd); + install_element(BGP_IPV4M_NODE, &no_neighbor_route_map_cmd); install_element(BGP_IPV4L_NODE, &neighbor_route_map_cmd); + install_element(BGP_IPV4L_NODE, &no_neighbor_route_map_cmd); install_element(BGP_IPV6_NODE, &neighbor_route_map_cmd); + install_element(BGP_IPV6_NODE, &no_neighbor_route_map_cmd); install_element(BGP_IPV6M_NODE, &neighbor_route_map_cmd); + install_element(BGP_IPV6M_NODE, &no_neighbor_route_map_cmd); install_element(BGP_IPV6L_NODE, &neighbor_route_map_cmd); + install_element(BGP_IPV6L_NODE, &no_neighbor_route_map_cmd); install_element(BGP_VPNV4_NODE, &neighbor_route_map_cmd); + install_element(BGP_VPNV4_NODE, &no_neighbor_route_map_cmd); install_element(BGP_VPNV6_NODE, &neighbor_route_map_cmd); + install_element(BGP_VPNV6_NODE, &no_neighbor_route_map_cmd); install_element(BGP_FLOWSPECV4_NODE, &neighbor_route_map_cmd); + install_element(BGP_FLOWSPECV4_NODE, &no_neighbor_route_map_cmd); install_element(BGP_FLOWSPECV6_NODE, &neighbor_route_map_cmd); + install_element(BGP_FLOWSPECV6_NODE, &no_neighbor_route_map_cmd); install_element(BGP_EVPN_NODE, &neighbor_route_map_cmd); + install_element(BGP_EVPN_NODE, &no_neighbor_route_map_cmd); /* "neighbor unsuppress-map" commands. */ install_element(BGP_NODE, &neighbor_unsuppress_map_hidden_cmd); -- 2.39.5