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
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
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);
}
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;
{
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);
"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 <A.B.C.D|X:X::X:X|WORD>$neighbor_str route-map WORD$rmap_str <in|out>$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 <A.B.C.D|X:X::X:X|WORD> route-map WORD <in|out>",
+ 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,
"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 <A.B.C.D|X:X::X:X|WORD> route-map WORD <in|out>",
+ 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 <A.B.C.D|X:X::X:X|WORD> route-map WORD <in|out>",
NO_STR NEIGHBOR_STR NEIGHBOR_ADDR_STR2
"Apply route map to neighbor\n"
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);