diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c index aa3070b204..0b1b1cc5d6 100644 --- a/bgpd/bgp_vty.c +++ b/bgpd/bgp_vty.c @@ -6338,28 +6338,10 @@ DEFUN_YANG (neighbor_send_community, "Send Community attribute to this neighbor\n") { int idx_peer = 1; - char *peer_str = argv[idx_peer]->arg; - char base_xpath[XPATH_MAXLEN]; - char af_xpath[XPATH_MAXLEN]; - char std_xpath[XPATH_MAXLEN]; - afi_t afi = bgp_node_afi(vty); - safi_t safi = bgp_node_safi(vty); - snprintf(af_xpath, sizeof(af_xpath), FRR_BGP_AF_XPATH, - yang_afi_safi_value2identity(afi, safi)); - - if (peer_and_group_lookup_nb(vty, peer_str, base_xpath, - sizeof(base_xpath), af_xpath) - < 0) - return CMD_WARNING_CONFIG_FAILED; - - snprintf(std_xpath, sizeof(std_xpath), - "./%s/send-community/send-community", - bgp_afi_safi_get_container_str(afi, safi)); - - nb_cli_enqueue_change(vty, std_xpath, NB_OP_MODIFY, "true"); - - return nb_cli_apply_changes(vty, base_xpath); + return peer_af_flag_set_vty(vty, argv[idx_peer]->arg, bgp_node_afi(vty), + bgp_node_safi(vty), + PEER_FLAG_SEND_COMMUNITY); } ALIAS_HIDDEN(neighbor_send_community, neighbor_send_community_hidden_cmd, @@ -6376,28 +6358,10 @@ DEFUN_YANG (no_neighbor_send_community, "Send Community attribute to this neighbor\n") { int idx_peer = 2; - char *peer_str = argv[idx_peer]->arg; - char base_xpath[XPATH_MAXLEN]; - char af_xpath[XPATH_MAXLEN]; - char std_xpath[XPATH_MAXLEN]; - afi_t afi = bgp_node_afi(vty); - safi_t safi = bgp_node_safi(vty); - snprintf(af_xpath, sizeof(af_xpath), FRR_BGP_AF_XPATH, - yang_afi_safi_value2identity(afi, safi)); - - if (peer_and_group_lookup_nb(vty, peer_str, base_xpath, - sizeof(base_xpath), af_xpath) - < 0) - return CMD_WARNING_CONFIG_FAILED; - - snprintf(std_xpath, sizeof(std_xpath), - "./%s/send-community/send-community", - bgp_afi_safi_get_container_str(afi, safi)); - - nb_cli_enqueue_change(vty, std_xpath, NB_OP_MODIFY, "false"); - - return nb_cli_apply_changes(vty, base_xpath); + return peer_af_flag_unset_vty(vty, argv[idx_peer]->arg, + bgp_node_afi(vty), bgp_node_safi(vty), + PEER_FLAG_SEND_COMMUNITY); } ALIAS_HIDDEN(no_neighbor_send_community, no_neighbor_send_community_hidden_cmd,