]>
git.proxmox.com Git - mirror_frr.git/blob - zebra/zebra_nb_rpcs.c
2 * Copyright (C) 2020 Cumulus Networks, Inc.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the Free
7 * Software Foundation; either version 2 of the License, or (at your option)
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 * You should have received a copy of the GNU General Public License along
16 * with this program; see the file COPYING; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 #include "northbound.h"
24 #include "zebra/zebra_nb.h"
25 #include "zebra/zebra_router.h"
26 #include "zebra/zebra_vrf.h"
27 #include "zebra/zebra_vxlan.h"
30 * XPath: /frr-zebra:clear-evpn-dup-addr
32 int clear_evpn_dup_addr_rpc(struct nb_cb_rpc_args
*args
)
34 struct zebra_vrf
*zvrf
;
36 struct yang_data
*yang_dup_choice
= NULL
, *yang_dup_vni
= NULL
,
37 *yang_dup_ip
= NULL
, *yang_dup_mac
= NULL
;
39 yang_dup_choice
= yang_data_list_find(args
->input
, "%s/%s", args
->xpath
,
40 "input/clear-dup-choice");
42 zvrf
= zebra_vrf_get_evpn();
45 && strcmp(yang_dup_choice
->value
, "all-case") == 0) {
46 zebra_vxlan_clear_dup_detect_vni_all(zvrf
);
49 struct ipaddr host_ip
= {.ipa_type
= IPADDR_NONE
};
52 yang_dup_vni
= yang_data_list_find(
53 args
->input
, "%s/%s", args
->xpath
,
54 "input/clear-dup-choice/single-case/vni-id");
56 vni
= yang_str2uint32(yang_dup_vni
->value
);
58 yang_dup_mac
= yang_data_list_find(
59 args
->input
, "%s/%s", args
->xpath
,
60 "input/clear-dup-choice/single-case/vni-id/mac-addr");
61 yang_dup_ip
= yang_data_list_find(
62 args
->input
, "%s/%s", args
->xpath
,
63 "input/clear-dup-choice/single-case/vni-id/vni-ipaddr");
66 yang_str2mac(yang_dup_mac
->value
, &mac
);
67 ret
= zebra_vxlan_clear_dup_detect_vni_mac(
68 zvrf
, vni
, &mac
, args
->errmsg
,
70 } else if (yang_dup_ip
) {
71 yang_str2ip(yang_dup_ip
->value
, &host_ip
);
72 ret
= zebra_vxlan_clear_dup_detect_vni_ip(
73 zvrf
, vni
, &host_ip
, args
->errmsg
,
76 ret
= zebra_vxlan_clear_dup_detect_vni(zvrf
,
87 * XPath: /frr-zebra:get-route-information
89 int get_route_information_rpc(struct nb_cb_rpc_args
*args
)
91 /* TODO: implement me. */
92 return NB_ERR_NOT_FOUND
;
96 * XPath: /frr-zebra:get-v6-mroute-info
98 int get_v6_mroute_info_rpc(struct nb_cb_rpc_args
*args
)
100 /* TODO: implement me. */
101 return NB_ERR_NOT_FOUND
;
105 * XPath: /frr-zebra:get-vrf-info
107 int get_vrf_info_rpc(struct nb_cb_rpc_args
*args
)
109 /* TODO: implement me. */
110 return NB_ERR_NOT_FOUND
;
114 * XPath: /frr-zebra:get-vrf-vni-info
116 int get_vrf_vni_info_rpc(struct nb_cb_rpc_args
*args
)
118 /* TODO: implement me. */
119 return NB_ERR_NOT_FOUND
;
123 * XPath: /frr-zebra:get-evpn-info
125 int get_evpn_info_rpc(struct nb_cb_rpc_args
*args
)
127 /* TODO: implement me. */
128 return NB_ERR_NOT_FOUND
;
132 * XPath: /frr-zebra:get-vni-info
134 int get_vni_info_rpc(struct nb_cb_rpc_args
*args
)
136 /* TODO: implement me. */
137 return NB_ERR_NOT_FOUND
;
141 * XPath: /frr-zebra:get-evpn-vni-rmac
143 int get_evpn_vni_rmac_rpc(struct nb_cb_rpc_args
*args
)
145 /* TODO: implement me. */
146 return NB_ERR_NOT_FOUND
;
150 * XPath: /frr-zebra:get-evpn-vni-nexthops
152 int get_evpn_vni_nexthops_rpc(struct nb_cb_rpc_args
*args
)
154 /* TODO: implement me. */
155 return NB_ERR_NOT_FOUND
;
159 * XPath: /frr-zebra:get-evpn-macs
161 int get_evpn_macs_rpc(struct nb_cb_rpc_args
*args
)
163 /* TODO: implement me. */
164 return NB_ERR_NOT_FOUND
;
168 * XPath: /frr-zebra:get-evpn-arp-cache
170 int get_evpn_arp_cache_rpc(struct nb_cb_rpc_args
*args
)
172 /* TODO: implement me. */
173 return NB_ERR_NOT_FOUND
;
177 * XPath: /frr-zebra:get-pbr-ipset
179 int get_pbr_ipset_rpc(struct nb_cb_rpc_args
*args
)
181 /* TODO: implement me. */
182 return NB_ERR_NOT_FOUND
;
186 * XPath: /frr-zebra:get-pbr-iptable
188 int get_pbr_iptable_rpc(struct nb_cb_rpc_args
*args
)
190 /* TODO: implement me. */
191 return NB_ERR_NOT_FOUND
;
195 * XPath: /frr-zebra:get-debugs
197 int get_debugs_rpc(struct nb_cb_rpc_args
*args
)
199 /* TODO: implement me. */
200 return NB_ERR_NOT_FOUND
;