]> git.proxmox.com Git - mirror_frr.git/blob - bgpd/bgp_nb_config.c
Merge pull request #7550 from volta-networks/fix_bfd_isis
[mirror_frr.git] / bgpd / bgp_nb_config.c
1 /*
2 * Bgp northbound config callbacks
3 * Copyright (C) 2020 Nvidia
4 * Chirag Shah
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the Free
8 * Software Foundation; either version 2 of the License, or (at your option)
9 * any later version.
10 *
11 * This program is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 * more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; see the file COPYING; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21 #include "northbound.h"
22 #include "libfrr.h"
23 #include "log.h"
24 #include "bgpd/bgp_nb.h"
25 #include "bgpd/bgp_nb.h"
26 #include "bgpd/bgpd.h"
27 #include "bgpd/bgp_vty.h"
28 #include "bgpd/bgp_mplsvpn.h"
29 #include "bgpd/bgp_fsm.h"
30 #include "bgpd/bgp_addpath.h"
31 #include "bgpd/bgp_updgrp.h"
32 #include "bgpd/bgp_io.h"
33 #include "bgpd/bgp_damp.h"
34
35 FRR_CFG_DEFAULT_ULONG(BGP_CONNECT_RETRY,
36 { .val_ulong = 10, .match_profile = "datacenter", },
37 { .val_ulong = 120 },
38 )
39 FRR_CFG_DEFAULT_ULONG(BGP_HOLDTIME,
40 { .val_ulong = 9, .match_profile = "datacenter", },
41 { .val_ulong = 180 },
42 )
43 FRR_CFG_DEFAULT_ULONG(BGP_KEEPALIVE,
44 { .val_ulong = 3, .match_profile = "datacenter", },
45 { .val_ulong = 60 },
46 )
47
48 int routing_control_plane_protocols_name_validate(
49 struct nb_cb_create_args *args)
50 {
51 const char *name;
52
53 name = yang_dnode_get_string(args->dnode, "./name");
54 if (!strmatch(name, "bgp")) {
55 snprintf(args->errmsg, args->errmsg_len,
56 "per vrf only one bgp instance is supported.");
57 return NB_ERR_VALIDATION;
58 }
59 return NB_OK;
60 }
61
62 /*
63 * XPath:
64 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp
65 */
66 int bgp_router_create(struct nb_cb_create_args *args)
67 {
68 const struct lyd_node *vrf_dnode;
69 struct bgp *bgp;
70 struct vrf *vrf;
71 const char *name = NULL;
72 as_t as;
73 enum bgp_instance_type inst_type;
74 bool is_view_inst = false;
75 int ret;
76 int is_new_bgp = 0;
77
78 inst_type = BGP_INSTANCE_TYPE_DEFAULT;
79
80 switch (args->event) {
81 case NB_EV_VALIDATE:
82 case NB_EV_PREPARE:
83 case NB_EV_ABORT:
84 return NB_OK;
85 case NB_EV_APPLY:
86 vrf_dnode = yang_dnode_get_parent(args->dnode,
87 "control-plane-protocol");
88 vrf = nb_running_get_entry(vrf_dnode, NULL, true);
89
90 if (strmatch(vrf->name, VRF_DEFAULT_NAME)) {
91 name = NULL;
92 } else {
93 name = vrf->name;
94 inst_type = BGP_INSTANCE_TYPE_VRF;
95 }
96
97 as = yang_dnode_get_uint32(args->dnode, "./global/local-as");
98
99 is_view_inst = yang_dnode_get_bool(
100 args->dnode, "./global/instance-type-view");
101 if (is_view_inst)
102 inst_type = BGP_INSTANCE_TYPE_VIEW;
103
104 if (inst_type == BGP_INSTANCE_TYPE_DEFAULT)
105 is_new_bgp = (bgp_lookup(as, name) == NULL);
106
107 ret = bgp_get_vty(&bgp, &as, name, inst_type);
108 if (ret == BGP_ERR_INSTANCE_MISMATCH) {
109 snprintf(
110 args->errmsg, args->errmsg_len,
111 "BGP instance name and AS number mismatch\nBGP instance is already running; AS is %u, input-as %u",
112 bgp->as, as);
113
114 return NB_ERR_INCONSISTENCY;
115 }
116 /*
117 * If we just instantiated the default instance, complete
118 * any pending VRF-VPN leaking that was configured via
119 * earlier "router bgp X vrf FOO" blocks.
120 */
121 if (is_new_bgp && inst_type == BGP_INSTANCE_TYPE_DEFAULT)
122 vpn_leak_postchange_all();
123
124 if (inst_type == BGP_INSTANCE_TYPE_VRF)
125 bgp_vpn_leak_export(bgp);
126
127 UNSET_FLAG(bgp->vrf_flags, BGP_VRF_AUTO);
128
129 nb_running_set_entry(args->dnode, bgp);
130 break;
131 }
132
133 return NB_OK;
134 }
135
136 int bgp_router_destroy(struct nb_cb_destroy_args *args)
137 {
138 struct bgp *bgp;
139
140 switch (args->event) {
141 case NB_EV_VALIDATE:
142 bgp = nb_running_get_entry(args->dnode, NULL, false);
143
144 if (!bgp)
145 return NB_OK;
146
147 if (bgp->l3vni) {
148 snprintf(args->errmsg, args->errmsg_len,
149 "Please unconfigure l3vni %u", bgp->l3vni);
150 return NB_ERR_VALIDATION;
151 }
152
153 /* Cannot delete default instance if vrf instances exist */
154 if (bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT) {
155 struct listnode *node;
156 struct bgp *tmp_bgp;
157
158 for (ALL_LIST_ELEMENTS_RO(bm->bgp, node, tmp_bgp)) {
159 if (tmp_bgp->inst_type
160 == BGP_INSTANCE_TYPE_VRF) {
161 snprintf(
162 args->errmsg, args->errmsg_len,
163 "Cannot delete default BGP instance. Dependent VRF instances exist\n");
164 return NB_ERR_VALIDATION;
165 }
166 }
167 }
168
169 break;
170 case NB_EV_PREPARE:
171 case NB_EV_ABORT:
172 return NB_OK;
173 case NB_EV_APPLY:
174 bgp = nb_running_unset_entry(args->dnode);
175
176 bgp_delete(bgp);
177
178 break;
179 }
180
181 return NB_OK;
182 }
183
184 /*
185 * XPath:
186 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/local-as
187 */
188 int bgp_global_local_as_modify(struct nb_cb_modify_args *args)
189 {
190 struct bgp *bgp;
191 as_t as;
192 const struct lyd_node *vrf_dnode;
193 const char *vrf_name;
194 const char *name = NULL;
195 enum bgp_instance_type inst_type;
196 int ret;
197 bool is_view_inst = false;
198
199 switch (args->event) {
200 case NB_EV_VALIDATE:
201 as = yang_dnode_get_uint32(args->dnode, NULL);
202
203 inst_type = BGP_INSTANCE_TYPE_DEFAULT;
204
205 vrf_dnode = yang_dnode_get_parent(args->dnode,
206 "control-plane-protocol");
207 vrf_name = yang_dnode_get_string(vrf_dnode, "./vrf");
208
209 if (strmatch(vrf_name, VRF_DEFAULT_NAME)) {
210 name = NULL;
211 } else {
212 name = vrf_name;
213 inst_type = BGP_INSTANCE_TYPE_VRF;
214 }
215
216 is_view_inst = yang_dnode_get_bool(args->dnode,
217 "../instance-type-view");
218 if (is_view_inst)
219 inst_type = BGP_INSTANCE_TYPE_VIEW;
220
221 ret = bgp_lookup_by_as_name_type(&bgp, &as, name, inst_type);
222 if (ret == BGP_ERR_INSTANCE_MISMATCH) {
223 snprintf(
224 args->errmsg, args->errmsg_len,
225 "BGP instance name and AS number mismatch\nBGP instance is already running; input-as %u",
226 as);
227
228 return NB_ERR_VALIDATION;
229 }
230
231 break;
232 case NB_EV_PREPARE:
233 case NB_EV_ABORT:
234 return NB_OK;
235 case NB_EV_APPLY:
236 /* NOTE: handled in bgp_global_create callback, the as change
237 * will be rejected in validate phase.
238 */
239 as = yang_dnode_get_uint32(args->dnode, NULL);
240 bgp = nb_running_get_entry(args->dnode, NULL, true);
241 if (bgp->as != as) {
242 snprintf(args->errmsg, args->errmsg_len,
243 "BGP instance is already running; AS is %u",
244 bgp->as);
245 return NB_ERR_INCONSISTENCY;
246 }
247 break;
248 }
249
250 return NB_OK;
251 }
252
253 /*
254 * XPath:
255 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/router-id
256 */
257 int bgp_global_router_id_modify(struct nb_cb_modify_args *args)
258 {
259 if (args->event != NB_EV_APPLY)
260 return NB_OK;
261
262 struct bgp *bgp;
263 struct in_addr router_id;
264
265 bgp = nb_running_get_entry(args->dnode, NULL, true);
266 yang_dnode_get_ipv4(&router_id, args->dnode, NULL);
267 bgp_router_id_static_set(bgp, router_id);
268
269 return NB_OK;
270 }
271
272 int bgp_global_router_id_destroy(struct nb_cb_destroy_args *args)
273 {
274 if (args->event != NB_EV_APPLY)
275 return NB_OK;
276
277 struct bgp *bgp;
278 struct in_addr router_id;
279
280 bgp = nb_running_get_entry(args->dnode, NULL, true);
281
282 router_id.s_addr = INADDR_ANY;
283 bgp_router_id_static_set(bgp, router_id);
284
285 return NB_OK;
286 }
287
288 /*
289 * XPath:
290 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/confederation/identifier
291 */
292 int bgp_global_confederation_identifier_modify(struct nb_cb_modify_args *args)
293 {
294 struct bgp *bgp;
295 as_t as;
296
297 switch (args->event) {
298 case NB_EV_VALIDATE:
299 as = yang_dnode_get_uint32(args->dnode, NULL);
300 if (!as) {
301 snprintf(args->errmsg, args->errmsg_len, "Invalid AS.");
302 return NB_ERR_VALIDATION;
303 }
304
305 break;
306 case NB_EV_PREPARE:
307 case NB_EV_ABORT:
308 return NB_OK;
309 case NB_EV_APPLY:
310 bgp = nb_running_get_entry(args->dnode, NULL, true);
311
312 as = yang_dnode_get_uint32(args->dnode, NULL);
313
314 bgp_confederation_id_set(bgp, as);
315
316 break;
317 }
318
319 return NB_OK;
320 }
321
322 int bgp_global_confederation_identifier_destroy(struct nb_cb_destroy_args *args)
323 {
324 if (args->event != NB_EV_APPLY)
325 return NB_OK;
326
327 struct bgp *bgp;
328
329 bgp = nb_running_get_entry(args->dnode, NULL, true);
330
331 bgp_confederation_id_unset(bgp);
332
333 return NB_OK;
334 }
335
336 /*
337 * XPath:
338 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/confederation/member-as
339 */
340 int bgp_global_confederation_member_as_create(struct nb_cb_create_args *args)
341 {
342 as_t my_as, as;
343 struct bgp *bgp;
344 int ret;
345
346 switch (args->event) {
347 case NB_EV_VALIDATE:
348 my_as = yang_dnode_get_uint32(args->dnode,
349 "../../../global/local-as");
350 as = yang_dnode_get_uint32(args->dnode, NULL);
351 if (my_as == as) {
352 snprintf(
353 args->errmsg, args->errmsg_len,
354 "Local member-AS %u not allowed in confed peer list",
355 my_as);
356 return NB_ERR_VALIDATION;
357 }
358
359 break;
360 case NB_EV_PREPARE:
361 case NB_EV_ABORT:
362 return NB_OK;
363 case NB_EV_APPLY:
364 bgp = nb_running_get_entry(args->dnode, NULL, true);
365 as = yang_dnode_get_uint32(args->dnode, NULL);
366
367 ret = bgp_confederation_peers_add(bgp, as);
368 if (ret == BGP_ERR_INVALID_AS) {
369 snprintf(
370 args->errmsg, args->errmsg_len,
371 "Local member-AS not alloed in confed peer list");
372 return NB_ERR_INCONSISTENCY;
373 }
374
375 break;
376 }
377
378 return NB_OK;
379 }
380
381 int bgp_global_confederation_member_as_destroy(struct nb_cb_destroy_args *args)
382 {
383 if (args->event != NB_EV_APPLY)
384 return NB_OK;
385
386 as_t as;
387 struct bgp *bgp;
388
389 bgp = nb_running_get_entry(args->dnode, NULL, true);
390 as = yang_dnode_get_uint32(args->dnode, NULL);
391
392 bgp_confederation_peers_remove(bgp, as);
393
394 return NB_OK;
395 }
396
397 /*
398 * XPath:
399 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/med-config
400 */
401 void bgp_global_med_config_apply_finish(struct nb_cb_apply_finish_args *args)
402 {
403 struct bgp *bgp;
404
405 bgp = nb_running_get_entry(args->dnode, NULL, true);
406
407 bgp_maxmed_update(bgp);
408 }
409
410 /*
411 * XPath:
412 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/med-config/enable-med-admin
413 */
414 int bgp_global_med_config_enable_med_admin_modify(
415 struct nb_cb_modify_args *args)
416 {
417 if (args->event != NB_EV_APPLY)
418 return NB_OK;
419
420 struct bgp *bgp;
421
422 bgp = nb_running_get_entry(args->dnode, NULL, true);
423
424 bgp->v_maxmed_admin = yang_dnode_get_bool(args->dnode, NULL);
425
426 return NB_OK;
427 }
428
429 /*
430 * XPath:
431 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/med-config/max-med-admin
432 */
433 int bgp_global_med_config_max_med_admin_modify(struct nb_cb_modify_args *args)
434 {
435 struct bgp *bgp;
436 uint32_t med_admin_val;
437
438 switch (args->event) {
439 case NB_EV_VALIDATE:
440 med_admin_val = yang_dnode_get_uint32(args->dnode, NULL);
441
442 /* enable_med_admin is required to be enabled for max-med-admin
443 * non default value.
444 */
445 if (med_admin_val != BGP_MAXMED_VALUE_DEFAULT
446 && !yang_dnode_get_bool(args->dnode,
447 "../enable-med-admin")) {
448 snprintf(args->errmsg, args->errmsg_len,
449 "enable med admin is not set");
450 return NB_ERR_VALIDATION;
451 }
452
453 break;
454 case NB_EV_PREPARE:
455 case NB_EV_ABORT:
456 return NB_OK;
457 case NB_EV_APPLY:
458 bgp = nb_running_get_entry(args->dnode, NULL, true);
459
460 med_admin_val = yang_dnode_get_uint32(args->dnode, NULL);
461
462 bgp->maxmed_admin_value = med_admin_val;
463
464 break;
465 }
466
467 return NB_OK;
468 }
469
470 /*
471 * XPath:
472 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/med-config/max-med-onstart-up-time
473 */
474 int bgp_global_med_config_max_med_onstart_up_time_modify(
475 struct nb_cb_modify_args *args)
476 {
477 struct bgp *bgp;
478
479 switch (args->event) {
480 case NB_EV_VALIDATE:
481 case NB_EV_PREPARE:
482 case NB_EV_ABORT:
483 return NB_OK;
484 case NB_EV_APPLY:
485 bgp = nb_running_get_entry(args->dnode, NULL, true);
486
487 bgp->v_maxmed_onstartup =
488 yang_dnode_get_uint32(args->dnode, NULL);
489
490 break;
491 }
492
493 return NB_OK;
494 }
495
496 int bgp_global_med_config_max_med_onstart_up_time_destroy(
497 struct nb_cb_destroy_args *args)
498 {
499 struct bgp *bgp;
500
501 switch (args->event) {
502 case NB_EV_VALIDATE:
503 case NB_EV_PREPARE:
504 case NB_EV_ABORT:
505 return NB_OK;
506 case NB_EV_APPLY:
507 bgp = nb_running_get_entry(args->dnode, NULL, true);
508
509 /* Cancel max-med onstartup if its on */
510 if (bgp->t_maxmed_onstartup) {
511 THREAD_OFF(bgp->t_maxmed_onstartup);
512 bgp->maxmed_onstartup_over = 1;
513 }
514
515 bgp->v_maxmed_onstartup = BGP_MAXMED_ONSTARTUP_UNCONFIGURED;
516 /* Resetting onstartup value as part of dependent node is
517 * detroyed.
518 */
519 bgp->maxmed_onstartup_value = BGP_MAXMED_VALUE_DEFAULT;
520
521 break;
522 }
523
524 return NB_OK;
525 }
526
527 /*
528 * XPath:
529 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/med-config/max-med-onstart-up-value
530 */
531 int bgp_global_med_config_max_med_onstart_up_value_modify(
532 struct nb_cb_modify_args *args)
533 {
534 struct bgp *bgp;
535 uint32_t onstartup_val;
536
537 switch (args->event) {
538 case NB_EV_VALIDATE:
539 onstartup_val = yang_dnode_get_uint32(args->dnode, NULL);
540
541 if (!yang_dnode_exists(args->dnode,
542 "../max-med-onstart-up-time")
543 && onstartup_val != BGP_MAXMED_VALUE_DEFAULT) {
544 snprintf(args->errmsg, args->errmsg_len,
545 "max-med-onstart-up-time is not set.");
546 return NB_ERR_VALIDATION;
547 }
548
549 break;
550 case NB_EV_PREPARE:
551 case NB_EV_ABORT:
552 return NB_OK;
553 case NB_EV_APPLY:
554 bgp = nb_running_get_entry(args->dnode, NULL, true);
555
556 bgp->maxmed_onstartup_value =
557 yang_dnode_get_uint32(args->dnode, NULL);
558
559 break;
560 }
561
562 return NB_OK;
563 }
564
565 /*
566 * XPath:
567 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-reflector/route-reflector-cluster-id
568 */
569 int bgp_global_route_reflector_route_reflector_cluster_id_modify(
570 struct nb_cb_modify_args *args)
571 {
572 if (args->event != NB_EV_APPLY)
573 return NB_OK;
574
575 struct bgp *bgp;
576 struct in_addr cluster_id;
577 const struct lyd_node_leaf_list *dleaf;
578
579 bgp = nb_running_get_entry(args->dnode, NULL, true);
580
581 dleaf = (const struct lyd_node_leaf_list *)args->dnode;
582 if (dleaf->value_type == LY_TYPE_STRING)
583 yang_dnode_get_ipv4(&cluster_id, args->dnode, NULL);
584 else
585 (void)inet_aton(dleaf->value_str, &cluster_id);
586
587 bgp_cluster_id_set(bgp, &cluster_id);
588
589 if (bgp_clear_star_soft_out(bgp->name, args->errmsg, args->errmsg_len))
590 return NB_ERR_INCONSISTENCY;
591
592 return NB_OK;
593 }
594
595 int bgp_global_route_reflector_route_reflector_cluster_id_destroy(
596 struct nb_cb_destroy_args *args)
597 {
598 if (args->event != NB_EV_APPLY)
599 return NB_OK;
600
601 struct bgp *bgp;
602
603 bgp = nb_running_get_entry(args->dnode, NULL, true);
604
605 bgp_cluster_id_unset(bgp);
606
607 if (bgp_clear_star_soft_out(bgp->name, args->errmsg, args->errmsg_len))
608 return NB_ERR_INCONSISTENCY;
609
610 return NB_OK;
611 }
612
613 /*
614 * XPath:
615 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-reflector/no-client-reflect
616 */
617 int bgp_global_route_reflector_no_client_reflect_modify(
618 struct nb_cb_modify_args *args)
619 {
620 if (args->event != NB_EV_APPLY)
621 return NB_OK;
622
623 struct bgp *bgp;
624
625 bgp = nb_running_get_entry(args->dnode, NULL, true);
626
627 if (yang_dnode_get_bool(args->dnode, NULL))
628 SET_FLAG(bgp->flags, BGP_FLAG_NO_CLIENT_TO_CLIENT);
629 else
630 UNSET_FLAG(bgp->flags, BGP_FLAG_NO_CLIENT_TO_CLIENT);
631
632 if (bgp_clear_star_soft_out(bgp->name, args->errmsg, args->errmsg_len))
633 return NB_ERR_INCONSISTENCY;
634
635 return NB_OK;
636 }
637
638 /*
639 * XPath:
640 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-reflector/allow-outbound-policy
641 */
642 int bgp_global_route_reflector_allow_outbound_policy_modify(
643 struct nb_cb_modify_args *args)
644 {
645 if (args->event != NB_EV_APPLY)
646 return NB_OK;
647
648 struct bgp *bgp;
649
650 bgp = nb_running_get_entry(args->dnode, NULL, true);
651
652 if (yang_dnode_get_bool(args->dnode, NULL))
653 SET_FLAG(bgp->flags, BGP_FLAG_RR_ALLOW_OUTBOUND_POLICY);
654 else
655 UNSET_FLAG(bgp->flags, BGP_FLAG_RR_ALLOW_OUTBOUND_POLICY);
656
657 update_group_announce_rrclients(bgp);
658
659 if (bgp_clear_star_soft_out(bgp->name, args->errmsg, args->errmsg_len))
660 return NB_ERR_INCONSISTENCY;
661
662 return NB_OK;
663 }
664
665 /*
666 * XPath:
667 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options
668 */
669 void bgp_global_route_selection_options_apply_finish(
670 struct nb_cb_apply_finish_args *args)
671 {
672 struct bgp *bgp;
673
674 bgp = nb_running_get_entry(args->dnode, NULL, true);
675
676 bgp_recalculate_all_bestpaths(bgp);
677 }
678
679 /*
680 * XPath:
681 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/always-compare-med
682 */
683 int bgp_global_route_selection_options_always_compare_med_modify(
684 struct nb_cb_modify_args *args)
685 {
686 if (args->event != NB_EV_APPLY)
687 return NB_OK;
688
689 struct bgp *bgp;
690
691 bgp = nb_running_get_entry(args->dnode, NULL, true);
692
693 if (yang_dnode_get_bool(args->dnode, NULL))
694 SET_FLAG(bgp->flags, BGP_FLAG_ALWAYS_COMPARE_MED);
695 else
696 UNSET_FLAG(bgp->flags, BGP_FLAG_ALWAYS_COMPARE_MED);
697
698
699 return NB_OK;
700 }
701
702 /*
703 * XPath:
704 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/deterministic-med
705 */
706 int bgp_global_route_selection_options_deterministic_med_modify(
707 struct nb_cb_modify_args *args)
708 {
709 struct bgp *bgp;
710 int bestpath_per_as_used;
711 afi_t afi;
712 safi_t safi;
713 struct peer *peer;
714 struct listnode *node;
715
716 switch (args->event) {
717 case NB_EV_VALIDATE:
718 bgp = nb_running_get_entry(args->dnode, NULL, false);
719
720 if (!bgp)
721 return NB_OK;
722
723 /* for deconfiguring deterministic-med case */
724 if (!yang_dnode_get_bool(args->dnode, NULL)
725 && CHECK_FLAG(bgp->flags, BGP_FLAG_DETERMINISTIC_MED)) {
726 bestpath_per_as_used = 0;
727
728 for (ALL_LIST_ELEMENTS_RO(bgp->peer, node, peer)) {
729 FOREACH_AFI_SAFI (afi, safi)
730 if (bgp_addpath_dmed_required(
731 peer->addpath_type[afi]
732 [safi])) {
733 bestpath_per_as_used = 1;
734 break;
735 }
736
737 if (bestpath_per_as_used)
738 break;
739 }
740
741 if (bestpath_per_as_used) {
742 snprintf(
743 args->errmsg, args->errmsg_len,
744 "bgp deterministic-med cannot be disabled while addpath-tx-bestpath-per-AS is in use");
745 return NB_ERR_VALIDATION;
746 }
747 }
748
749 break;
750 case NB_EV_PREPARE:
751 case NB_EV_ABORT:
752 return NB_OK;
753 case NB_EV_APPLY:
754 bgp = nb_running_get_entry(args->dnode, NULL, true);
755
756 if (yang_dnode_get_bool(args->dnode, NULL))
757 SET_FLAG(bgp->flags, BGP_FLAG_DETERMINISTIC_MED);
758 else
759 UNSET_FLAG(bgp->flags, BGP_FLAG_DETERMINISTIC_MED);
760
761 break;
762 }
763
764 return NB_OK;
765 }
766
767 /*
768 * XPath:
769 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/confed-med
770 */
771 int bgp_global_route_selection_options_confed_med_modify(
772 struct nb_cb_modify_args *args)
773 {
774 if (args->event != NB_EV_APPLY)
775 return NB_OK;
776
777 struct bgp *bgp;
778
779 bgp = nb_running_get_entry(args->dnode, NULL, true);
780
781 if (yang_dnode_get_bool(args->dnode, NULL))
782 SET_FLAG(bgp->flags, BGP_FLAG_MED_CONFED);
783 else
784 UNSET_FLAG(bgp->flags, BGP_FLAG_MED_CONFED);
785
786 return NB_OK;
787 }
788
789 /*
790 * XPath:
791 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/missing-as-worst-med
792 */
793 int bgp_global_route_selection_options_missing_as_worst_med_modify(
794 struct nb_cb_modify_args *args)
795 {
796 if (args->event != NB_EV_APPLY)
797 return NB_OK;
798
799 struct bgp *bgp;
800
801 bgp = nb_running_get_entry(args->dnode, NULL, true);
802
803 if (yang_dnode_get_bool(args->dnode, NULL))
804 SET_FLAG(bgp->flags, BGP_FLAG_MED_MISSING_AS_WORST);
805 else
806 UNSET_FLAG(bgp->flags, BGP_FLAG_MED_MISSING_AS_WORST);
807
808 return NB_OK;
809 }
810
811 /*
812 * XPath:
813 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/aspath-confed
814 */
815 int bgp_global_route_selection_options_aspath_confed_modify(
816 struct nb_cb_modify_args *args)
817 {
818 switch (args->event) {
819 case NB_EV_VALIDATE:
820 case NB_EV_PREPARE:
821 case NB_EV_ABORT:
822 case NB_EV_APPLY:
823 /* TODO: implement me. */
824 break;
825 }
826
827 return NB_OK;
828 }
829
830 /*
831 * XPath:
832 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/ignore-as-path-length
833 */
834 int bgp_global_route_selection_options_ignore_as_path_length_modify(
835 struct nb_cb_modify_args *args)
836 {
837 if (args->event != NB_EV_APPLY)
838 return NB_OK;
839
840 struct bgp *bgp;
841
842 bgp = nb_running_get_entry(args->dnode, NULL, true);
843
844 if (yang_dnode_get_bool(args->dnode, NULL))
845 SET_FLAG(bgp->flags, BGP_FLAG_ASPATH_IGNORE);
846 else
847 UNSET_FLAG(bgp->flags, BGP_FLAG_ASPATH_IGNORE);
848
849 return NB_OK;
850 }
851
852 /*
853 * XPath:
854 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/external-compare-router-id
855 */
856 int bgp_global_route_selection_options_external_compare_router_id_modify(
857 struct nb_cb_modify_args *args)
858 {
859 if (args->event != NB_EV_APPLY)
860 return NB_OK;
861
862 struct bgp *bgp;
863
864 bgp = nb_running_get_entry(args->dnode, NULL, true);
865
866 if (yang_dnode_get_bool(args->dnode, NULL))
867 SET_FLAG(bgp->flags, BGP_FLAG_COMPARE_ROUTER_ID);
868 else
869 UNSET_FLAG(bgp->flags, BGP_FLAG_COMPARE_ROUTER_ID);
870
871 return NB_OK;
872 }
873
874 /*
875 * XPath:
876 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/allow-multiple-as
877 */
878 int bgp_global_route_selection_options_allow_multiple_as_modify(
879 struct nb_cb_modify_args *args)
880 {
881 struct bgp *bgp;
882
883 switch (args->event) {
884 case NB_EV_VALIDATE:
885 case NB_EV_PREPARE:
886 case NB_EV_ABORT:
887 return NB_OK;
888 case NB_EV_APPLY:
889 bgp = nb_running_get_entry(args->dnode, NULL, true);
890
891 if (yang_dnode_get_bool(args->dnode, NULL)) {
892 SET_FLAG(bgp->flags, BGP_FLAG_ASPATH_MULTIPATH_RELAX);
893 if (yang_dnode_get_bool(args->dnode,
894 "../multi-path-as-set")) {
895 SET_FLAG(bgp->flags,
896 BGP_FLAG_MULTIPATH_RELAX_AS_SET);
897 } else {
898 UNSET_FLAG(bgp->flags,
899 BGP_FLAG_MULTIPATH_RELAX_AS_SET);
900 }
901 } else {
902 UNSET_FLAG(bgp->flags, BGP_FLAG_ASPATH_MULTIPATH_RELAX);
903 /* unset as-set */
904 UNSET_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET);
905 }
906
907 break;
908 }
909
910 return NB_OK;
911 }
912
913 /*
914 * XPath:
915 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/multi-path-as-set
916 */
917 int bgp_global_route_selection_options_multi_path_as_set_modify(
918 struct nb_cb_modify_args *args)
919 {
920 struct bgp *bgp;
921
922 switch (args->event) {
923 case NB_EV_VALIDATE:
924 case NB_EV_PREPARE:
925 case NB_EV_ABORT:
926 return NB_OK;
927 case NB_EV_APPLY:
928 bgp = nb_running_get_entry(args->dnode, NULL, true);
929 if (yang_dnode_get_bool(args->dnode, NULL))
930 SET_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET);
931 else
932 UNSET_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET);
933 break;
934 }
935
936 return NB_OK;
937 }
938
939 int bgp_global_route_selection_options_multi_path_as_set_destroy(
940 struct nb_cb_destroy_args *args)
941 {
942 struct bgp *bgp;
943
944 switch (args->event) {
945 case NB_EV_VALIDATE:
946 case NB_EV_PREPARE:
947 case NB_EV_ABORT:
948 return NB_OK;
949 case NB_EV_APPLY:
950 bgp = nb_running_get_entry(args->dnode, NULL, true);
951 /* Only unset if it set, it is possible allow_multiple_as_modify
952 * unset this.
953 */
954 if (CHECK_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET)) {
955 UNSET_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET);
956
957 bgp_recalculate_all_bestpaths(bgp);
958 }
959
960 break;
961 }
962
963 return NB_OK;
964 }
965
966 /*
967 * XPath:
968 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-neighbor-config/dynamic-neighbors-limit
969 */
970 int bgp_global_global_neighbor_config_dynamic_neighbors_limit_modify(
971 struct nb_cb_modify_args *args)
972 {
973 if (args->event != NB_EV_APPLY)
974 return NB_OK;
975
976 struct bgp *bgp;
977 uint32_t listen_limit;
978
979 bgp = nb_running_get_entry(args->dnode, NULL, true);
980
981 listen_limit = yang_dnode_get_uint32(args->dnode, NULL);
982
983 bgp_listen_limit_set(bgp, listen_limit);
984
985 return NB_OK;
986 }
987
988 int bgp_global_global_neighbor_config_dynamic_neighbors_limit_destroy(
989 struct nb_cb_destroy_args *args)
990 {
991 if (args->event != NB_EV_APPLY)
992 return NB_OK;
993
994 struct bgp *bgp;
995
996 bgp = nb_running_get_entry(args->dnode, NULL, true);
997
998 bgp_listen_limit_unset(bgp);
999
1000 return NB_OK;
1001 }
1002
1003 /*
1004 * XPath:
1005 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-neighbor-config/log-neighbor-changes
1006 */
1007 int bgp_global_global_neighbor_config_log_neighbor_changes_modify(
1008 struct nb_cb_modify_args *args)
1009 {
1010 if (args->event != NB_EV_APPLY)
1011 return NB_OK;
1012
1013 struct bgp *bgp;
1014
1015 bgp = nb_running_get_entry(args->dnode, NULL, true);
1016
1017 if (yang_dnode_get_bool(args->dnode, NULL))
1018 SET_FLAG(bgp->flags, BGP_FLAG_LOG_NEIGHBOR_CHANGES);
1019 else
1020 UNSET_FLAG(bgp->flags, BGP_FLAG_LOG_NEIGHBOR_CHANGES);
1021
1022 return NB_OK;
1023 }
1024
1025 /*
1026 * XPath:
1027 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-neighbor-config/packet-quanta-config/wpkt-quanta
1028 */
1029 int bgp_global_global_neighbor_config_packet_quanta_config_wpkt_quanta_modify(
1030 struct nb_cb_modify_args *args)
1031 {
1032 if (args->event != NB_EV_APPLY)
1033 return NB_OK;
1034
1035 struct bgp *bgp;
1036 uint32_t quanta;
1037
1038 bgp = nb_running_get_entry(args->dnode, NULL, true);
1039
1040 quanta = yang_dnode_get_uint32(args->dnode, NULL);
1041
1042 if (atomic_load_explicit(&bgp->wpkt_quanta, memory_order_relaxed)
1043 == BGP_WRITE_PACKET_MAX)
1044 bgp_wpkt_quanta_config_vty(bgp, quanta, true);
1045 else
1046 bgp_wpkt_quanta_config_vty(bgp, quanta, false);
1047
1048 return NB_OK;
1049 }
1050
1051 /*
1052 * XPath:
1053 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-neighbor-config/packet-quanta-config/rpkt-quanta
1054 */
1055 int bgp_global_global_neighbor_config_packet_quanta_config_rpkt_quanta_modify(
1056 struct nb_cb_modify_args *args)
1057 {
1058 if (args->event != NB_EV_APPLY)
1059 return NB_OK;
1060
1061 struct bgp *bgp;
1062 uint32_t quanta;
1063
1064 bgp = nb_running_get_entry(args->dnode, NULL, true);
1065
1066 quanta = yang_dnode_get_uint32(args->dnode, NULL);
1067
1068 if (atomic_load_explicit(&bgp->rpkt_quanta, memory_order_relaxed)
1069 == BGP_READ_PACKET_MAX)
1070 bgp_rpkt_quanta_config_vty(bgp, quanta, true);
1071 else
1072 bgp_rpkt_quanta_config_vty(bgp, quanta, false);
1073
1074 return NB_OK;
1075 }
1076
1077 /*
1078 * XPath:
1079 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/enabled
1080 */
1081 int bgp_global_graceful_restart_enabled_modify(struct nb_cb_modify_args *args)
1082 {
1083 switch (args->event) {
1084 case NB_EV_VALIDATE:
1085 case NB_EV_PREPARE:
1086 case NB_EV_ABORT:
1087 case NB_EV_APPLY:
1088 /* TODO: implement me. */
1089 break;
1090 }
1091
1092 return NB_OK;
1093 }
1094
1095 int bgp_global_graceful_restart_enabled_destroy(struct nb_cb_destroy_args *args)
1096 {
1097 switch (args->event) {
1098 case NB_EV_VALIDATE:
1099 case NB_EV_PREPARE:
1100 case NB_EV_ABORT:
1101 case NB_EV_APPLY:
1102 /* TODO: implement me. */
1103 break;
1104 }
1105
1106 return NB_OK;
1107 }
1108
1109 /*
1110 * XPath:
1111 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/graceful-restart-disable
1112 */
1113 int bgp_global_graceful_restart_graceful_restart_disable_modify(
1114 struct nb_cb_modify_args *args)
1115 {
1116 switch (args->event) {
1117 case NB_EV_VALIDATE:
1118 case NB_EV_PREPARE:
1119 case NB_EV_ABORT:
1120 case NB_EV_APPLY:
1121 /* TODO: implement me. */
1122 break;
1123 }
1124
1125 return NB_OK;
1126 }
1127
1128 int bgp_global_graceful_restart_graceful_restart_disable_destroy(
1129 struct nb_cb_destroy_args *args)
1130 {
1131 switch (args->event) {
1132 case NB_EV_VALIDATE:
1133 case NB_EV_PREPARE:
1134 case NB_EV_ABORT:
1135 case NB_EV_APPLY:
1136 /* TODO: implement me. */
1137 break;
1138 }
1139
1140 return NB_OK;
1141 }
1142
1143 /*
1144 * XPath:
1145 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/preserve-fw-entry
1146 */
1147 int bgp_global_graceful_restart_preserve_fw_entry_modify(
1148 struct nb_cb_modify_args *args)
1149 {
1150 switch (args->event) {
1151 case NB_EV_VALIDATE:
1152 case NB_EV_PREPARE:
1153 case NB_EV_ABORT:
1154 case NB_EV_APPLY:
1155 /* TODO: implement me. */
1156 break;
1157 }
1158
1159 return NB_OK;
1160 }
1161
1162 /*
1163 * XPath:
1164 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/restart-time
1165 */
1166 int bgp_global_graceful_restart_restart_time_modify(
1167 struct nb_cb_modify_args *args)
1168 {
1169 switch (args->event) {
1170 case NB_EV_VALIDATE:
1171 case NB_EV_PREPARE:
1172 case NB_EV_ABORT:
1173 case NB_EV_APPLY:
1174 /* TODO: implement me. */
1175 break;
1176 }
1177
1178 return NB_OK;
1179 }
1180
1181 /*
1182 * XPath:
1183 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/stale-routes-time
1184 */
1185 int bgp_global_graceful_restart_stale_routes_time_modify(
1186 struct nb_cb_modify_args *args)
1187 {
1188 switch (args->event) {
1189 case NB_EV_VALIDATE:
1190 case NB_EV_PREPARE:
1191 case NB_EV_ABORT:
1192 case NB_EV_APPLY:
1193 /* TODO: implement me. */
1194 break;
1195 }
1196
1197 return NB_OK;
1198 }
1199
1200 /*
1201 * XPath:
1202 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/selection-deferral-time
1203 */
1204 int bgp_global_graceful_restart_selection_deferral_time_modify(
1205 struct nb_cb_modify_args *args)
1206 {
1207 switch (args->event) {
1208 case NB_EV_VALIDATE:
1209 case NB_EV_PREPARE:
1210 case NB_EV_ABORT:
1211 case NB_EV_APPLY:
1212 /* TODO: implement me. */
1213 break;
1214 }
1215
1216 return NB_OK;
1217 }
1218
1219 /*
1220 * XPath:
1221 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/rib-stale-time
1222 */
1223 int bgp_global_graceful_restart_rib_stale_time_modify(
1224 struct nb_cb_modify_args *args)
1225 {
1226 switch (args->event) {
1227 case NB_EV_VALIDATE:
1228 case NB_EV_PREPARE:
1229 case NB_EV_ABORT:
1230 case NB_EV_APPLY:
1231 /* TODO: implement me. */
1232 break;
1233 }
1234
1235 return NB_OK;
1236 }
1237
1238 /*
1239 * XPath:
1240 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-update-group-config/subgroup-pkt-queue-size
1241 */
1242 int bgp_global_global_update_group_config_subgroup_pkt_queue_size_modify(
1243 struct nb_cb_modify_args *args)
1244 {
1245 if (args->event != NB_EV_APPLY)
1246 return NB_OK;
1247
1248 struct bgp *bgp;
1249 uint32_t max_size;
1250
1251 bgp = nb_running_get_entry(args->dnode, NULL, true);
1252
1253 max_size = yang_dnode_get_uint32(args->dnode, NULL);
1254
1255 bgp_default_subgroup_pkt_queue_max_set(bgp, max_size);
1256
1257 return NB_OK;
1258 }
1259
1260 /*
1261 * XPath:
1262 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-update-group-config/coalesce-time
1263 */
1264 int bgp_global_global_update_group_config_coalesce_time_modify(
1265 struct nb_cb_modify_args *args)
1266 {
1267 if (args->event != NB_EV_APPLY)
1268 return NB_OK;
1269
1270 struct bgp *bgp;
1271 uint32_t coalesce_time;
1272
1273 bgp = nb_running_get_entry(args->dnode, NULL, true);
1274
1275 coalesce_time = yang_dnode_get_uint32(args->dnode, NULL);
1276
1277 if (coalesce_time != BGP_DEFAULT_SUBGROUP_COALESCE_TIME) {
1278 bgp->heuristic_coalesce = false;
1279 bgp->coalesce_time = coalesce_time;
1280 } else {
1281 bgp->heuristic_coalesce = true;
1282 bgp->coalesce_time = BGP_DEFAULT_SUBGROUP_COALESCE_TIME;
1283 }
1284
1285 return NB_OK;
1286 }
1287
1288 /*
1289 * XPath:
1290 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/rmap-delay-time
1291 */
1292 int bgp_global_global_config_timers_rmap_delay_time_modify(
1293 struct nb_cb_modify_args *args)
1294 {
1295 switch (args->event) {
1296 case NB_EV_VALIDATE:
1297 case NB_EV_PREPARE:
1298 case NB_EV_ABORT:
1299 case NB_EV_APPLY:
1300 /* TODO: implement me. */
1301 break;
1302 }
1303
1304 return NB_OK;
1305 }
1306
1307 /*
1308 * XPath:
1309 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/update-delay-time
1310 */
1311 int bgp_global_global_config_timers_update_delay_time_modify(
1312 struct nb_cb_modify_args *args)
1313 {
1314 switch (args->event) {
1315 case NB_EV_VALIDATE:
1316 case NB_EV_PREPARE:
1317 case NB_EV_ABORT:
1318 case NB_EV_APPLY:
1319 /* TODO: implement me. */
1320 break;
1321 }
1322
1323 return NB_OK;
1324 }
1325
1326 int bgp_global_global_config_timers_update_delay_time_destroy(
1327 struct nb_cb_destroy_args *args)
1328 {
1329 switch (args->event) {
1330 case NB_EV_VALIDATE:
1331 case NB_EV_PREPARE:
1332 case NB_EV_ABORT:
1333 case NB_EV_APPLY:
1334 /* TODO: implement me. */
1335 break;
1336 }
1337
1338 return NB_OK;
1339 }
1340
1341 /*
1342 * XPath:
1343 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/establish-wait-time
1344 */
1345 int bgp_global_global_config_timers_establish_wait_time_modify(
1346 struct nb_cb_modify_args *args)
1347 {
1348 switch (args->event) {
1349 case NB_EV_VALIDATE:
1350 case NB_EV_PREPARE:
1351 case NB_EV_ABORT:
1352 case NB_EV_APPLY:
1353 /* TODO: implement me. */
1354 break;
1355 }
1356
1357 return NB_OK;
1358 }
1359
1360 int bgp_global_global_config_timers_establish_wait_time_destroy(
1361 struct nb_cb_destroy_args *args)
1362 {
1363 switch (args->event) {
1364 case NB_EV_VALIDATE:
1365 case NB_EV_PREPARE:
1366 case NB_EV_ABORT:
1367 case NB_EV_APPLY:
1368 /* TODO: implement me. */
1369 break;
1370 }
1371
1372 return NB_OK;
1373 }
1374
1375 /*
1376 * XPath:
1377 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/connect-retry-interval
1378 */
1379 int bgp_global_global_config_timers_connect_retry_interval_modify(
1380 struct nb_cb_modify_args *args)
1381 {
1382 switch (args->event) {
1383 case NB_EV_VALIDATE:
1384 case NB_EV_PREPARE:
1385 case NB_EV_ABORT:
1386 case NB_EV_APPLY:
1387 /* TODO: implement me. */
1388 break;
1389 }
1390
1391 return NB_OK;
1392 }
1393
1394 /*
1395 * XPath:
1396 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/hold-time
1397 */
1398 int bgp_global_global_config_timers_hold_time_modify(
1399 struct nb_cb_modify_args *args)
1400 {
1401 struct bgp *bgp;
1402 unsigned long keepalive = 0;
1403 unsigned long holdtime = 0;
1404
1405 switch (args->event) {
1406 case NB_EV_VALIDATE:
1407 holdtime = yang_dnode_get_uint16(args->dnode, NULL);
1408 /* Holdtime value check. */
1409 if (holdtime < 3 && holdtime != 0) {
1410 snprintf(
1411 args->errmsg, args->errmsg_len,
1412 "hold time value must be either 0 or greater than 3");
1413 return NB_ERR_VALIDATION;
1414 }
1415
1416 break;
1417 case NB_EV_PREPARE:
1418 case NB_EV_ABORT:
1419 return NB_OK;
1420 case NB_EV_APPLY:
1421 bgp = nb_running_get_entry(args->dnode, NULL, true);
1422
1423 keepalive = yang_dnode_get_uint16(args->dnode, "../keepalive");
1424 holdtime = yang_dnode_get_uint16(args->dnode, NULL);
1425
1426 bgp_timers_set(bgp, keepalive, holdtime, DFLT_BGP_CONNECT_RETRY,
1427 BGP_DEFAULT_DELAYOPEN);
1428
1429 break;
1430 }
1431
1432 return NB_OK;
1433 }
1434
1435 /*
1436 * XPath:
1437 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/keepalive
1438 */
1439 int bgp_global_global_config_timers_keepalive_modify(
1440 struct nb_cb_modify_args *args)
1441 {
1442 struct bgp *bgp;
1443 unsigned long keepalive = 0;
1444 unsigned long holdtime = 0;
1445
1446 switch (args->event) {
1447 case NB_EV_VALIDATE:
1448 holdtime = yang_dnode_get_uint16(args->dnode, "../hold-time");
1449 /* Holdtime value check. */
1450 if (holdtime < 3 && holdtime != 0) {
1451 snprintf(
1452 args->errmsg, args->errmsg_len,
1453 "hold time value must be either 0 or greater than 3");
1454 return NB_ERR_VALIDATION;
1455 }
1456
1457 break;
1458 case NB_EV_PREPARE:
1459 case NB_EV_ABORT:
1460 return NB_OK;
1461 case NB_EV_APPLY:
1462 bgp = nb_running_get_entry(args->dnode, NULL, true);
1463
1464 keepalive = yang_dnode_get_uint16(args->dnode, NULL);
1465 holdtime = yang_dnode_get_uint16(args->dnode, "../hold-time");
1466
1467 bgp_timers_set(bgp, keepalive, holdtime, DFLT_BGP_CONNECT_RETRY,
1468 BGP_DEFAULT_DELAYOPEN);
1469
1470 break;
1471 }
1472
1473 return NB_OK;
1474 }
1475
1476 /*
1477 * XPath:
1478 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/instance-type-view
1479 */
1480 int bgp_global_instance_type_view_modify(struct nb_cb_modify_args *args)
1481 {
1482 switch (args->event) {
1483 case NB_EV_VALIDATE:
1484 case NB_EV_PREPARE:
1485 case NB_EV_ABORT:
1486 case NB_EV_APPLY:
1487 /* TODO: implement me. */
1488 break;
1489 }
1490
1491 return NB_OK;
1492 }
1493
1494 /*
1495 * XPath:
1496 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/ebgp-multihop-connected-route-check
1497 */
1498 int bgp_global_ebgp_multihop_connected_route_check_modify(
1499 struct nb_cb_modify_args *args)
1500 {
1501 if (args->event != NB_EV_APPLY)
1502 return NB_OK;
1503
1504 struct bgp *bgp;
1505
1506 bgp = nb_running_get_entry(args->dnode, NULL, true);
1507
1508 if (yang_dnode_get_bool(args->dnode, NULL))
1509 SET_FLAG(bgp->flags, BGP_FLAG_DISABLE_NH_CONNECTED_CHK);
1510 else
1511 UNSET_FLAG(bgp->flags, BGP_FLAG_DISABLE_NH_CONNECTED_CHK);
1512
1513 if (bgp_clear_star_soft_in(bgp->name, args->errmsg, args->errmsg_len))
1514 return NB_ERR_INCONSISTENCY;
1515
1516 return NB_OK;
1517 }
1518
1519 /*
1520 * XPath:
1521 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/fast-external-failover
1522 */
1523 int bgp_global_fast_external_failover_modify(struct nb_cb_modify_args *args)
1524 {
1525 if (args->event != NB_EV_APPLY)
1526 return NB_OK;
1527 struct bgp *bgp;
1528
1529 bgp = nb_running_get_entry(args->dnode, NULL, true);
1530 if (!yang_dnode_get_bool(args->dnode, NULL)) {
1531 SET_FLAG(bgp->flags, BGP_FLAG_NO_FAST_EXT_FAILOVER);
1532 } else
1533 UNSET_FLAG(bgp->flags, BGP_FLAG_NO_FAST_EXT_FAILOVER);
1534
1535 return NB_OK;
1536 }
1537
1538 /*
1539 * XPath:
1540 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/local-pref
1541 */
1542 int bgp_global_local_pref_modify(struct nb_cb_modify_args *args)
1543 {
1544 if (args->event != NB_EV_APPLY)
1545 return NB_OK;
1546 struct bgp *bgp;
1547 uint32_t local_pref;
1548
1549 bgp = nb_running_get_entry(args->dnode, NULL, true);
1550 local_pref = yang_dnode_get_uint32(args->dnode, NULL);
1551
1552 bgp_default_local_preference_set(bgp, local_pref);
1553
1554 if (bgp_clear_star_soft_in(bgp->name, args->errmsg, args->errmsg_len))
1555 return NB_ERR_INCONSISTENCY;
1556
1557 return NB_OK;
1558 }
1559
1560 /*
1561 * XPath:
1562 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/default-shutdown
1563 */
1564 int bgp_global_default_shutdown_modify(struct nb_cb_modify_args *args)
1565 {
1566 if (args->event != NB_EV_APPLY)
1567 return NB_OK;
1568
1569 struct bgp *bgp;
1570
1571 bgp = nb_running_get_entry(args->dnode, NULL, true);
1572 bgp->autoshutdown = yang_dnode_get_bool(args->dnode, NULL);
1573
1574 return NB_OK;
1575 }
1576
1577 /*
1578 * XPath:
1579 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/ebgp-requires-policy
1580 */
1581 int bgp_global_ebgp_requires_policy_modify(struct nb_cb_modify_args *args)
1582 {
1583 if (args->event != NB_EV_APPLY)
1584 return NB_OK;
1585
1586 struct bgp *bgp;
1587
1588 bgp = nb_running_get_entry(args->dnode, NULL, true);
1589
1590 if (yang_dnode_get_bool(args->dnode, NULL))
1591 SET_FLAG(bgp->flags, BGP_FLAG_EBGP_REQUIRES_POLICY);
1592 else
1593 UNSET_FLAG(bgp->flags, BGP_FLAG_EBGP_REQUIRES_POLICY);
1594
1595 return NB_OK;
1596 }
1597
1598 /*
1599 * XPath:
1600 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/suppress-duplicates
1601 */
1602 int bgp_global_suppress_duplicates_modify(struct nb_cb_modify_args *args)
1603 {
1604 if (args->event != NB_EV_APPLY)
1605 return NB_OK;
1606
1607 struct bgp *bgp;
1608
1609 bgp = nb_running_get_entry(args->dnode, NULL, true);
1610
1611 if (yang_dnode_get_bool(args->dnode, NULL))
1612 SET_FLAG(bgp->flags, BGP_FLAG_SUPPRESS_DUPLICATES);
1613 else
1614 UNSET_FLAG(bgp->flags, BGP_FLAG_SUPPRESS_DUPLICATES);
1615
1616 return NB_OK;
1617 }
1618
1619 /*
1620 * XPath:
1621 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/show-hostname
1622 */
1623 int bgp_global_show_hostname_modify(struct nb_cb_modify_args *args)
1624 {
1625 if (args->event != NB_EV_APPLY)
1626 return NB_OK;
1627
1628 struct bgp *bgp;
1629
1630 bgp = nb_running_get_entry(args->dnode, NULL, true);
1631
1632 if (yang_dnode_get_bool(args->dnode, NULL))
1633 SET_FLAG(bgp->flags, BGP_FLAG_SHOW_HOSTNAME);
1634 else
1635 UNSET_FLAG(bgp->flags, BGP_FLAG_SHOW_HOSTNAME);
1636
1637 return NB_OK;
1638 }
1639
1640 /*
1641 * XPath:
1642 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/show-nexthop-hostname
1643 */
1644 int bgp_global_show_nexthop_hostname_modify(struct nb_cb_modify_args *args)
1645 {
1646 if (args->event != NB_EV_APPLY)
1647 return NB_OK;
1648
1649 struct bgp *bgp;
1650
1651 bgp = nb_running_get_entry(args->dnode, NULL, true);
1652
1653 if (yang_dnode_get_bool(args->dnode, NULL))
1654 SET_FLAG(bgp->flags, BGP_FLAG_SHOW_NEXTHOP_HOSTNAME);
1655 else
1656 UNSET_FLAG(bgp->flags, BGP_FLAG_SHOW_NEXTHOP_HOSTNAME);
1657
1658 return NB_OK;
1659 }
1660
1661 /*
1662 * XPath:
1663 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/import-check
1664 */
1665 int bgp_global_import_check_modify(struct nb_cb_modify_args *args)
1666 {
1667 if (args->event != NB_EV_APPLY)
1668 return NB_OK;
1669
1670 struct bgp *bgp;
1671
1672 bgp = nb_running_get_entry(args->dnode, NULL, true);
1673
1674 if (yang_dnode_get_bool(args->dnode, NULL))
1675 SET_FLAG(bgp->flags, BGP_FLAG_IMPORT_CHECK);
1676 else
1677 UNSET_FLAG(bgp->flags, BGP_FLAG_IMPORT_CHECK);
1678
1679 bgp_static_redo_import_check(bgp);
1680
1681 return NB_OK;
1682 }
1683
1684 /*
1685 * XPath:
1686 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-shutdown/enable
1687 */
1688 int bgp_global_graceful_shutdown_enable_modify(struct nb_cb_modify_args *args)
1689 {
1690 struct bgp *bgp;
1691
1692 switch (args->event) {
1693 case NB_EV_VALIDATE:
1694 if (CHECK_FLAG(bm->flags, BM_FLAG_GRACEFUL_SHUTDOWN)) {
1695 snprintf(
1696 args->errmsg, args->errmsg_len,
1697 "%%Failed: per-vrf graceful-shutdown config not permitted with global graceful-shutdown");
1698 return NB_ERR_VALIDATION;
1699 }
1700
1701 break;
1702 case NB_EV_PREPARE:
1703 case NB_EV_ABORT:
1704 return NB_OK;
1705 case NB_EV_APPLY:
1706 bgp = nb_running_get_entry(args->dnode, NULL, true);
1707
1708 if (yang_dnode_get_bool(args->dnode, NULL))
1709 SET_FLAG(bgp->flags, BGP_FLAG_GRACEFUL_SHUTDOWN);
1710 else
1711 UNSET_FLAG(bgp->flags, BGP_FLAG_GRACEFUL_SHUTDOWN);
1712
1713 bgp_static_redo_import_check(bgp);
1714 bgp_redistribute_redo(bgp);
1715
1716 if (bgp_clear_star_soft_out(bgp->name, args->errmsg,
1717 args->errmsg_len))
1718 return NB_ERR_INCONSISTENCY;
1719
1720 if (bgp_clear_star_soft_in(bgp->name, args->errmsg,
1721 args->errmsg_len))
1722 return NB_ERR_INCONSISTENCY;
1723
1724 break;
1725 }
1726
1727 return NB_OK;
1728 }
1729
1730 /*
1731 * XPath:
1732 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list
1733 */
1734 int bgp_global_bmp_config_target_list_create(struct nb_cb_create_args *args)
1735 {
1736 switch (args->event) {
1737 case NB_EV_VALIDATE:
1738 case NB_EV_PREPARE:
1739 case NB_EV_ABORT:
1740 case NB_EV_APPLY:
1741 /* TODO: implement me. */
1742 break;
1743 }
1744
1745 return NB_OK;
1746 }
1747
1748 int bgp_global_bmp_config_target_list_destroy(struct nb_cb_destroy_args *args)
1749 {
1750 switch (args->event) {
1751 case NB_EV_VALIDATE:
1752 case NB_EV_PREPARE:
1753 case NB_EV_ABORT:
1754 case NB_EV_APPLY:
1755 /* TODO: implement me. */
1756 break;
1757 }
1758
1759 return NB_OK;
1760 }
1761
1762 /*
1763 * XPath:
1764 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/incoming-session/session-list
1765 */
1766 int bgp_global_bmp_config_target_list_incoming_session_session_list_create(
1767 struct nb_cb_create_args *args)
1768 {
1769 switch (args->event) {
1770 case NB_EV_VALIDATE:
1771 case NB_EV_PREPARE:
1772 case NB_EV_ABORT:
1773 case NB_EV_APPLY:
1774 /* TODO: implement me. */
1775 break;
1776 }
1777
1778 return NB_OK;
1779 }
1780
1781 int bgp_global_bmp_config_target_list_incoming_session_session_list_destroy(
1782 struct nb_cb_destroy_args *args)
1783 {
1784 switch (args->event) {
1785 case NB_EV_VALIDATE:
1786 case NB_EV_PREPARE:
1787 case NB_EV_ABORT:
1788 case NB_EV_APPLY:
1789 /* TODO: implement me. */
1790 break;
1791 }
1792
1793 return NB_OK;
1794 }
1795
1796 /*
1797 * XPath:
1798 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/outgoing-session/session-list
1799 */
1800 int bgp_global_bmp_config_target_list_outgoing_session_session_list_create(
1801 struct nb_cb_create_args *args)
1802 {
1803 switch (args->event) {
1804 case NB_EV_VALIDATE:
1805 case NB_EV_PREPARE:
1806 case NB_EV_ABORT:
1807 case NB_EV_APPLY:
1808 /* TODO: implement me. */
1809 break;
1810 }
1811
1812 return NB_OK;
1813 }
1814
1815 int bgp_global_bmp_config_target_list_outgoing_session_session_list_destroy(
1816 struct nb_cb_destroy_args *args)
1817 {
1818 switch (args->event) {
1819 case NB_EV_VALIDATE:
1820 case NB_EV_PREPARE:
1821 case NB_EV_ABORT:
1822 case NB_EV_APPLY:
1823 /* TODO: implement me. */
1824 break;
1825 }
1826
1827 return NB_OK;
1828 }
1829
1830 /*
1831 * XPath:
1832 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/outgoing-session/session-list/min-retry-time
1833 */
1834 int bgp_global_bmp_config_target_list_outgoing_session_session_list_min_retry_time_modify(
1835 struct nb_cb_modify_args *args)
1836 {
1837 switch (args->event) {
1838 case NB_EV_VALIDATE:
1839 case NB_EV_PREPARE:
1840 case NB_EV_ABORT:
1841 case NB_EV_APPLY:
1842 /* TODO: implement me. */
1843 break;
1844 }
1845
1846 return NB_OK;
1847 }
1848
1849 /*
1850 * XPath:
1851 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/outgoing-session/session-list/max-retry-time
1852 */
1853 int bgp_global_bmp_config_target_list_outgoing_session_session_list_max_retry_time_modify(
1854 struct nb_cb_modify_args *args)
1855 {
1856 switch (args->event) {
1857 case NB_EV_VALIDATE:
1858 case NB_EV_PREPARE:
1859 case NB_EV_ABORT:
1860 case NB_EV_APPLY:
1861 /* TODO: implement me. */
1862 break;
1863 }
1864
1865 return NB_OK;
1866 }
1867
1868 /*
1869 * XPath:
1870 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/mirror
1871 */
1872 int bgp_global_bmp_config_target_list_mirror_modify(
1873 struct nb_cb_modify_args *args)
1874 {
1875 switch (args->event) {
1876 case NB_EV_VALIDATE:
1877 case NB_EV_PREPARE:
1878 case NB_EV_ABORT:
1879 case NB_EV_APPLY:
1880 /* TODO: implement me. */
1881 break;
1882 }
1883
1884 return NB_OK;
1885 }
1886
1887 /*
1888 * XPath:
1889 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/stats-time
1890 */
1891 int bgp_global_bmp_config_target_list_stats_time_modify(
1892 struct nb_cb_modify_args *args)
1893 {
1894 switch (args->event) {
1895 case NB_EV_VALIDATE:
1896 case NB_EV_PREPARE:
1897 case NB_EV_ABORT:
1898 case NB_EV_APPLY:
1899 /* TODO: implement me. */
1900 break;
1901 }
1902
1903 return NB_OK;
1904 }
1905
1906 int bgp_global_bmp_config_target_list_stats_time_destroy(
1907 struct nb_cb_destroy_args *args)
1908 {
1909 switch (args->event) {
1910 case NB_EV_VALIDATE:
1911 case NB_EV_PREPARE:
1912 case NB_EV_ABORT:
1913 case NB_EV_APPLY:
1914 /* TODO: implement me. */
1915 break;
1916 }
1917
1918 return NB_OK;
1919 }
1920
1921 /*
1922 * XPath:
1923 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/ipv4-access-list
1924 */
1925 int bgp_global_bmp_config_target_list_ipv4_access_list_modify(
1926 struct nb_cb_modify_args *args)
1927 {
1928 switch (args->event) {
1929 case NB_EV_VALIDATE:
1930 case NB_EV_PREPARE:
1931 case NB_EV_ABORT:
1932 case NB_EV_APPLY:
1933 /* TODO: implement me. */
1934 break;
1935 }
1936
1937 return NB_OK;
1938 }
1939
1940 int bgp_global_bmp_config_target_list_ipv4_access_list_destroy(
1941 struct nb_cb_destroy_args *args)
1942 {
1943 switch (args->event) {
1944 case NB_EV_VALIDATE:
1945 case NB_EV_PREPARE:
1946 case NB_EV_ABORT:
1947 case NB_EV_APPLY:
1948 /* TODO: implement me. */
1949 break;
1950 }
1951
1952 return NB_OK;
1953 }
1954
1955 /*
1956 * XPath:
1957 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/ipv6-access-list
1958 */
1959 int bgp_global_bmp_config_target_list_ipv6_access_list_modify(
1960 struct nb_cb_modify_args *args)
1961 {
1962 switch (args->event) {
1963 case NB_EV_VALIDATE:
1964 case NB_EV_PREPARE:
1965 case NB_EV_ABORT:
1966 case NB_EV_APPLY:
1967 /* TODO: implement me. */
1968 break;
1969 }
1970
1971 return NB_OK;
1972 }
1973
1974 int bgp_global_bmp_config_target_list_ipv6_access_list_destroy(
1975 struct nb_cb_destroy_args *args)
1976 {
1977 switch (args->event) {
1978 case NB_EV_VALIDATE:
1979 case NB_EV_PREPARE:
1980 case NB_EV_ABORT:
1981 case NB_EV_APPLY:
1982 /* TODO: implement me. */
1983 break;
1984 }
1985
1986 return NB_OK;
1987 }
1988
1989 /*
1990 * XPath:
1991 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/afi-safis/afi-safi
1992 */
1993 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_create(
1994 struct nb_cb_create_args *args)
1995 {
1996 switch (args->event) {
1997 case NB_EV_VALIDATE:
1998 case NB_EV_PREPARE:
1999 case NB_EV_ABORT:
2000 case NB_EV_APPLY:
2001 /* TODO: implement me. */
2002 break;
2003 }
2004
2005 return NB_OK;
2006 }
2007
2008 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_destroy(
2009 struct nb_cb_destroy_args *args)
2010 {
2011 switch (args->event) {
2012 case NB_EV_VALIDATE:
2013 case NB_EV_PREPARE:
2014 case NB_EV_ABORT:
2015 case NB_EV_APPLY:
2016 /* TODO: implement me. */
2017 break;
2018 }
2019
2020 return NB_OK;
2021 }
2022
2023 /*
2024 * XPath:
2025 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/mirror-buffer-limit
2026 */
2027 int bgp_global_bmp_config_mirror_buffer_limit_modify(
2028 struct nb_cb_modify_args *args)
2029 {
2030 switch (args->event) {
2031 case NB_EV_VALIDATE:
2032 case NB_EV_PREPARE:
2033 case NB_EV_ABORT:
2034 case NB_EV_APPLY:
2035 /* TODO: implement me. */
2036 break;
2037 }
2038
2039 return NB_OK;
2040 }
2041
2042 int bgp_global_bmp_config_mirror_buffer_limit_destroy(
2043 struct nb_cb_destroy_args *args)
2044 {
2045 switch (args->event) {
2046 case NB_EV_VALIDATE:
2047 case NB_EV_PREPARE:
2048 case NB_EV_ABORT:
2049 case NB_EV_APPLY:
2050 /* TODO: implement me. */
2051 break;
2052 }
2053
2054 return NB_OK;
2055 }
2056
2057 /*
2058 * XPath:
2059 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi
2060 */
2061 int bgp_global_afi_safis_afi_safi_create(struct nb_cb_create_args *args)
2062 {
2063 const struct lyd_node *vrf_dnode;
2064 const char *vrf_name;
2065 const char *af_name;
2066 afi_t afi;
2067 safi_t safi;
2068
2069 switch (args->event) {
2070 case NB_EV_VALIDATE:
2071 vrf_dnode = yang_dnode_get_parent(args->dnode,
2072 "control-plane-protocol");
2073 vrf_name = yang_dnode_get_string(vrf_dnode, "./vrf");
2074 af_name = yang_dnode_get_string(args->dnode, "./afi-safi-name");
2075 yang_afi_safi_identity2value(af_name, &afi, &safi);
2076
2077 if ((!strmatch(vrf_name, VRF_DEFAULT_NAME))
2078 && safi != SAFI_UNICAST && safi != SAFI_MULTICAST
2079 && safi != SAFI_EVPN) {
2080 snprintf(
2081 args->errmsg, args->errmsg_len,
2082 "Only Unicast/Multicast/EVPN SAFIs supported in non-core instances.");
2083 return NB_ERR_VALIDATION;
2084 }
2085
2086 break;
2087 case NB_EV_PREPARE:
2088 case NB_EV_ABORT:
2089 case NB_EV_APPLY:
2090 /* TODO: implement me. */
2091 break;
2092 }
2093
2094 return NB_OK;
2095 }
2096
2097 int bgp_global_afi_safis_afi_safi_destroy(struct nb_cb_destroy_args *args)
2098 {
2099 switch (args->event) {
2100 case NB_EV_VALIDATE:
2101 case NB_EV_PREPARE:
2102 case NB_EV_ABORT:
2103 case NB_EV_APPLY:
2104 /* TODO: implement me. */
2105 break;
2106 }
2107
2108 return NB_OK;
2109 }
2110
2111 static struct peer *bgp_neighbor_peer_lookup(struct bgp *bgp,
2112 const char *peer_str, char *errmsg,
2113 size_t errmsg_len)
2114 {
2115 struct peer *peer = NULL;
2116 union sockunion su;
2117
2118 str2sockunion(peer_str, &su);
2119 peer = peer_lookup(bgp, &su);
2120 if (!peer) {
2121 snprintf(errmsg, errmsg_len,
2122 "Specify remote-as or peer-group commands first");
2123 return NULL;
2124 }
2125 if (peer_dynamic_neighbor(peer)) {
2126 snprintf(errmsg, errmsg_len,
2127 "Operation not allowed on a dynamic neighbor\n");
2128 return NULL;
2129 }
2130 return peer;
2131 }
2132
2133 /*
2134 * XPath:
2135 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor
2136 */
2137 int bgp_neighbors_neighbor_create(struct nb_cb_create_args *args)
2138 {
2139 struct bgp *bgp;
2140 const char *peer_str;
2141 union sockunion su;
2142
2143 switch (args->event) {
2144 case NB_EV_VALIDATE:
2145
2146 peer_str =
2147 yang_dnode_get_string(args->dnode, "./remote-address");
2148
2149 bgp = nb_running_get_entry(args->dnode, NULL, false);
2150 if (!bgp)
2151 return NB_OK;
2152
2153 str2sockunion(peer_str, &su);
2154 if (peer_address_self_check(bgp, &su)) {
2155 snprintf(
2156 args->errmsg, args->errmsg_len,
2157 "Can not configure the local system as neighbor");
2158 return NB_ERR_VALIDATION;
2159 }
2160
2161 break;
2162 case NB_EV_PREPARE:
2163 case NB_EV_ABORT:
2164 return NB_OK;
2165 case NB_EV_APPLY:
2166 /* Once bgp instance available check self peer addr */
2167 bgp = nb_running_get_entry(args->dnode, NULL, true);
2168
2169 peer_str =
2170 yang_dnode_get_string(args->dnode, "./remote-address");
2171 str2sockunion(peer_str, &su);
2172 if (peer_address_self_check(bgp, &su)) {
2173 snprintf(
2174 args->errmsg, args->errmsg_len,
2175 "Can not configure the local system as neighbor");
2176 return NB_ERR_INCONSISTENCY;
2177 }
2178 break;
2179 }
2180
2181 return NB_OK;
2182 }
2183
2184 int bgp_neighbors_neighbor_destroy(struct nb_cb_destroy_args *args)
2185 {
2186
2187 struct bgp *bgp;
2188 const char *peer_str;
2189 union sockunion su;
2190 struct peer *peer = NULL;
2191 struct peer *other;
2192
2193 switch (args->event) {
2194 case NB_EV_VALIDATE:
2195 bgp = nb_running_get_entry(args->dnode, NULL, false);
2196 if (!bgp)
2197 return NB_OK;
2198 peer_str =
2199 yang_dnode_get_string(args->dnode, "./remote-address");
2200 str2sockunion(peer_str, &su);
2201
2202 peer = peer_lookup(bgp, &su);
2203 if (peer) {
2204 if (peer_dynamic_neighbor(peer)) {
2205 snprintf(
2206 args->errmsg, args->errmsg_len,
2207 "Operation not allowed on a dynamic neighbor");
2208 return NB_ERR_VALIDATION;
2209 }
2210 }
2211 break;
2212 case NB_EV_PREPARE:
2213 case NB_EV_ABORT:
2214 return NB_OK;
2215 case NB_EV_APPLY:
2216
2217 bgp = nb_running_get_entry(args->dnode, NULL, true);
2218
2219 peer_str =
2220 yang_dnode_get_string(args->dnode, "./remote-address");
2221 str2sockunion(peer_str, &su);
2222
2223 peer = peer_lookup(bgp, &su);
2224 if (peer) {
2225 if (peer_dynamic_neighbor(peer)) {
2226 snprintf(
2227 args->errmsg, args->errmsg_len,
2228 "Operation not allowed on a dynamic neighbor");
2229 return NB_ERR_INCONSISTENCY;
2230 }
2231
2232 other = peer->doppelganger;
2233
2234 if (CHECK_FLAG(peer->flags, PEER_FLAG_CAPABILITY_ENHE))
2235 bgp_zebra_terminate_radv(peer->bgp, peer);
2236
2237 peer_notify_unconfig(peer);
2238 peer_delete(peer);
2239 if (other && other->status != Deleted) {
2240 peer_notify_unconfig(other);
2241 peer_delete(other);
2242 }
2243 }
2244
2245 break;
2246 }
2247
2248 return NB_OK;
2249 }
2250
2251 /*
2252 * XPath:
2253 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-interface
2254 */
2255 int bgp_neighbors_neighbor_local_interface_modify(
2256 struct nb_cb_modify_args *args)
2257 {
2258 struct bgp *bgp;
2259 const char *peer_str;
2260 const char *intf_str;
2261 struct peer *peer;
2262
2263 switch (args->event) {
2264 case NB_EV_VALIDATE:
2265 case NB_EV_PREPARE:
2266 case NB_EV_ABORT:
2267 return NB_OK;
2268 case NB_EV_APPLY:
2269 bgp = nb_running_get_entry(args->dnode, NULL, true);
2270 peer_str =
2271 yang_dnode_get_string(args->dnode, "../remote-address");
2272 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2273 args->errmsg_len);
2274 if (!peer) {
2275 snprintf(args->errmsg, args->errmsg_len,
2276 "BGP invalid peer %s", peer_str);
2277 return NB_ERR_INCONSISTENCY;
2278 }
2279
2280 if (peer->conf_if) {
2281 snprintf(args->errmsg, args->errmsg_len,
2282 "BGP invalid peer %s", peer_str);
2283 return NB_ERR_INCONSISTENCY;
2284 }
2285
2286 intf_str = yang_dnode_get_string(args->dnode, NULL);
2287
2288 peer_interface_set(peer, intf_str);
2289
2290 break;
2291 }
2292
2293 return NB_OK;
2294 }
2295
2296 int bgp_neighbors_neighbor_local_interface_destroy(
2297 struct nb_cb_destroy_args *args)
2298 {
2299 struct bgp *bgp;
2300 const char *peer_str;
2301 struct peer *peer;
2302
2303 switch (args->event) {
2304 case NB_EV_VALIDATE:
2305 case NB_EV_PREPARE:
2306 case NB_EV_ABORT:
2307 return NB_OK;
2308 case NB_EV_APPLY:
2309 bgp = nb_running_get_entry(args->dnode, NULL, true);
2310 peer_str =
2311 yang_dnode_get_string(args->dnode, "../remote-address");
2312 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2313 args->errmsg_len);
2314 if (!peer) {
2315 snprintf(args->errmsg, args->errmsg_len,
2316 "BGP invalid peer %s", peer_str);
2317 return NB_ERR_INCONSISTENCY;
2318 }
2319
2320 if (peer->conf_if) {
2321 snprintf(args->errmsg, args->errmsg_len,
2322 "BGP invalid peer %s", peer_str);
2323 return NB_ERR_INCONSISTENCY;
2324 }
2325
2326 peer_interface_unset(peer);
2327
2328 break;
2329 }
2330
2331 return NB_OK;
2332 }
2333
2334 /*
2335 * XPath:
2336 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-port
2337 */
2338 int bgp_neighbors_neighbor_local_port_modify(struct nb_cb_modify_args *args)
2339 {
2340 struct bgp *bgp;
2341 const char *peer_str;
2342 struct peer *peer;
2343 uint16_t port;
2344
2345 switch (args->event) {
2346 case NB_EV_VALIDATE:
2347 case NB_EV_PREPARE:
2348 case NB_EV_ABORT:
2349 return NB_OK;
2350 case NB_EV_APPLY:
2351 bgp = nb_running_get_entry(args->dnode, NULL, true);
2352 peer_str =
2353 yang_dnode_get_string(args->dnode, "../remote-address");
2354 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2355 args->errmsg_len);
2356 if (!peer) {
2357 snprintf(args->errmsg, args->errmsg_len,
2358 "BGP invalid peer %s", peer_str);
2359 return NB_ERR_INCONSISTENCY;
2360 }
2361
2362 port = yang_dnode_get_uint16(args->dnode, NULL);
2363 peer_port_set(peer, port);
2364
2365 break;
2366 }
2367
2368 return NB_OK;
2369 }
2370
2371 int bgp_neighbors_neighbor_local_port_destroy(struct nb_cb_destroy_args *args)
2372 {
2373 struct bgp *bgp;
2374 const char *peer_str;
2375 struct peer *peer;
2376 uint16_t port;
2377 struct servent *sp;
2378
2379 switch (args->event) {
2380 case NB_EV_VALIDATE:
2381 case NB_EV_PREPARE:
2382 case NB_EV_ABORT:
2383 return NB_OK;
2384 case NB_EV_APPLY:
2385 bgp = nb_running_get_entry(args->dnode, NULL, true);
2386 peer_str =
2387 yang_dnode_get_string(args->dnode, "../remote-address");
2388 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2389 args->errmsg_len);
2390 if (!peer) {
2391 snprintf(args->errmsg, args->errmsg_len,
2392 "BGP invalid peer %s", peer_str);
2393 return NB_ERR_INCONSISTENCY;
2394 }
2395
2396 sp = getservbyname("bgp", "tcp");
2397 port = (sp == NULL) ? BGP_PORT_DEFAULT : ntohs(sp->s_port);
2398 peer_port_set(peer, port);
2399
2400 break;
2401 }
2402
2403 return NB_OK;
2404 }
2405
2406 /*
2407 * XPath:
2408 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/peer-group
2409 */
2410 int bgp_neighbors_neighbor_peer_group_modify(struct nb_cb_modify_args *args)
2411 {
2412 struct bgp *bgp;
2413 const char *peer_str;
2414 const char *peer_grp_str;
2415 struct peer *peer;
2416 struct peer_group *group;
2417 union sockunion su;
2418 as_t as;
2419 int ret = 0;
2420 char prgrp_xpath[XPATH_MAXLEN];
2421 const struct lyd_node *bgp_dnode;
2422
2423 switch (args->event) {
2424 case NB_EV_VALIDATE:
2425 peer_grp_str = yang_dnode_get_string(args->dnode, NULL);
2426 bgp_dnode = yang_dnode_get_parent(args->dnode, "bgp");
2427 snprintf(prgrp_xpath, sizeof(prgrp_xpath),
2428 FRR_BGP_PEER_GROUP_XPATH, peer_grp_str, "");
2429
2430 if (!yang_dnode_exists(bgp_dnode, prgrp_xpath)) {
2431 snprintf(args->errmsg, args->errmsg_len,
2432 "Configure the peer-group first %s",
2433 peer_grp_str);
2434 return NB_ERR_VALIDATION;
2435 }
2436
2437 break;
2438 case NB_EV_PREPARE:
2439 case NB_EV_ABORT:
2440 return NB_OK;
2441 case NB_EV_APPLY:
2442 bgp = nb_running_get_entry(args->dnode, NULL, true);
2443 peer_str =
2444 yang_dnode_get_string(args->dnode, "../remote-address");
2445 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2446 args->errmsg_len);
2447
2448 str2sockunion(peer_str, &su);
2449
2450 peer_grp_str = yang_dnode_get_string(args->dnode, NULL);
2451 group = peer_group_lookup(bgp, peer_grp_str);
2452 if (!group) {
2453 snprintf(args->errmsg, args->errmsg_len,
2454 "Configure the peer-group first %s",
2455 peer_grp_str);
2456 return NB_ERR_INCONSISTENCY;
2457 }
2458
2459 ret = peer_group_bind(bgp, &su, peer, group, &as);
2460
2461 if (ret == BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT) {
2462 snprintf(
2463 args->errmsg, args->errmsg_len,
2464 "Peer with AS %u cannot be in this peer-group, members must be all internal or all external\n",
2465 as);
2466 return NB_ERR_INCONSISTENCY;
2467 }
2468
2469 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
2470 < 0)
2471 return NB_ERR_INCONSISTENCY;
2472
2473 break;
2474 }
2475
2476 return NB_OK;
2477 }
2478
2479 int bgp_neighbors_neighbor_peer_group_destroy(struct nb_cb_destroy_args *args)
2480 {
2481 struct bgp *bgp;
2482 const char *peer_str;
2483 struct peer *peer;
2484 int ret;
2485
2486 switch (args->event) {
2487 case NB_EV_VALIDATE:
2488 case NB_EV_PREPARE:
2489 case NB_EV_ABORT:
2490 return NB_OK;
2491 case NB_EV_APPLY:
2492 bgp = nb_running_get_entry(args->dnode, NULL, true);
2493 peer_str =
2494 yang_dnode_get_string(args->dnode, "../remote-address");
2495 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2496 args->errmsg_len);
2497
2498 if (CHECK_FLAG(peer->flags, PEER_FLAG_CAPABILITY_ENHE))
2499 bgp_zebra_terminate_radv(peer->bgp, peer);
2500
2501 peer_notify_unconfig(peer);
2502 ret = peer_delete(peer);
2503
2504 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
2505 < 0)
2506 return NB_ERR_INCONSISTENCY;
2507
2508 break;
2509 }
2510
2511 return NB_OK;
2512 }
2513
2514 /*
2515 * XPath:
2516 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/password
2517 */
2518 int bgp_neighbors_neighbor_password_modify(struct nb_cb_modify_args *args)
2519 {
2520 struct bgp *bgp;
2521 const char *peer_str;
2522 const char *passwrd_str;
2523 struct peer *peer;
2524
2525 switch (args->event) {
2526 case NB_EV_VALIDATE:
2527 case NB_EV_PREPARE:
2528 case NB_EV_ABORT:
2529 return NB_OK;
2530 case NB_EV_APPLY:
2531 bgp = nb_running_get_entry(args->dnode, NULL, true);
2532 peer_str =
2533 yang_dnode_get_string(args->dnode, "../remote-address");
2534 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2535 args->errmsg_len);
2536 if (!peer)
2537 return NB_ERR_INCONSISTENCY;
2538
2539 passwrd_str = yang_dnode_get_string(args->dnode, NULL);
2540
2541 peer_password_set(peer, passwrd_str);
2542
2543 break;
2544 }
2545
2546 return NB_OK;
2547 }
2548
2549 int bgp_neighbors_neighbor_password_destroy(struct nb_cb_destroy_args *args)
2550 {
2551 struct bgp *bgp;
2552 const char *peer_str;
2553 struct peer *peer;
2554
2555 switch (args->event) {
2556 case NB_EV_VALIDATE:
2557 case NB_EV_PREPARE:
2558 case NB_EV_ABORT:
2559 return NB_OK;
2560 case NB_EV_APPLY:
2561 bgp = nb_running_get_entry(args->dnode, NULL, true);
2562 peer_str =
2563 yang_dnode_get_string(args->dnode, "../remote-address");
2564 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2565 args->errmsg_len);
2566 if (!peer)
2567 return NB_ERR_INCONSISTENCY;
2568
2569 peer_password_unset(peer);
2570
2571 break;
2572 }
2573
2574 return NB_OK;
2575 }
2576
2577 /*
2578 * XPath:
2579 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/ttl-security
2580 */
2581 int bgp_neighbors_neighbor_ttl_security_modify(struct nb_cb_modify_args *args)
2582 {
2583 struct bgp *bgp;
2584 const char *peer_str;
2585 struct peer *peer;
2586 int ret;
2587 uint8_t gtsm_hops;
2588
2589 switch (args->event) {
2590 case NB_EV_VALIDATE:
2591 case NB_EV_PREPARE:
2592 case NB_EV_ABORT:
2593 return NB_OK;
2594 case NB_EV_APPLY:
2595 bgp = nb_running_get_entry(args->dnode, NULL, true);
2596 peer_str =
2597 yang_dnode_get_string(args->dnode, "../remote-address");
2598 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2599 args->errmsg_len);
2600 if (!peer)
2601 return NB_ERR_INCONSISTENCY;
2602
2603 gtsm_hops = yang_dnode_get_uint8(args->dnode, NULL);
2604 /*
2605 * If 'neighbor swpX', then this is for directly connected
2606 * peers, we should not accept a ttl-security hops value greater
2607 * than 1.
2608 */
2609 if (peer->conf_if && (gtsm_hops > BGP_GTSM_HOPS_CONNECTED)) {
2610 snprintf(
2611 args->errmsg, args->errmsg_len,
2612 "%d is directly connected peer, hops cannot exceed 1\n",
2613 gtsm_hops);
2614 return NB_ERR_INCONSISTENCY;
2615 }
2616
2617 ret = peer_ttl_security_hops_set(peer, gtsm_hops);
2618 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret))
2619 return NB_ERR_INCONSISTENCY;
2620
2621 break;
2622 }
2623
2624 return NB_OK;
2625 }
2626
2627 int bgp_neighbors_neighbor_ttl_security_destroy(struct nb_cb_destroy_args *args)
2628 {
2629 struct bgp *bgp;
2630 const char *peer_str;
2631 struct peer *peer;
2632 int ret;
2633
2634 switch (args->event) {
2635 case NB_EV_VALIDATE:
2636 case NB_EV_PREPARE:
2637 case NB_EV_ABORT:
2638 return NB_OK;
2639 case NB_EV_APPLY:
2640 bgp = nb_running_get_entry(args->dnode, NULL, true);
2641 peer_str =
2642 yang_dnode_get_string(args->dnode, "../remote-address");
2643 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2644 args->errmsg_len);
2645 if (!peer)
2646 return NB_ERR_INCONSISTENCY;
2647
2648 ret = peer_ttl_security_hops_unset(peer);
2649 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
2650 < 0)
2651 return NB_ERR_INCONSISTENCY;
2652
2653
2654 break;
2655 }
2656
2657 return NB_OK;
2658 }
2659
2660 /*
2661 * XPath:
2662 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/solo
2663 */
2664 int bgp_neighbors_neighbor_solo_modify(struct nb_cb_modify_args *args)
2665 {
2666 switch (args->event) {
2667 case NB_EV_VALIDATE:
2668 case NB_EV_PREPARE:
2669 case NB_EV_ABORT:
2670 case NB_EV_APPLY:
2671 /* TODO: implement me. */
2672 break;
2673 }
2674
2675 return NB_OK;
2676 }
2677
2678 /*
2679 * XPath:
2680 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/enforce-first-as
2681 */
2682 int bgp_neighbors_neighbor_enforce_first_as_modify(
2683 struct nb_cb_modify_args *args)
2684 {
2685 struct bgp *bgp;
2686 const char *peer_str;
2687 struct peer *peer;
2688 bool enable = false;
2689
2690 switch (args->event) {
2691 case NB_EV_VALIDATE:
2692 case NB_EV_PREPARE:
2693 case NB_EV_ABORT:
2694 return NB_OK;
2695 case NB_EV_APPLY:
2696 bgp = nb_running_get_entry(args->dnode, NULL, true);
2697 peer_str =
2698 yang_dnode_get_string(args->dnode, "../remote-address");
2699 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2700 args->errmsg_len);
2701
2702 enable = yang_dnode_get_bool(args->dnode, NULL);
2703
2704 peer_flag_modify_nb(bgp, peer_str, peer,
2705 PEER_FLAG_ENFORCE_FIRST_AS, enable,
2706 args->errmsg, args->errmsg_len);
2707 break;
2708 }
2709
2710 return NB_OK;
2711 }
2712
2713 /*
2714 * XPath:
2715 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/description
2716 */
2717 int bgp_neighbors_neighbor_description_modify(struct nb_cb_modify_args *args)
2718 {
2719 struct bgp *bgp;
2720 const char *peer_str;
2721 const char *desc_str;
2722 struct peer *peer;
2723
2724 switch (args->event) {
2725 case NB_EV_VALIDATE:
2726 case NB_EV_PREPARE:
2727 case NB_EV_ABORT:
2728 return NB_OK;
2729 case NB_EV_APPLY:
2730 bgp = nb_running_get_entry(args->dnode, NULL, true);
2731 peer_str =
2732 yang_dnode_get_string(args->dnode, "../remote-address");
2733
2734 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2735 args->errmsg_len);
2736 if (!peer)
2737 return NB_ERR_INCONSISTENCY;
2738
2739 desc_str = yang_dnode_get_string(args->dnode, NULL);
2740
2741 peer_description_set(peer, desc_str);
2742
2743 break;
2744 }
2745
2746 return NB_OK;
2747 }
2748
2749 int bgp_neighbors_neighbor_description_destroy(struct nb_cb_destroy_args *args)
2750 {
2751 struct bgp *bgp;
2752 const char *peer_str;
2753 struct peer *peer;
2754
2755 switch (args->event) {
2756 case NB_EV_VALIDATE:
2757 case NB_EV_PREPARE:
2758 case NB_EV_ABORT:
2759 return NB_OK;
2760 case NB_EV_APPLY:
2761 bgp = nb_running_get_entry(args->dnode, NULL, true);
2762 peer_str =
2763 yang_dnode_get_string(args->dnode, "../remote-address");
2764 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2765 args->errmsg_len);
2766 if (!peer)
2767 return NB_ERR_INCONSISTENCY;
2768
2769 peer_description_unset(peer);
2770
2771 break;
2772 }
2773
2774 return NB_OK;
2775 }
2776
2777 /*
2778 * XPath:
2779 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/passive-mode
2780 */
2781 int bgp_neighbors_neighbor_passive_mode_modify(struct nb_cb_modify_args *args)
2782 {
2783 struct bgp *bgp;
2784 const char *peer_str;
2785 struct peer *peer;
2786 bool set = false;
2787
2788 switch (args->event) {
2789 case NB_EV_VALIDATE:
2790 case NB_EV_PREPARE:
2791 case NB_EV_ABORT:
2792 return NB_OK;
2793 case NB_EV_APPLY:
2794 bgp = nb_running_get_entry(args->dnode, NULL, true);
2795 peer_str =
2796 yang_dnode_get_string(args->dnode, "../remote-address");
2797 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2798 args->errmsg_len);
2799 if (!peer)
2800 return NB_ERR_INCONSISTENCY;
2801
2802 set = yang_dnode_get_bool(args->dnode, NULL);
2803
2804 if (peer_flag_modify_nb(bgp, peer_str, peer, PEER_FLAG_PASSIVE,
2805 set, args->errmsg, args->errmsg_len)
2806 < 0)
2807 return NB_ERR_INCONSISTENCY;
2808
2809 break;
2810 }
2811
2812 return NB_OK;
2813 }
2814
2815 /*
2816 * XPath:
2817 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/capability-options/dynamic-capability
2818 */
2819 int bgp_neighbors_neighbor_capability_options_dynamic_capability_modify(
2820 struct nb_cb_modify_args *args)
2821 {
2822 struct bgp *bgp;
2823 const char *peer_str;
2824 struct peer *peer;
2825 bool enable = false;
2826
2827 switch (args->event) {
2828 case NB_EV_VALIDATE:
2829 case NB_EV_PREPARE:
2830 case NB_EV_ABORT:
2831 return NB_OK;
2832 case NB_EV_APPLY:
2833 bgp = nb_running_get_entry(args->dnode, NULL, true);
2834 peer_str = yang_dnode_get_string(args->dnode,
2835 "../../remote-address");
2836 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2837 args->errmsg_len);
2838
2839 enable = yang_dnode_get_bool(args->dnode, NULL);
2840
2841 peer_flag_modify_nb(bgp, peer_str, peer,
2842 PEER_FLAG_DYNAMIC_CAPABILITY, enable,
2843 args->errmsg, args->errmsg_len);
2844
2845 break;
2846 }
2847
2848 return NB_OK;
2849 }
2850
2851 /*
2852 * XPath:
2853 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/capability-options/strict-capability
2854 */
2855 int bgp_neighbors_neighbor_capability_options_strict_capability_modify(
2856 struct nb_cb_modify_args *args)
2857 {
2858 struct bgp *bgp;
2859 const char *peer_str;
2860 struct peer *peer;
2861 bool enable = false;
2862
2863 switch (args->event) {
2864 case NB_EV_VALIDATE:
2865 case NB_EV_PREPARE:
2866 case NB_EV_ABORT:
2867 return NB_OK;
2868 case NB_EV_APPLY:
2869 bgp = nb_running_get_entry(args->dnode, NULL, true);
2870 peer_str = yang_dnode_get_string(args->dnode,
2871 "../../remote-address");
2872 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2873 args->errmsg_len);
2874
2875 enable = yang_dnode_get_bool(args->dnode, NULL);
2876
2877 peer_flag_modify_nb(bgp, peer_str, peer,
2878 PEER_FLAG_STRICT_CAP_MATCH, enable,
2879 args->errmsg, args->errmsg_len);
2880
2881 break;
2882 }
2883
2884 return NB_OK;
2885 }
2886
2887 /*
2888 * XPath:
2889 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/capability-options/extended-nexthop-capability
2890 */
2891 int bgp_neighbors_neighbor_capability_options_extended_nexthop_capability_modify(
2892 struct nb_cb_modify_args *args)
2893 {
2894 struct bgp *bgp;
2895 const char *peer_str;
2896 struct peer *peer;
2897 bool enable = false;
2898
2899 switch (args->event) {
2900 case NB_EV_VALIDATE:
2901 case NB_EV_PREPARE:
2902 case NB_EV_ABORT:
2903 return NB_OK;
2904 case NB_EV_APPLY:
2905 bgp = nb_running_get_entry(args->dnode, NULL, true);
2906 peer_str = yang_dnode_get_string(args->dnode,
2907 "../../remote-address");
2908 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2909 args->errmsg_len);
2910
2911 enable = yang_dnode_get_bool(args->dnode, NULL);
2912
2913 peer_flag_modify_nb(bgp, peer_str, peer,
2914 PEER_FLAG_CAPABILITY_ENHE, enable,
2915 args->errmsg, args->errmsg_len);
2916
2917 break;
2918 }
2919
2920 return NB_OK;
2921 }
2922
2923 /*
2924 * XPath:
2925 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/capability-options/capability-negotiate
2926 */
2927 int bgp_neighbors_neighbor_capability_options_capability_negotiate_modify(
2928 struct nb_cb_modify_args *args)
2929 {
2930 switch (args->event) {
2931 case NB_EV_VALIDATE:
2932 case NB_EV_PREPARE:
2933 case NB_EV_ABORT:
2934 case NB_EV_APPLY:
2935 /* TODO: implement me. */
2936 break;
2937 }
2938
2939 return NB_OK;
2940 }
2941
2942 /*
2943 * XPath:
2944 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/capability-options/override-capability
2945 */
2946 int bgp_neighbors_neighbor_capability_options_override_capability_modify(
2947 struct nb_cb_modify_args *args)
2948 {
2949 struct bgp *bgp;
2950 const char *peer_str;
2951 struct peer *peer;
2952 bool enable = false;
2953
2954 switch (args->event) {
2955 case NB_EV_VALIDATE:
2956 case NB_EV_PREPARE:
2957 case NB_EV_ABORT:
2958 return NB_OK;
2959 case NB_EV_APPLY:
2960 bgp = nb_running_get_entry(args->dnode, NULL, true);
2961 peer_str = yang_dnode_get_string(args->dnode,
2962 "../../remote-address");
2963 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2964 args->errmsg_len);
2965
2966 enable = yang_dnode_get_bool(args->dnode, NULL);
2967
2968 peer_flag_modify_nb(bgp, peer_str, peer,
2969 PEER_FLAG_OVERRIDE_CAPABILITY, enable,
2970 args->errmsg, args->errmsg_len);
2971
2972 break;
2973 }
2974
2975 return NB_OK;
2976 }
2977
2978 /*
2979 * XPath:
2980 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/update-source/ip
2981 */
2982 int bgp_neighbors_neighbor_update_source_ip_modify(
2983 struct nb_cb_modify_args *args)
2984 {
2985 struct bgp *bgp;
2986 const char *peer_str, *source_str;
2987 struct peer *peer;
2988 union sockunion su;
2989
2990 switch (args->event) {
2991 case NB_EV_VALIDATE:
2992 case NB_EV_PREPARE:
2993 case NB_EV_ABORT:
2994 return NB_OK;
2995 case NB_EV_APPLY:
2996 bgp = nb_running_get_entry(args->dnode, NULL, true);
2997 peer_str = yang_dnode_get_string(args->dnode,
2998 "../../remote-address");
2999 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3000 args->errmsg_len);
3001 if (!peer)
3002 return NB_ERR_INCONSISTENCY;
3003
3004 source_str = yang_dnode_get_string(args->dnode, NULL);
3005
3006 str2sockunion(source_str, &su);
3007 peer_update_source_addr_set(peer, &su);
3008
3009 break;
3010 }
3011
3012 return NB_OK;
3013 }
3014
3015 int bgp_neighbors_neighbor_update_source_ip_destroy(
3016 struct nb_cb_destroy_args *args)
3017 {
3018 struct bgp *bgp;
3019 const char *peer_str;
3020 struct peer *peer;
3021
3022 switch (args->event) {
3023 case NB_EV_VALIDATE:
3024 case NB_EV_PREPARE:
3025 case NB_EV_ABORT:
3026 return NB_OK;
3027 case NB_EV_APPLY:
3028 bgp = nb_running_get_entry(args->dnode, NULL, true);
3029 peer_str = yang_dnode_get_string(args->dnode,
3030 "../../remote-address");
3031 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3032 args->errmsg_len);
3033 if (!peer)
3034 return NB_ERR_INCONSISTENCY;
3035
3036 peer_update_source_unset(peer);
3037
3038 break;
3039 }
3040
3041 return NB_OK;
3042 }
3043
3044 /*
3045 * XPath:
3046 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/update-source/interface
3047 */
3048 int bgp_neighbors_neighbor_update_source_interface_modify(
3049 struct nb_cb_modify_args *args)
3050 {
3051 struct bgp *bgp;
3052 const char *peer_str, *source_str;
3053 struct peer *peer;
3054 struct prefix p;
3055
3056 switch (args->event) {
3057 case NB_EV_VALIDATE:
3058 source_str = yang_dnode_get_string(args->dnode, NULL);
3059 if (str2prefix(source_str, &p)) {
3060 snprintf(args->errmsg, args->errmsg_len,
3061 "Invalid update-source, remove prefix length");
3062 return NB_ERR_VALIDATION;
3063 }
3064 break;
3065 case NB_EV_PREPARE:
3066 case NB_EV_ABORT:
3067 return NB_OK;
3068 case NB_EV_APPLY:
3069 bgp = nb_running_get_entry(args->dnode, NULL, true);
3070 peer_str = yang_dnode_get_string(args->dnode,
3071 "../../remote-address");
3072 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3073 args->errmsg_len);
3074 if (!peer)
3075 return NB_ERR_INCONSISTENCY;
3076
3077 source_str = yang_dnode_get_string(args->dnode, NULL);
3078
3079 peer_update_source_if_set(peer, source_str);
3080
3081 break;
3082 }
3083
3084 return NB_OK;
3085 }
3086
3087 int bgp_neighbors_neighbor_update_source_interface_destroy(
3088 struct nb_cb_destroy_args *args)
3089 {
3090 struct bgp *bgp;
3091 const char *peer_str;
3092 struct peer *peer;
3093
3094 switch (args->event) {
3095 case NB_EV_VALIDATE:
3096 case NB_EV_PREPARE:
3097 case NB_EV_ABORT:
3098 return NB_OK;
3099 case NB_EV_APPLY:
3100 bgp = nb_running_get_entry(args->dnode, NULL, true);
3101 peer_str = yang_dnode_get_string(args->dnode,
3102 "../../remote-address");
3103 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3104 args->errmsg_len);
3105 if (!peer)
3106 return NB_ERR_INCONSISTENCY;
3107
3108 peer_update_source_unset(peer);
3109
3110 break;
3111 }
3112
3113 return NB_OK;
3114 }
3115
3116 /*
3117 * XPath:
3118 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/neighbor-remote-as/remote-as-type
3119 */
3120 int bgp_neighbors_neighbor_neighbor_remote_as_remote_as_type_modify(
3121 struct nb_cb_modify_args *args)
3122 {
3123 struct bgp *bgp;
3124 const char *peer_str;
3125 int as_type = AS_SPECIFIED;
3126 union sockunion su;
3127 int ret;
3128 as_t as = 0;
3129
3130 switch (args->event) {
3131 case NB_EV_VALIDATE:
3132 case NB_EV_PREPARE:
3133 case NB_EV_ABORT:
3134 return NB_OK;
3135 case NB_EV_APPLY:
3136 bgp = nb_running_get_entry(args->dnode, NULL, true);
3137
3138 peer_str = yang_dnode_get_string(args->dnode,
3139 "../../remote-address");
3140 as_type = yang_dnode_get_enum(args->dnode, "../remote-as-type");
3141 /* When remote-as-type is as-specified, the peer will be
3142 * created in remote_as_modify callback */
3143 if (yang_dnode_exists(args->dnode, "../remote-as"))
3144 return NB_OK;
3145
3146 str2sockunion(peer_str, &su);
3147 ret = peer_remote_as(bgp, &su, NULL, &as, as_type, AFI_IP,
3148 SAFI_UNICAST);
3149 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
3150 < 0)
3151 return NB_ERR_INCONSISTENCY;
3152
3153
3154 break;
3155 }
3156
3157 return NB_OK;
3158 }
3159
3160 int bgp_neighbors_neighbor_neighbor_remote_as_remote_as_type_destroy(
3161 struct nb_cb_destroy_args *args)
3162 {
3163 switch (args->event) {
3164 case NB_EV_VALIDATE:
3165 case NB_EV_PREPARE:
3166 case NB_EV_ABORT:
3167 case NB_EV_APPLY:
3168 /* TODO: implement me. */
3169 break;
3170 }
3171
3172 return NB_OK;
3173 }
3174
3175 /*
3176 * XPath:
3177 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/neighbor-remote-as/remote-as
3178 */
3179 int bgp_neighbors_neighbor_neighbor_remote_as_remote_as_modify(
3180 struct nb_cb_modify_args *args)
3181 {
3182 struct bgp *bgp;
3183 const char *peer_str;
3184 int as_type = AS_SPECIFIED;
3185 union sockunion su;
3186 int ret;
3187 as_t as = 0;
3188
3189 switch (args->event) {
3190 case NB_EV_VALIDATE:
3191 case NB_EV_PREPARE:
3192 case NB_EV_ABORT:
3193 return NB_OK;
3194 case NB_EV_APPLY:
3195 bgp = nb_running_get_entry(args->dnode, NULL, true);
3196
3197 peer_str = yang_dnode_get_string(args->dnode,
3198 "../../remote-address");
3199 as_type = yang_dnode_get_enum(args->dnode, "../remote-as-type");
3200 as = yang_dnode_get_uint32(args->dnode, NULL);
3201
3202 str2sockunion(peer_str, &su);
3203 ret = peer_remote_as(bgp, &su, NULL, &as, as_type, AFI_IP,
3204 SAFI_UNICAST);
3205 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
3206 < 0)
3207 return NB_ERR_INCONSISTENCY;
3208
3209
3210 break;
3211 }
3212
3213 return NB_OK;
3214 }
3215
3216 int bgp_neighbors_neighbor_neighbor_remote_as_remote_as_destroy(
3217 struct nb_cb_destroy_args *args)
3218 {
3219 switch (args->event) {
3220 case NB_EV_VALIDATE:
3221 case NB_EV_PREPARE:
3222 case NB_EV_ABORT:
3223 case NB_EV_APPLY:
3224 /* TODO: implement me. */
3225 break;
3226 }
3227
3228 return NB_OK;
3229 }
3230
3231 /*
3232 * XPath:
3233 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/ebgp-multihop/enabled
3234 */
3235 int bgp_neighbors_neighbor_ebgp_multihop_enabled_modify(
3236 struct nb_cb_modify_args *args)
3237 {
3238 struct bgp *bgp;
3239 const char *peer_str;
3240 struct peer *peer;
3241 bool set = false;
3242 int ret = 0;
3243 uint8_t ttl = MAXTTL;
3244
3245 switch (args->event) {
3246 case NB_EV_VALIDATE:
3247 case NB_EV_PREPARE:
3248 case NB_EV_ABORT:
3249 return NB_OK;
3250 case NB_EV_APPLY:
3251 bgp = nb_running_get_entry(args->dnode, NULL, true);
3252 peer_str = yang_dnode_get_string(args->dnode,
3253 "../../remote-address");
3254 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3255 args->errmsg_len);
3256 if (!peer)
3257 return NB_ERR_INCONSISTENCY;
3258
3259 if (peer->conf_if) {
3260 ret = BGP_ERR_INVALID_FOR_DIRECT_PEER;
3261 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len,
3262 ret);
3263 return NB_ERR_INCONSISTENCY;
3264 }
3265
3266 set = yang_dnode_get_bool(args->dnode, NULL);
3267
3268 if (set)
3269 ret = peer_ebgp_multihop_set(peer, ttl);
3270 else
3271 ret = peer_ebgp_multihop_unset(peer);
3272
3273 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
3274 < 0)
3275 return NB_ERR_INCONSISTENCY;
3276
3277
3278 break;
3279 }
3280
3281 return NB_OK;
3282 }
3283
3284 int bgp_neighbors_neighbor_ebgp_multihop_enabled_destroy(
3285 struct nb_cb_destroy_args *args)
3286 {
3287 struct bgp *bgp;
3288 const char *peer_str;
3289 struct peer *peer;
3290 int ret = 0;
3291
3292 switch (args->event) {
3293 case NB_EV_VALIDATE:
3294 case NB_EV_PREPARE:
3295 case NB_EV_ABORT:
3296 return NB_OK;
3297 case NB_EV_APPLY:
3298 bgp = nb_running_get_entry(args->dnode, NULL, true);
3299 peer_str = yang_dnode_get_string(args->dnode,
3300 "../../remote-address");
3301 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3302 args->errmsg_len);
3303 if (!peer)
3304 return NB_ERR_INCONSISTENCY;
3305
3306 ret = peer_ebgp_multihop_unset(peer);
3307
3308 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
3309 < 0)
3310 return NB_ERR_INCONSISTENCY;
3311
3312
3313 break;
3314 }
3315
3316 return NB_OK;
3317 }
3318
3319 /*
3320 * XPath:
3321 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/ebgp-multihop/multihop-ttl
3322 */
3323 int bgp_neighbors_neighbor_ebgp_multihop_multihop_ttl_modify(
3324 struct nb_cb_modify_args *args)
3325 {
3326 struct bgp *bgp;
3327 const char *peer_str;
3328 struct peer *peer;
3329 int ret = 0;
3330 uint8_t ttl = MAXTTL;
3331
3332 switch (args->event) {
3333 case NB_EV_VALIDATE:
3334 case NB_EV_PREPARE:
3335 case NB_EV_ABORT:
3336 return NB_OK;
3337 case NB_EV_APPLY:
3338 bgp = nb_running_get_entry(args->dnode, NULL, true);
3339 peer_str = yang_dnode_get_string(args->dnode,
3340 "../../remote-address");
3341 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3342 args->errmsg_len);
3343 if (!peer)
3344 return NB_ERR_INCONSISTENCY;
3345
3346 if (peer->conf_if) {
3347 ret = BGP_ERR_INVALID_FOR_DIRECT_PEER;
3348 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len,
3349 ret);
3350 return NB_ERR_INCONSISTENCY;
3351 }
3352
3353 ttl = yang_dnode_get_uint8(args->dnode, NULL);
3354
3355 ret = peer_ebgp_multihop_set(peer, ttl);
3356
3357 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
3358
3359 break;
3360 }
3361
3362 return NB_OK;
3363 }
3364
3365 int bgp_neighbors_neighbor_ebgp_multihop_multihop_ttl_destroy(
3366 struct nb_cb_destroy_args *args)
3367 {
3368 struct bgp *bgp;
3369 const char *peer_str;
3370 struct peer *peer;
3371 int ret = 0;
3372
3373 switch (args->event) {
3374 case NB_EV_VALIDATE:
3375 case NB_EV_PREPARE:
3376 case NB_EV_ABORT:
3377 return NB_OK;
3378 case NB_EV_APPLY:
3379 bgp = nb_running_get_entry(args->dnode, NULL, true);
3380 peer_str = yang_dnode_get_string(args->dnode,
3381 "../../remote-address");
3382 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3383 args->errmsg_len);
3384 if (!peer)
3385 return NB_ERR_INCONSISTENCY;
3386
3387 ret = peer_ebgp_multihop_unset(peer);
3388
3389 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
3390
3391 break;
3392 }
3393
3394 return NB_OK;
3395 }
3396
3397 /*
3398 * XPath:
3399 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/ebgp-multihop/disable-connected-check
3400 */
3401 int bgp_neighbors_neighbor_ebgp_multihop_disable_connected_check_modify(
3402 struct nb_cb_modify_args *args)
3403 {
3404 struct bgp *bgp;
3405 const char *peer_str;
3406 struct peer *peer;
3407 bool set = false;
3408
3409 switch (args->event) {
3410 case NB_EV_VALIDATE:
3411 case NB_EV_PREPARE:
3412 case NB_EV_ABORT:
3413 return NB_OK;
3414 case NB_EV_APPLY:
3415 bgp = nb_running_get_entry(args->dnode, NULL, true);
3416 peer_str = yang_dnode_get_string(args->dnode,
3417 "../../remote-address");
3418 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3419 args->errmsg_len);
3420 if (!peer)
3421 return NB_ERR_INCONSISTENCY;
3422
3423 set = yang_dnode_get_bool(args->dnode, NULL);
3424
3425 if (peer_flag_modify_nb(bgp, peer_str, peer,
3426 PEER_FLAG_DISABLE_CONNECTED_CHECK, set,
3427 args->errmsg, args->errmsg_len)
3428 < 0)
3429 return NB_ERR_INCONSISTENCY;
3430
3431 break;
3432 }
3433
3434 return NB_OK;
3435 }
3436
3437 /*
3438 * XPath:
3439 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-as
3440 */
3441 void bgp_neighbors_neighbor_local_as_apply_finish(
3442 struct nb_cb_apply_finish_args *args)
3443 {
3444 struct bgp *bgp;
3445 int ret;
3446 as_t as = 0;
3447 const char *peer_str;
3448 struct peer *peer = NULL;
3449 bool no_prepend = 0;
3450 bool replace_as = 0;
3451
3452 bgp = nb_running_get_entry(args->dnode, NULL, true);
3453 peer_str = yang_dnode_get_string(args->dnode, "../remote-address");
3454 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3455 args->errmsg_len);
3456
3457 if (yang_dnode_exists(args->dnode, "./local-as"))
3458 as = yang_dnode_get_uint32(args->dnode, "./local-as");
3459 if (yang_dnode_exists(args->dnode, "./no-prepend"))
3460 no_prepend = yang_dnode_get_bool(args->dnode, "./no-prepend");
3461 if (yang_dnode_exists(args->dnode, "./no-replace-as"))
3462 replace_as =
3463 yang_dnode_get_bool(args->dnode, "./no-replace-as");
3464
3465 if (!as && !no_prepend && !replace_as)
3466 ret = peer_local_as_unset(peer);
3467 else
3468 ret = peer_local_as_set(peer, as, no_prepend, replace_as);
3469 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
3470 }
3471
3472 /*
3473 * XPath:
3474 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-as/local-as
3475 */
3476 int bgp_neighbors_neighbor_local_as_local_as_modify(
3477 struct nb_cb_modify_args *args)
3478 {
3479 switch (args->event) {
3480 case NB_EV_VALIDATE:
3481 case NB_EV_PREPARE:
3482 case NB_EV_ABORT:
3483 case NB_EV_APPLY:
3484 /* TODO: implement me. */
3485 break;
3486 }
3487
3488 return NB_OK;
3489 }
3490
3491 int bgp_neighbors_neighbor_local_as_local_as_destroy(
3492 struct nb_cb_destroy_args *args)
3493 {
3494 struct bgp *bgp;
3495 int ret;
3496 const char *peer_str;
3497 struct peer *peer;
3498
3499 switch (args->event) {
3500 case NB_EV_VALIDATE:
3501 case NB_EV_PREPARE:
3502 case NB_EV_ABORT:
3503 return NB_OK;
3504 case NB_EV_APPLY:
3505 bgp = nb_running_get_entry(args->dnode, NULL, true);
3506 peer_str = yang_dnode_get_string(args->dnode,
3507 "../../remote-address");
3508
3509
3510 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3511 args->errmsg_len);
3512
3513 ret = peer_local_as_unset(peer);
3514 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
3515 < 0)
3516 return NB_ERR_INCONSISTENCY;
3517
3518
3519 break;
3520 }
3521
3522 return NB_OK;
3523 }
3524
3525 /*
3526 * XPath:
3527 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-as/no-prepend
3528 */
3529 int bgp_neighbors_neighbor_local_as_no_prepend_modify(
3530 struct nb_cb_modify_args *args)
3531 {
3532 switch (args->event) {
3533 case NB_EV_VALIDATE:
3534 case NB_EV_PREPARE:
3535 case NB_EV_ABORT:
3536 case NB_EV_APPLY:
3537 /* TODO: implement me. */
3538 break;
3539 }
3540
3541 return NB_OK;
3542 }
3543
3544 int bgp_neighbors_neighbor_local_as_no_prepend_destroy(
3545 struct nb_cb_destroy_args *args)
3546 {
3547 switch (args->event) {
3548 case NB_EV_VALIDATE:
3549 case NB_EV_PREPARE:
3550 case NB_EV_ABORT:
3551 case NB_EV_APPLY:
3552 /* TODO: implement me. */
3553 break;
3554 }
3555
3556 return NB_OK;
3557 }
3558
3559 /*
3560 * XPath:
3561 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-as/no-replace-as
3562 */
3563 int bgp_neighbors_neighbor_local_as_no_replace_as_modify(
3564 struct nb_cb_modify_args *args)
3565 {
3566 switch (args->event) {
3567 case NB_EV_VALIDATE:
3568 case NB_EV_PREPARE:
3569 case NB_EV_ABORT:
3570 case NB_EV_APPLY:
3571 /* TODO: implement me. */
3572 break;
3573 }
3574
3575 return NB_OK;
3576 }
3577
3578 /*
3579 * XPath:
3580 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/bfd-options/enable
3581 */
3582 int bgp_neighbors_neighbor_bfd_options_enable_modify(
3583 struct nb_cb_modify_args *args)
3584 {
3585 switch (args->event) {
3586 case NB_EV_VALIDATE:
3587 case NB_EV_PREPARE:
3588 case NB_EV_ABORT:
3589 case NB_EV_APPLY:
3590 /* TODO: implement me. */
3591 break;
3592 }
3593
3594 return NB_OK;
3595 }
3596
3597 /*
3598 * XPath:
3599 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/bfd-options/detect-multiplier
3600 */
3601 int bgp_neighbors_neighbor_bfd_options_detect_multiplier_modify(
3602 struct nb_cb_modify_args *args)
3603 {
3604 switch (args->event) {
3605 case NB_EV_VALIDATE:
3606 case NB_EV_PREPARE:
3607 case NB_EV_ABORT:
3608 case NB_EV_APPLY:
3609 /* TODO: implement me. */
3610 break;
3611 }
3612
3613 return NB_OK;
3614 }
3615
3616 int bgp_neighbors_neighbor_bfd_options_detect_multiplier_destroy(
3617 struct nb_cb_destroy_args *args)
3618 {
3619 switch (args->event) {
3620 case NB_EV_VALIDATE:
3621 case NB_EV_PREPARE:
3622 case NB_EV_ABORT:
3623 case NB_EV_APPLY:
3624 /* TODO: implement me. */
3625 break;
3626 }
3627
3628 return NB_OK;
3629 }
3630
3631 /*
3632 * XPath:
3633 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/bfd-options/required-min-rx
3634 */
3635 int bgp_neighbors_neighbor_bfd_options_required_min_rx_modify(
3636 struct nb_cb_modify_args *args)
3637 {
3638 switch (args->event) {
3639 case NB_EV_VALIDATE:
3640 case NB_EV_PREPARE:
3641 case NB_EV_ABORT:
3642 case NB_EV_APPLY:
3643 /* TODO: implement me. */
3644 break;
3645 }
3646
3647 return NB_OK;
3648 }
3649
3650 int bgp_neighbors_neighbor_bfd_options_required_min_rx_destroy(
3651 struct nb_cb_destroy_args *args)
3652 {
3653 switch (args->event) {
3654 case NB_EV_VALIDATE:
3655 case NB_EV_PREPARE:
3656 case NB_EV_ABORT:
3657 case NB_EV_APPLY:
3658 /* TODO: implement me. */
3659 break;
3660 }
3661
3662 return NB_OK;
3663 }
3664
3665 /*
3666 * XPath:
3667 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/bfd-options/desired-min-tx
3668 */
3669 int bgp_neighbors_neighbor_bfd_options_desired_min_tx_modify(
3670 struct nb_cb_modify_args *args)
3671 {
3672 switch (args->event) {
3673 case NB_EV_VALIDATE:
3674 case NB_EV_PREPARE:
3675 case NB_EV_ABORT:
3676 case NB_EV_APPLY:
3677 /* TODO: implement me. */
3678 break;
3679 }
3680
3681 return NB_OK;
3682 }
3683
3684 int bgp_neighbors_neighbor_bfd_options_desired_min_tx_destroy(
3685 struct nb_cb_destroy_args *args)
3686 {
3687 switch (args->event) {
3688 case NB_EV_VALIDATE:
3689 case NB_EV_PREPARE:
3690 case NB_EV_ABORT:
3691 case NB_EV_APPLY:
3692 /* TODO: implement me. */
3693 break;
3694 }
3695
3696 return NB_OK;
3697 }
3698
3699 /*
3700 * XPath:
3701 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/bfd-options/session-type
3702 */
3703 int bgp_neighbors_neighbor_bfd_options_session_type_modify(
3704 struct nb_cb_modify_args *args)
3705 {
3706 switch (args->event) {
3707 case NB_EV_VALIDATE:
3708 case NB_EV_PREPARE:
3709 case NB_EV_ABORT:
3710 case NB_EV_APPLY:
3711 /* TODO: implement me. */
3712 break;
3713 }
3714
3715 return NB_OK;
3716 }
3717
3718 int bgp_neighbors_neighbor_bfd_options_session_type_destroy(
3719 struct nb_cb_destroy_args *args)
3720 {
3721 switch (args->event) {
3722 case NB_EV_VALIDATE:
3723 case NB_EV_PREPARE:
3724 case NB_EV_ABORT:
3725 case NB_EV_APPLY:
3726 /* TODO: implement me. */
3727 break;
3728 }
3729
3730 return NB_OK;
3731 }
3732
3733 /*
3734 * XPath:
3735 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/bfd-options/check-cp-failure
3736 */
3737 int bgp_neighbors_neighbor_bfd_options_check_cp_failure_modify(
3738 struct nb_cb_modify_args *args)
3739 {
3740 switch (args->event) {
3741 case NB_EV_VALIDATE:
3742 case NB_EV_PREPARE:
3743 case NB_EV_ABORT:
3744 case NB_EV_APPLY:
3745 /* TODO: implement me. */
3746 break;
3747 }
3748
3749 return NB_OK;
3750 }
3751
3752 int bgp_neighbors_neighbor_bfd_options_check_cp_failure_destroy(
3753 struct nb_cb_destroy_args *args)
3754 {
3755 switch (args->event) {
3756 case NB_EV_VALIDATE:
3757 case NB_EV_PREPARE:
3758 case NB_EV_ABORT:
3759 case NB_EV_APPLY:
3760 /* TODO: implement me. */
3761 break;
3762 }
3763
3764 return NB_OK;
3765 }
3766
3767 /*
3768 * XPath:
3769 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/admin-shutdown
3770 */
3771 void bgp_neighbors_neighbor_admin_shutdown_apply_finish(
3772 struct nb_cb_apply_finish_args *args)
3773 {
3774 struct bgp *bgp;
3775 const char *peer_str;
3776 struct peer *peer;
3777 bool enable = false;
3778 const char *message;
3779
3780 bgp = nb_running_get_entry(args->dnode, NULL, true);
3781 peer_str = yang_dnode_get_string(args->dnode, "../remote-address");
3782 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3783 args->errmsg_len);
3784
3785 if (yang_dnode_exists(args->dnode, "./message")) {
3786 message = yang_dnode_get_string(args->dnode, "./message");
3787 peer_tx_shutdown_message_set(peer, message);
3788 }
3789 enable = yang_dnode_get_bool(args->dnode, "./enable");
3790
3791 peer_flag_modify_nb(bgp, peer_str, peer, PEER_FLAG_SHUTDOWN, enable,
3792 args->errmsg, args->errmsg_len);
3793 }
3794
3795 /*
3796 * XPath:
3797 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/admin-shutdown/enable
3798 */
3799 int bgp_neighbors_neighbor_admin_shutdown_enable_modify(
3800 struct nb_cb_modify_args *args)
3801 {
3802 switch (args->event) {
3803 case NB_EV_VALIDATE:
3804 case NB_EV_PREPARE:
3805 case NB_EV_ABORT:
3806 case NB_EV_APPLY:
3807 /* TODO: implement me. */
3808 break;
3809 }
3810
3811 return NB_OK;
3812 }
3813
3814 int bgp_neighbors_neighbor_admin_shutdown_enable_destroy(
3815 struct nb_cb_destroy_args *args)
3816 {
3817 switch (args->event) {
3818 case NB_EV_VALIDATE:
3819 case NB_EV_PREPARE:
3820 case NB_EV_ABORT:
3821 case NB_EV_APPLY:
3822 /* TODO: implement me. */
3823 break;
3824 }
3825
3826 return NB_OK;
3827 }
3828
3829 /*
3830 * XPath:
3831 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/admin-shutdown/message
3832 */
3833 int bgp_neighbors_neighbor_admin_shutdown_message_modify(
3834 struct nb_cb_modify_args *args)
3835 {
3836 switch (args->event) {
3837 case NB_EV_VALIDATE:
3838 case NB_EV_PREPARE:
3839 case NB_EV_ABORT:
3840 case NB_EV_APPLY:
3841 /* TODO: implement me. */
3842 break;
3843 }
3844
3845 return NB_OK;
3846 }
3847
3848 int bgp_neighbors_neighbor_admin_shutdown_message_destroy(
3849 struct nb_cb_destroy_args *args)
3850 {
3851 switch (args->event) {
3852 case NB_EV_VALIDATE:
3853 case NB_EV_PREPARE:
3854 case NB_EV_ABORT:
3855 case NB_EV_APPLY:
3856 /* TODO: implement me. */
3857 break;
3858 }
3859
3860 return NB_OK;
3861 }
3862
3863 /*
3864 * XPath:
3865 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/graceful-restart/enable
3866 */
3867 int bgp_neighbors_neighbor_graceful_restart_enable_modify(
3868 struct nb_cb_modify_args *args)
3869 {
3870 switch (args->event) {
3871 case NB_EV_VALIDATE:
3872 case NB_EV_PREPARE:
3873 case NB_EV_ABORT:
3874 case NB_EV_APPLY:
3875 /* TODO: implement me. */
3876 break;
3877 }
3878
3879 return NB_OK;
3880 }
3881
3882 int bgp_neighbors_neighbor_graceful_restart_enable_destroy(
3883 struct nb_cb_destroy_args *args)
3884 {
3885 switch (args->event) {
3886 case NB_EV_VALIDATE:
3887 case NB_EV_PREPARE:
3888 case NB_EV_ABORT:
3889 case NB_EV_APPLY:
3890 /* TODO: implement me. */
3891 break;
3892 }
3893
3894 return NB_OK;
3895 }
3896
3897 /*
3898 * XPath:
3899 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/graceful-restart/graceful-restart-helper
3900 */
3901 int bgp_neighbors_neighbor_graceful_restart_graceful_restart_helper_modify(
3902 struct nb_cb_modify_args *args)
3903 {
3904 switch (args->event) {
3905 case NB_EV_VALIDATE:
3906 case NB_EV_PREPARE:
3907 case NB_EV_ABORT:
3908 case NB_EV_APPLY:
3909 /* TODO: implement me. */
3910 break;
3911 }
3912
3913 return NB_OK;
3914 }
3915
3916 int bgp_neighbors_neighbor_graceful_restart_graceful_restart_helper_destroy(
3917 struct nb_cb_destroy_args *args)
3918 {
3919 switch (args->event) {
3920 case NB_EV_VALIDATE:
3921 case NB_EV_PREPARE:
3922 case NB_EV_ABORT:
3923 case NB_EV_APPLY:
3924 /* TODO: implement me. */
3925 break;
3926 }
3927
3928 return NB_OK;
3929 }
3930
3931 /*
3932 * XPath:
3933 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/graceful-restart/graceful-restart-disable
3934 */
3935 int bgp_neighbors_neighbor_graceful_restart_graceful_restart_disable_modify(
3936 struct nb_cb_modify_args *args)
3937 {
3938 switch (args->event) {
3939 case NB_EV_VALIDATE:
3940 case NB_EV_PREPARE:
3941 case NB_EV_ABORT:
3942 case NB_EV_APPLY:
3943 /* TODO: implement me. */
3944 break;
3945 }
3946
3947 return NB_OK;
3948 }
3949
3950 int bgp_neighbors_neighbor_graceful_restart_graceful_restart_disable_destroy(
3951 struct nb_cb_destroy_args *args)
3952 {
3953 switch (args->event) {
3954 case NB_EV_VALIDATE:
3955 case NB_EV_PREPARE:
3956 case NB_EV_ABORT:
3957 case NB_EV_APPLY:
3958 /* TODO: implement me. */
3959 break;
3960 }
3961
3962 return NB_OK;
3963 }
3964
3965 /*
3966 * XPath:
3967 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/timers/advertise-interval
3968 */
3969 int bgp_neighbors_neighbor_timers_advertise_interval_modify(
3970 struct nb_cb_modify_args *args)
3971 {
3972 struct bgp *bgp;
3973 const char *peer_str;
3974 struct peer *peer;
3975 uint16_t routeadv;
3976 int ret;
3977
3978 switch (args->event) {
3979 case NB_EV_VALIDATE:
3980 case NB_EV_PREPARE:
3981 case NB_EV_ABORT:
3982 return NB_OK;
3983 case NB_EV_APPLY:
3984 bgp = nb_running_get_entry(args->dnode, NULL, true);
3985 peer_str = yang_dnode_get_string(args->dnode,
3986 "../../remote-address");
3987 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3988 args->errmsg_len);
3989 routeadv = yang_dnode_get_uint16(args->dnode, NULL);
3990
3991 ret = peer_advertise_interval_set(peer, routeadv);
3992 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
3993 < 0)
3994 return NB_ERR_INCONSISTENCY;
3995
3996 break;
3997 }
3998
3999 return NB_OK;
4000 }
4001
4002 int bgp_neighbors_neighbor_timers_advertise_interval_destroy(
4003 struct nb_cb_destroy_args *args)
4004 {
4005 struct bgp *bgp;
4006 const char *peer_str;
4007 struct peer *peer;
4008 int ret;
4009
4010 switch (args->event) {
4011 case NB_EV_VALIDATE:
4012 case NB_EV_PREPARE:
4013 case NB_EV_ABORT:
4014 return NB_OK;
4015 case NB_EV_APPLY:
4016 bgp = nb_running_get_entry(args->dnode, NULL, true);
4017 peer_str = yang_dnode_get_string(args->dnode,
4018 "../../remote-address");
4019 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
4020 args->errmsg_len);
4021
4022 ret = peer_advertise_interval_unset(peer);
4023 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
4024 < 0)
4025 return NB_ERR_INCONSISTENCY;
4026
4027 break;
4028 }
4029
4030 return NB_OK;
4031 }
4032
4033 /*
4034 * XPath:
4035 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/timers/connect-time
4036 */
4037 int bgp_neighbors_neighbor_timers_connect_time_modify(
4038 struct nb_cb_modify_args *args)
4039 {
4040 struct bgp *bgp;
4041 const char *peer_str;
4042 struct peer *peer;
4043 uint16_t connect;
4044 int ret;
4045
4046 switch (args->event) {
4047 case NB_EV_VALIDATE:
4048 case NB_EV_PREPARE:
4049 case NB_EV_ABORT:
4050 return NB_OK;
4051 case NB_EV_APPLY:
4052 bgp = nb_running_get_entry(args->dnode, NULL, true);
4053 peer_str = yang_dnode_get_string(args->dnode,
4054 "../../remote-address");
4055 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
4056 args->errmsg_len);
4057 connect = yang_dnode_get_uint16(args->dnode, NULL);
4058
4059 ret = peer_timers_connect_set(peer, connect);
4060 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
4061 < 0)
4062 return NB_ERR_INCONSISTENCY;
4063
4064 break;
4065 }
4066
4067 return NB_OK;
4068 }
4069
4070 int bgp_neighbors_neighbor_timers_connect_time_destroy(
4071 struct nb_cb_destroy_args *args)
4072 {
4073 struct bgp *bgp;
4074 const char *peer_str;
4075 struct peer *peer;
4076 int ret;
4077
4078 switch (args->event) {
4079 case NB_EV_VALIDATE:
4080 case NB_EV_PREPARE:
4081 case NB_EV_ABORT:
4082 return NB_OK;
4083 case NB_EV_APPLY:
4084 bgp = nb_running_get_entry(args->dnode, NULL, true);
4085 peer_str = yang_dnode_get_string(args->dnode,
4086 "../../remote-address");
4087 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
4088 args->errmsg_len);
4089
4090 ret = peer_timers_connect_unset(peer);
4091 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
4092 < 0)
4093 return NB_ERR_INCONSISTENCY;
4094
4095 break;
4096 }
4097
4098 return NB_OK;
4099 }
4100
4101 /*
4102 * XPath:
4103 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/timers/hold-time
4104 */
4105 int bgp_neighbors_neighbor_timers_hold_time_modify(
4106 struct nb_cb_modify_args *args)
4107 {
4108 struct bgp *bgp;
4109 const char *peer_str;
4110 struct peer *peer;
4111 uint16_t keepalive = 0;
4112 uint16_t holdtime = 0;
4113 int ret = 0;
4114
4115 switch (args->event) {
4116 case NB_EV_VALIDATE:
4117 case NB_EV_PREPARE:
4118 case NB_EV_ABORT:
4119 return NB_OK;
4120 case NB_EV_APPLY:
4121 bgp = nb_running_get_entry(args->dnode, NULL, true);
4122 peer_str = yang_dnode_get_string(args->dnode,
4123 "../../remote-address");
4124 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
4125 args->errmsg_len);
4126 keepalive = yang_dnode_get_uint16(args->dnode, "../keepalive");
4127 holdtime = yang_dnode_get_uint16(args->dnode, NULL);
4128
4129 if (keepalive != BGP_DEFAULT_KEEPALIVE
4130 && holdtime != BGP_DEFAULT_HOLDTIME) {
4131 ret = peer_timers_set(peer, keepalive, holdtime);
4132 } else
4133 ret = peer_timers_unset(peer);
4134
4135 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
4136 < 0)
4137 return NB_ERR_INCONSISTENCY;
4138
4139 break;
4140 }
4141
4142 return NB_OK;
4143 }
4144
4145 /*
4146 * XPath:
4147 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/timers/keepalive
4148 */
4149 int bgp_neighbors_neighbor_timers_keepalive_modify(
4150 struct nb_cb_modify_args *args)
4151 {
4152 struct bgp *bgp;
4153 const char *peer_str;
4154 struct peer *peer;
4155 uint16_t keepalive = 0, curr_keep = 0;
4156 uint16_t holdtime = 0;
4157 int ret = 0;
4158
4159 switch (args->event) {
4160 case NB_EV_VALIDATE:
4161 case NB_EV_PREPARE:
4162 case NB_EV_ABORT:
4163 return NB_OK;
4164 case NB_EV_APPLY:
4165 bgp = nb_running_get_entry(args->dnode, NULL, true);
4166 peer_str = yang_dnode_get_string(args->dnode,
4167 "../../remote-address");
4168 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
4169 args->errmsg_len);
4170 keepalive = yang_dnode_get_uint16(args->dnode, NULL);
4171 holdtime = yang_dnode_get_uint16(args->dnode, "../hold-time");
4172
4173 if (keepalive != BGP_DEFAULT_KEEPALIVE
4174 && holdtime != BGP_DEFAULT_HOLDTIME) {
4175 if (peer->holdtime == holdtime) {
4176 curr_keep = (keepalive < holdtime / 3
4177 ? keepalive
4178 : holdtime / 3);
4179 if (curr_keep == keepalive)
4180 return NB_OK;
4181 }
4182 ret = peer_timers_set(peer, keepalive, holdtime);
4183 } else
4184 ret = peer_timers_unset(peer);
4185
4186 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
4187 < 0)
4188 return NB_ERR_INCONSISTENCY;
4189
4190 break;
4191 }
4192
4193 return NB_OK;
4194 }
4195
4196 /*
4197 * XPath:
4198 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi
4199 */
4200 int bgp_neighbors_neighbor_afi_safis_afi_safi_create(
4201 struct nb_cb_create_args *args)
4202 {
4203 switch (args->event) {
4204 case NB_EV_VALIDATE:
4205 case NB_EV_PREPARE:
4206 case NB_EV_ABORT:
4207 case NB_EV_APPLY:
4208 /* TODO: implement me. */
4209 break;
4210 }
4211
4212 return NB_OK;
4213 }
4214
4215 int bgp_neighbors_neighbor_afi_safis_afi_safi_destroy(
4216 struct nb_cb_destroy_args *args)
4217 {
4218 switch (args->event) {
4219 case NB_EV_VALIDATE:
4220 case NB_EV_PREPARE:
4221 case NB_EV_ABORT:
4222 case NB_EV_APPLY:
4223 /* TODO: implement me. */
4224 break;
4225 }
4226
4227 return NB_OK;
4228 }
4229
4230 /*
4231 * XPath:
4232 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/enabled
4233 */
4234 int bgp_neighbors_neighbor_afi_safis_afi_safi_enabled_modify(
4235 struct nb_cb_modify_args *args)
4236 {
4237 struct bgp *bgp;
4238 const char *peer_str;
4239 const char *af_name;
4240 afi_t afi;
4241 safi_t safi;
4242 bool activate = false;
4243 int ret = 0;
4244 union sockunion su;
4245 struct peer *peer;
4246
4247 switch (args->event) {
4248 case NB_EV_VALIDATE:
4249 case NB_EV_PREPARE:
4250 case NB_EV_ABORT:
4251 return NB_OK;
4252 case NB_EV_APPLY:
4253 bgp = nb_running_get_entry(args->dnode, NULL, true);
4254 af_name =
4255 yang_dnode_get_string(args->dnode, "../afi-safi-name");
4256 yang_afi_safi_identity2value(af_name, &afi, &safi);
4257 peer_str = yang_dnode_get_string(args->dnode,
4258 "../../../remote-address");
4259 str2sockunion(peer_str, &su);
4260 peer = peer_lookup(bgp, &su);
4261
4262 activate = yang_dnode_get_bool(args->dnode, NULL);
4263
4264 if (activate)
4265 ret = peer_activate(peer, afi, safi);
4266 else
4267 ret = peer_deactivate(peer, afi, safi);
4268
4269 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
4270
4271 break;
4272 }
4273
4274 return NB_OK;
4275 }
4276
4277 int bgp_neighbors_neighbor_afi_safis_afi_safi_enabled_destroy(
4278 struct nb_cb_destroy_args *args)
4279 {
4280 switch (args->event) {
4281 case NB_EV_VALIDATE:
4282 case NB_EV_PREPARE:
4283 case NB_EV_ABORT:
4284 case NB_EV_APPLY:
4285 /* TODO: implement me. */
4286 break;
4287 }
4288
4289 return NB_OK;
4290 }
4291
4292 static struct peer *bgp_unnumbered_neighbor_peer_lookup(struct bgp *bgp,
4293 const char *peer_str,
4294 char *errmsg,
4295 size_t errmsg_len)
4296 {
4297 struct peer *peer = NULL;
4298
4299 /* Not IP, could match either peer configured on interface or a
4300 * group. */
4301 peer = peer_lookup_by_conf_if(bgp, peer_str);
4302 if (!peer) {
4303 snprintf(errmsg, errmsg_len,
4304 "Specify remote-as or peer-group commands first");
4305 return NULL;
4306 }
4307 if (peer_dynamic_neighbor(peer)) {
4308 snprintf(errmsg, errmsg_len,
4309 "Operation not allowed on a dynamic neighbor\n");
4310 return NULL;
4311 }
4312
4313 return peer;
4314 }
4315
4316 /*
4317 * XPath:
4318 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor
4319 */
4320 int bgp_neighbors_unnumbered_neighbor_create(struct nb_cb_create_args *args)
4321 {
4322 struct bgp *bgp;
4323 const char *peer_str;
4324 const char *peer_grp_str = NULL;
4325 bool v6_only = false;
4326 int as_type = AS_UNSPECIFIED;
4327 as_t as = 0;
4328 char prgrp_xpath[XPATH_MAXLEN];
4329 const struct lyd_node *bgp_dnode;
4330
4331 switch (args->event) {
4332 case NB_EV_VALIDATE:
4333 peer_str = yang_dnode_get_string(args->dnode, "./interface");
4334 bgp_dnode = yang_dnode_get_parent(args->dnode, "bgp");
4335 snprintf(prgrp_xpath, sizeof(prgrp_xpath),
4336 FRR_BGP_PEER_GROUP_XPATH, peer_str, "");
4337
4338 if (yang_dnode_exists(bgp_dnode, prgrp_xpath)) {
4339 snprintf(args->errmsg, args->errmsg_len,
4340 "Name conflict with peer-group: %s", peer_str);
4341 return NB_ERR_VALIDATION;
4342 }
4343
4344 break;
4345 case NB_EV_PREPARE:
4346 case NB_EV_ABORT:
4347 return NB_OK;
4348 case NB_EV_APPLY:
4349 bgp = nb_running_get_entry(args->dnode, NULL, true);
4350 peer_str = yang_dnode_get_string(args->dnode, "./interface");
4351
4352 if (yang_dnode_exists(args->dnode, "./peer-group"))
4353 peer_grp_str = yang_dnode_get_string(args->dnode,
4354 "./peer-group");
4355
4356 if (yang_dnode_exists(args->dnode, "./v6-only"))
4357 v6_only = yang_dnode_get_bool(args->dnode, "./v6-only");
4358
4359 if (yang_dnode_exists(args->dnode,
4360 "./neighbor-remote-as/remote-as-type")) {
4361 as_type = yang_dnode_get_enum(
4362 args->dnode,
4363 "./neighbor-remote-as/remote-as-type");
4364 if (yang_dnode_exists(args->dnode,
4365 "./neighbor-remote-as/remote-as"))
4366 as = yang_dnode_get_uint32(
4367 args->dnode,
4368 "./neighbor-remote-as/remote-as");
4369 }
4370
4371 if (peer_conf_interface_create(bgp, peer_str, AFI_IP,
4372 SAFI_UNICAST, v6_only,
4373 peer_grp_str, as_type, as,
4374 args->errmsg, args->errmsg_len))
4375 return NB_ERR_INCONSISTENCY;
4376
4377 break;
4378 }
4379
4380 return NB_OK;
4381 }
4382
4383 int bgp_neighbors_unnumbered_neighbor_destroy(struct nb_cb_destroy_args *args)
4384 {
4385 struct bgp *bgp;
4386 const char *peer_str;
4387 struct peer *peer;
4388
4389 switch (args->event) {
4390 case NB_EV_VALIDATE:
4391 case NB_EV_PREPARE:
4392 case NB_EV_ABORT:
4393 return NB_OK;
4394 case NB_EV_APPLY:
4395 bgp = nb_running_get_entry(args->dnode, NULL, true);
4396
4397 peer_str = yang_dnode_get_string(args->dnode, "./interface");
4398 /* look up for neighbor by interface name config. */
4399 peer = peer_lookup_by_conf_if(bgp, peer_str);
4400 if (peer) {
4401 /* Request zebra to terminate IPv6 RAs on this
4402 * interface. */
4403 if (peer->ifp)
4404 bgp_zebra_terminate_radv(peer->bgp, peer);
4405 peer_notify_unconfig(peer);
4406 peer_delete(peer);
4407 } else {
4408 snprintf(args->errmsg, args->errmsg_len,
4409 "Create the peer-group first");
4410 return NB_ERR_INCONSISTENCY;
4411 }
4412
4413 break;
4414 }
4415
4416 return NB_OK;
4417 }
4418
4419 /*
4420 * XPath:
4421 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/v6only
4422 */
4423 int bgp_neighbors_unnumbered_neighbor_v6only_modify(
4424 struct nb_cb_modify_args *args)
4425 {
4426 struct bgp *bgp;
4427 const char *peer_str;
4428 bool v6_only = false;
4429
4430 switch (args->event) {
4431 case NB_EV_VALIDATE:
4432 case NB_EV_PREPARE:
4433 case NB_EV_ABORT:
4434 return NB_OK;
4435 case NB_EV_APPLY:
4436 bgp = nb_running_get_entry(args->dnode, NULL, true);
4437 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4438
4439 v6_only = yang_dnode_get_bool(args->dnode, NULL);
4440
4441 if (peer_conf_interface_create(
4442 bgp, peer_str, AFI_IP, SAFI_UNICAST, v6_only, NULL,
4443 AS_UNSPECIFIED, 0, args->errmsg, args->errmsg_len))
4444 return NB_ERR_INCONSISTENCY;
4445
4446 break;
4447 }
4448
4449 return NB_OK;
4450 }
4451
4452 /*
4453 * XPath:
4454 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/peer-group
4455 */
4456 int bgp_neighbors_unnumbered_neighbor_peer_group_modify(
4457 struct nb_cb_modify_args *args)
4458 {
4459 struct bgp *bgp;
4460 const char *peer_str;
4461 const char *peer_grp_str;
4462 struct peer *peer;
4463 struct peer_group *group;
4464 union sockunion su;
4465 as_t as;
4466 int ret = 0;
4467 char prgrp_xpath[XPATH_MAXLEN];
4468 const struct lyd_node *bgp_dnode;
4469
4470 switch (args->event) {
4471 case NB_EV_VALIDATE:
4472 peer_grp_str = yang_dnode_get_string(args->dnode, NULL);
4473 bgp_dnode = yang_dnode_get_parent(args->dnode, "bgp");
4474 snprintf(prgrp_xpath, sizeof(prgrp_xpath),
4475 FRR_BGP_PEER_GROUP_XPATH, peer_grp_str, "");
4476
4477 if (!yang_dnode_exists(bgp_dnode, prgrp_xpath)) {
4478 snprintf(args->errmsg, args->errmsg_len,
4479 "Configure the peer-group first %s",
4480 peer_grp_str);
4481 return NB_ERR_VALIDATION;
4482 }
4483
4484 break;
4485 case NB_EV_PREPARE:
4486 case NB_EV_ABORT:
4487 return NB_OK;
4488 case NB_EV_APPLY:
4489 bgp = nb_running_get_entry(args->dnode, NULL, true);
4490 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4491 peer = bgp_unnumbered_neighbor_peer_lookup(
4492 bgp, peer_str, args->errmsg, args->errmsg_len);
4493
4494 peer_grp_str = yang_dnode_get_string(args->dnode, NULL);
4495 group = peer_group_lookup(bgp, peer_grp_str);
4496 if (!group) {
4497 snprintf(args->errmsg, args->errmsg_len,
4498 "Configure the peer-group first\n");
4499 return NB_ERR_INCONSISTENCY;
4500 }
4501
4502 ret = peer_group_bind(bgp, &su, peer, group, &as);
4503 if (ret == BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT) {
4504 snprintf(
4505 args->errmsg, args->errmsg_len,
4506 "Peer with AS %u cannot be in this peer-group, members must be all internal or all external\n",
4507 as);
4508 return NB_ERR_INCONSISTENCY;
4509 }
4510
4511 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
4512
4513 break;
4514 }
4515
4516 return NB_OK;
4517 }
4518
4519 int bgp_neighbors_unnumbered_neighbor_peer_group_destroy(
4520 struct nb_cb_destroy_args *args)
4521 {
4522 struct bgp *bgp;
4523 const char *peer_str;
4524 struct peer *peer;
4525 int ret;
4526
4527 switch (args->event) {
4528 case NB_EV_VALIDATE:
4529 case NB_EV_PREPARE:
4530 case NB_EV_ABORT:
4531 return NB_OK;
4532 case NB_EV_APPLY:
4533 bgp = nb_running_get_entry(args->dnode, NULL, true);
4534 peer_str =
4535 yang_dnode_get_string(args->dnode, "../remote-address");
4536 peer = bgp_unnumbered_neighbor_peer_lookup(
4537 bgp, peer_str, args->errmsg, args->errmsg_len);
4538
4539 if (CHECK_FLAG(peer->flags, PEER_FLAG_CAPABILITY_ENHE))
4540 bgp_zebra_terminate_radv(peer->bgp, peer);
4541
4542 peer_notify_unconfig(peer);
4543 ret = peer_delete(peer);
4544
4545 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
4546 < 0)
4547 return NB_ERR_INCONSISTENCY;
4548
4549 break;
4550 }
4551
4552 return NB_OK;
4553 }
4554
4555 /*
4556 * XPath:
4557 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/password
4558 */
4559 int bgp_neighbors_unnumbered_neighbor_password_modify(
4560 struct nb_cb_modify_args *args)
4561 {
4562 struct bgp *bgp;
4563 const char *peer_str;
4564 const char *passwrd_str;
4565 struct peer *peer = NULL;
4566
4567 switch (args->event) {
4568 case NB_EV_VALIDATE:
4569 case NB_EV_PREPARE:
4570 case NB_EV_ABORT:
4571 return NB_OK;
4572 case NB_EV_APPLY:
4573 bgp = nb_running_get_entry(args->dnode, NULL, true);
4574 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4575 peer = bgp_unnumbered_neighbor_peer_lookup(
4576 bgp, peer_str, args->errmsg, args->errmsg_len);
4577 if (!peer)
4578 return NB_ERR_INCONSISTENCY;
4579
4580 passwrd_str = yang_dnode_get_string(args->dnode, NULL);
4581 peer_password_set(peer, passwrd_str);
4582
4583 break;
4584 }
4585
4586 return NB_OK;
4587 }
4588
4589 int bgp_neighbors_unnumbered_neighbor_password_destroy(
4590 struct nb_cb_destroy_args *args)
4591 {
4592 struct bgp *bgp;
4593 const char *peer_str;
4594 struct peer *peer = NULL;
4595
4596 switch (args->event) {
4597 case NB_EV_VALIDATE:
4598 case NB_EV_PREPARE:
4599 case NB_EV_ABORT:
4600 return NB_OK;
4601 case NB_EV_APPLY:
4602 bgp = nb_running_get_entry(args->dnode, NULL, true);
4603 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4604 peer = bgp_unnumbered_neighbor_peer_lookup(
4605 bgp, peer_str, args->errmsg, args->errmsg_len);
4606 if (!peer)
4607 return NB_ERR_INCONSISTENCY;
4608
4609 peer_password_unset(peer);
4610
4611 break;
4612 }
4613
4614 return NB_OK;
4615 }
4616
4617 /*
4618 * XPath:
4619 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/ttl-security
4620 */
4621 int bgp_neighbors_unnumbered_neighbor_ttl_security_modify(
4622 struct nb_cb_modify_args *args)
4623 {
4624 struct bgp *bgp;
4625 const char *peer_str;
4626 struct peer *peer;
4627 int ret;
4628 uint8_t gtsm_hops;
4629
4630 switch (args->event) {
4631 case NB_EV_VALIDATE:
4632 case NB_EV_PREPARE:
4633 case NB_EV_ABORT:
4634 return NB_OK;
4635 case NB_EV_APPLY:
4636 bgp = nb_running_get_entry(args->dnode, NULL, true);
4637 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4638 peer = bgp_unnumbered_neighbor_peer_lookup(
4639 bgp, peer_str, args->errmsg, args->errmsg_len);
4640 if (!peer)
4641 return NB_ERR_INCONSISTENCY;
4642
4643 gtsm_hops = yang_dnode_get_uint8(args->dnode, NULL);
4644 /*
4645 * If 'neighbor swpX', then this is for directly connected
4646 * peers, we should not accept a ttl-security hops value greater
4647 * than 1.
4648 */
4649 if (peer->conf_if && (gtsm_hops > BGP_GTSM_HOPS_CONNECTED)) {
4650 snprintf(
4651 args->errmsg, args->errmsg_len,
4652 "%d is directly connected peer, hops cannot exceed 1\n",
4653 gtsm_hops);
4654 return NB_ERR_INCONSISTENCY;
4655 }
4656
4657 ret = peer_ttl_security_hops_set(peer, gtsm_hops);
4658 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
4659 < 0)
4660 return NB_ERR_INCONSISTENCY;
4661
4662 break;
4663 }
4664
4665 return NB_OK;
4666 }
4667
4668 int bgp_neighbors_unnumbered_neighbor_ttl_security_destroy(
4669 struct nb_cb_destroy_args *args)
4670 {
4671 struct bgp *bgp;
4672 const char *peer_str;
4673 struct peer *peer;
4674 int ret;
4675
4676 switch (args->event) {
4677 case NB_EV_VALIDATE:
4678 case NB_EV_PREPARE:
4679 case NB_EV_ABORT:
4680 return NB_OK;
4681 case NB_EV_APPLY:
4682 bgp = nb_running_get_entry(args->dnode, NULL, true);
4683 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4684 peer = bgp_unnumbered_neighbor_peer_lookup(
4685 bgp, peer_str, args->errmsg, args->errmsg_len);
4686 if (!peer)
4687 return NB_ERR_INCONSISTENCY;
4688
4689 ret = peer_ttl_security_hops_unset(peer);
4690 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
4691
4692 break;
4693 }
4694
4695 return NB_OK;
4696 }
4697
4698 /*
4699 * XPath:
4700 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/solo
4701 */
4702 int bgp_neighbors_unnumbered_neighbor_solo_modify(
4703 struct nb_cb_modify_args *args)
4704 {
4705 switch (args->event) {
4706 case NB_EV_VALIDATE:
4707 case NB_EV_PREPARE:
4708 case NB_EV_ABORT:
4709 case NB_EV_APPLY:
4710 /* TODO: implement me. */
4711 break;
4712 }
4713
4714 return NB_OK;
4715 }
4716
4717 /*
4718 * XPath:
4719 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/enforce-first-as
4720 */
4721 int bgp_neighbors_unnumbered_neighbor_enforce_first_as_modify(
4722 struct nb_cb_modify_args *args)
4723 {
4724 struct bgp *bgp;
4725 const char *peer_str;
4726 struct peer *peer;
4727 bool enable = false;
4728
4729 switch (args->event) {
4730 case NB_EV_VALIDATE:
4731 case NB_EV_PREPARE:
4732 case NB_EV_ABORT:
4733 return NB_OK;
4734 case NB_EV_APPLY:
4735 bgp = nb_running_get_entry(args->dnode, NULL, true);
4736 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4737 peer = bgp_unnumbered_neighbor_peer_lookup(
4738 bgp, peer_str, args->errmsg, args->errmsg_len);
4739
4740 enable = yang_dnode_get_bool(args->dnode, NULL);
4741
4742 peer_flag_modify_nb(bgp, peer_str, peer,
4743 PEER_FLAG_ENFORCE_FIRST_AS, enable,
4744 args->errmsg, args->errmsg_len);
4745
4746 break;
4747 }
4748
4749 return NB_OK;
4750 }
4751
4752 /*
4753 * XPath:
4754 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/description
4755 */
4756 int bgp_neighbors_unnumbered_neighbor_description_modify(
4757 struct nb_cb_modify_args *args)
4758 {
4759 struct bgp *bgp;
4760 const char *peer_str;
4761 const char *desc_str;
4762 struct peer *peer = NULL;
4763
4764 switch (args->event) {
4765 case NB_EV_VALIDATE:
4766 case NB_EV_PREPARE:
4767 case NB_EV_ABORT:
4768 return NB_OK;
4769 case NB_EV_APPLY:
4770 bgp = nb_running_get_entry(args->dnode, NULL, true);
4771 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4772
4773 peer = bgp_unnumbered_neighbor_peer_lookup(
4774 bgp, peer_str, args->errmsg, args->errmsg_len);
4775 if (!peer)
4776 return NB_ERR_INCONSISTENCY;
4777
4778 desc_str = yang_dnode_get_string(args->dnode, NULL);
4779
4780 peer_description_set(peer, desc_str);
4781
4782 break;
4783 }
4784
4785 return NB_OK;
4786 }
4787
4788 int bgp_neighbors_unnumbered_neighbor_description_destroy(
4789 struct nb_cb_destroy_args *args)
4790 {
4791 struct bgp *bgp;
4792 const char *peer_str;
4793 struct peer *peer = NULL;
4794
4795 switch (args->event) {
4796 case NB_EV_VALIDATE:
4797 case NB_EV_PREPARE:
4798 case NB_EV_ABORT:
4799 return NB_OK;
4800 case NB_EV_APPLY:
4801 bgp = nb_running_get_entry(args->dnode, NULL, true);
4802 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4803
4804 peer = bgp_unnumbered_neighbor_peer_lookup(
4805 bgp, peer_str, args->errmsg, args->errmsg_len);
4806 if (!peer)
4807 return NB_ERR_INCONSISTENCY;
4808
4809 peer_description_unset(peer);
4810
4811 break;
4812 }
4813
4814 return NB_OK;
4815 }
4816
4817 /*
4818 * XPath:
4819 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/passive-mode
4820 */
4821 int bgp_neighbors_unnumbered_neighbor_passive_mode_modify(
4822 struct nb_cb_modify_args *args)
4823 {
4824 struct bgp *bgp;
4825 const char *peer_str;
4826 struct peer *peer;
4827 bool set = false;
4828
4829 switch (args->event) {
4830 case NB_EV_VALIDATE:
4831 case NB_EV_PREPARE:
4832 case NB_EV_ABORT:
4833 return NB_OK;
4834 case NB_EV_APPLY:
4835 bgp = nb_running_get_entry(args->dnode, NULL, true);
4836 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4837 peer = bgp_unnumbered_neighbor_peer_lookup(
4838 bgp, peer_str, args->errmsg, args->errmsg_len);
4839 if (!peer)
4840 return NB_ERR_INCONSISTENCY;
4841
4842 set = yang_dnode_get_bool(args->dnode, NULL);
4843
4844 if (peer_flag_modify_nb(bgp, peer_str, peer, PEER_FLAG_PASSIVE,
4845 set, args->errmsg, args->errmsg_len)
4846 < 0)
4847 return NB_ERR_INCONSISTENCY;
4848
4849 break;
4850 }
4851
4852 return NB_OK;
4853 }
4854
4855 /*
4856 * XPath:
4857 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/capability-options/dynamic-capability
4858 */
4859 int bgp_neighbors_unnumbered_neighbor_capability_options_dynamic_capability_modify(
4860 struct nb_cb_modify_args *args)
4861 {
4862 struct bgp *bgp;
4863 const char *peer_str;
4864 struct peer *peer;
4865 bool enable = false;
4866
4867 switch (args->event) {
4868 case NB_EV_VALIDATE:
4869 case NB_EV_PREPARE:
4870 case NB_EV_ABORT:
4871 return NB_OK;
4872 case NB_EV_APPLY:
4873 bgp = nb_running_get_entry(args->dnode, NULL, true);
4874 peer_str =
4875 yang_dnode_get_string(args->dnode, "../../interface");
4876 peer = bgp_unnumbered_neighbor_peer_lookup(
4877 bgp, peer_str, args->errmsg, args->errmsg_len);
4878 if (!peer)
4879 return NB_ERR_INCONSISTENCY;
4880
4881 enable = yang_dnode_get_bool(args->dnode, NULL);
4882
4883 peer_flag_modify_nb(bgp, peer_str, peer,
4884 PEER_FLAG_DYNAMIC_CAPABILITY, enable,
4885 args->errmsg, args->errmsg_len);
4886
4887 break;
4888 }
4889
4890 return NB_OK;
4891 }
4892
4893 /*
4894 * XPath:
4895 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/capability-options/strict-capability
4896 */
4897 int bgp_neighbors_unnumbered_neighbor_capability_options_strict_capability_modify(
4898 struct nb_cb_modify_args *args)
4899 {
4900 struct bgp *bgp;
4901 const char *peer_str;
4902 struct peer *peer;
4903 bool enable = false;
4904
4905 switch (args->event) {
4906 case NB_EV_VALIDATE:
4907 case NB_EV_PREPARE:
4908 case NB_EV_ABORT:
4909 return NB_OK;
4910 case NB_EV_APPLY:
4911 bgp = nb_running_get_entry(args->dnode, NULL, true);
4912 peer_str =
4913 yang_dnode_get_string(args->dnode, "../../interface");
4914 peer = bgp_unnumbered_neighbor_peer_lookup(
4915 bgp, peer_str, args->errmsg, args->errmsg_len);
4916 if (!peer)
4917 return NB_ERR_INCONSISTENCY;
4918
4919 enable = yang_dnode_get_bool(args->dnode, NULL);
4920
4921 peer_flag_modify_nb(bgp, peer_str, peer,
4922 PEER_FLAG_STRICT_CAP_MATCH, enable,
4923 args->errmsg, args->errmsg_len);
4924
4925 break;
4926 }
4927
4928 return NB_OK;
4929 }
4930
4931 /*
4932 * XPath:
4933 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/capability-options/extended-nexthop-capability
4934 */
4935 int bgp_neighbors_unnumbered_neighbor_capability_options_extended_nexthop_capability_modify(
4936 struct nb_cb_modify_args *args)
4937 {
4938 struct bgp *bgp;
4939 const char *peer_str;
4940 struct peer *peer;
4941 bool enable = false;
4942
4943 switch (args->event) {
4944 case NB_EV_VALIDATE:
4945 case NB_EV_PREPARE:
4946 case NB_EV_ABORT:
4947 return NB_OK;
4948 case NB_EV_APPLY:
4949 bgp = nb_running_get_entry(args->dnode, NULL, true);
4950 peer_str =
4951 yang_dnode_get_string(args->dnode, "../../interface");
4952 peer = bgp_unnumbered_neighbor_peer_lookup(
4953 bgp, peer_str, args->errmsg, args->errmsg_len);
4954 if (!peer)
4955 return NB_ERR_INCONSISTENCY;
4956
4957 enable = yang_dnode_get_bool(args->dnode, NULL);
4958
4959 peer_flag_modify_nb(bgp, peer_str, peer,
4960 PEER_FLAG_CAPABILITY_ENHE, enable,
4961 args->errmsg, args->errmsg_len);
4962
4963 break;
4964 }
4965
4966 return NB_OK;
4967 }
4968
4969 /*
4970 * XPath:
4971 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/capability-options/capability-negotiate
4972 */
4973 int bgp_neighbors_unnumbered_neighbor_capability_options_capability_negotiate_modify(
4974 struct nb_cb_modify_args *args)
4975 {
4976 switch (args->event) {
4977 case NB_EV_VALIDATE:
4978 case NB_EV_PREPARE:
4979 case NB_EV_ABORT:
4980 case NB_EV_APPLY:
4981 /* TODO: implement me. */
4982 break;
4983 }
4984
4985 return NB_OK;
4986 }
4987
4988 /*
4989 * XPath:
4990 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/capability-options/override-capability
4991 */
4992 int bgp_neighbors_unnumbered_neighbor_capability_options_override_capability_modify(
4993 struct nb_cb_modify_args *args)
4994 {
4995 struct bgp *bgp;
4996 const char *peer_str;
4997 struct peer *peer;
4998 bool enable = false;
4999
5000 switch (args->event) {
5001 case NB_EV_VALIDATE:
5002 case NB_EV_PREPARE:
5003 case NB_EV_ABORT:
5004 return NB_OK;
5005 case NB_EV_APPLY:
5006 bgp = nb_running_get_entry(args->dnode, NULL, true);
5007 peer_str =
5008 yang_dnode_get_string(args->dnode, "../../interface");
5009 peer = bgp_unnumbered_neighbor_peer_lookup(
5010 bgp, peer_str, args->errmsg, args->errmsg_len);
5011
5012 enable = yang_dnode_get_bool(args->dnode, NULL);
5013
5014 peer_flag_modify_nb(bgp, peer_str, peer,
5015 PEER_FLAG_OVERRIDE_CAPABILITY, enable,
5016 args->errmsg, args->errmsg_len);
5017
5018 break;
5019 }
5020
5021 return NB_OK;
5022 }
5023
5024 /*
5025 * XPath:
5026 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/update-source/ip
5027 */
5028 int bgp_neighbors_unnumbered_neighbor_update_source_ip_modify(
5029 struct nb_cb_modify_args *args)
5030 {
5031 struct bgp *bgp;
5032 const char *peer_str, *source_str;
5033 struct peer *peer;
5034 union sockunion su;
5035
5036 switch (args->event) {
5037 case NB_EV_VALIDATE:
5038 case NB_EV_PREPARE:
5039 case NB_EV_ABORT:
5040 return NB_OK;
5041 case NB_EV_APPLY:
5042 bgp = nb_running_get_entry(args->dnode, NULL, true);
5043 peer_str =
5044 yang_dnode_get_string(args->dnode, "../../interface");
5045 peer = bgp_unnumbered_neighbor_peer_lookup(
5046 bgp, peer_str, args->errmsg, args->errmsg_len);
5047 if (!peer)
5048 return NB_ERR_INCONSISTENCY;
5049
5050 source_str = yang_dnode_get_string(args->dnode, NULL);
5051
5052 str2sockunion(source_str, &su);
5053 peer_update_source_addr_set(peer, &su);
5054
5055 break;
5056 }
5057
5058 return NB_OK;
5059 }
5060
5061 int bgp_neighbors_unnumbered_neighbor_update_source_ip_destroy(
5062 struct nb_cb_destroy_args *args)
5063 {
5064 struct bgp *bgp;
5065 const char *peer_str;
5066 struct peer *peer;
5067
5068 switch (args->event) {
5069 case NB_EV_VALIDATE:
5070 case NB_EV_PREPARE:
5071 case NB_EV_ABORT:
5072 return NB_OK;
5073 case NB_EV_APPLY:
5074 bgp = nb_running_get_entry(args->dnode, NULL, true);
5075 peer_str =
5076 yang_dnode_get_string(args->dnode, "../../interface");
5077 peer = bgp_unnumbered_neighbor_peer_lookup(
5078 bgp, peer_str, args->errmsg, args->errmsg_len);
5079 if (!peer)
5080 return NB_ERR_INCONSISTENCY;
5081
5082 peer_update_source_unset(peer);
5083
5084 break;
5085 }
5086
5087 return NB_OK;
5088 }
5089
5090 /*
5091 * XPath:
5092 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/update-source/interface
5093 */
5094 int bgp_neighbors_unnumbered_neighbor_update_source_interface_modify(
5095 struct nb_cb_modify_args *args)
5096 {
5097 struct bgp *bgp;
5098 const char *peer_str, *source_str;
5099 struct peer *peer;
5100 struct prefix p;
5101
5102 switch (args->event) {
5103 case NB_EV_VALIDATE:
5104 source_str = yang_dnode_get_string(args->dnode, NULL);
5105 if (str2prefix(source_str, &p)) {
5106 snprintf(args->errmsg, args->errmsg_len,
5107 "Invalid update-source, remove prefix length");
5108 return NB_ERR_VALIDATION;
5109 }
5110 break;
5111 case NB_EV_PREPARE:
5112 case NB_EV_ABORT:
5113 return NB_OK;
5114 case NB_EV_APPLY:
5115 bgp = nb_running_get_entry(args->dnode, NULL, true);
5116 peer_str =
5117 yang_dnode_get_string(args->dnode, "../../interface");
5118 peer = bgp_unnumbered_neighbor_peer_lookup(
5119 bgp, peer_str, args->errmsg, args->errmsg_len);
5120 if (!peer)
5121 return NB_ERR_INCONSISTENCY;
5122
5123 source_str = yang_dnode_get_string(args->dnode, NULL);
5124
5125 peer_update_source_if_set(peer, source_str);
5126
5127 break;
5128 }
5129
5130 return NB_OK;
5131 }
5132
5133 int bgp_neighbors_unnumbered_neighbor_update_source_interface_destroy(
5134 struct nb_cb_destroy_args *args)
5135 {
5136 struct bgp *bgp;
5137 const char *peer_str;
5138 struct peer *peer;
5139
5140 switch (args->event) {
5141 case NB_EV_VALIDATE:
5142 case NB_EV_PREPARE:
5143 case NB_EV_ABORT:
5144 return NB_OK;
5145 case NB_EV_APPLY:
5146 bgp = nb_running_get_entry(args->dnode, NULL, true);
5147 peer_str =
5148 yang_dnode_get_string(args->dnode, "../../interface");
5149 peer = bgp_unnumbered_neighbor_peer_lookup(
5150 bgp, peer_str, args->errmsg, args->errmsg_len);
5151 if (!peer)
5152 return NB_ERR_INCONSISTENCY;
5153
5154 peer_update_source_unset(peer);
5155
5156 break;
5157 }
5158
5159 return NB_OK;
5160 }
5161
5162 /*
5163 * XPath:
5164 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/neighbor-remote-as
5165 */
5166 void bgp_neighbors_unnumbered_neighbor_neighbor_remote_as_apply_finish(
5167 struct nb_cb_apply_finish_args *args)
5168 {
5169 struct bgp *bgp;
5170 const char *peer_str;
5171 int as_type = AS_SPECIFIED;
5172 int ret;
5173 as_t as = 0;
5174 struct peer *peer = NULL;
5175 afi_t afi = AFI_IP;
5176 safi_t safi = SAFI_UNICAST;
5177
5178 bgp = nb_running_get_entry(args->dnode, NULL, true);
5179 peer_str = yang_dnode_get_string(args->dnode, "../interface");
5180 as_type = yang_dnode_get_enum(args->dnode, "./remote-as-type");
5181 if (yang_dnode_exists(args->dnode, "./remote-as"))
5182 as = yang_dnode_get_uint32(args->dnode, "./remote-as");
5183
5184 peer = peer_lookup_by_conf_if(bgp, peer_str);
5185
5186 ret = peer_remote_as(bgp, NULL, peer_str, &as, as_type, afi, safi);
5187
5188 if (ret < 0 && !peer) {
5189 snprintf(args->errmsg, args->errmsg_len,
5190 "Create the peer-group or interface first");
5191 return;
5192 }
5193
5194 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5195 }
5196
5197 /*
5198 * XPath:
5199 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/neighbor-remote-as/remote-as-type
5200 */
5201 int bgp_neighbors_unnumbered_neighbor_neighbor_remote_as_remote_as_type_modify(
5202 struct nb_cb_modify_args *args)
5203 {
5204 switch (args->event) {
5205 case NB_EV_VALIDATE:
5206 case NB_EV_PREPARE:
5207 case NB_EV_ABORT:
5208 case NB_EV_APPLY:
5209 /* TODO: implement me. */
5210 break;
5211 }
5212
5213 return NB_OK;
5214 }
5215
5216 int bgp_neighbors_unnumbered_neighbor_neighbor_remote_as_remote_as_type_destroy(
5217 struct nb_cb_destroy_args *args)
5218 {
5219 struct bgp *bgp;
5220 const char *peer_str;
5221 struct peer *peer;
5222
5223 switch (args->event) {
5224 case NB_EV_VALIDATE:
5225 case NB_EV_PREPARE:
5226 case NB_EV_ABORT:
5227 return NB_OK;
5228 case NB_EV_APPLY:
5229 bgp = nb_running_get_entry(args->dnode, NULL, true);
5230 peer_str =
5231 yang_dnode_get_string(args->dnode, "../../interface");
5232 peer = peer_lookup_by_conf_if(bgp, peer_str);
5233
5234 /* remote-as set to 0 and as_type to unspecified */
5235 if (peer)
5236 peer_as_change(peer, 0, AS_UNSPECIFIED);
5237
5238 break;
5239 }
5240
5241 return NB_OK;
5242 }
5243
5244 /*
5245 * XPath:
5246 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/neighbor-remote-as/remote-as
5247 */
5248 int bgp_neighbors_unnumbered_neighbor_neighbor_remote_as_remote_as_modify(
5249 struct nb_cb_modify_args *args)
5250 {
5251 switch (args->event) {
5252 case NB_EV_VALIDATE:
5253 case NB_EV_PREPARE:
5254 case NB_EV_ABORT:
5255 case NB_EV_APPLY:
5256 /* TODO: implement me. */
5257 break;
5258 }
5259
5260 return NB_OK;
5261 }
5262
5263 int bgp_neighbors_unnumbered_neighbor_neighbor_remote_as_remote_as_destroy(
5264 struct nb_cb_destroy_args *args)
5265 {
5266 switch (args->event) {
5267 case NB_EV_VALIDATE:
5268 case NB_EV_PREPARE:
5269 case NB_EV_ABORT:
5270 case NB_EV_APPLY:
5271 /* TODO: implement me. */
5272 break;
5273 }
5274
5275 return NB_OK;
5276 }
5277
5278 /*
5279 * XPath:
5280 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/ebgp-multihop/enabled
5281 */
5282 int bgp_neighbors_unnumbered_neighbor_ebgp_multihop_enabled_modify(
5283 struct nb_cb_modify_args *args)
5284 {
5285 struct bgp *bgp;
5286 const char *peer_str;
5287 struct peer *peer;
5288 bool set = false;
5289 int ret = 0;
5290 uint8_t ttl = MAXTTL;
5291
5292 switch (args->event) {
5293 case NB_EV_VALIDATE:
5294 case NB_EV_PREPARE:
5295 case NB_EV_ABORT:
5296 return NB_OK;
5297 case NB_EV_APPLY:
5298 bgp = nb_running_get_entry(args->dnode, NULL, true);
5299 peer_str =
5300 yang_dnode_get_string(args->dnode, "../../interface");
5301 peer = peer_lookup_by_conf_if(bgp, peer_str);
5302 if (!peer)
5303 return NB_ERR_INCONSISTENCY;
5304
5305 if (peer->conf_if) {
5306 ret = BGP_ERR_INVALID_FOR_DIRECT_PEER;
5307 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len,
5308 ret);
5309 return NB_ERR_INCONSISTENCY;
5310 }
5311
5312 set = yang_dnode_get_bool(args->dnode, NULL);
5313
5314 if (set)
5315 ret = peer_ebgp_multihop_set(peer, ttl);
5316 else
5317 ret = peer_ebgp_multihop_unset(peer);
5318
5319 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5320
5321 break;
5322 }
5323
5324 return NB_OK;
5325 }
5326
5327 int bgp_neighbors_unnumbered_neighbor_ebgp_multihop_enabled_destroy(
5328 struct nb_cb_destroy_args *args)
5329 {
5330 struct bgp *bgp;
5331 const char *peer_str;
5332 struct peer *peer;
5333 int ret = 0;
5334
5335 switch (args->event) {
5336 case NB_EV_VALIDATE:
5337 case NB_EV_PREPARE:
5338 case NB_EV_ABORT:
5339 return NB_OK;
5340 case NB_EV_APPLY:
5341 bgp = nb_running_get_entry(args->dnode, NULL, true);
5342 peer_str =
5343 yang_dnode_get_string(args->dnode, "../../interface");
5344 peer = peer_lookup_by_conf_if(bgp, peer_str);
5345 if (!peer)
5346 return NB_ERR_INCONSISTENCY;
5347
5348 ret = peer_ebgp_multihop_unset(peer);
5349
5350 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5351
5352 break;
5353 }
5354
5355 return NB_OK;
5356 }
5357
5358 /*
5359 * XPath:
5360 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/ebgp-multihop/multihop-ttl
5361 */
5362 int bgp_neighbors_unnumbered_neighbor_ebgp_multihop_multihop_ttl_modify(
5363 struct nb_cb_modify_args *args)
5364 {
5365 struct bgp *bgp;
5366 const char *peer_str;
5367 struct peer *peer;
5368 int ret = 0;
5369 uint8_t ttl = MAXTTL;
5370
5371 switch (args->event) {
5372 case NB_EV_VALIDATE:
5373 case NB_EV_PREPARE:
5374 case NB_EV_ABORT:
5375 return NB_OK;
5376 case NB_EV_APPLY:
5377 bgp = nb_running_get_entry(args->dnode, NULL, true);
5378 peer_str =
5379 yang_dnode_get_string(args->dnode, "../../interface");
5380 peer = peer_lookup_by_conf_if(bgp, peer_str);
5381 if (!peer)
5382 return NB_ERR_INCONSISTENCY;
5383
5384 if (peer->conf_if) {
5385 ret = BGP_ERR_INVALID_FOR_DIRECT_PEER;
5386 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len,
5387 ret);
5388 return NB_ERR_INCONSISTENCY;
5389 }
5390
5391 ttl = yang_dnode_get_uint8(args->dnode, NULL);
5392
5393 ret = peer_ebgp_multihop_set(peer, ttl);
5394
5395 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5396
5397 break;
5398 }
5399
5400 return NB_OK;
5401 }
5402
5403 int bgp_neighbors_unnumbered_neighbor_ebgp_multihop_multihop_ttl_destroy(
5404 struct nb_cb_destroy_args *args)
5405 {
5406 struct bgp *bgp;
5407 const char *peer_str;
5408 struct peer *peer;
5409 int ret = 0;
5410
5411 switch (args->event) {
5412 case NB_EV_VALIDATE:
5413 case NB_EV_PREPARE:
5414 case NB_EV_ABORT:
5415 return NB_OK;
5416 case NB_EV_APPLY:
5417 bgp = nb_running_get_entry(args->dnode, NULL, true);
5418 peer_str =
5419 yang_dnode_get_string(args->dnode, "../../interface");
5420 peer = peer_lookup_by_conf_if(bgp, peer_str);
5421 if (!peer)
5422 return NB_ERR_INCONSISTENCY;
5423
5424 ret = peer_ebgp_multihop_unset(peer);
5425
5426 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5427
5428 break;
5429 }
5430
5431 return NB_OK;
5432 }
5433
5434 /*
5435 * XPath:
5436 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/ebgp-multihop/disable-connected-check
5437 */
5438 int bgp_neighbors_unnumbered_neighbor_ebgp_multihop_disable_connected_check_modify(
5439 struct nb_cb_modify_args *args)
5440 {
5441 struct bgp *bgp;
5442 const char *peer_str;
5443 struct peer *peer;
5444 bool set = false;
5445
5446 switch (args->event) {
5447 case NB_EV_VALIDATE:
5448 case NB_EV_PREPARE:
5449 case NB_EV_ABORT:
5450 return NB_OK;
5451 case NB_EV_APPLY:
5452 bgp = nb_running_get_entry(args->dnode, NULL, true);
5453 peer_str =
5454 yang_dnode_get_string(args->dnode, "../../interface");
5455 peer = peer_lookup_by_conf_if(bgp, peer_str);
5456 if (!peer)
5457 return NB_ERR_INCONSISTENCY;
5458
5459 set = yang_dnode_get_bool(args->dnode, NULL);
5460
5461 if (peer_flag_modify_nb(bgp, peer_str, peer,
5462 PEER_FLAG_DISABLE_CONNECTED_CHECK, set,
5463 args->errmsg, args->errmsg_len)
5464 < 0)
5465 return NB_ERR_INCONSISTENCY;
5466
5467 break;
5468 }
5469
5470 return NB_OK;
5471 }
5472
5473 /*
5474 * XPath:
5475 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-as
5476 */
5477 void bgp_neighbors_unnumbered_neighbor_local_as_apply_finish(
5478 struct nb_cb_apply_finish_args *args)
5479 {
5480 struct bgp *bgp;
5481 int ret;
5482 as_t as = 0;
5483 const char *peer_str;
5484 struct peer *peer = NULL;
5485 bool no_prepend = 0;
5486 bool replace_as = 0;
5487
5488 bgp = nb_running_get_entry(args->dnode, NULL, true);
5489 peer_str = yang_dnode_get_string(args->dnode, "../interface");
5490
5491 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
5492 args->errmsg_len);
5493
5494 if (yang_dnode_exists(args->dnode, "./local-as"))
5495 as = yang_dnode_get_uint32(args->dnode, "./local-as");
5496 if (yang_dnode_exists(args->dnode, "./no-prepend"))
5497 no_prepend = yang_dnode_get_bool(args->dnode, "./no-prepend");
5498 if (yang_dnode_exists(args->dnode, "./no-replace-as"))
5499 replace_as =
5500 yang_dnode_get_bool(args->dnode, "./no-replace-as");
5501
5502 if (!as && !no_prepend && !replace_as)
5503 ret = peer_local_as_unset(peer);
5504 else
5505 ret = peer_local_as_set(peer, as, no_prepend, replace_as);
5506
5507 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5508 }
5509
5510 /*
5511 * XPath:
5512 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/local-as/local-as
5513 */
5514 int bgp_neighbors_unnumbered_neighbor_local_as_local_as_modify(
5515 struct nb_cb_modify_args *args)
5516 {
5517 switch (args->event) {
5518 case NB_EV_VALIDATE:
5519 case NB_EV_PREPARE:
5520 case NB_EV_ABORT:
5521 case NB_EV_APPLY:
5522 /* TODO: implement me. */
5523 break;
5524 }
5525
5526 return NB_OK;
5527 }
5528
5529 int bgp_neighbors_unnumbered_neighbor_local_as_local_as_destroy(
5530 struct nb_cb_destroy_args *args)
5531 {
5532 switch (args->event) {
5533 case NB_EV_VALIDATE:
5534 case NB_EV_PREPARE:
5535 case NB_EV_ABORT:
5536 case NB_EV_APPLY:
5537 /* TODO: implement me. */
5538 break;
5539 }
5540
5541 return NB_OK;
5542 }
5543
5544 /*
5545 * XPath:
5546 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/local-as/no-prepend
5547 */
5548 int bgp_neighbors_unnumbered_neighbor_local_as_no_prepend_modify(
5549 struct nb_cb_modify_args *args)
5550 {
5551 switch (args->event) {
5552 case NB_EV_VALIDATE:
5553 case NB_EV_PREPARE:
5554 case NB_EV_ABORT:
5555 case NB_EV_APPLY:
5556 /* TODO: implement me. */
5557 break;
5558 }
5559
5560 return NB_OK;
5561 }
5562
5563 int bgp_neighbors_unnumbered_neighbor_local_as_no_prepend_destroy(
5564 struct nb_cb_destroy_args *args)
5565 {
5566 switch (args->event) {
5567 case NB_EV_VALIDATE:
5568 case NB_EV_PREPARE:
5569 case NB_EV_ABORT:
5570 case NB_EV_APPLY:
5571 /* TODO: implement me. */
5572 break;
5573 }
5574
5575 return NB_OK;
5576 }
5577
5578 /*
5579 * XPath:
5580 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/local-as/no-replace-as
5581 */
5582 int bgp_neighbors_unnumbered_neighbor_local_as_no_replace_as_modify(
5583 struct nb_cb_modify_args *args)
5584 {
5585 switch (args->event) {
5586 case NB_EV_VALIDATE:
5587 case NB_EV_PREPARE:
5588 case NB_EV_ABORT:
5589 case NB_EV_APPLY:
5590 /* TODO: implement me. */
5591 break;
5592 }
5593
5594 return NB_OK;
5595 }
5596
5597 /*
5598 * XPath:
5599 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/enable
5600 */
5601 int bgp_neighbors_unnumbered_neighbor_bfd_options_enable_modify(
5602 struct nb_cb_modify_args *args)
5603 {
5604 switch (args->event) {
5605 case NB_EV_VALIDATE:
5606 case NB_EV_PREPARE:
5607 case NB_EV_ABORT:
5608 case NB_EV_APPLY:
5609 /* TODO: implement me. */
5610 break;
5611 }
5612
5613 return NB_OK;
5614 }
5615
5616 /*
5617 * XPath:
5618 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/detect-multiplier
5619 */
5620 int bgp_neighbors_unnumbered_neighbor_bfd_options_detect_multiplier_modify(
5621 struct nb_cb_modify_args *args)
5622 {
5623 switch (args->event) {
5624 case NB_EV_VALIDATE:
5625 case NB_EV_PREPARE:
5626 case NB_EV_ABORT:
5627 case NB_EV_APPLY:
5628 /* TODO: implement me. */
5629 break;
5630 }
5631
5632 return NB_OK;
5633 }
5634
5635 int bgp_neighbors_unnumbered_neighbor_bfd_options_detect_multiplier_destroy(
5636 struct nb_cb_destroy_args *args)
5637 {
5638 switch (args->event) {
5639 case NB_EV_VALIDATE:
5640 case NB_EV_PREPARE:
5641 case NB_EV_ABORT:
5642 case NB_EV_APPLY:
5643 /* TODO: implement me. */
5644 break;
5645 }
5646
5647 return NB_OK;
5648 }
5649
5650 /*
5651 * XPath:
5652 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/required-min-rx
5653 */
5654 int bgp_neighbors_unnumbered_neighbor_bfd_options_required_min_rx_modify(
5655 struct nb_cb_modify_args *args)
5656 {
5657 switch (args->event) {
5658 case NB_EV_VALIDATE:
5659 case NB_EV_PREPARE:
5660 case NB_EV_ABORT:
5661 case NB_EV_APPLY:
5662 /* TODO: implement me. */
5663 break;
5664 }
5665
5666 return NB_OK;
5667 }
5668
5669 int bgp_neighbors_unnumbered_neighbor_bfd_options_required_min_rx_destroy(
5670 struct nb_cb_destroy_args *args)
5671 {
5672 switch (args->event) {
5673 case NB_EV_VALIDATE:
5674 case NB_EV_PREPARE:
5675 case NB_EV_ABORT:
5676 case NB_EV_APPLY:
5677 /* TODO: implement me. */
5678 break;
5679 }
5680
5681 return NB_OK;
5682 }
5683
5684 /*
5685 * XPath:
5686 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/desired-min-tx
5687 */
5688 int bgp_neighbors_unnumbered_neighbor_bfd_options_desired_min_tx_modify(
5689 struct nb_cb_modify_args *args)
5690 {
5691 switch (args->event) {
5692 case NB_EV_VALIDATE:
5693 case NB_EV_PREPARE:
5694 case NB_EV_ABORT:
5695 case NB_EV_APPLY:
5696 /* TODO: implement me. */
5697 break;
5698 }
5699
5700 return NB_OK;
5701 }
5702
5703 int bgp_neighbors_unnumbered_neighbor_bfd_options_desired_min_tx_destroy(
5704 struct nb_cb_destroy_args *args)
5705 {
5706 switch (args->event) {
5707 case NB_EV_VALIDATE:
5708 case NB_EV_PREPARE:
5709 case NB_EV_ABORT:
5710 case NB_EV_APPLY:
5711 /* TODO: implement me. */
5712 break;
5713 }
5714
5715 return NB_OK;
5716 }
5717
5718 /*
5719 * XPath:
5720 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/session-type
5721 */
5722 int bgp_neighbors_unnumbered_neighbor_bfd_options_session_type_modify(
5723 struct nb_cb_modify_args *args)
5724 {
5725 switch (args->event) {
5726 case NB_EV_VALIDATE:
5727 case NB_EV_PREPARE:
5728 case NB_EV_ABORT:
5729 case NB_EV_APPLY:
5730 /* TODO: implement me. */
5731 break;
5732 }
5733
5734 return NB_OK;
5735 }
5736
5737 int bgp_neighbors_unnumbered_neighbor_bfd_options_session_type_destroy(
5738 struct nb_cb_destroy_args *args)
5739 {
5740 switch (args->event) {
5741 case NB_EV_VALIDATE:
5742 case NB_EV_PREPARE:
5743 case NB_EV_ABORT:
5744 case NB_EV_APPLY:
5745 /* TODO: implement me. */
5746 break;
5747 }
5748
5749 return NB_OK;
5750 }
5751
5752 /*
5753 * XPath:
5754 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/check-cp-failure
5755 */
5756 int bgp_neighbors_unnumbered_neighbor_bfd_options_check_cp_failure_modify(
5757 struct nb_cb_modify_args *args)
5758 {
5759 switch (args->event) {
5760 case NB_EV_VALIDATE:
5761 case NB_EV_PREPARE:
5762 case NB_EV_ABORT:
5763 case NB_EV_APPLY:
5764 /* TODO: implement me. */
5765 break;
5766 }
5767
5768 return NB_OK;
5769 }
5770
5771 int bgp_neighbors_unnumbered_neighbor_bfd_options_check_cp_failure_destroy(
5772 struct nb_cb_destroy_args *args)
5773 {
5774 switch (args->event) {
5775 case NB_EV_VALIDATE:
5776 case NB_EV_PREPARE:
5777 case NB_EV_ABORT:
5778 case NB_EV_APPLY:
5779 /* TODO: implement me. */
5780 break;
5781 }
5782
5783 return NB_OK;
5784 }
5785
5786 /*
5787 * XPath:
5788 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/admin-shutdown
5789 */
5790 void bgp_neighbors_unnumbered_neighbor_admin_shutdown_apply_finish(
5791 struct nb_cb_apply_finish_args *args)
5792 {
5793 struct bgp *bgp;
5794 const char *peer_str;
5795 struct peer *peer;
5796 bool enable = false;
5797 const char *message;
5798
5799 bgp = nb_running_get_entry(args->dnode, NULL, true);
5800 peer_str = yang_dnode_get_string(args->dnode, "../interface");
5801 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
5802 args->errmsg_len);
5803
5804 if (yang_dnode_exists(args->dnode, "./message")) {
5805 message = yang_dnode_get_string(args->dnode, "./message");
5806 peer_tx_shutdown_message_set(peer, message);
5807 }
5808 enable = yang_dnode_get_bool(args->dnode, "./enable");
5809
5810 peer_flag_modify_nb(bgp, peer_str, peer, PEER_FLAG_SHUTDOWN, enable,
5811 args->errmsg, args->errmsg_len);
5812 }
5813
5814 /*
5815 * XPath:
5816 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/admin-shutdown/enable
5817 */
5818 int bgp_neighbors_unnumbered_neighbor_admin_shutdown_enable_modify(
5819 struct nb_cb_modify_args *args)
5820 {
5821 switch (args->event) {
5822 case NB_EV_VALIDATE:
5823 case NB_EV_PREPARE:
5824 case NB_EV_ABORT:
5825 case NB_EV_APPLY:
5826 /* TODO: implement me. */
5827 break;
5828 }
5829
5830 return NB_OK;
5831 }
5832
5833 int bgp_neighbors_unnumbered_neighbor_admin_shutdown_enable_destroy(
5834 struct nb_cb_destroy_args *args)
5835 {
5836 switch (args->event) {
5837 case NB_EV_VALIDATE:
5838 case NB_EV_PREPARE:
5839 case NB_EV_ABORT:
5840 case NB_EV_APPLY:
5841 /* TODO: implement me. */
5842 break;
5843 }
5844
5845 return NB_OK;
5846 }
5847
5848 /*
5849 * XPath:
5850 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/admin-shutdown/message
5851 */
5852 int bgp_neighbors_unnumbered_neighbor_admin_shutdown_message_modify(
5853 struct nb_cb_modify_args *args)
5854 {
5855 switch (args->event) {
5856 case NB_EV_VALIDATE:
5857 case NB_EV_PREPARE:
5858 case NB_EV_ABORT:
5859 case NB_EV_APPLY:
5860 /* TODO: implement me. */
5861 break;
5862 }
5863
5864 return NB_OK;
5865 }
5866
5867 int bgp_neighbors_unnumbered_neighbor_admin_shutdown_message_destroy(
5868 struct nb_cb_destroy_args *args)
5869 {
5870 switch (args->event) {
5871 case NB_EV_VALIDATE:
5872 case NB_EV_PREPARE:
5873 case NB_EV_ABORT:
5874 case NB_EV_APPLY:
5875 /* TODO: implement me. */
5876 break;
5877 }
5878
5879 return NB_OK;
5880 }
5881
5882 /*
5883 * XPath:
5884 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/graceful-restart/enable
5885 */
5886 int bgp_neighbors_unnumbered_neighbor_graceful_restart_enable_modify(
5887 struct nb_cb_modify_args *args)
5888 {
5889 switch (args->event) {
5890 case NB_EV_VALIDATE:
5891 case NB_EV_PREPARE:
5892 case NB_EV_ABORT:
5893 case NB_EV_APPLY:
5894 /* TODO: implement me. */
5895 break;
5896 }
5897
5898 return NB_OK;
5899 }
5900
5901 int bgp_neighbors_unnumbered_neighbor_graceful_restart_enable_destroy(
5902 struct nb_cb_destroy_args *args)
5903 {
5904 switch (args->event) {
5905 case NB_EV_VALIDATE:
5906 case NB_EV_PREPARE:
5907 case NB_EV_ABORT:
5908 case NB_EV_APPLY:
5909 /* TODO: implement me. */
5910 break;
5911 }
5912
5913 return NB_OK;
5914 }
5915
5916 /*
5917 * XPath:
5918 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/graceful-restart/graceful-restart-helper
5919 */
5920 int bgp_neighbors_unnumbered_neighbor_graceful_restart_graceful_restart_helper_modify(
5921 struct nb_cb_modify_args *args)
5922 {
5923 switch (args->event) {
5924 case NB_EV_VALIDATE:
5925 case NB_EV_PREPARE:
5926 case NB_EV_ABORT:
5927 case NB_EV_APPLY:
5928 /* TODO: implement me. */
5929 break;
5930 }
5931
5932 return NB_OK;
5933 }
5934
5935 int bgp_neighbors_unnumbered_neighbor_graceful_restart_graceful_restart_helper_destroy(
5936 struct nb_cb_destroy_args *args)
5937 {
5938 switch (args->event) {
5939 case NB_EV_VALIDATE:
5940 case NB_EV_PREPARE:
5941 case NB_EV_ABORT:
5942 case NB_EV_APPLY:
5943 /* TODO: implement me. */
5944 break;
5945 }
5946
5947 return NB_OK;
5948 }
5949
5950 /*
5951 * XPath:
5952 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/graceful-restart/graceful-restart-disable
5953 */
5954 int bgp_neighbors_unnumbered_neighbor_graceful_restart_graceful_restart_disable_modify(
5955 struct nb_cb_modify_args *args)
5956 {
5957 switch (args->event) {
5958 case NB_EV_VALIDATE:
5959 case NB_EV_PREPARE:
5960 case NB_EV_ABORT:
5961 case NB_EV_APPLY:
5962 /* TODO: implement me. */
5963 break;
5964 }
5965
5966 return NB_OK;
5967 }
5968
5969 int bgp_neighbors_unnumbered_neighbor_graceful_restart_graceful_restart_disable_destroy(
5970 struct nb_cb_destroy_args *args)
5971 {
5972 switch (args->event) {
5973 case NB_EV_VALIDATE:
5974 case NB_EV_PREPARE:
5975 case NB_EV_ABORT:
5976 case NB_EV_APPLY:
5977 /* TODO: implement me. */
5978 break;
5979 }
5980
5981 return NB_OK;
5982 }
5983
5984 /*
5985 * XPath:
5986 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/timers/advertise-interval
5987 */
5988 int bgp_neighbors_unnumbered_neighbor_timers_advertise_interval_modify(
5989 struct nb_cb_modify_args *args)
5990 {
5991 struct bgp *bgp;
5992 const char *peer_str;
5993 struct peer *peer;
5994 uint16_t routeadv;
5995 int ret;
5996
5997 switch (args->event) {
5998 case NB_EV_VALIDATE:
5999 case NB_EV_PREPARE:
6000 case NB_EV_ABORT:
6001 return NB_OK;
6002 case NB_EV_APPLY:
6003 bgp = nb_running_get_entry(args->dnode, NULL, true);
6004 peer_str =
6005 yang_dnode_get_string(args->dnode, "../../interface");
6006 peer = bgp_unnumbered_neighbor_peer_lookup(
6007 bgp, peer_str, args->errmsg, args->errmsg_len);
6008 routeadv = yang_dnode_get_uint16(args->dnode, NULL);
6009
6010 ret = peer_advertise_interval_set(peer, routeadv);
6011 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
6012
6013 break;
6014 }
6015
6016 return NB_OK;
6017 }
6018
6019 int bgp_neighbors_unnumbered_neighbor_timers_advertise_interval_destroy(
6020 struct nb_cb_destroy_args *args)
6021 {
6022 struct bgp *bgp;
6023 const char *peer_str;
6024 struct peer *peer;
6025 int ret;
6026
6027 switch (args->event) {
6028 case NB_EV_VALIDATE:
6029 case NB_EV_PREPARE:
6030 case NB_EV_ABORT:
6031 return NB_OK;
6032 case NB_EV_APPLY:
6033 bgp = nb_running_get_entry(args->dnode, NULL, true);
6034 peer_str =
6035 yang_dnode_get_string(args->dnode, "../../interface");
6036 peer = bgp_unnumbered_neighbor_peer_lookup(
6037 bgp, peer_str, args->errmsg, args->errmsg_len);
6038
6039 ret = peer_advertise_interval_unset(peer);
6040 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
6041
6042 break;
6043 }
6044
6045 return NB_OK;
6046 }
6047
6048 /*
6049 * XPath:
6050 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/timers/connect-time
6051 */
6052 int bgp_neighbors_unnumbered_neighbor_timers_connect_time_modify(
6053 struct nb_cb_modify_args *args)
6054 {
6055 struct bgp *bgp;
6056 const char *peer_str;
6057 struct peer *peer;
6058 uint16_t connect;
6059 int ret;
6060
6061 switch (args->event) {
6062 case NB_EV_VALIDATE:
6063 case NB_EV_PREPARE:
6064 case NB_EV_ABORT:
6065 return NB_OK;
6066 case NB_EV_APPLY:
6067 bgp = nb_running_get_entry(args->dnode, NULL, true);
6068 peer_str =
6069 yang_dnode_get_string(args->dnode, "../../interface");
6070 peer = bgp_unnumbered_neighbor_peer_lookup(
6071 bgp, peer_str, args->errmsg, args->errmsg_len);
6072 connect = yang_dnode_get_uint16(args->dnode, NULL);
6073
6074 ret = peer_timers_connect_set(peer, connect);
6075 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
6076
6077 break;
6078 }
6079
6080 return NB_OK;
6081 }
6082
6083 int bgp_neighbors_unnumbered_neighbor_timers_connect_time_destroy(
6084 struct nb_cb_destroy_args *args)
6085 {
6086 struct bgp *bgp;
6087 const char *peer_str;
6088 struct peer *peer;
6089 int ret;
6090
6091 switch (args->event) {
6092 case NB_EV_VALIDATE:
6093 case NB_EV_PREPARE:
6094 case NB_EV_ABORT:
6095 return NB_OK;
6096 case NB_EV_APPLY:
6097 bgp = nb_running_get_entry(args->dnode, NULL, true);
6098 peer_str =
6099 yang_dnode_get_string(args->dnode, "../../interface");
6100 peer = bgp_unnumbered_neighbor_peer_lookup(
6101 bgp, peer_str, args->errmsg, args->errmsg_len);
6102 ret = peer_timers_connect_unset(peer);
6103 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6104 < 0)
6105 return NB_ERR_INCONSISTENCY;
6106
6107 break;
6108 }
6109
6110 return NB_OK;
6111 }
6112
6113 /*
6114 * XPath:
6115 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/timers/hold-time
6116 */
6117 int bgp_neighbors_unnumbered_neighbor_timers_hold_time_modify(
6118 struct nb_cb_modify_args *args)
6119 {
6120 struct bgp *bgp;
6121 const char *peer_str;
6122 struct peer *peer;
6123 uint16_t keepalive = 0;
6124 uint16_t holdtime = 0;
6125 int ret = 0;
6126
6127 switch (args->event) {
6128 case NB_EV_VALIDATE:
6129 case NB_EV_PREPARE:
6130 case NB_EV_ABORT:
6131 return NB_OK;
6132 case NB_EV_APPLY:
6133 bgp = nb_running_get_entry(args->dnode, NULL, true);
6134 peer_str =
6135 yang_dnode_get_string(args->dnode, "../../interface");
6136 peer = bgp_unnumbered_neighbor_peer_lookup(
6137 bgp, peer_str, args->errmsg, args->errmsg_len);
6138
6139 keepalive = yang_dnode_get_uint16(args->dnode, "../keepalive");
6140 holdtime = yang_dnode_get_uint16(args->dnode, NULL);
6141
6142 if (keepalive != BGP_DEFAULT_KEEPALIVE
6143 && holdtime != BGP_DEFAULT_HOLDTIME) {
6144 ret = peer_timers_set(peer, keepalive, holdtime);
6145 } else
6146 ret = peer_timers_unset(peer);
6147
6148 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6149 < 0)
6150 return NB_ERR_INCONSISTENCY;
6151
6152 break;
6153 }
6154
6155 return NB_OK;
6156 }
6157
6158 /*
6159 * XPath:
6160 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/timers/keepalive
6161 */
6162 int bgp_neighbors_unnumbered_neighbor_timers_keepalive_modify(
6163 struct nb_cb_modify_args *args)
6164 {
6165 struct bgp *bgp;
6166 const char *peer_str;
6167 struct peer *peer;
6168 uint16_t keepalive = 0, curr_keep = 0;
6169 uint16_t holdtime = 0;
6170 int ret = 0;
6171
6172 switch (args->event) {
6173 case NB_EV_VALIDATE:
6174 case NB_EV_PREPARE:
6175 case NB_EV_ABORT:
6176 return NB_OK;
6177 case NB_EV_APPLY:
6178 bgp = nb_running_get_entry(args->dnode, NULL, true);
6179 peer_str =
6180 yang_dnode_get_string(args->dnode, "../../interface");
6181 peer = bgp_unnumbered_neighbor_peer_lookup(
6182 bgp, peer_str, args->errmsg, args->errmsg_len);
6183
6184 keepalive = yang_dnode_get_uint16(args->dnode, NULL);
6185 holdtime = yang_dnode_get_uint16(args->dnode, "../hold-time");
6186
6187 if (keepalive != BGP_DEFAULT_KEEPALIVE
6188 && holdtime != BGP_DEFAULT_HOLDTIME) {
6189 if (peer->holdtime == holdtime) {
6190 curr_keep = (keepalive < holdtime / 3
6191 ? keepalive
6192 : holdtime / 3);
6193 if (curr_keep == keepalive)
6194 return NB_OK;
6195 }
6196 ret = peer_timers_set(peer, keepalive, holdtime);
6197 } else
6198 ret = peer_timers_unset(peer);
6199
6200 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6201 < 0)
6202 return NB_ERR_INCONSISTENCY;
6203
6204 break;
6205 }
6206
6207 return NB_OK;
6208 }
6209
6210 /*
6211 * XPath:
6212 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi
6213 */
6214 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_create(
6215 struct nb_cb_create_args *args)
6216 {
6217 switch (args->event) {
6218 case NB_EV_VALIDATE:
6219 case NB_EV_PREPARE:
6220 case NB_EV_ABORT:
6221 case NB_EV_APPLY:
6222 /* TODO: implement me. */
6223 break;
6224 }
6225
6226 return NB_OK;
6227 }
6228
6229 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_destroy(
6230 struct nb_cb_destroy_args *args)
6231 {
6232 switch (args->event) {
6233 case NB_EV_VALIDATE:
6234 case NB_EV_PREPARE:
6235 case NB_EV_ABORT:
6236 case NB_EV_APPLY:
6237 /* TODO: implement me. */
6238 break;
6239 }
6240
6241 return NB_OK;
6242 }
6243
6244 /*
6245 * XPath:
6246 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/enabled
6247 */
6248 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_enabled_modify(
6249 struct nb_cb_modify_args *args)
6250 {
6251 struct bgp *bgp;
6252 const char *peer_str;
6253 const char *af_name;
6254 afi_t afi;
6255 safi_t safi;
6256 bool activate = false;
6257 int ret = 0;
6258 struct peer *peer;
6259
6260 switch (args->event) {
6261 case NB_EV_VALIDATE:
6262 case NB_EV_PREPARE:
6263 case NB_EV_ABORT:
6264 return NB_OK;
6265 case NB_EV_APPLY:
6266 bgp = nb_running_get_entry(args->dnode, NULL, true);
6267 af_name =
6268 yang_dnode_get_string(args->dnode, "../afi-safi-name");
6269 yang_afi_safi_identity2value(af_name, &afi, &safi);
6270 peer_str = yang_dnode_get_string(args->dnode,
6271 "../../../interface");
6272
6273 peer = bgp_unnumbered_neighbor_peer_lookup(
6274 bgp, peer_str, args->errmsg, args->errmsg_len);
6275
6276 activate = yang_dnode_get_bool(args->dnode, NULL);
6277
6278 if (activate)
6279 ret = peer_activate(peer, afi, safi);
6280 else
6281 ret = peer_deactivate(peer, afi, safi);
6282
6283 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6284 < 0)
6285 return NB_ERR_INCONSISTENCY;
6286
6287 break;
6288 }
6289
6290 return NB_OK;
6291 }
6292
6293 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_enabled_destroy(
6294 struct nb_cb_destroy_args *args)
6295 {
6296 switch (args->event) {
6297 case NB_EV_VALIDATE:
6298 case NB_EV_PREPARE:
6299 case NB_EV_ABORT:
6300 case NB_EV_APPLY:
6301 /* TODO: implement me. */
6302 break;
6303 }
6304
6305 return NB_OK;
6306 }
6307
6308 static struct peer *bgp_peer_group_peer_lookup(struct bgp *bgp,
6309 const char *peer_str)
6310 {
6311 struct peer_group *group = NULL;
6312
6313 group = peer_group_lookup(bgp, peer_str);
6314
6315 if (group)
6316 return group->conf;
6317
6318 return NULL;
6319 }
6320
6321 /*
6322 * XPath:
6323 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group
6324 */
6325 int bgp_peer_groups_peer_group_create(struct nb_cb_create_args *args)
6326 {
6327 const char *peer_grp_str;
6328 struct peer *peer;
6329 struct peer_group *group;
6330 struct bgp *bgp;
6331 char unnbr_xpath[XPATH_MAXLEN];
6332 const struct lyd_node *bgp_dnode;
6333
6334 switch (args->event) {
6335 case NB_EV_VALIDATE:
6336 peer_grp_str =
6337 yang_dnode_get_string(args->dnode, "./peer-group-name");
6338 bgp_dnode = yang_dnode_get_parent(args->dnode, "bgp");
6339 snprintf(unnbr_xpath, sizeof(unnbr_xpath),
6340 FRR_BGP_NEIGHBOR_UNNUM_XPATH, peer_grp_str, "");
6341
6342 if (yang_dnode_exists(bgp_dnode, unnbr_xpath)) {
6343 snprintf(args->errmsg, args->errmsg_len,
6344 "Name conflict with interface: %s",
6345 peer_grp_str);
6346 return NB_ERR_VALIDATION;
6347 }
6348
6349 break;
6350 case NB_EV_PREPARE:
6351 case NB_EV_ABORT:
6352 return NB_OK;
6353 case NB_EV_APPLY:
6354 bgp = nb_running_get_entry(args->dnode, NULL, true);
6355 peer_grp_str =
6356 yang_dnode_get_string(args->dnode, "./peer-group-name");
6357 peer = peer_lookup_by_conf_if(bgp, peer_grp_str);
6358 if (peer) {
6359 snprintf(args->errmsg, args->errmsg_len,
6360 "Name conflict with interface:");
6361 return NB_ERR_INCONSISTENCY;
6362 }
6363
6364 group = peer_group_get(bgp, peer_grp_str);
6365 if (!group) {
6366 snprintf(args->errmsg, args->errmsg_len,
6367 "BGP failed to find or create peer-group");
6368 return NB_ERR_INCONSISTENCY;
6369 }
6370 break;
6371 }
6372
6373 return NB_OK;
6374 }
6375
6376 int bgp_peer_groups_peer_group_destroy(struct nb_cb_destroy_args *args)
6377 {
6378 const char *peer_grp_str;
6379 struct peer_group *group;
6380 struct bgp *bgp;
6381
6382 switch (args->event) {
6383 case NB_EV_VALIDATE:
6384 case NB_EV_PREPARE:
6385 case NB_EV_ABORT:
6386 return NB_OK;
6387 case NB_EV_APPLY:
6388 bgp = nb_running_get_entry(args->dnode, NULL, true);
6389 peer_grp_str =
6390 yang_dnode_get_string(args->dnode, "./peer-group-name");
6391
6392 group = peer_group_lookup(bgp, peer_grp_str);
6393 if (group) {
6394 peer_group_notify_unconfig(group);
6395 peer_group_delete(group);
6396 }
6397
6398 break;
6399 }
6400
6401 return NB_OK;
6402 }
6403
6404 /*
6405 * XPath:
6406 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ipv4-listen-range
6407 */
6408 int bgp_peer_groups_peer_group_ipv4_listen_range_create(
6409 struct nb_cb_create_args *args)
6410 {
6411 switch (args->event) {
6412 case NB_EV_VALIDATE:
6413 case NB_EV_PREPARE:
6414 case NB_EV_ABORT:
6415 case NB_EV_APPLY:
6416 /* TODO: implement me. */
6417 break;
6418 }
6419
6420 return NB_OK;
6421 }
6422
6423 int bgp_peer_groups_peer_group_ipv4_listen_range_destroy(
6424 struct nb_cb_destroy_args *args)
6425 {
6426 switch (args->event) {
6427 case NB_EV_VALIDATE:
6428 case NB_EV_PREPARE:
6429 case NB_EV_ABORT:
6430 case NB_EV_APPLY:
6431 /* TODO: implement me. */
6432 break;
6433 }
6434
6435 return NB_OK;
6436 }
6437
6438 /*
6439 * XPath:
6440 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ipv6-listen-range
6441 */
6442 int bgp_peer_groups_peer_group_ipv6_listen_range_create(
6443 struct nb_cb_create_args *args)
6444 {
6445 switch (args->event) {
6446 case NB_EV_VALIDATE:
6447 case NB_EV_PREPARE:
6448 case NB_EV_ABORT:
6449 case NB_EV_APPLY:
6450 /* TODO: implement me. */
6451 break;
6452 }
6453
6454 return NB_OK;
6455 }
6456
6457 int bgp_peer_groups_peer_group_ipv6_listen_range_destroy(
6458 struct nb_cb_destroy_args *args)
6459 {
6460 switch (args->event) {
6461 case NB_EV_VALIDATE:
6462 case NB_EV_PREPARE:
6463 case NB_EV_ABORT:
6464 case NB_EV_APPLY:
6465 /* TODO: implement me. */
6466 break;
6467 }
6468
6469 return NB_OK;
6470 }
6471
6472 /*
6473 * XPath:
6474 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/password
6475 */
6476 int bgp_peer_groups_peer_group_password_modify(struct nb_cb_modify_args *args)
6477 {
6478 struct bgp *bgp;
6479 const char *peer_str;
6480 const char *passwrd_str;
6481 struct peer *peer = NULL;
6482
6483 switch (args->event) {
6484 case NB_EV_VALIDATE:
6485 case NB_EV_PREPARE:
6486 case NB_EV_ABORT:
6487 return NB_OK;
6488 case NB_EV_APPLY:
6489 bgp = nb_running_get_entry(args->dnode, NULL, true);
6490 peer_str = yang_dnode_get_string(args->dnode,
6491 "../peer-group-name");
6492 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6493
6494 passwrd_str = yang_dnode_get_string(args->dnode, NULL);
6495 peer_password_set(peer, passwrd_str);
6496
6497 break;
6498 }
6499
6500 return NB_OK;
6501 }
6502
6503 int bgp_peer_groups_peer_group_password_destroy(struct nb_cb_destroy_args *args)
6504 {
6505 struct bgp *bgp;
6506 const char *peer_str;
6507 struct peer *peer = NULL;
6508
6509 switch (args->event) {
6510 case NB_EV_VALIDATE:
6511 case NB_EV_PREPARE:
6512 case NB_EV_ABORT:
6513 return NB_OK;
6514 case NB_EV_APPLY:
6515 bgp = nb_running_get_entry(args->dnode, NULL, true);
6516 peer_str = yang_dnode_get_string(args->dnode,
6517 "../peer-group-name");
6518 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6519
6520 peer_password_unset(peer);
6521
6522 break;
6523 }
6524
6525 return NB_OK;
6526 }
6527
6528 /*
6529 * XPath:
6530 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ttl-security
6531 */
6532 int bgp_peer_groups_peer_group_ttl_security_modify(
6533 struct nb_cb_modify_args *args)
6534 {
6535 struct bgp *bgp;
6536 const char *peer_str;
6537 struct peer *peer;
6538 int ret;
6539 uint8_t gtsm_hops;
6540
6541 switch (args->event) {
6542 case NB_EV_VALIDATE:
6543 case NB_EV_PREPARE:
6544 case NB_EV_ABORT:
6545 return NB_OK;
6546 case NB_EV_APPLY:
6547 bgp = nb_running_get_entry(args->dnode, NULL, true);
6548 peer_str = yang_dnode_get_string(args->dnode,
6549 "../peer-group-name");
6550 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6551 if (!peer)
6552 return NB_ERR_INCONSISTENCY;
6553
6554 gtsm_hops = yang_dnode_get_uint8(args->dnode, NULL);
6555 /*
6556 * If 'neighbor swpX', then this is for directly connected
6557 * peers, we should not accept a ttl-security hops value greater
6558 * than 1.
6559 */
6560 if (peer->conf_if && (gtsm_hops > BGP_GTSM_HOPS_CONNECTED)) {
6561 snprintf(
6562 args->errmsg, args->errmsg_len,
6563 "%d is directly connected peer, hops cannot exceed 1\n",
6564 gtsm_hops);
6565 return NB_ERR_INCONSISTENCY;
6566 }
6567
6568 ret = peer_ttl_security_hops_set(peer, gtsm_hops);
6569 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6570 < 0)
6571 return NB_ERR_INCONSISTENCY;
6572
6573 break;
6574 }
6575
6576 return NB_OK;
6577 }
6578
6579 int bgp_peer_groups_peer_group_ttl_security_destroy(
6580 struct nb_cb_destroy_args *args)
6581 {
6582 struct bgp *bgp;
6583 const char *peer_str;
6584 struct peer *peer;
6585 int ret;
6586
6587 switch (args->event) {
6588 case NB_EV_VALIDATE:
6589 case NB_EV_PREPARE:
6590 case NB_EV_ABORT:
6591 return NB_OK;
6592 case NB_EV_APPLY:
6593 bgp = nb_running_get_entry(args->dnode, NULL, true);
6594 peer_str = yang_dnode_get_string(args->dnode,
6595 "../peer-group-name");
6596 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6597 if (!peer)
6598 return NB_ERR_INCONSISTENCY;
6599
6600 ret = peer_ttl_security_hops_unset(peer);
6601 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6602 < 0)
6603 return NB_ERR_INCONSISTENCY;
6604
6605 break;
6606 }
6607
6608 return NB_OK;
6609 }
6610
6611 /*
6612 * XPath:
6613 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/solo
6614 */
6615 int bgp_peer_groups_peer_group_solo_modify(struct nb_cb_modify_args *args)
6616 {
6617 switch (args->event) {
6618 case NB_EV_VALIDATE:
6619 case NB_EV_PREPARE:
6620 case NB_EV_ABORT:
6621 case NB_EV_APPLY:
6622 /* TODO: implement me. */
6623 break;
6624 }
6625
6626 return NB_OK;
6627 }
6628
6629 /*
6630 * XPath:
6631 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/enforce-first-as
6632 */
6633 int bgp_peer_groups_peer_group_enforce_first_as_modify(
6634 struct nb_cb_modify_args *args)
6635 {
6636 struct bgp *bgp;
6637 const char *peer_str;
6638 struct peer *peer;
6639 bool enable = false;
6640
6641 switch (args->event) {
6642 case NB_EV_VALIDATE:
6643 case NB_EV_PREPARE:
6644 case NB_EV_ABORT:
6645 return NB_OK;
6646 case NB_EV_APPLY:
6647 bgp = nb_running_get_entry(args->dnode, NULL, true);
6648 peer_str = yang_dnode_get_string(args->dnode,
6649 "../peer-group-name");
6650 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6651
6652 enable = yang_dnode_get_bool(args->dnode, NULL);
6653
6654 peer_flag_modify_nb(bgp, peer_str, peer,
6655 PEER_FLAG_ENFORCE_FIRST_AS, enable,
6656 args->errmsg, args->errmsg_len);
6657
6658 break;
6659 }
6660
6661 return NB_OK;
6662 }
6663
6664 /*
6665 * XPath:
6666 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/description
6667 */
6668 int bgp_peer_groups_peer_group_description_modify(
6669 struct nb_cb_modify_args *args)
6670 {
6671 struct bgp *bgp;
6672 const char *peer_str;
6673 const char *desc_str;
6674 struct peer *peer = NULL;
6675
6676 switch (args->event) {
6677 case NB_EV_VALIDATE:
6678 case NB_EV_PREPARE:
6679 case NB_EV_ABORT:
6680 return NB_OK;
6681 case NB_EV_APPLY:
6682 bgp = nb_running_get_entry(args->dnode, NULL, true);
6683 peer_str = yang_dnode_get_string(args->dnode,
6684 "../peer-group-name");
6685 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6686
6687 desc_str = yang_dnode_get_string(args->dnode, NULL);
6688
6689 peer_description_set(peer, desc_str);
6690
6691 break;
6692 }
6693
6694 return NB_OK;
6695 }
6696
6697 int bgp_peer_groups_peer_group_description_destroy(
6698 struct nb_cb_destroy_args *args)
6699 {
6700 struct bgp *bgp;
6701 const char *peer_str;
6702 struct peer *peer = NULL;
6703
6704 switch (args->event) {
6705 case NB_EV_VALIDATE:
6706 case NB_EV_PREPARE:
6707 case NB_EV_ABORT:
6708 return NB_OK;
6709 case NB_EV_APPLY:
6710 bgp = nb_running_get_entry(args->dnode, NULL, true);
6711 peer_str = yang_dnode_get_string(args->dnode,
6712 "../peer-group-name");
6713 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6714 if (!peer)
6715 return NB_ERR_INCONSISTENCY;
6716
6717 peer_description_unset(peer);
6718
6719 break;
6720 }
6721
6722 return NB_OK;
6723 }
6724
6725 /*
6726 * XPath:
6727 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/passive-mode
6728 */
6729 int bgp_peer_groups_peer_group_passive_mode_modify(
6730 struct nb_cb_modify_args *args)
6731 {
6732 struct bgp *bgp;
6733 const char *peer_str;
6734 struct peer *peer;
6735 bool set = false;
6736
6737 switch (args->event) {
6738 case NB_EV_VALIDATE:
6739 case NB_EV_PREPARE:
6740 case NB_EV_ABORT:
6741 return NB_OK;
6742 case NB_EV_APPLY:
6743 bgp = nb_running_get_entry(args->dnode, NULL, true);
6744 peer_str = yang_dnode_get_string(args->dnode,
6745 "../peer-group-name");
6746 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6747 if (!peer)
6748 return NB_ERR_INCONSISTENCY;
6749
6750 set = yang_dnode_get_bool(args->dnode, NULL);
6751
6752 if (peer_flag_modify_nb(bgp, peer_str, peer, PEER_FLAG_PASSIVE,
6753 set, args->errmsg, args->errmsg_len)
6754 < 0)
6755 return NB_ERR_INCONSISTENCY;
6756
6757 break;
6758 }
6759
6760 return NB_OK;
6761 }
6762
6763 /*
6764 * XPath:
6765 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/capability-options/dynamic-capability
6766 */
6767 int bgp_peer_groups_peer_group_capability_options_dynamic_capability_modify(
6768 struct nb_cb_modify_args *args)
6769 {
6770 struct bgp *bgp;
6771 const char *peer_str;
6772 struct peer *peer;
6773 bool enable = false;
6774
6775 switch (args->event) {
6776 case NB_EV_VALIDATE:
6777 case NB_EV_PREPARE:
6778 case NB_EV_ABORT:
6779 return NB_OK;
6780 case NB_EV_APPLY:
6781 bgp = nb_running_get_entry(args->dnode, NULL, true);
6782 peer_str = yang_dnode_get_string(args->dnode,
6783 "../../peer-group-name");
6784 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6785 if (!peer)
6786 return NB_ERR_INCONSISTENCY;
6787
6788 enable = yang_dnode_get_bool(args->dnode, NULL);
6789
6790 peer_flag_modify_nb(bgp, peer_str, peer,
6791 PEER_FLAG_DYNAMIC_CAPABILITY, enable,
6792 args->errmsg, args->errmsg_len);
6793
6794 break;
6795 }
6796
6797 return NB_OK;
6798 }
6799
6800 /*
6801 * XPath:
6802 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/capability-options/strict-capability
6803 */
6804 int bgp_peer_groups_peer_group_capability_options_strict_capability_modify(
6805 struct nb_cb_modify_args *args)
6806 {
6807 struct bgp *bgp;
6808 const char *peer_str;
6809 struct peer *peer;
6810 bool enable = false;
6811
6812 switch (args->event) {
6813 case NB_EV_VALIDATE:
6814 case NB_EV_PREPARE:
6815 case NB_EV_ABORT:
6816 return NB_OK;
6817 case NB_EV_APPLY:
6818 bgp = nb_running_get_entry(args->dnode, NULL, true);
6819 peer_str = yang_dnode_get_string(args->dnode,
6820 "../../peer-group-name");
6821 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6822 if (!peer)
6823 return NB_ERR_INCONSISTENCY;
6824
6825 enable = yang_dnode_get_bool(args->dnode, NULL);
6826
6827 peer_flag_modify_nb(bgp, peer_str, peer,
6828 PEER_FLAG_STRICT_CAP_MATCH, enable,
6829 args->errmsg, args->errmsg_len);
6830
6831 break;
6832 }
6833
6834 return NB_OK;
6835 }
6836
6837 /*
6838 * XPath:
6839 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/capability-options/extended-nexthop-capability
6840 */
6841 int bgp_peer_groups_peer_group_capability_options_extended_nexthop_capability_modify(
6842 struct nb_cb_modify_args *args)
6843 {
6844 struct bgp *bgp;
6845 const char *peer_str;
6846 struct peer *peer;
6847 bool enable = false;
6848
6849 switch (args->event) {
6850 case NB_EV_VALIDATE:
6851 case NB_EV_PREPARE:
6852 case NB_EV_ABORT:
6853 return NB_OK;
6854 case NB_EV_APPLY:
6855 bgp = nb_running_get_entry(args->dnode, NULL, true);
6856 peer_str = yang_dnode_get_string(args->dnode,
6857 "../../peer-group-name");
6858 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6859 if (!peer)
6860 return NB_ERR_INCONSISTENCY;
6861
6862 enable = yang_dnode_get_bool(args->dnode, NULL);
6863
6864 peer_flag_modify_nb(bgp, peer_str, peer,
6865 PEER_FLAG_CAPABILITY_ENHE, enable,
6866 args->errmsg, args->errmsg_len);
6867
6868 break;
6869 }
6870
6871 return NB_OK;
6872 }
6873
6874 /*
6875 * XPath:
6876 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/capability-options/capability-negotiate
6877 */
6878 int bgp_peer_groups_peer_group_capability_options_capability_negotiate_modify(
6879 struct nb_cb_modify_args *args)
6880 {
6881 switch (args->event) {
6882 case NB_EV_VALIDATE:
6883 case NB_EV_PREPARE:
6884 case NB_EV_ABORT:
6885 case NB_EV_APPLY:
6886 /* TODO: implement me. */
6887 break;
6888 }
6889
6890 return NB_OK;
6891 }
6892
6893 /*
6894 * XPath:
6895 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/capability-options/override-capability
6896 */
6897 int bgp_peer_groups_peer_group_capability_options_override_capability_modify(
6898 struct nb_cb_modify_args *args)
6899 {
6900 struct bgp *bgp;
6901 const char *peer_str;
6902 struct peer *peer;
6903 bool enable = false;
6904
6905 switch (args->event) {
6906 case NB_EV_VALIDATE:
6907 case NB_EV_PREPARE:
6908 case NB_EV_ABORT:
6909 return NB_OK;
6910 case NB_EV_APPLY:
6911 bgp = nb_running_get_entry(args->dnode, NULL, true);
6912 peer_str = yang_dnode_get_string(args->dnode,
6913 "../../peer-group-name");
6914 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6915 if (!peer)
6916 return NB_ERR_INCONSISTENCY;
6917
6918 enable = yang_dnode_get_bool(args->dnode, NULL);
6919
6920 peer_flag_modify_nb(bgp, peer_str, peer,
6921 PEER_FLAG_OVERRIDE_CAPABILITY, enable,
6922 args->errmsg, args->errmsg_len);
6923
6924 break;
6925 }
6926
6927 return NB_OK;
6928 }
6929
6930 /*
6931 * XPath:
6932 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/update-source/ip
6933 */
6934 int bgp_peer_groups_peer_group_update_source_ip_modify(
6935 struct nb_cb_modify_args *args)
6936 {
6937 struct bgp *bgp;
6938 const char *peer_str, *source_str;
6939 struct peer *peer;
6940 union sockunion su;
6941
6942 switch (args->event) {
6943 case NB_EV_VALIDATE:
6944 case NB_EV_PREPARE:
6945 case NB_EV_ABORT:
6946 return NB_OK;
6947 case NB_EV_APPLY:
6948 bgp = nb_running_get_entry(args->dnode, NULL, true);
6949 peer_str = yang_dnode_get_string(args->dnode,
6950 "../../peer-group-name");
6951 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6952 if (!peer)
6953 return NB_ERR_INCONSISTENCY;
6954
6955 source_str = yang_dnode_get_string(args->dnode, NULL);
6956
6957 str2sockunion(source_str, &su);
6958 peer_update_source_addr_set(peer, &su);
6959
6960 break;
6961 }
6962
6963 return NB_OK;
6964 }
6965
6966 int bgp_peer_groups_peer_group_update_source_ip_destroy(
6967 struct nb_cb_destroy_args *args)
6968 {
6969 struct bgp *bgp;
6970 const char *peer_str;
6971 struct peer *peer;
6972
6973 switch (args->event) {
6974 case NB_EV_VALIDATE:
6975 case NB_EV_PREPARE:
6976 case NB_EV_ABORT:
6977 return NB_OK;
6978 case NB_EV_APPLY:
6979 bgp = nb_running_get_entry(args->dnode, NULL, true);
6980 peer_str = yang_dnode_get_string(args->dnode,
6981 "../../peer-group-name");
6982 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6983 if (!peer)
6984 return NB_ERR_INCONSISTENCY;
6985
6986 peer_update_source_unset(peer);
6987
6988 break;
6989 }
6990
6991 return NB_OK;
6992 }
6993
6994 /*
6995 * XPath:
6996 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/update-source/interface
6997 */
6998 int bgp_peer_groups_peer_group_update_source_interface_modify(
6999 struct nb_cb_modify_args *args)
7000 {
7001 struct bgp *bgp;
7002 const char *peer_str, *source_str;
7003 struct peer *peer;
7004 struct prefix p;
7005
7006 switch (args->event) {
7007 case NB_EV_VALIDATE:
7008 source_str = yang_dnode_get_string(args->dnode, NULL);
7009 if (str2prefix(source_str, &p)) {
7010 snprintf(args->errmsg, args->errmsg_len,
7011 "Invalid update-source, remove prefix length");
7012 return NB_ERR_VALIDATION;
7013 }
7014 break;
7015 case NB_EV_PREPARE:
7016 case NB_EV_ABORT:
7017 return NB_OK;
7018 case NB_EV_APPLY:
7019 bgp = nb_running_get_entry(args->dnode, NULL, true);
7020 peer_str = yang_dnode_get_string(args->dnode,
7021 "../../peer-group-name");
7022 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7023 if (!peer)
7024 return NB_ERR_INCONSISTENCY;
7025
7026 source_str = yang_dnode_get_string(args->dnode, NULL);
7027
7028 peer_update_source_if_set(peer, source_str);
7029
7030 break;
7031 }
7032
7033 return NB_OK;
7034 }
7035
7036 int bgp_peer_groups_peer_group_update_source_interface_destroy(
7037 struct nb_cb_destroy_args *args)
7038 {
7039 struct bgp *bgp;
7040 const char *peer_str;
7041 struct peer *peer;
7042
7043 switch (args->event) {
7044 case NB_EV_VALIDATE:
7045 case NB_EV_PREPARE:
7046 case NB_EV_ABORT:
7047 return NB_OK;
7048 case NB_EV_APPLY:
7049 bgp = nb_running_get_entry(args->dnode, NULL, true);
7050 peer_str = yang_dnode_get_string(args->dnode,
7051 "../../peer-group-name");
7052 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7053 if (!peer)
7054 return NB_ERR_INCONSISTENCY;
7055
7056 peer_update_source_unset(peer);
7057
7058 break;
7059 }
7060
7061 return NB_OK;
7062 }
7063
7064 /*
7065 * XPath:
7066 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/neighbor-remote-as
7067 */
7068 void bgp_peer_group_neighbor_remote_as_apply_finish(
7069 struct nb_cb_apply_finish_args *args)
7070 {
7071 struct bgp *bgp;
7072 const char *peer_str;
7073 int as_type = AS_SPECIFIED;
7074 int ret;
7075 as_t as = 0;
7076
7077 bgp = nb_running_get_entry(args->dnode, NULL, true);
7078 peer_str = yang_dnode_get_string(args->dnode, "../peer-group-name");
7079 as_type = yang_dnode_get_enum(args->dnode, "./remote-as-type");
7080 if (yang_dnode_exists(args->dnode, "./remote-as"))
7081 as = yang_dnode_get_uint32(args->dnode, "./remote-as");
7082
7083 ret = peer_group_remote_as(bgp, peer_str, &as, as_type);
7084 if (ret < 0) {
7085 snprintf(args->errmsg, args->errmsg_len,
7086 "Create the peer-group or interface first");
7087 return;
7088 }
7089 }
7090
7091 /*
7092 * XPath:
7093 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/neighbor-remote-as/remote-as-type
7094 */
7095 int bgp_peer_groups_peer_group_neighbor_remote_as_remote_as_type_modify(
7096 struct nb_cb_modify_args *args)
7097 {
7098 switch (args->event) {
7099 case NB_EV_VALIDATE:
7100 case NB_EV_PREPARE:
7101 case NB_EV_ABORT:
7102 case NB_EV_APPLY:
7103 /* TODO: implement me. */
7104 break;
7105 }
7106
7107 return NB_OK;
7108 }
7109
7110 int bgp_peer_groups_peer_group_neighbor_remote_as_remote_as_type_destroy(
7111 struct nb_cb_destroy_args *args)
7112 {
7113 struct bgp *bgp;
7114 const char *peer_str;
7115 struct peer_group *group;
7116
7117 switch (args->event) {
7118 case NB_EV_VALIDATE:
7119 case NB_EV_PREPARE:
7120 case NB_EV_ABORT:
7121 return NB_OK;
7122 case NB_EV_APPLY:
7123 bgp = nb_running_get_entry(args->dnode, NULL, true);
7124 peer_str = yang_dnode_get_string(args->dnode,
7125 "../../peer-group-name");
7126 group = peer_group_lookup(bgp, peer_str);
7127 if (group)
7128 peer_group_remote_as_delete(group);
7129
7130 break;
7131 }
7132
7133 return NB_OK;
7134 }
7135
7136 /*
7137 * XPath:
7138 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/neighbor-remote-as/remote-as
7139 */
7140 int bgp_peer_groups_peer_group_neighbor_remote_as_remote_as_modify(
7141 struct nb_cb_modify_args *args)
7142 {
7143 switch (args->event) {
7144 case NB_EV_VALIDATE:
7145 case NB_EV_PREPARE:
7146 case NB_EV_ABORT:
7147 case NB_EV_APPLY:
7148 /* TODO: implement me. */
7149 break;
7150 }
7151
7152 return NB_OK;
7153 }
7154
7155 int bgp_peer_groups_peer_group_neighbor_remote_as_remote_as_destroy(
7156 struct nb_cb_destroy_args *args)
7157 {
7158 switch (args->event) {
7159 case NB_EV_VALIDATE:
7160 case NB_EV_PREPARE:
7161 case NB_EV_ABORT:
7162 case NB_EV_APPLY:
7163 /* TODO: implement me. */
7164 break;
7165 }
7166
7167 return NB_OK;
7168 }
7169
7170 /*
7171 * XPath:
7172 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ebgp-multihop/enabled
7173 */
7174 int bgp_peer_groups_peer_group_ebgp_multihop_enabled_modify(
7175 struct nb_cb_modify_args *args)
7176 {
7177 struct bgp *bgp;
7178 const char *peer_str;
7179 struct peer *peer;
7180 bool set = false;
7181 int ret = 0;
7182 uint8_t ttl = MAXTTL;
7183
7184 switch (args->event) {
7185 case NB_EV_VALIDATE:
7186 case NB_EV_PREPARE:
7187 case NB_EV_ABORT:
7188 return NB_OK;
7189 case NB_EV_APPLY:
7190 bgp = nb_running_get_entry(args->dnode, NULL, true);
7191 peer_str = yang_dnode_get_string(args->dnode,
7192 "../../peer-group-name");
7193 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7194 if (!peer)
7195 return NB_ERR_INCONSISTENCY;
7196
7197 if (peer->conf_if) {
7198 ret = BGP_ERR_INVALID_FOR_DIRECT_PEER;
7199 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len,
7200 ret);
7201 return NB_ERR_INCONSISTENCY;
7202 }
7203
7204 set = yang_dnode_get_bool(args->dnode, NULL);
7205
7206 if (set)
7207 ret = peer_ebgp_multihop_set(peer, ttl);
7208 else
7209 ret = peer_ebgp_multihop_unset(peer);
7210
7211 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7212 < 0)
7213 return NB_ERR_INCONSISTENCY;
7214
7215 break;
7216 }
7217
7218 return NB_OK;
7219 }
7220
7221 int bgp_peer_groups_peer_group_ebgp_multihop_enabled_destroy(
7222 struct nb_cb_destroy_args *args)
7223 {
7224 struct bgp *bgp;
7225 const char *peer_str;
7226 struct peer *peer;
7227 int ret = 0;
7228
7229 switch (args->event) {
7230 case NB_EV_VALIDATE:
7231 case NB_EV_PREPARE:
7232 case NB_EV_ABORT:
7233 return NB_OK;
7234 case NB_EV_APPLY:
7235 bgp = nb_running_get_entry(args->dnode, NULL, true);
7236 peer_str = yang_dnode_get_string(args->dnode,
7237 "../../peer-group-name");
7238 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7239 if (!peer)
7240 return NB_ERR_INCONSISTENCY;
7241
7242 ret = peer_ebgp_multihop_unset(peer);
7243
7244 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7245 < 0)
7246 return NB_ERR_INCONSISTENCY;
7247
7248 break;
7249 }
7250
7251 return NB_OK;
7252 }
7253
7254 /*
7255 * XPath:
7256 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ebgp-multihop/multihop-ttl
7257 */
7258 int bgp_peer_groups_peer_group_ebgp_multihop_multihop_ttl_modify(
7259 struct nb_cb_modify_args *args)
7260 {
7261 struct bgp *bgp;
7262 const char *peer_str;
7263 struct peer *peer;
7264 int ret = 0;
7265 uint8_t ttl = MAXTTL;
7266
7267 switch (args->event) {
7268 case NB_EV_VALIDATE:
7269 case NB_EV_PREPARE:
7270 case NB_EV_ABORT:
7271 return NB_OK;
7272 case NB_EV_APPLY:
7273 bgp = nb_running_get_entry(args->dnode, NULL, true);
7274 peer_str = yang_dnode_get_string(args->dnode,
7275 "../../peer-group-name");
7276 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7277 if (!peer)
7278 return NB_ERR_INCONSISTENCY;
7279
7280 if (peer->conf_if) {
7281 ret = BGP_ERR_INVALID_FOR_DIRECT_PEER;
7282 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len,
7283 ret);
7284 return NB_ERR_INCONSISTENCY;
7285 }
7286
7287 ttl = yang_dnode_get_uint8(args->dnode, NULL);
7288
7289 ret = peer_ebgp_multihop_set(peer, ttl);
7290
7291 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7292 < 0)
7293 return NB_ERR_INCONSISTENCY;
7294
7295 break;
7296 }
7297
7298 return NB_OK;
7299 }
7300
7301 int bgp_peer_groups_peer_group_ebgp_multihop_multihop_ttl_destroy(
7302 struct nb_cb_destroy_args *args)
7303 {
7304 struct bgp *bgp;
7305 const char *peer_str;
7306 struct peer *peer;
7307 int ret = 0;
7308
7309 switch (args->event) {
7310 case NB_EV_VALIDATE:
7311 case NB_EV_PREPARE:
7312 case NB_EV_ABORT:
7313 return NB_OK;
7314 case NB_EV_APPLY:
7315 bgp = nb_running_get_entry(args->dnode, NULL, true);
7316 peer_str = yang_dnode_get_string(args->dnode,
7317 "../../peer-group-name");
7318 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7319 if (!peer)
7320 return NB_ERR_INCONSISTENCY;
7321
7322 ret = peer_ebgp_multihop_unset(peer);
7323
7324 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7325 < 0)
7326 return NB_ERR_INCONSISTENCY;
7327
7328 break;
7329 }
7330
7331 return NB_OK;
7332 }
7333
7334 /*
7335 * XPath:
7336 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ebgp-multihop/disable-connected-check
7337 */
7338 int bgp_peer_groups_peer_group_ebgp_multihop_disable_connected_check_modify(
7339 struct nb_cb_modify_args *args)
7340 {
7341 struct bgp *bgp;
7342 const char *peer_str;
7343 struct peer *peer;
7344 bool set = false;
7345
7346 switch (args->event) {
7347 case NB_EV_VALIDATE:
7348 case NB_EV_PREPARE:
7349 case NB_EV_ABORT:
7350 return NB_OK;
7351 case NB_EV_APPLY:
7352 bgp = nb_running_get_entry(args->dnode, NULL, true);
7353 peer_str = yang_dnode_get_string(args->dnode,
7354 "../../peer-group-name");
7355 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7356 if (!peer)
7357 return NB_ERR_INCONSISTENCY;
7358
7359 set = yang_dnode_get_bool(args->dnode, NULL);
7360
7361 if (peer_flag_modify_nb(bgp, peer_str, peer,
7362 PEER_FLAG_DISABLE_CONNECTED_CHECK, set,
7363 args->errmsg, args->errmsg_len)
7364 < 0)
7365 return NB_ERR_INCONSISTENCY;
7366
7367 break;
7368 }
7369
7370 return NB_OK;
7371 }
7372
7373 /*
7374 * XPath:
7375 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/local-as
7376 */
7377 void bgp_peer_groups_peer_group_local_as_apply_finish(
7378 struct nb_cb_apply_finish_args *args)
7379 {
7380 struct bgp *bgp;
7381 int ret;
7382 as_t as = 0;
7383 const char *peer_str;
7384 struct peer *peer = NULL;
7385 bool no_prepend = false;
7386 bool replace_as = false;
7387
7388 bgp = nb_running_get_entry(args->dnode, NULL, true);
7389 peer_str = yang_dnode_get_string(args->dnode, "../peer-group-name");
7390
7391 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7392
7393 if (yang_dnode_exists(args->dnode, "./local-as"))
7394 as = yang_dnode_get_uint32(args->dnode, "./local-as");
7395
7396 if (yang_dnode_exists(args->dnode, "./local-as"))
7397 as = yang_dnode_get_uint32(args->dnode, "./local-as");
7398 if (yang_dnode_exists(args->dnode, "./no-prepend"))
7399 no_prepend = yang_dnode_get_bool(args->dnode, "./no-prepend");
7400 if (yang_dnode_exists(args->dnode, "./no-replace-as"))
7401 replace_as =
7402 yang_dnode_get_bool(args->dnode, "./no-replace-as");
7403
7404 if (!as && !no_prepend && !replace_as)
7405 ret = peer_local_as_unset(peer);
7406 else
7407 ret = peer_local_as_set(peer, as, no_prepend, replace_as);
7408
7409 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
7410 }
7411
7412 /*
7413 * XPath:
7414 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/local-as/local-as
7415 */
7416 int bgp_peer_groups_peer_group_local_as_local_as_modify(
7417 struct nb_cb_modify_args *args)
7418 {
7419 switch (args->event) {
7420 case NB_EV_VALIDATE:
7421 case NB_EV_PREPARE:
7422 case NB_EV_ABORT:
7423 case NB_EV_APPLY:
7424 /* TODO: implement me. */
7425 break;
7426 }
7427
7428 return NB_OK;
7429 }
7430
7431 int bgp_peer_groups_peer_group_local_as_local_as_destroy(
7432 struct nb_cb_destroy_args *args)
7433 {
7434 struct bgp *bgp;
7435 const char *peer_str;
7436 struct peer *peer;
7437 int ret;
7438
7439 switch (args->event) {
7440 case NB_EV_VALIDATE:
7441 case NB_EV_PREPARE:
7442 case NB_EV_ABORT:
7443 return NB_OK;
7444 case NB_EV_APPLY:
7445 bgp = nb_running_get_entry(args->dnode, NULL, true);
7446 peer_str = yang_dnode_get_string(args->dnode,
7447 "../../peer-group-name");
7448 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7449
7450 ret = peer_local_as_unset(peer);
7451 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7452 < 0)
7453 return NB_ERR_INCONSISTENCY;
7454
7455 break;
7456 }
7457
7458 return NB_OK;
7459 }
7460
7461 /*
7462 * XPath:
7463 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/local-as/no-prepend
7464 */
7465 int bgp_peer_groups_peer_group_local_as_no_prepend_modify(
7466 struct nb_cb_modify_args *args)
7467 {
7468 switch (args->event) {
7469 case NB_EV_VALIDATE:
7470 case NB_EV_PREPARE:
7471 case NB_EV_ABORT:
7472 case NB_EV_APPLY:
7473 /* TODO: implement me. */
7474 break;
7475 }
7476
7477 return NB_OK;
7478 }
7479
7480 int bgp_peer_groups_peer_group_local_as_no_prepend_destroy(
7481 struct nb_cb_destroy_args *args)
7482 {
7483 switch (args->event) {
7484 case NB_EV_VALIDATE:
7485 case NB_EV_PREPARE:
7486 case NB_EV_ABORT:
7487 case NB_EV_APPLY:
7488 /* TODO: implement me. */
7489 break;
7490 }
7491
7492 return NB_OK;
7493 }
7494
7495 /*
7496 * XPath:
7497 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/local-as/no-replace-as
7498 */
7499 int bgp_peer_groups_peer_group_local_as_no_replace_as_modify(
7500 struct nb_cb_modify_args *args)
7501 {
7502 switch (args->event) {
7503 case NB_EV_VALIDATE:
7504 case NB_EV_PREPARE:
7505 case NB_EV_ABORT:
7506 case NB_EV_APPLY:
7507 /* TODO: implement me. */
7508 break;
7509 }
7510
7511 return NB_OK;
7512 }
7513
7514 /*
7515 * XPath:
7516 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/enable
7517 */
7518 int bgp_peer_groups_peer_group_bfd_options_enable_modify(
7519 struct nb_cb_modify_args *args)
7520 {
7521 switch (args->event) {
7522 case NB_EV_VALIDATE:
7523 case NB_EV_PREPARE:
7524 case NB_EV_ABORT:
7525 case NB_EV_APPLY:
7526 /* TODO: implement me. */
7527 break;
7528 }
7529
7530 return NB_OK;
7531 }
7532
7533 /*
7534 * XPath:
7535 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/detect-multiplier
7536 */
7537 int bgp_peer_groups_peer_group_bfd_options_detect_multiplier_modify(
7538 struct nb_cb_modify_args *args)
7539 {
7540 switch (args->event) {
7541 case NB_EV_VALIDATE:
7542 case NB_EV_PREPARE:
7543 case NB_EV_ABORT:
7544 case NB_EV_APPLY:
7545 /* TODO: implement me. */
7546 break;
7547 }
7548
7549 return NB_OK;
7550 }
7551
7552 int bgp_peer_groups_peer_group_bfd_options_detect_multiplier_destroy(
7553 struct nb_cb_destroy_args *args)
7554 {
7555 switch (args->event) {
7556 case NB_EV_VALIDATE:
7557 case NB_EV_PREPARE:
7558 case NB_EV_ABORT:
7559 case NB_EV_APPLY:
7560 /* TODO: implement me. */
7561 break;
7562 }
7563
7564 return NB_OK;
7565 }
7566
7567 /*
7568 * XPath:
7569 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/required-min-rx
7570 */
7571 int bgp_peer_groups_peer_group_bfd_options_required_min_rx_modify(
7572 struct nb_cb_modify_args *args)
7573 {
7574 switch (args->event) {
7575 case NB_EV_VALIDATE:
7576 case NB_EV_PREPARE:
7577 case NB_EV_ABORT:
7578 case NB_EV_APPLY:
7579 /* TODO: implement me. */
7580 break;
7581 }
7582
7583 return NB_OK;
7584 }
7585
7586 int bgp_peer_groups_peer_group_bfd_options_required_min_rx_destroy(
7587 struct nb_cb_destroy_args *args)
7588 {
7589 switch (args->event) {
7590 case NB_EV_VALIDATE:
7591 case NB_EV_PREPARE:
7592 case NB_EV_ABORT:
7593 case NB_EV_APPLY:
7594 /* TODO: implement me. */
7595 break;
7596 }
7597
7598 return NB_OK;
7599 }
7600
7601 /*
7602 * XPath:
7603 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/desired-min-tx
7604 */
7605 int bgp_peer_groups_peer_group_bfd_options_desired_min_tx_modify(
7606 struct nb_cb_modify_args *args)
7607 {
7608 switch (args->event) {
7609 case NB_EV_VALIDATE:
7610 case NB_EV_PREPARE:
7611 case NB_EV_ABORT:
7612 case NB_EV_APPLY:
7613 /* TODO: implement me. */
7614 break;
7615 }
7616
7617 return NB_OK;
7618 }
7619
7620 int bgp_peer_groups_peer_group_bfd_options_desired_min_tx_destroy(
7621 struct nb_cb_destroy_args *args)
7622 {
7623 switch (args->event) {
7624 case NB_EV_VALIDATE:
7625 case NB_EV_PREPARE:
7626 case NB_EV_ABORT:
7627 case NB_EV_APPLY:
7628 /* TODO: implement me. */
7629 break;
7630 }
7631
7632 return NB_OK;
7633 }
7634
7635 /*
7636 * XPath:
7637 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/session-type
7638 */
7639 int bgp_peer_groups_peer_group_bfd_options_session_type_modify(
7640 struct nb_cb_modify_args *args)
7641 {
7642 switch (args->event) {
7643 case NB_EV_VALIDATE:
7644 case NB_EV_PREPARE:
7645 case NB_EV_ABORT:
7646 case NB_EV_APPLY:
7647 /* TODO: implement me. */
7648 break;
7649 }
7650
7651 return NB_OK;
7652 }
7653
7654 int bgp_peer_groups_peer_group_bfd_options_session_type_destroy(
7655 struct nb_cb_destroy_args *args)
7656 {
7657 switch (args->event) {
7658 case NB_EV_VALIDATE:
7659 case NB_EV_PREPARE:
7660 case NB_EV_ABORT:
7661 case NB_EV_APPLY:
7662 /* TODO: implement me. */
7663 break;
7664 }
7665
7666 return NB_OK;
7667 }
7668
7669 /*
7670 * XPath:
7671 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/check-cp-failure
7672 */
7673 int bgp_peer_groups_peer_group_bfd_options_check_cp_failure_modify(
7674 struct nb_cb_modify_args *args)
7675 {
7676 switch (args->event) {
7677 case NB_EV_VALIDATE:
7678 case NB_EV_PREPARE:
7679 case NB_EV_ABORT:
7680 case NB_EV_APPLY:
7681 /* TODO: implement me. */
7682 break;
7683 }
7684
7685 return NB_OK;
7686 }
7687
7688 int bgp_peer_groups_peer_group_bfd_options_check_cp_failure_destroy(
7689 struct nb_cb_destroy_args *args)
7690 {
7691 switch (args->event) {
7692 case NB_EV_VALIDATE:
7693 case NB_EV_PREPARE:
7694 case NB_EV_ABORT:
7695 case NB_EV_APPLY:
7696 /* TODO: implement me. */
7697 break;
7698 }
7699
7700 return NB_OK;
7701 }
7702
7703 /*
7704 * XPath:
7705 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/admin-shutdown
7706 */
7707 void bgp_peer_groups_peer_group_admin_shutdown_apply_finish(
7708 struct nb_cb_apply_finish_args *args)
7709 {
7710 struct bgp *bgp;
7711 const char *peer_str;
7712 struct peer *peer;
7713 bool enable = false;
7714 const char *message;
7715
7716 bgp = nb_running_get_entry(args->dnode, NULL, true);
7717 peer_str = yang_dnode_get_string(args->dnode, "../peer-group-name");
7718 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7719
7720 if (yang_dnode_exists(args->dnode, "./message")) {
7721 message = yang_dnode_get_string(args->dnode, "./message");
7722 peer_tx_shutdown_message_set(peer, message);
7723 }
7724 enable = yang_dnode_get_bool(args->dnode, "./enable");
7725
7726 peer_flag_modify_nb(bgp, peer_str, peer, PEER_FLAG_SHUTDOWN, enable,
7727 args->errmsg, args->errmsg_len);
7728 }
7729
7730 /*
7731 * XPath:
7732 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/admin-shutdown/enable
7733 */
7734 int bgp_peer_groups_peer_group_admin_shutdown_enable_modify(
7735 struct nb_cb_modify_args *args)
7736 {
7737 switch (args->event) {
7738 case NB_EV_VALIDATE:
7739 case NB_EV_PREPARE:
7740 case NB_EV_ABORT:
7741 case NB_EV_APPLY:
7742 /* TODO: implement me. */
7743 break;
7744 }
7745
7746 return NB_OK;
7747 }
7748
7749 int bgp_peer_groups_peer_group_admin_shutdown_enable_destroy(
7750 struct nb_cb_destroy_args *args)
7751 {
7752 switch (args->event) {
7753 case NB_EV_VALIDATE:
7754 case NB_EV_PREPARE:
7755 case NB_EV_ABORT:
7756 case NB_EV_APPLY:
7757 /* TODO: implement me. */
7758 break;
7759 }
7760
7761 return NB_OK;
7762 }
7763
7764 /*
7765 * XPath:
7766 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/admin-shutdown/message
7767 */
7768 int bgp_peer_groups_peer_group_admin_shutdown_message_modify(
7769 struct nb_cb_modify_args *args)
7770 {
7771 switch (args->event) {
7772 case NB_EV_VALIDATE:
7773 case NB_EV_PREPARE:
7774 case NB_EV_ABORT:
7775 case NB_EV_APPLY:
7776 /* TODO: implement me. */
7777 break;
7778 }
7779
7780 return NB_OK;
7781 }
7782
7783 int bgp_peer_groups_peer_group_admin_shutdown_message_destroy(
7784 struct nb_cb_destroy_args *args)
7785 {
7786 switch (args->event) {
7787 case NB_EV_VALIDATE:
7788 case NB_EV_PREPARE:
7789 case NB_EV_ABORT:
7790 case NB_EV_APPLY:
7791 /* TODO: implement me. */
7792 break;
7793 }
7794
7795 return NB_OK;
7796 }
7797
7798 /*
7799 * XPath:
7800 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/graceful-restart/enable
7801 */
7802 int bgp_peer_groups_peer_group_graceful_restart_enable_modify(
7803 struct nb_cb_modify_args *args)
7804 {
7805 switch (args->event) {
7806 case NB_EV_VALIDATE:
7807 case NB_EV_PREPARE:
7808 case NB_EV_ABORT:
7809 case NB_EV_APPLY:
7810 /* TODO: implement me. */
7811 break;
7812 }
7813
7814 return NB_OK;
7815 }
7816
7817 int bgp_peer_groups_peer_group_graceful_restart_enable_destroy(
7818 struct nb_cb_destroy_args *args)
7819 {
7820 switch (args->event) {
7821 case NB_EV_VALIDATE:
7822 case NB_EV_PREPARE:
7823 case NB_EV_ABORT:
7824 case NB_EV_APPLY:
7825 /* TODO: implement me. */
7826 break;
7827 }
7828
7829 return NB_OK;
7830 }
7831
7832 /*
7833 * XPath:
7834 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/graceful-restart/graceful-restart-helper
7835 */
7836 int bgp_peer_groups_peer_group_graceful_restart_graceful_restart_helper_modify(
7837 struct nb_cb_modify_args *args)
7838 {
7839 switch (args->event) {
7840 case NB_EV_VALIDATE:
7841 case NB_EV_PREPARE:
7842 case NB_EV_ABORT:
7843 case NB_EV_APPLY:
7844 /* TODO: implement me. */
7845 break;
7846 }
7847
7848 return NB_OK;
7849 }
7850
7851 int bgp_peer_groups_peer_group_graceful_restart_graceful_restart_helper_destroy(
7852 struct nb_cb_destroy_args *args)
7853 {
7854 switch (args->event) {
7855 case NB_EV_VALIDATE:
7856 case NB_EV_PREPARE:
7857 case NB_EV_ABORT:
7858 case NB_EV_APPLY:
7859 /* TODO: implement me. */
7860 break;
7861 }
7862
7863 return NB_OK;
7864 }
7865
7866 /*
7867 * XPath:
7868 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/graceful-restart/graceful-restart-disable
7869 */
7870 int bgp_peer_groups_peer_group_graceful_restart_graceful_restart_disable_modify(
7871 struct nb_cb_modify_args *args)
7872 {
7873 switch (args->event) {
7874 case NB_EV_VALIDATE:
7875 case NB_EV_PREPARE:
7876 case NB_EV_ABORT:
7877 case NB_EV_APPLY:
7878 /* TODO: implement me. */
7879 break;
7880 }
7881
7882 return NB_OK;
7883 }
7884
7885 int bgp_peer_groups_peer_group_graceful_restart_graceful_restart_disable_destroy(
7886 struct nb_cb_destroy_args *args)
7887 {
7888 switch (args->event) {
7889 case NB_EV_VALIDATE:
7890 case NB_EV_PREPARE:
7891 case NB_EV_ABORT:
7892 case NB_EV_APPLY:
7893 /* TODO: implement me. */
7894 break;
7895 }
7896
7897 return NB_OK;
7898 }
7899
7900 /*
7901 * XPath:
7902 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/timers/advertise-interval
7903 */
7904 int bgp_peer_groups_peer_group_timers_advertise_interval_modify(
7905 struct nb_cb_modify_args *args)
7906 {
7907 struct bgp *bgp;
7908 const char *peer_str;
7909 struct peer *peer;
7910 uint16_t routeadv;
7911 int ret;
7912
7913 switch (args->event) {
7914 case NB_EV_VALIDATE:
7915 case NB_EV_PREPARE:
7916 case NB_EV_ABORT:
7917 return NB_OK;
7918 case NB_EV_APPLY:
7919 bgp = nb_running_get_entry(args->dnode, NULL, true);
7920 peer_str = yang_dnode_get_string(args->dnode,
7921 "../../peer-group-name");
7922 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7923 routeadv = yang_dnode_get_uint16(args->dnode, NULL);
7924
7925 ret = peer_advertise_interval_set(peer, routeadv);
7926 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7927 < 0)
7928 return NB_ERR_INCONSISTENCY;
7929
7930 break;
7931 }
7932
7933 return NB_OK;
7934 }
7935
7936 int bgp_peer_groups_peer_group_timers_advertise_interval_destroy(
7937 struct nb_cb_destroy_args *args)
7938 {
7939 struct bgp *bgp;
7940 const char *peer_str;
7941 struct peer *peer;
7942 int ret;
7943
7944 switch (args->event) {
7945 case NB_EV_VALIDATE:
7946 case NB_EV_PREPARE:
7947 case NB_EV_ABORT:
7948 return NB_OK;
7949 case NB_EV_APPLY:
7950 bgp = nb_running_get_entry(args->dnode, NULL, true);
7951 peer_str = yang_dnode_get_string(args->dnode,
7952 "../../peer-group-name");
7953 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7954
7955 ret = peer_advertise_interval_unset(peer);
7956 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7957 < 0)
7958 return NB_ERR_INCONSISTENCY;
7959
7960 break;
7961 }
7962
7963 return NB_OK;
7964 }
7965
7966 /*
7967 * XPath:
7968 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/timers/connect-time
7969 */
7970 int bgp_peer_groups_peer_group_timers_connect_time_modify(
7971 struct nb_cb_modify_args *args)
7972 {
7973 struct bgp *bgp;
7974 const char *peer_str;
7975 struct peer *peer;
7976 uint16_t connect;
7977 int ret;
7978
7979 switch (args->event) {
7980 case NB_EV_VALIDATE:
7981 case NB_EV_PREPARE:
7982 case NB_EV_ABORT:
7983 return NB_OK;
7984 case NB_EV_APPLY:
7985 bgp = nb_running_get_entry(args->dnode, NULL, true);
7986 peer_str = yang_dnode_get_string(args->dnode,
7987 "../../peer-group-name");
7988 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7989 connect = yang_dnode_get_uint16(args->dnode, NULL);
7990
7991 ret = peer_timers_connect_set(peer, connect);
7992 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7993 < 0)
7994 return NB_ERR_INCONSISTENCY;
7995
7996 break;
7997 }
7998
7999 return NB_OK;
8000 }
8001
8002 int bgp_peer_groups_peer_group_timers_connect_time_destroy(
8003 struct nb_cb_destroy_args *args)
8004 {
8005 struct bgp *bgp;
8006 const char *peer_str;
8007 struct peer *peer;
8008 int ret;
8009
8010 switch (args->event) {
8011 case NB_EV_VALIDATE:
8012 case NB_EV_PREPARE:
8013 case NB_EV_ABORT:
8014 return NB_OK;
8015 case NB_EV_APPLY:
8016 bgp = nb_running_get_entry(args->dnode, NULL, true);
8017 peer_str = yang_dnode_get_string(args->dnode,
8018 "../../peer-group-name");
8019 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
8020
8021 ret = peer_timers_connect_unset(peer);
8022 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
8023 < 0)
8024 return NB_ERR_INCONSISTENCY;
8025
8026 break;
8027 }
8028
8029 return NB_OK;
8030 }
8031
8032 /*
8033 * XPath:
8034 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/timers/hold-time
8035 */
8036 int bgp_peer_groups_peer_group_timers_hold_time_modify(
8037 struct nb_cb_modify_args *args)
8038 {
8039 struct bgp *bgp;
8040 const char *peer_str;
8041 struct peer *peer;
8042 uint16_t keepalive = 0;
8043 uint16_t holdtime = 0;
8044 int ret = 0;
8045
8046 switch (args->event) {
8047 case NB_EV_VALIDATE:
8048 case NB_EV_PREPARE:
8049 case NB_EV_ABORT:
8050 return NB_OK;
8051 case NB_EV_APPLY:
8052 bgp = nb_running_get_entry(args->dnode, NULL, true);
8053 peer_str = yang_dnode_get_string(args->dnode,
8054 "../../peer-group-name");
8055 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
8056
8057 keepalive = yang_dnode_get_uint16(args->dnode, "../keepalive");
8058 holdtime = yang_dnode_get_uint16(args->dnode, NULL);
8059
8060 if (keepalive != BGP_DEFAULT_KEEPALIVE
8061 && holdtime != BGP_DEFAULT_HOLDTIME) {
8062 ret = peer_timers_set(peer, keepalive, holdtime);
8063 } else
8064 ret = peer_timers_unset(peer);
8065
8066 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
8067 < 0)
8068 return NB_ERR_INCONSISTENCY;
8069
8070 break;
8071 }
8072
8073 return NB_OK;
8074 }
8075
8076 /*
8077 * XPath:
8078 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/timers/keepalive
8079 */
8080 int bgp_peer_groups_peer_group_timers_keepalive_modify(
8081 struct nb_cb_modify_args *args)
8082 {
8083 struct bgp *bgp;
8084 const char *peer_str;
8085 struct peer *peer;
8086 uint16_t keepalive = 0, curr_keep = 0;
8087 uint16_t holdtime = 0;
8088 int ret = 0;
8089
8090 switch (args->event) {
8091 case NB_EV_VALIDATE:
8092 case NB_EV_PREPARE:
8093 case NB_EV_ABORT:
8094 return NB_OK;
8095 case NB_EV_APPLY:
8096 bgp = nb_running_get_entry(args->dnode, NULL, true);
8097 peer_str = yang_dnode_get_string(args->dnode,
8098 "../../peer-group-name");
8099 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
8100
8101 keepalive = yang_dnode_get_uint16(args->dnode, NULL);
8102 holdtime = yang_dnode_get_uint16(args->dnode, "../hold-time");
8103
8104 if (keepalive != BGP_DEFAULT_KEEPALIVE
8105 && holdtime != BGP_DEFAULT_HOLDTIME) {
8106 if (peer->holdtime == holdtime) {
8107 curr_keep = (keepalive < holdtime / 3
8108 ? keepalive
8109 : holdtime / 3);
8110 if (curr_keep == keepalive) {
8111 // zlog_debug("%s holdtime %u keepalive
8112 // %u value is already set, skipping
8113 // update.",
8114 // __func__, holdtime, keepalive);
8115 return NB_OK;
8116 }
8117 }
8118 ret = peer_timers_set(peer, keepalive, holdtime);
8119 } else
8120 ret = peer_timers_unset(peer);
8121
8122 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
8123 < 0)
8124 return NB_ERR_INCONSISTENCY;
8125
8126 break;
8127 }
8128
8129 return NB_OK;
8130 }
8131
8132 /*
8133 * XPath:
8134 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi
8135 */
8136 int bgp_peer_groups_peer_group_afi_safis_afi_safi_create(
8137 struct nb_cb_create_args *args)
8138 {
8139 switch (args->event) {
8140 case NB_EV_VALIDATE:
8141 case NB_EV_PREPARE:
8142 case NB_EV_ABORT:
8143 case NB_EV_APPLY:
8144 /* TODO: implement me. */
8145 break;
8146 }
8147
8148 return NB_OK;
8149 }
8150
8151 int bgp_peer_groups_peer_group_afi_safis_afi_safi_destroy(
8152 struct nb_cb_destroy_args *args)
8153 {
8154 switch (args->event) {
8155 case NB_EV_VALIDATE:
8156 case NB_EV_PREPARE:
8157 case NB_EV_ABORT:
8158 case NB_EV_APPLY:
8159 /* TODO: implement me. */
8160 break;
8161 }
8162
8163 return NB_OK;
8164 }
8165
8166 /*
8167 * XPath:
8168 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/enabled
8169 */
8170 int bgp_peer_groups_peer_group_afi_safis_afi_safi_enabled_modify(
8171 struct nb_cb_modify_args *args)
8172 {
8173 struct bgp *bgp;
8174 const char *peer_str;
8175 const char *af_name;
8176 afi_t afi;
8177 safi_t safi;
8178 bool activate = false;
8179 int ret = 0;
8180 struct peer *peer;
8181
8182 switch (args->event) {
8183 case NB_EV_VALIDATE:
8184 case NB_EV_PREPARE:
8185 case NB_EV_ABORT:
8186 return NB_OK;
8187 case NB_EV_APPLY:
8188 bgp = nb_running_get_entry(args->dnode, NULL, true);
8189 af_name =
8190 yang_dnode_get_string(args->dnode, "../afi-safi-name");
8191 yang_afi_safi_identity2value(af_name, &afi, &safi);
8192 peer_str = yang_dnode_get_string(args->dnode,
8193 "../../../peer-group-name");
8194 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
8195
8196 activate = yang_dnode_get_bool(args->dnode, NULL);
8197 if (activate)
8198 ret = peer_activate(peer, afi, safi);
8199 else
8200 ret = peer_deactivate(peer, afi, safi);
8201
8202 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
8203 < 0)
8204 return NB_ERR_INCONSISTENCY;
8205
8206 break;
8207 }
8208
8209 return NB_OK;
8210 }
8211
8212 int bgp_peer_groups_peer_group_afi_safis_afi_safi_enabled_destroy(
8213 struct nb_cb_destroy_args *args)
8214 {
8215 switch (args->event) {
8216 case NB_EV_VALIDATE:
8217 case NB_EV_PREPARE:
8218 case NB_EV_ABORT:
8219 case NB_EV_APPLY:
8220 /* TODO: implement me. */
8221 break;
8222 }
8223
8224 return NB_OK;
8225 }
8226
8227 void bgp_global_afi_safis_afi_safi_network_config_apply_finish(
8228 struct nb_cb_apply_finish_args *args)
8229 {
8230 const struct lyd_node *af_dnode;
8231 struct bgp *bgp;
8232 const char *af_name;
8233 struct prefix prefix;
8234 bool is_backdoor = false;
8235 uint32_t label_index = BGP_INVALID_LABEL_INDEX;
8236 const char *rmap_name = NULL;
8237 afi_t afi;
8238 safi_t safi;
8239
8240 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8241 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8242 yang_afi_safi_identity2value(af_name, &afi, &safi);
8243 bgp = nb_running_get_entry(af_dnode, NULL, true);
8244
8245 yang_dnode_get_prefix(&prefix, args->dnode, "./prefix");
8246
8247 is_backdoor = yang_dnode_get_bool(args->dnode, "./backdoor");
8248
8249 if (yang_dnode_exists(args->dnode, "./label-index"))
8250 label_index =
8251 yang_dnode_get_uint32(args->dnode, "./label-index");
8252
8253 if (yang_dnode_exists(args->dnode, "./rmap-policy-export"))
8254 rmap_name = yang_dnode_get_string(args->dnode,
8255 "./rmap-policy-export");
8256
8257 bgp_static_set(bgp, NULL, &prefix, afi, safi, rmap_name, is_backdoor,
8258 label_index, args->errmsg, args->errmsg_len);
8259 }
8260
8261 static int bgp_global_afi_safis_afi_safi_network_config_destroy(
8262 struct nb_cb_destroy_args *args)
8263 {
8264 const struct lyd_node *af_dnode;
8265 struct bgp *bgp;
8266 const char *af_name;
8267 struct prefix prefix;
8268 uint32_t label_index = BGP_INVALID_LABEL_INDEX;
8269 const char *rmap_name = NULL;
8270 bool is_backdoor = false;
8271 afi_t afi;
8272 safi_t safi;
8273 int ret;
8274
8275 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8276 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8277 yang_afi_safi_identity2value(af_name, &afi, &safi);
8278 bgp = nb_running_get_entry(af_dnode, NULL, true);
8279
8280 yang_dnode_get_prefix(&prefix, args->dnode, "./prefix");
8281
8282 if (yang_dnode_exists(args->dnode, "./rmap-policy-export"))
8283 rmap_name = yang_dnode_get_string(args->dnode,
8284 "./rmap-policy-export");
8285
8286 if (yang_dnode_exists(args->dnode, "./label-index"))
8287 label_index =
8288 yang_dnode_get_uint32(args->dnode, "./label-index");
8289
8290 if (yang_dnode_exists(args->dnode, "./backdoor"))
8291 is_backdoor = yang_dnode_get_bool(args->dnode, "./backdoor");
8292
8293 ret = bgp_static_set(bgp, "no", &prefix, afi, safi, rmap_name,
8294 is_backdoor, label_index, args->errmsg,
8295 args->errmsg_len);
8296 if (ret < 0)
8297 return NB_ERR_INCONSISTENCY;
8298
8299 return NB_OK;
8300 }
8301
8302 /*
8303 * XPath:
8304 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/network-config
8305 */
8306 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_create(
8307 struct nb_cb_create_args *args)
8308 {
8309 /* Handled in network_config_apply_finish callback */
8310
8311 return NB_OK;
8312 }
8313
8314 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_destroy(
8315 struct nb_cb_destroy_args *args)
8316 {
8317 switch (args->event) {
8318 case NB_EV_VALIDATE:
8319 case NB_EV_PREPARE:
8320 case NB_EV_ABORT:
8321 return NB_OK;
8322 case NB_EV_APPLY:
8323 return bgp_global_afi_safis_afi_safi_network_config_destroy(
8324 args);
8325
8326 break;
8327 }
8328
8329 return NB_OK;
8330 }
8331
8332 /*
8333 * XPath:
8334 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/network-config/backdoor
8335 */
8336 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_backdoor_modify(
8337 struct nb_cb_modify_args *args)
8338 {
8339 /* Handled in unicast_network_config_apply_finish callback */
8340
8341 return NB_OK;
8342 }
8343
8344 /*
8345 * XPath:
8346 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/network-config/label-index
8347 */
8348 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_label_index_modify(
8349 struct nb_cb_modify_args *args)
8350 {
8351 const struct lyd_node *af_dnode;
8352 struct bgp *bgp;
8353 const char *af_name;
8354 struct prefix prefix;
8355 uint32_t label_index;
8356 afi_t afi;
8357 safi_t safi;
8358 struct bgp_dest *dest;
8359 struct bgp_static *bgp_static;
8360
8361 switch (args->event) {
8362 case NB_EV_VALIDATE:
8363 bgp = nb_running_get_entry(args->dnode, NULL, false);
8364 if (!bgp)
8365 return NB_OK;
8366
8367 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8368 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8369 yang_afi_safi_identity2value(af_name, &afi, &safi);
8370 yang_dnode_get_prefix(&prefix, args->dnode, "../prefix");
8371 apply_mask(&prefix);
8372
8373 label_index = yang_dnode_get_uint32(args->dnode, NULL);
8374
8375 dest = bgp_node_get(bgp->route[afi][safi], &prefix);
8376 bgp_static = bgp_dest_get_bgp_static_info(dest);
8377 if (bgp_static) {
8378 if (bgp_static->label_index != label_index) {
8379 snprintf(
8380 args->errmsg, args->errmsg_len,
8381 "Cannot change label-index: curr %u input %u\n",
8382 bgp_static->label_index, label_index);
8383 return NB_ERR_VALIDATION;
8384 }
8385 }
8386
8387 break;
8388 case NB_EV_PREPARE:
8389 case NB_EV_ABORT:
8390 case NB_EV_APPLY:
8391 break;
8392 }
8393
8394 return NB_OK;
8395 }
8396
8397 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_label_index_destroy(
8398 struct nb_cb_destroy_args *args)
8399 {
8400 /* Handled in unicast_network_config_apply_finish callback */
8401
8402 return NB_OK;
8403 }
8404
8405 /*
8406 * XPath:
8407 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/network-config/rmap-policy-export
8408 */
8409 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_rmap_policy_export_modify(
8410 struct nb_cb_modify_args *args)
8411 {
8412 /* Handled in unicast_network_config_apply_finish callback */
8413
8414 return NB_OK;
8415 }
8416
8417 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_rmap_policy_export_destroy(
8418 struct nb_cb_destroy_args *args)
8419 {
8420 /* rmap destory alone is not supported by backend, the entire network
8421 * config needs to be destroyed.
8422 */
8423 switch (args->event) {
8424 case NB_EV_VALIDATE:
8425 case NB_EV_PREPARE:
8426 case NB_EV_ABORT:
8427 case NB_EV_APPLY:
8428 /* TODO: implement me. */
8429 break;
8430 }
8431
8432 return NB_OK;
8433 }
8434
8435 void bgp_global_afi_safi_aggregate_route_apply_finish(
8436 struct nb_cb_apply_finish_args *args)
8437 {
8438 const struct lyd_node *af_dnode;
8439 struct bgp *bgp;
8440 const char *af_name;
8441 struct prefix prefix;
8442 const char *rmap_name = NULL;
8443 afi_t afi;
8444 safi_t safi;
8445 uint8_t as_set = 0;
8446 int summary_only = 0;
8447 uint8_t origin = BGP_ORIGIN_UNSPECIFIED;
8448 bool match_med = false;
8449 const char *suppress_map = NULL;
8450
8451 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8452 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8453 yang_afi_safi_identity2value(af_name, &afi, &safi);
8454 bgp = nb_running_get_entry(af_dnode, NULL, true);
8455
8456 yang_dnode_get_prefix(&prefix, args->dnode, "./prefix");
8457
8458 if (yang_dnode_exists(args->dnode, "./as-set"))
8459 as_set = yang_dnode_get_bool(args->dnode, "./as-set");
8460
8461 summary_only = yang_dnode_get_bool(args->dnode, "./summary-only");
8462
8463 if (yang_dnode_exists(args->dnode, "./rmap-policy-export"))
8464 rmap_name = yang_dnode_get_string(args->dnode,
8465 "./rmap-policy-export");
8466
8467 origin = yang_dnode_get_enum(args->dnode, "./origin");
8468 match_med = yang_dnode_get_bool(args->dnode, "./match-med");
8469 if (yang_dnode_exists(args->dnode, "./suppress-map"))
8470 suppress_map =
8471 yang_dnode_get_string(args->dnode, "./suppress-map");
8472
8473 bgp_aggregate_set(bgp, &prefix, afi, safi, rmap_name, summary_only,
8474 as_set, origin, match_med, suppress_map, args->errmsg,
8475 args->errmsg_len);
8476 }
8477
8478 static int
8479 bgp_global_afi_safi_aggregate_route_destroy(struct nb_cb_destroy_args *args)
8480 {
8481 const struct lyd_node *af_dnode;
8482 struct bgp *bgp;
8483 const char *af_name;
8484 struct prefix prefix;
8485 afi_t afi;
8486 safi_t safi;
8487 int ret;
8488
8489 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8490 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8491 yang_afi_safi_identity2value(af_name, &afi, &safi);
8492 bgp = nb_running_get_entry(af_dnode, NULL, true);
8493
8494 yang_dnode_get_prefix(&prefix, args->dnode, "./prefix");
8495
8496 ret = bgp_aggregate_unset(bgp, &prefix, afi, safi, args->errmsg,
8497 args->errmsg_len);
8498
8499 if (ret < 0)
8500 return NB_ERR_INCONSISTENCY;
8501
8502 return NB_OK;
8503 }
8504
8505 /*
8506 * XPath:
8507 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route
8508 */
8509 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_create(
8510 struct nb_cb_create_args *args)
8511 {
8512 switch (args->event) {
8513 case NB_EV_VALIDATE:
8514 case NB_EV_PREPARE:
8515 case NB_EV_ABORT:
8516 case NB_EV_APPLY:
8517 /* TODO: implement me. */
8518 break;
8519 }
8520
8521 return NB_OK;
8522 }
8523
8524 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_destroy(
8525 struct nb_cb_destroy_args *args)
8526 {
8527 switch (args->event) {
8528 case NB_EV_VALIDATE:
8529 case NB_EV_PREPARE:
8530 case NB_EV_ABORT:
8531 return NB_OK;
8532 case NB_EV_APPLY:
8533 return bgp_global_afi_safi_aggregate_route_destroy(args);
8534 }
8535
8536 return NB_OK;
8537 }
8538
8539 /*
8540 * XPath:
8541 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/as-set
8542 */
8543 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_as_set_modify(
8544 struct nb_cb_modify_args *args)
8545 {
8546 switch (args->event) {
8547 case NB_EV_VALIDATE:
8548 case NB_EV_PREPARE:
8549 case NB_EV_ABORT:
8550 case NB_EV_APPLY:
8551 /* TODO: implement me. */
8552 break;
8553 }
8554
8555 return NB_OK;
8556 }
8557
8558 /*
8559 * XPath:
8560 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/summary-only
8561 */
8562 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_summary_only_modify(
8563 struct nb_cb_modify_args *args)
8564 {
8565 switch (args->event) {
8566 case NB_EV_VALIDATE:
8567 case NB_EV_PREPARE:
8568 case NB_EV_ABORT:
8569 case NB_EV_APPLY:
8570 /* TODO: implement me. */
8571 break;
8572 }
8573
8574 return NB_OK;
8575 }
8576
8577 /*
8578 * XPath:
8579 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/rmap-policy-export
8580 */
8581 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_rmap_policy_export_modify(
8582 struct nb_cb_modify_args *args)
8583 {
8584 switch (args->event) {
8585 case NB_EV_VALIDATE:
8586 case NB_EV_PREPARE:
8587 case NB_EV_ABORT:
8588 case NB_EV_APPLY:
8589 /* TODO: implement me. */
8590 break;
8591 }
8592
8593 return NB_OK;
8594 }
8595
8596 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_rmap_policy_export_destroy(
8597 struct nb_cb_destroy_args *args)
8598 {
8599 switch (args->event) {
8600 case NB_EV_VALIDATE:
8601 case NB_EV_PREPARE:
8602 case NB_EV_ABORT:
8603 case NB_EV_APPLY:
8604 /* TODO: implement me. */
8605 break;
8606 }
8607
8608 return NB_OK;
8609 }
8610
8611 /*
8612 * XPath:
8613 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/origin
8614 */
8615 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_origin_modify(
8616 struct nb_cb_modify_args *args)
8617 {
8618 switch (args->event) {
8619 case NB_EV_VALIDATE:
8620 case NB_EV_PREPARE:
8621 case NB_EV_ABORT:
8622 case NB_EV_APPLY:
8623 /* TODO: implement me. */
8624 break;
8625 }
8626
8627 return NB_OK;
8628 }
8629
8630 /*
8631 * XPath:
8632 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/match-med
8633 */
8634 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_match_med_modify(
8635 struct nb_cb_modify_args *args)
8636 {
8637 switch (args->event) {
8638 case NB_EV_VALIDATE:
8639 case NB_EV_PREPARE:
8640 case NB_EV_ABORT:
8641 case NB_EV_APPLY:
8642 /* TODO: implement me. */
8643 break;
8644 }
8645
8646 return NB_OK;
8647 }
8648
8649 /*
8650 * XPath:
8651 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/suppress-map
8652 */
8653 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_suppress_map_modify(
8654 struct nb_cb_modify_args *args)
8655 {
8656 switch (args->event) {
8657 case NB_EV_VALIDATE:
8658 case NB_EV_PREPARE:
8659 case NB_EV_ABORT:
8660 case NB_EV_APPLY:
8661 /* TODO: implement me. */
8662 break;
8663 }
8664
8665 return NB_OK;
8666 }
8667
8668 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_suppress_map_destroy(
8669 struct nb_cb_destroy_args *args)
8670 {
8671 switch (args->event) {
8672 case NB_EV_VALIDATE:
8673 case NB_EV_PREPARE:
8674 case NB_EV_ABORT:
8675 case NB_EV_APPLY:
8676 /* TODO: implement me. */
8677 break;
8678 }
8679
8680 return NB_OK;
8681 }
8682
8683 void bgp_global_afi_safi_admin_distance_route_apply_finish(
8684 struct nb_cb_apply_finish_args *args)
8685 {
8686 const struct lyd_node *af_dnode;
8687 const char *af_name;
8688 const char *prefix_str = NULL;
8689 const char *access_list_str = NULL;
8690 uint8_t distance;
8691 afi_t afi;
8692 safi_t safi;
8693
8694 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8695 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8696 yang_afi_safi_identity2value(af_name, &afi, &safi);
8697
8698 prefix_str = yang_dnode_get_string(args->dnode, "./prefix");
8699 distance = yang_dnode_get_uint8(args->dnode, "./distance");
8700 if (yang_dnode_exists(args->dnode, "./access-list-policy-export"))
8701 access_list_str = yang_dnode_get_string(
8702 args->dnode, "./access-list-policy-export");
8703
8704 bgp_distance_set(distance, prefix_str, access_list_str, afi, safi,
8705 args->errmsg, args->errmsg_len);
8706 }
8707
8708 static int bgp_global_afi_safi_admin_distance_route_destroy(
8709 struct nb_cb_destroy_args *args)
8710 {
8711 const struct lyd_node *af_dnode;
8712 const char *af_name;
8713 const char *prefix_str = NULL;
8714 const char *access_list_str = NULL;
8715 uint8_t distance;
8716 afi_t afi;
8717 safi_t safi;
8718
8719 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8720 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8721 yang_afi_safi_identity2value(af_name, &afi, &safi);
8722
8723 prefix_str = yang_dnode_get_string(args->dnode, "./prefix");
8724 distance = yang_dnode_get_uint8(args->dnode, "./distance");
8725 if (yang_dnode_exists(args->dnode, "./access-list-policy-export"))
8726 access_list_str = yang_dnode_get_string(
8727 args->dnode, "./access-list-policy-export");
8728
8729 if (bgp_distance_unset(distance, prefix_str, access_list_str, afi, safi,
8730 args->errmsg, args->errmsg_len)
8731 != CMD_SUCCESS)
8732 return NB_ERR_INCONSISTENCY;
8733
8734 return NB_OK;
8735 }
8736
8737 /*
8738 * XPath:
8739 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance-route
8740 */
8741 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_route_create(
8742 struct nb_cb_create_args *args)
8743 {
8744 switch (args->event) {
8745 case NB_EV_VALIDATE:
8746 case NB_EV_PREPARE:
8747 case NB_EV_ABORT:
8748 case NB_EV_APPLY:
8749 /* TODO: implement me. */
8750 break;
8751 }
8752
8753 return NB_OK;
8754 }
8755
8756 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_route_destroy(
8757 struct nb_cb_destroy_args *args)
8758 {
8759 switch (args->event) {
8760 case NB_EV_VALIDATE:
8761 case NB_EV_PREPARE:
8762 case NB_EV_ABORT:
8763 return NB_OK;
8764 case NB_EV_APPLY:
8765 return bgp_global_afi_safi_admin_distance_route_destroy(args);
8766 }
8767
8768 return NB_OK;
8769 }
8770
8771 /*
8772 * XPath:
8773 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance-route/distance
8774 */
8775 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_route_distance_modify(
8776 struct nb_cb_modify_args *args)
8777 {
8778 switch (args->event) {
8779 case NB_EV_VALIDATE:
8780 case NB_EV_PREPARE:
8781 case NB_EV_ABORT:
8782 case NB_EV_APPLY:
8783 /* TODO: implement me. */
8784 break;
8785 }
8786
8787 return NB_OK;
8788 }
8789
8790 /*
8791 * XPath:
8792 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance-route/access-list-policy-export
8793 */
8794 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_route_access_list_policy_export_modify(
8795 struct nb_cb_modify_args *args)
8796 {
8797 switch (args->event) {
8798 case NB_EV_VALIDATE:
8799 case NB_EV_PREPARE:
8800 case NB_EV_ABORT:
8801 case NB_EV_APPLY:
8802 /* TODO: implement me. */
8803 break;
8804 }
8805
8806 return NB_OK;
8807 }
8808
8809 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_route_access_list_policy_export_destroy(
8810 struct nb_cb_destroy_args *args)
8811 {
8812 switch (args->event) {
8813 case NB_EV_VALIDATE:
8814 case NB_EV_PREPARE:
8815 case NB_EV_ABORT:
8816 case NB_EV_APPLY:
8817 /* TODO: implement me. */
8818 break;
8819 }
8820
8821 return NB_OK;
8822 }
8823
8824 void bgp_global_afi_safis_afi_safi_route_flap_dampening_apply_finish(
8825 struct nb_cb_apply_finish_args *args)
8826 {
8827 const struct lyd_node *af_dnode;
8828 struct bgp *bgp;
8829 const char *af_name;
8830 afi_t afi;
8831 safi_t safi;
8832 int half = DEFAULT_HALF_LIFE * 60;
8833 int reuse = DEFAULT_REUSE;
8834 int suppress = DEFAULT_SUPPRESS;
8835 int max;
8836 char ab_xpath[XPATH_MAXLEN];
8837
8838 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8839 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8840 yang_afi_safi_identity2value(af_name, &afi, &safi);
8841 bgp = nb_running_get_entry(af_dnode, NULL, true);
8842
8843 if (!yang_dnode_get_bool(args->dnode, "./enable")) {
8844 bgp_damp_disable(bgp, afi, safi);
8845 } else {
8846 half = yang_dnode_get_uint8(args->dnode, "./reach-decay");
8847 half *= 60;
8848 reuse = yang_dnode_get_uint16(args->dnode, "./reuse-above");
8849
8850 suppress =
8851 yang_dnode_get_uint16(args->dnode, "./suppress-above");
8852
8853 max = yang_dnode_get_uint8(args->dnode, "./unreach-decay");
8854 yang_dnode_get_path(args->dnode, ab_xpath, sizeof(ab_xpath));
8855 strlcat(ab_xpath, "/unreach-decay", sizeof(ab_xpath));
8856 if (yang_get_default_uint8(ab_xpath) == max)
8857 max = half * 4;
8858 else
8859 max *= 60;
8860
8861 bgp_damp_enable(bgp, afi, safi, half, reuse, suppress, max);
8862 }
8863 }
8864
8865 static int
8866 bgp_global_afi_safi_route_flap_validation(struct nb_cb_modify_args *args)
8867 {
8868 int reuse;
8869 int suppress;
8870
8871 if (yang_dnode_exists(args->dnode, "../suppress-above")
8872 && yang_dnode_exists(args->dnode, "../reuse-above")) {
8873 suppress =
8874 yang_dnode_get_uint16(args->dnode, "../suppress-above");
8875 reuse = yang_dnode_get_uint16(args->dnode, "../reuse-above");
8876 if (suppress < reuse) {
8877 snprintf(
8878 args->errmsg, args->errmsg_len,
8879 "Suppress value cannot be less than reuse value \n");
8880 return NB_ERR_VALIDATION;
8881 }
8882 }
8883 return NB_OK;
8884 }
8885
8886 /*
8887 * XPath:
8888 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/route-flap-dampening/enable
8889 */
8890 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_enable_modify(
8891 struct nb_cb_modify_args *args)
8892 {
8893 switch (args->event) {
8894 case NB_EV_VALIDATE:
8895 return bgp_global_afi_safi_route_flap_validation(args);
8896 case NB_EV_PREPARE:
8897 case NB_EV_ABORT:
8898 case NB_EV_APPLY:
8899 break;
8900 }
8901
8902 return NB_OK;
8903 }
8904
8905 /*
8906 * XPath:
8907 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/route-flap-dampening/reach-decay
8908 */
8909 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_reach_decay_modify(
8910 struct nb_cb_modify_args *args)
8911 {
8912 switch (args->event) {
8913 case NB_EV_VALIDATE:
8914 case NB_EV_PREPARE:
8915 case NB_EV_ABORT:
8916 case NB_EV_APPLY:
8917 /* TODO: implement me. */
8918 break;
8919 }
8920
8921 return NB_OK;
8922 }
8923
8924 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_reach_decay_destroy(
8925 struct nb_cb_destroy_args *args)
8926 {
8927 switch (args->event) {
8928 case NB_EV_VALIDATE:
8929 case NB_EV_PREPARE:
8930 case NB_EV_ABORT:
8931 case NB_EV_APPLY:
8932 /* TODO: implement me. */
8933 break;
8934 }
8935
8936 return NB_OK;
8937 }
8938
8939 /*
8940 * XPath:
8941 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/route-flap-dampening/reuse-above
8942 */
8943 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_reuse_above_modify(
8944 struct nb_cb_modify_args *args)
8945 {
8946 int reuse = DEFAULT_REUSE;
8947 int suppress = DEFAULT_SUPPRESS;
8948
8949 switch (args->event) {
8950 case NB_EV_VALIDATE:
8951 if (yang_dnode_exists(args->dnode, "../suppress-above"))
8952 suppress = yang_dnode_get_uint16(args->dnode,
8953 "../suppress-above");
8954 reuse = yang_dnode_get_uint16(args->dnode, "../reuse-above");
8955 if (suppress < reuse) {
8956 snprintf(
8957 args->errmsg, args->errmsg_len,
8958 "Suppress value cannot be less than reuse value \n");
8959 return NB_ERR_VALIDATION;
8960 }
8961 break;
8962 case NB_EV_PREPARE:
8963 case NB_EV_ABORT:
8964 case NB_EV_APPLY:
8965 /* TODO: implement me. */
8966 break;
8967 }
8968
8969 return NB_OK;
8970 }
8971
8972 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_reuse_above_destroy(
8973 struct nb_cb_destroy_args *args)
8974 {
8975 switch (args->event) {
8976 case NB_EV_VALIDATE:
8977 case NB_EV_PREPARE:
8978 case NB_EV_ABORT:
8979 case NB_EV_APPLY:
8980 /* TODO: implement me. */
8981 break;
8982 }
8983
8984 return NB_OK;
8985 }
8986
8987 /*
8988 * XPath:
8989 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/route-flap-dampening/suppress-above
8990 */
8991 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_suppress_above_modify(
8992 struct nb_cb_modify_args *args)
8993 {
8994 switch (args->event) {
8995 case NB_EV_VALIDATE:
8996 case NB_EV_PREPARE:
8997 case NB_EV_ABORT:
8998 case NB_EV_APPLY:
8999 /* TODO: implement me. */
9000 break;
9001 }
9002
9003 return NB_OK;
9004 }
9005
9006 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_suppress_above_destroy(
9007 struct nb_cb_destroy_args *args)
9008 {
9009 switch (args->event) {
9010 case NB_EV_VALIDATE:
9011 case NB_EV_PREPARE:
9012 case NB_EV_ABORT:
9013 case NB_EV_APPLY:
9014 /* TODO: implement me. */
9015 break;
9016 }
9017
9018 return NB_OK;
9019 }
9020
9021 /*
9022 * XPath:
9023 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/route-flap-dampening/unreach-decay
9024 */
9025 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_unreach_decay_modify(
9026 struct nb_cb_modify_args *args)
9027 {
9028 switch (args->event) {
9029 case NB_EV_VALIDATE:
9030 case NB_EV_PREPARE:
9031 case NB_EV_ABORT:
9032 case NB_EV_APPLY:
9033 /* TODO: implement me. */
9034 break;
9035 }
9036
9037 return NB_OK;
9038 }
9039
9040 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_unreach_decay_destroy(
9041 struct nb_cb_destroy_args *args)
9042 {
9043 switch (args->event) {
9044 case NB_EV_VALIDATE:
9045 case NB_EV_PREPARE:
9046 case NB_EV_ABORT:
9047 case NB_EV_APPLY:
9048 /* TODO: implement me. */
9049 break;
9050 }
9051
9052 return NB_OK;
9053 }
9054
9055 static int
9056 bgp_global_afi_safi_ip_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
9057 struct nb_cb_modify_args *args)
9058 {
9059 const struct lyd_node *af_dnode;
9060 struct bgp *bgp;
9061 const char *af_name;
9062 afi_t afi;
9063 safi_t safi;
9064 uint16_t maxpaths, default_maxpaths;
9065 int ret;
9066 char xpath[XPATH_MAXLEN];
9067 char afi_xpath[XPATH_MAXLEN];
9068
9069 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9070 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9071 yang_afi_safi_identity2value(af_name, &afi, &safi);
9072 bgp = nb_running_get_entry(af_dnode, NULL, true);
9073 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
9074
9075 snprintf(xpath, sizeof(xpath), FRR_BGP_GLOBAL_XPATH, "frr-bgp:bgp",
9076 "bgp", bgp->name ? bgp->name : VRF_DEFAULT_NAME);
9077 snprintf(
9078 afi_xpath, sizeof(afi_xpath),
9079 "/global/afi-safis/afi-safi[afi-safi-name='%s']/%s/use-multiple-paths/ebgp/maximum-paths",
9080 yang_afi_safi_value2identity(afi, safi),
9081 bgp_afi_safi_get_container_str(afi, safi));
9082 strlcat(xpath, afi_xpath, sizeof(xpath));
9083 default_maxpaths = yang_get_default_uint16(xpath);
9084
9085 ret = bgp_maxpaths_config_vty(bgp, afi, safi, BGP_PEER_EBGP, maxpaths,
9086 0, maxpaths != default_maxpaths ? 1 : 0,
9087 args->errmsg, args->errmsg_len);
9088 if (ret != CMD_SUCCESS)
9089 return NB_ERR_INCONSISTENCY;
9090
9091 return NB_OK;
9092 }
9093
9094 /*
9095 * XPath:
9096 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/use-multiple-paths/ebgp/maximum-paths
9097 */
9098 int bgp_global_afi_safis_afi_safi_ipv4_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
9099 struct nb_cb_modify_args *args)
9100 {
9101 uint16_t maxpaths;
9102
9103 switch (args->event) {
9104 case NB_EV_VALIDATE:
9105 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
9106 if (maxpaths > multipath_num) {
9107 snprintf(args->errmsg, args->errmsg_len,
9108 "maxpaths %u is out of range %u", maxpaths,
9109 multipath_num);
9110 return NB_ERR_VALIDATION;
9111 }
9112 break;
9113 case NB_EV_PREPARE:
9114 case NB_EV_ABORT:
9115 return NB_OK;
9116 case NB_EV_APPLY:
9117 return bgp_global_afi_safi_ip_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
9118 args);
9119 }
9120
9121 return NB_OK;
9122 }
9123
9124 /*
9125 * XPath:
9126 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/use-multiple-paths/ibgp
9127 */
9128 void bgp_global_afi_safi_ip_unicast_use_multiple_paths_ibgp_maximum_paths_apply_finish(
9129 struct nb_cb_apply_finish_args *args)
9130 {
9131 const struct lyd_node *af_dnode;
9132 struct bgp *bgp;
9133 const char *af_name;
9134 afi_t afi;
9135 safi_t safi;
9136 uint16_t maxpaths, default_maxpaths;
9137 char xpath[XPATH_MAXLEN];
9138 char afi_xpath[XPATH_MAXLEN];
9139 uint16_t options = 0;
9140
9141 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9142 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9143 yang_afi_safi_identity2value(af_name, &afi, &safi);
9144 bgp = nb_running_get_entry(af_dnode, NULL, true);
9145
9146 maxpaths = yang_dnode_get_uint16(args->dnode, "./maximum-paths");
9147 if (yang_dnode_get_bool(args->dnode, "./cluster-length-list"))
9148 options = BGP_FLAG_IBGP_MULTIPATH_SAME_CLUSTERLEN;
9149
9150 snprintf(xpath, sizeof(xpath), FRR_BGP_GLOBAL_XPATH, "frr-bgp:bgp",
9151 "bgp", bgp->name ? bgp->name : VRF_DEFAULT_NAME);
9152 snprintf(
9153 afi_xpath, sizeof(afi_xpath),
9154 "/global/afi-safis/afi-safi[afi-safi-name='%s']/%s/use-multiple-paths/ibgp/maximum-paths",
9155 yang_afi_safi_value2identity(afi, safi),
9156 bgp_afi_safi_get_container_str(afi, safi));
9157 strlcat(xpath, afi_xpath, sizeof(xpath));
9158 default_maxpaths = yang_get_default_uint16(xpath);
9159
9160 bgp_maxpaths_config_vty(bgp, afi, safi, BGP_PEER_IBGP, maxpaths,
9161 options, maxpaths != default_maxpaths ? 1 : 0,
9162 args->errmsg, args->errmsg_len);
9163 }
9164
9165 /*
9166 * XPath:
9167 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/use-multiple-paths/ibgp/maximum-paths
9168 */
9169 int bgp_global_afi_safis_afi_safi_ipv4_unicast_use_multiple_paths_ibgp_maximum_paths_modify(
9170 struct nb_cb_modify_args *args)
9171 {
9172 uint16_t maxpaths;
9173
9174 switch (args->event) {
9175 case NB_EV_VALIDATE:
9176 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
9177 if (maxpaths > multipath_num) {
9178 snprintf(args->errmsg, args->errmsg_len,
9179 "maxpaths %u is out of range %u", maxpaths,
9180 multipath_num);
9181 return NB_ERR_VALIDATION;
9182 }
9183 break;
9184 case NB_EV_PREPARE:
9185 case NB_EV_ABORT:
9186 return NB_OK;
9187 case NB_EV_APPLY:
9188 break;
9189 }
9190
9191 return NB_OK;
9192 }
9193
9194 /*
9195 * XPath:
9196 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/use-multiple-paths/ibgp/cluster-length-list
9197 */
9198 int bgp_global_afi_safis_afi_safi_ipv4_unicast_use_multiple_paths_ibgp_cluster_length_list_modify(
9199 struct nb_cb_modify_args *args)
9200 {
9201 switch (args->event) {
9202 case NB_EV_VALIDATE:
9203 case NB_EV_PREPARE:
9204 case NB_EV_ABORT:
9205 case NB_EV_APPLY:
9206 /* TODO: implement me. */
9207 break;
9208 }
9209
9210 return NB_OK;
9211 }
9212
9213 int bgp_global_afi_safis_afi_safi_ipv4_unicast_use_multiple_paths_ibgp_cluster_length_list_destroy(
9214 struct nb_cb_destroy_args *args)
9215 {
9216 switch (args->event) {
9217 case NB_EV_VALIDATE:
9218 case NB_EV_PREPARE:
9219 case NB_EV_ABORT:
9220 case NB_EV_APPLY:
9221 /* TODO: implement me. */
9222 break;
9223 }
9224
9225 return NB_OK;
9226 }
9227
9228 void bgp_global_afi_safi_ip_unicast_redistribution_list_apply_finish(
9229 struct nb_cb_apply_finish_args *args)
9230 {
9231 const struct lyd_node *af_dnode;
9232 struct bgp *bgp;
9233 const char *af_name;
9234 afi_t afi;
9235 safi_t safi;
9236 int route_type;
9237 int route_instance;
9238 struct bgp_redist *red;
9239 bool changed = false;
9240 struct route_map *route_map = NULL;
9241 const char *rmap_name = NULL;
9242 uint32_t metric = 0;
9243
9244 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9245 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9246 yang_afi_safi_identity2value(af_name, &afi, &safi);
9247 bgp = nb_running_get_entry(af_dnode, NULL, true);
9248
9249 route_type = yang_dnode_get_enum(args->dnode, "./route-type");
9250 route_instance = yang_dnode_get_uint16(args->dnode, "./route-instance");
9251
9252 red = bgp_redist_add(bgp, afi, route_type, route_instance);
9253
9254 if (yang_dnode_exists(args->dnode, "./rmap-policy-import")) {
9255 rmap_name = yang_dnode_get_string(args->dnode,
9256 "./rmap-policy-import");
9257 route_map = route_map_lookup_by_name(rmap_name);
9258
9259 changed = bgp_redistribute_rmap_set(red, rmap_name, route_map);
9260 }
9261
9262 if (yang_dnode_exists(args->dnode, "./metric")) {
9263 metric = yang_dnode_get_uint32(args->dnode, "./metric");
9264 changed |= bgp_redistribute_metric_set(bgp, red, afi,
9265 route_type, metric);
9266 }
9267
9268 bgp_redistribute_set(bgp, afi, route_type, route_instance, changed);
9269 }
9270
9271 /*
9272 * XPath:
9273 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/redistribution-list
9274 */
9275 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_create(
9276 struct nb_cb_create_args *args)
9277 {
9278 switch (args->event) {
9279 case NB_EV_VALIDATE:
9280 case NB_EV_PREPARE:
9281 case NB_EV_ABORT:
9282 case NB_EV_APPLY:
9283 /* TODO: implement me. */
9284 break;
9285 }
9286
9287 return NB_OK;
9288 }
9289
9290 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_destroy(
9291 struct nb_cb_destroy_args *args)
9292 {
9293 const struct lyd_node *af_dnode;
9294 struct bgp *bgp;
9295 const char *af_name;
9296 afi_t afi;
9297 safi_t safi;
9298 int route_type;
9299 int route_instance;
9300
9301 switch (args->event) {
9302 case NB_EV_VALIDATE:
9303 case NB_EV_PREPARE:
9304 case NB_EV_ABORT:
9305 return NB_OK;
9306 case NB_EV_APPLY:
9307 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9308 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9309 yang_afi_safi_identity2value(af_name, &afi, &safi);
9310 bgp = nb_running_get_entry(af_dnode, NULL, true);
9311
9312 route_type = yang_dnode_get_enum(args->dnode, "./route-type");
9313 route_instance =
9314 yang_dnode_get_uint16(args->dnode, "./route-instance");
9315
9316 bgp_redistribute_unset(bgp, afi, route_type, route_instance);
9317
9318 break;
9319 }
9320
9321 return NB_OK;
9322 }
9323
9324 /*
9325 * XPath:
9326 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/redistribution-list/metric
9327 */
9328 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_metric_modify(
9329 struct nb_cb_modify_args *args)
9330 {
9331 switch (args->event) {
9332 case NB_EV_VALIDATE:
9333 case NB_EV_PREPARE:
9334 case NB_EV_ABORT:
9335 case NB_EV_APPLY:
9336 /* TODO: implement me. */
9337 break;
9338 }
9339
9340 return NB_OK;
9341 }
9342
9343 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_metric_destroy(
9344 struct nb_cb_destroy_args *args)
9345 {
9346 switch (args->event) {
9347 case NB_EV_VALIDATE:
9348 case NB_EV_PREPARE:
9349 case NB_EV_ABORT:
9350 case NB_EV_APPLY:
9351 /* TODO: implement me. */
9352 break;
9353 }
9354
9355 return NB_OK;
9356 }
9357
9358 /*
9359 * XPath:
9360 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/redistribution-list/rmap-policy-import
9361 */
9362 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_rmap_policy_import_modify(
9363 struct nb_cb_modify_args *args)
9364 {
9365 switch (args->event) {
9366 case NB_EV_VALIDATE:
9367 case NB_EV_PREPARE:
9368 case NB_EV_ABORT:
9369 case NB_EV_APPLY:
9370 /* TODO: implement me. */
9371 break;
9372 }
9373
9374 return NB_OK;
9375 }
9376
9377 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_rmap_policy_import_destroy(
9378 struct nb_cb_destroy_args *args)
9379 {
9380 switch (args->event) {
9381 case NB_EV_VALIDATE:
9382 case NB_EV_PREPARE:
9383 case NB_EV_ABORT:
9384 case NB_EV_APPLY:
9385 /* TODO: implement me. */
9386 break;
9387 }
9388
9389 return NB_OK;
9390 }
9391
9392 static int
9393 bgp_global_afi_safis_admin_distance_modify(struct nb_cb_apply_finish_args *args)
9394 {
9395 struct bgp *bgp;
9396 const struct lyd_node *af_dnode;
9397 const char *af_name;
9398 afi_t afi;
9399 safi_t safi;
9400 uint8_t distance_ebgp, distance_ibgp, distance_local;
9401
9402 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9403 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9404 yang_afi_safi_identity2value(af_name, &afi, &safi);
9405 bgp = nb_running_get_entry(af_dnode, NULL, true);
9406
9407 distance_ebgp = yang_dnode_get_uint8(args->dnode, "./external");
9408 distance_ibgp = yang_dnode_get_uint8(args->dnode, "./internal");
9409 distance_local = yang_dnode_get_uint8(args->dnode, "./local");
9410
9411 bgp->distance_ebgp[afi][safi] = distance_ebgp;
9412 bgp->distance_ibgp[afi][safi] = distance_ibgp;
9413 bgp->distance_local[afi][safi] = distance_local;
9414
9415 bgp_announce_routes_distance_update(bgp, afi, safi);
9416
9417 return NB_OK;
9418 }
9419
9420 /*
9421 * XPath:
9422 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance
9423 */
9424 void bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_apply_finish(
9425 struct nb_cb_apply_finish_args *args)
9426 {
9427 bgp_global_afi_safis_admin_distance_modify(args);
9428 }
9429
9430 /*
9431 * XPath:
9432 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance/external
9433 */
9434 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_external_modify(
9435 struct nb_cb_modify_args *args)
9436 {
9437 /* Handled in admin_distance_apply_finish callback */
9438
9439 return NB_OK;
9440 }
9441
9442 /*
9443 * XPath:
9444 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance/internal
9445 */
9446 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_internal_modify(
9447 struct nb_cb_modify_args *args)
9448 {
9449 /* Handled in admin_distance_apply_finish callback */
9450
9451 return NB_OK;
9452 }
9453
9454 /*
9455 * XPath:
9456 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance/local
9457 */
9458 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_local_modify(
9459 struct nb_cb_modify_args *args)
9460 {
9461 /* Handled in admin_distance_apply_finish callback */
9462
9463 return NB_OK;
9464 }
9465
9466 /*
9467 * XPath:
9468 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/filter-config/rmap-export
9469 */
9470 int bgp_global_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_modify(
9471 struct nb_cb_modify_args *args)
9472 {
9473 switch (args->event) {
9474 case NB_EV_VALIDATE:
9475 case NB_EV_PREPARE:
9476 case NB_EV_ABORT:
9477 case NB_EV_APPLY:
9478 /* TODO: implement me. */
9479 break;
9480 }
9481
9482 return NB_OK;
9483 }
9484
9485 int bgp_global_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_destroy(
9486 struct nb_cb_destroy_args *args)
9487 {
9488 switch (args->event) {
9489 case NB_EV_VALIDATE:
9490 case NB_EV_PREPARE:
9491 case NB_EV_ABORT:
9492 case NB_EV_APPLY:
9493 /* TODO: implement me. */
9494 break;
9495 }
9496
9497 return NB_OK;
9498 }
9499
9500 static int bgp_global_afi_safi_ip_unicast_vpn_config_rd_modify(
9501 struct nb_cb_modify_args *args)
9502 {
9503 struct bgp *bgp;
9504 const struct lyd_node *af_dnode;
9505 const char *af_name;
9506 afi_t afi;
9507 safi_t safi;
9508 const char *rd_str = NULL;
9509 struct prefix_rd prd;
9510
9511 bgp = nb_running_get_entry(args->dnode, NULL, true);
9512
9513 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9514 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9515 yang_afi_safi_identity2value(af_name, &afi, &safi);
9516
9517 rd_str = yang_dnode_get_string(args->dnode, NULL);
9518 if (!str2prefix_rd(rd_str, &prd)) {
9519 snprintf(args->errmsg, args->errmsg_len, "Malformed rd %s\n",
9520 rd_str);
9521 return NB_ERR_INCONSISTENCY;
9522 }
9523
9524 /*
9525 * pre-change: un-export vpn routes (vpn->vrf routes unaffected)
9526 */
9527 vpn_leak_prechange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9528 bgp);
9529
9530 bgp->vpn_policy[afi].tovpn_rd = prd;
9531 SET_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_RD_SET);
9532
9533 /* post-change: re-export vpn routes */
9534 vpn_leak_postchange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9535 bgp);
9536
9537 return NB_OK;
9538 }
9539
9540 static int bgp_global_afi_safi_ip_unicast_vpn_config_rd_destroy(
9541 struct nb_cb_destroy_args *args)
9542 {
9543 struct bgp *bgp;
9544 const struct lyd_node *af_dnode;
9545 const char *af_name;
9546 afi_t afi;
9547 safi_t safi;
9548 const char *rd_str = NULL;
9549 struct prefix_rd prd;
9550
9551 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9552 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9553 yang_afi_safi_identity2value(af_name, &afi, &safi);
9554 bgp = nb_running_get_entry(af_dnode, NULL, true);
9555
9556 rd_str = yang_dnode_get_string(args->dnode, NULL);
9557 if (!str2prefix_rd(rd_str, &prd)) {
9558 snprintf(args->errmsg, args->errmsg_len, "Malformed rd %s \n",
9559 rd_str);
9560 return NB_ERR_INCONSISTENCY;
9561 }
9562
9563 /*
9564 * pre-change: un-export vpn routes (vpn->vrf routes unaffected)
9565 */
9566 vpn_leak_prechange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9567 bgp);
9568
9569 UNSET_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_RD_SET);
9570
9571 /* post-change: re-export vpn routes */
9572 vpn_leak_postchange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9573 bgp);
9574 return NB_OK;
9575 }
9576
9577 /*
9578 * XPath:
9579 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/rd
9580 */
9581 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rd_modify(
9582 struct nb_cb_modify_args *args)
9583 {
9584 struct bgp *bgp;
9585 const struct lyd_node *af_dnode;
9586 const char *af_name;
9587 afi_t afi;
9588 safi_t safi;
9589
9590 switch (args->event) {
9591 case NB_EV_VALIDATE:
9592 bgp = nb_running_get_entry(args->dnode, NULL, false);
9593 if (!bgp)
9594 return NB_OK;
9595
9596 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9597 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9598 yang_afi_safi_identity2value(af_name, &afi, &safi);
9599
9600 if (!vpn_policy_check_import(bgp, afi, safi, false,
9601 args->errmsg, args->errmsg_len))
9602 return NB_ERR_VALIDATION;
9603 break;
9604 case NB_EV_PREPARE:
9605 case NB_EV_ABORT:
9606 return NB_OK;
9607 case NB_EV_APPLY:
9608
9609 return bgp_global_afi_safi_ip_unicast_vpn_config_rd_modify(
9610 args);
9611
9612 break;
9613 }
9614
9615 return NB_OK;
9616 }
9617
9618 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rd_destroy(
9619 struct nb_cb_destroy_args *args)
9620 {
9621 switch (args->event) {
9622 case NB_EV_VALIDATE:
9623 case NB_EV_PREPARE:
9624 case NB_EV_ABORT:
9625 return NB_OK;
9626 case NB_EV_APPLY:
9627 return bgp_global_afi_safi_ip_unicast_vpn_config_rd_destroy(
9628 args);
9629 }
9630
9631 return NB_OK;
9632 }
9633
9634 /*
9635 * XPath:
9636 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/label
9637 */
9638 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_label_modify(
9639 struct nb_cb_modify_args *args)
9640 {
9641 switch (args->event) {
9642 case NB_EV_VALIDATE:
9643 case NB_EV_PREPARE:
9644 case NB_EV_ABORT:
9645 case NB_EV_APPLY:
9646 /* TODO: implement me. */
9647 break;
9648 }
9649
9650 return NB_OK;
9651 }
9652
9653 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_label_destroy(
9654 struct nb_cb_destroy_args *args)
9655 {
9656 switch (args->event) {
9657 case NB_EV_VALIDATE:
9658 case NB_EV_PREPARE:
9659 case NB_EV_ABORT:
9660 case NB_EV_APPLY:
9661 /* TODO: implement me. */
9662 break;
9663 }
9664
9665 return NB_OK;
9666 }
9667
9668 /*
9669 * XPath:
9670 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/label-auto
9671 */
9672 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_label_auto_modify(
9673 struct nb_cb_modify_args *args)
9674 {
9675 switch (args->event) {
9676 case NB_EV_VALIDATE:
9677 case NB_EV_PREPARE:
9678 case NB_EV_ABORT:
9679 case NB_EV_APPLY:
9680 /* TODO: implement me. */
9681 break;
9682 }
9683
9684 return NB_OK;
9685 }
9686
9687 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_label_auto_destroy(
9688 struct nb_cb_destroy_args *args)
9689 {
9690 switch (args->event) {
9691 case NB_EV_VALIDATE:
9692 case NB_EV_PREPARE:
9693 case NB_EV_ABORT:
9694 case NB_EV_APPLY:
9695 /* TODO: implement me. */
9696 break;
9697 }
9698
9699 return NB_OK;
9700 }
9701
9702 static int bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_modify(
9703 struct nb_cb_modify_args *args)
9704 {
9705 struct bgp *bgp;
9706 const struct lyd_node *af_dnode;
9707 const char *af_name;
9708 afi_t afi;
9709 safi_t safi;
9710 struct prefix p;
9711
9712 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9713 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9714 yang_afi_safi_identity2value(af_name, &afi, &safi);
9715 bgp = nb_running_get_entry(af_dnode, NULL, true);
9716
9717 yang_dnode_get_prefix(&p, args->dnode, NULL);
9718
9719 /*
9720 * pre-change: un-export vpn routes (vpn->vrf routes unaffected)
9721 */
9722 vpn_leak_prechange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9723 bgp);
9724
9725 bgp->vpn_policy[afi].tovpn_nexthop = p;
9726 SET_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_NEXTHOP_SET);
9727
9728 /* post-change: re-export vpn routes */
9729 vpn_leak_postchange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9730 bgp);
9731
9732 return NB_OK;
9733 }
9734
9735 static int bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_destroy(
9736 struct nb_cb_destroy_args *args)
9737 {
9738 struct bgp *bgp;
9739 const struct lyd_node *af_dnode;
9740 const char *af_name;
9741 afi_t afi;
9742 safi_t safi;
9743 struct prefix p;
9744
9745 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9746 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9747 yang_afi_safi_identity2value(af_name, &afi, &safi);
9748 bgp = nb_running_get_entry(af_dnode, NULL, true);
9749
9750 yang_dnode_get_prefix(&p, args->dnode, NULL);
9751
9752 /*
9753 * pre-change: un-export vpn routes (vpn->vrf routes unaffected)
9754 */
9755 vpn_leak_prechange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9756 bgp);
9757 UNSET_FLAG(bgp->vpn_policy[afi].flags,
9758 BGP_VPN_POLICY_TOVPN_NEXTHOP_SET);
9759 /* post-change: re-export vpn routes */
9760 vpn_leak_postchange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9761 bgp);
9762 return NB_OK;
9763 }
9764
9765 /*
9766 * XPath:
9767 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/nexthop
9768 */
9769 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_nexthop_modify(
9770 struct nb_cb_modify_args *args)
9771 {
9772 struct bgp *bgp;
9773 const struct lyd_node *af_dnode;
9774 const char *af_name;
9775 afi_t afi;
9776 safi_t safi;
9777
9778 switch (args->event) {
9779 case NB_EV_VALIDATE:
9780 bgp = nb_running_get_entry(args->dnode, NULL, false);
9781 if (!bgp)
9782 return NB_OK;
9783 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9784 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9785 yang_afi_safi_identity2value(af_name, &afi, &safi);
9786
9787 if (!vpn_policy_check_import(bgp, afi, safi, false,
9788 args->errmsg, args->errmsg_len))
9789 return NB_ERR_VALIDATION;
9790
9791 break;
9792 case NB_EV_PREPARE:
9793 case NB_EV_ABORT:
9794 return NB_OK;
9795 case NB_EV_APPLY:
9796 return bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_modify(
9797 args);
9798 }
9799
9800 return NB_OK;
9801 }
9802
9803 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_nexthop_destroy(
9804 struct nb_cb_destroy_args *args)
9805 {
9806 switch (args->event) {
9807 case NB_EV_VALIDATE:
9808 case NB_EV_PREPARE:
9809 case NB_EV_ABORT:
9810 return NB_OK;
9811 case NB_EV_APPLY:
9812 return bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_destroy(
9813 args);
9814 }
9815
9816 return NB_OK;
9817 }
9818
9819 static int bgp_global_afi_safi_ip_unicast_vpn_config_import_export_vpn_modify(
9820 struct nb_cb_modify_args *args, const char *direction_str,
9821 bool is_enable)
9822 {
9823 struct bgp *bgp;
9824 const struct lyd_node *af_dnode;
9825 const char *af_name;
9826 afi_t afi;
9827 safi_t safi;
9828 int previous_state;
9829 int flag;
9830 vpn_policy_direction_t dir;
9831
9832 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9833 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9834 yang_afi_safi_identity2value(af_name, &afi, &safi);
9835 bgp = nb_running_get_entry(af_dnode, NULL, true);
9836
9837 if (!strcmp(direction_str, "import")) {
9838 flag = BGP_CONFIG_MPLSVPN_TO_VRF_IMPORT;
9839 dir = BGP_VPN_POLICY_DIR_FROMVPN;
9840 } else if (!strcmp(direction_str, "export")) {
9841 flag = BGP_CONFIG_VRF_TO_MPLSVPN_EXPORT;
9842 dir = BGP_VPN_POLICY_DIR_TOVPN;
9843 } else {
9844 snprintf(args->errmsg, args->errmsg_len,
9845 "unknown direction %s\n", direction_str);
9846 return NB_ERR_INCONSISTENCY;
9847 }
9848
9849 previous_state = CHECK_FLAG(bgp->af_flags[afi][safi], flag);
9850
9851 if (is_enable) {
9852 SET_FLAG(bgp->af_flags[afi][safi], flag);
9853 if (!previous_state) {
9854 /* trigger export current vrf */
9855 vpn_leak_postchange(dir, afi, bgp_get_default(), bgp);
9856 }
9857 } else {
9858 if (previous_state) {
9859 /* trigger un-export current vrf */
9860 vpn_leak_prechange(dir, afi, bgp_get_default(), bgp);
9861 }
9862 UNSET_FLAG(bgp->af_flags[afi][safi], flag);
9863 }
9864
9865 return NB_OK;
9866 }
9867
9868 /*
9869 * XPath:
9870 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/import-vpn
9871 */
9872 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_import_vpn_modify(
9873 struct nb_cb_modify_args *args)
9874 {
9875 bool is_enable = false;
9876 struct bgp *bgp;
9877
9878 switch (args->event) {
9879 case NB_EV_VALIDATE:
9880 bgp = nb_running_get_entry(args->dnode, NULL, false);
9881 if (!bgp)
9882 return NB_OK;
9883
9884 if (BGP_INSTANCE_TYPE_VRF != bgp->inst_type
9885 && BGP_INSTANCE_TYPE_DEFAULT != bgp->inst_type) {
9886 snprintf(
9887 args->errmsg, args->errmsg_len,
9888 "import|export vpn valid only for bgp vrf or default instance");
9889 return NB_ERR_VALIDATION;
9890 }
9891
9892 break;
9893 case NB_EV_PREPARE:
9894 case NB_EV_ABORT:
9895 return NB_OK;
9896 case NB_EV_APPLY:
9897 if (yang_dnode_get_bool(args->dnode, NULL))
9898 is_enable = true;
9899
9900 return bgp_global_afi_safi_ip_unicast_vpn_config_import_export_vpn_modify(
9901 args, "import", is_enable);
9902 }
9903
9904 return NB_OK;
9905 }
9906
9907 /*
9908 * XPath:
9909 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/export-vpn
9910 */
9911 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_export_vpn_modify(
9912 struct nb_cb_modify_args *args)
9913 {
9914 bool is_enable = false;
9915 struct bgp *bgp;
9916
9917 switch (args->event) {
9918 case NB_EV_VALIDATE:
9919 bgp = nb_running_get_entry(args->dnode, NULL, false);
9920 if (!bgp)
9921 return NB_OK;
9922
9923 if (BGP_INSTANCE_TYPE_VRF != bgp->inst_type
9924 && BGP_INSTANCE_TYPE_DEFAULT != bgp->inst_type) {
9925 snprintf(
9926 args->errmsg, args->errmsg_len,
9927 "import|export vpn valid only for bgp vrf or default instance");
9928 return NB_ERR_VALIDATION;
9929 }
9930 break;
9931 case NB_EV_PREPARE:
9932 case NB_EV_ABORT:
9933 return NB_OK;
9934 case NB_EV_APPLY:
9935 if (yang_dnode_get_bool(args->dnode, NULL))
9936 is_enable = true;
9937
9938 return bgp_global_afi_safi_ip_unicast_vpn_config_import_export_vpn_modify(
9939 args, "export", is_enable);
9940 }
9941
9942 return NB_OK;
9943 }
9944
9945
9946 static int bgp_global_afi_safi_ip_unicast_vpn_config_import_vrfs_create(
9947 struct nb_cb_create_args *args)
9948 {
9949 struct bgp *bgp;
9950 const struct lyd_node *af_dnode;
9951 const char *af_name;
9952 afi_t afi;
9953 safi_t safi;
9954 int ret = 0;
9955 as_t as;
9956 struct bgp *vrf_bgp, *bgp_default;
9957 const char *import_name;
9958 char *vname;
9959 enum bgp_instance_type bgp_type = BGP_INSTANCE_TYPE_VRF;
9960 struct listnode *node;
9961
9962 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9963 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9964 yang_afi_safi_identity2value(af_name, &afi, &safi);
9965 bgp = nb_running_get_entry(af_dnode, NULL, true);
9966
9967 as = bgp->as;
9968 import_name = yang_dnode_get_string(args->dnode, "./vrf");
9969
9970 if (((BGP_INSTANCE_TYPE_DEFAULT == bgp->inst_type)
9971 && (strcmp(import_name, VRF_DEFAULT_NAME) == 0))
9972 || (bgp->name && (strcmp(import_name, bgp->name) == 0))) {
9973 snprintf(args->errmsg, args->errmsg_len,
9974 "Cannot %s vrf %s into itself\n", "import",
9975 import_name);
9976 return NB_ERR_INCONSISTENCY;
9977 }
9978
9979 bgp_default = bgp_get_default();
9980 if (!bgp_default) {
9981 /* Auto-create assuming the same AS */
9982 ret = bgp_get_vty(&bgp_default, &as, NULL,
9983 BGP_INSTANCE_TYPE_DEFAULT);
9984
9985 if (ret) {
9986 snprintf(
9987 args->errmsg, args->errmsg_len,
9988 "VRF default is not configured as a bgp instance");
9989 return NB_ERR_INCONSISTENCY;
9990 }
9991 }
9992
9993 vrf_bgp = bgp_lookup_by_name(import_name);
9994 if (!vrf_bgp) {
9995 if (strcmp(import_name, VRF_DEFAULT_NAME) == 0)
9996 vrf_bgp = bgp_default;
9997 else
9998 /* Auto-create assuming the same AS */
9999 ret = bgp_get_vty(&vrf_bgp, &as, import_name, bgp_type);
10000
10001 if (ret) {
10002 snprintf(args->errmsg, args->errmsg_len,
10003 "VRF %s is not configured as a bgp instance\n",
10004 import_name);
10005 return NB_ERR_INCONSISTENCY;
10006 }
10007 }
10008
10009 /* Already importing from "import_vrf"? */
10010 for (ALL_LIST_ELEMENTS_RO(bgp->vpn_policy[afi].import_vrf, node,
10011 vname)) {
10012 if (strcmp(vname, import_name) == 0) {
10013 snprintf(args->errmsg, args->errmsg_len,
10014 "already importing from vrf %s", import_name);
10015 return NB_ERR_INCONSISTENCY;
10016 }
10017 }
10018
10019 vrf_import_from_vrf(bgp, vrf_bgp, afi, safi);
10020
10021 return NB_OK;
10022 }
10023
10024
10025 static int bgp_global_afi_safi_ip_unicast_vpn_config_import_vrf_list_destroy(
10026 struct nb_cb_destroy_args *args)
10027 {
10028 struct bgp *bgp;
10029 const struct lyd_node *af_dnode;
10030 const char *af_name;
10031 afi_t afi;
10032 safi_t safi;
10033 int ret = 0;
10034 as_t as;
10035 struct bgp *vrf_bgp, *bgp_default;
10036 const char *import_name;
10037 enum bgp_instance_type bgp_type = BGP_INSTANCE_TYPE_VRF;
10038
10039 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10040 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10041 yang_afi_safi_identity2value(af_name, &afi, &safi);
10042 bgp = nb_running_get_entry(af_dnode, NULL, true);
10043
10044 as = bgp->as;
10045 import_name = yang_dnode_get_string(args->dnode, "./vrf");
10046
10047 if (((BGP_INSTANCE_TYPE_DEFAULT == bgp->inst_type)
10048 && (strcmp(import_name, VRF_DEFAULT_NAME) == 0))
10049 || (bgp->name && (strcmp(import_name, bgp->name) == 0))) {
10050 snprintf(args->errmsg, args->errmsg_len,
10051 "Cannot %s vrf %s into itself\n", "unimport",
10052 import_name);
10053 return NB_ERR_INCONSISTENCY;
10054 }
10055
10056 bgp_default = bgp_get_default();
10057 if (!bgp_default) {
10058 /* Auto-create assuming the same AS */
10059 ret = bgp_get_vty(&bgp_default, &as, NULL,
10060 BGP_INSTANCE_TYPE_DEFAULT);
10061
10062 if (ret) {
10063 snprintf(
10064 args->errmsg, args->errmsg_len, "%s",
10065 "VRF default is not configured as a bgp instance");
10066 return NB_ERR_INCONSISTENCY;
10067 }
10068 }
10069
10070 vrf_bgp = bgp_lookup_by_name(import_name);
10071 if (!vrf_bgp) {
10072 if (strcmp(import_name, VRF_DEFAULT_NAME) == 0)
10073 vrf_bgp = bgp_default;
10074 else
10075 /* Auto-create assuming the same AS */
10076 ret = bgp_get_vty(&vrf_bgp, &as, import_name, bgp_type);
10077
10078 if (ret) {
10079 snprintf(args->errmsg, args->errmsg_len,
10080 "VRF %s is not configured as a bgp instance\n",
10081 import_name);
10082 return NB_ERR_INCONSISTENCY;
10083 }
10084 }
10085
10086 vrf_unimport_from_vrf(bgp, vrf_bgp, afi, safi);
10087
10088 return NB_OK;
10089 }
10090
10091
10092 /*
10093 * XPath:
10094 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/import-vrf-list
10095 */
10096 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_import_vrf_list_create(
10097 struct nb_cb_create_args *args)
10098 {
10099 struct bgp *bgp;
10100 const struct lyd_node *af_dnode;
10101 const char *af_name;
10102 afi_t afi;
10103 safi_t safi;
10104
10105 switch (args->event) {
10106 case NB_EV_VALIDATE:
10107 bgp = nb_running_get_entry(args->dnode, NULL, false);
10108 if (!bgp)
10109 return NB_OK;
10110 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10111 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10112 yang_afi_safi_identity2value(af_name, &afi, &safi);
10113
10114 if (!vpn_policy_check_import(bgp, afi, safi, true, args->errmsg,
10115 args->errmsg_len))
10116 return NB_ERR_VALIDATION;
10117
10118 break;
10119 case NB_EV_PREPARE:
10120 case NB_EV_ABORT:
10121 return NB_OK;
10122 case NB_EV_APPLY:
10123 return bgp_global_afi_safi_ip_unicast_vpn_config_import_vrfs_create(
10124 args);
10125 }
10126
10127 return NB_OK;
10128 }
10129
10130 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_import_vrf_list_destroy(
10131 struct nb_cb_destroy_args *args)
10132 {
10133 switch (args->event) {
10134 case NB_EV_VALIDATE:
10135 case NB_EV_PREPARE:
10136 case NB_EV_ABORT:
10137 return NB_OK;
10138 case NB_EV_APPLY:
10139 return bgp_global_afi_safi_ip_unicast_vpn_config_import_vrf_list_destroy(
10140 args);
10141 }
10142
10143 return NB_OK;
10144 }
10145
10146 static int bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_modify(
10147 struct nb_cb_modify_args *args, const char *dstr)
10148 {
10149 struct bgp *bgp;
10150 const struct lyd_node *af_dnode;
10151 const char *af_name;
10152 afi_t afi;
10153 safi_t safi;
10154 const char *rmap_str = NULL;
10155 int dodir[BGP_VPN_POLICY_DIR_MAX] = {0};
10156 vpn_policy_direction_t dir;
10157
10158 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10159 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10160 yang_afi_safi_identity2value(af_name, &afi, &safi);
10161 bgp = nb_running_get_entry(af_dnode, NULL, true);
10162
10163 if (!strcmp(dstr, "import")) {
10164 rmap_str = yang_dnode_get_string(args->dnode, NULL);
10165 dodir[BGP_VPN_POLICY_DIR_FROMVPN] = 1;
10166 } else if (!strcmp(dstr, "export")) {
10167 rmap_str = yang_dnode_get_string(args->dnode, NULL);
10168 dodir[BGP_VPN_POLICY_DIR_TOVPN] = 1;
10169 } else if (!strcmp(dstr, "both")) {
10170 dodir[BGP_VPN_POLICY_DIR_FROMVPN] = 1;
10171 dodir[BGP_VPN_POLICY_DIR_TOVPN] = 1;
10172 }
10173
10174 for (dir = 0; dir < BGP_VPN_POLICY_DIR_MAX; ++dir) {
10175 if (!dodir[dir])
10176 continue;
10177
10178 vpn_leak_prechange(dir, afi, bgp_get_default(), bgp);
10179
10180 if (bgp->vpn_policy[afi].rmap_name[dir])
10181 XFREE(MTYPE_ROUTE_MAP_NAME,
10182 bgp->vpn_policy[afi].rmap_name[dir]);
10183 bgp->vpn_policy[afi].rmap_name[dir] =
10184 XSTRDUP(MTYPE_ROUTE_MAP_NAME, rmap_str);
10185 bgp->vpn_policy[afi].rmap[dir] =
10186 route_map_lookup_by_name(rmap_str);
10187 if (!bgp->vpn_policy[afi].rmap[dir])
10188 return NB_OK;
10189
10190
10191 vpn_leak_postchange(dir, afi, bgp_get_default(), bgp);
10192 }
10193
10194 return NB_OK;
10195 }
10196
10197 static int bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_destroy(
10198 struct nb_cb_destroy_args *args, const char *dstr)
10199 {
10200 struct bgp *bgp;
10201 const struct lyd_node *af_dnode;
10202 const char *af_name;
10203 afi_t afi;
10204 safi_t safi;
10205 int dodir[BGP_VPN_POLICY_DIR_MAX] = {0};
10206 vpn_policy_direction_t dir;
10207
10208 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10209 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10210 yang_afi_safi_identity2value(af_name, &afi, &safi);
10211 bgp = nb_running_get_entry(af_dnode, NULL, true);
10212
10213 if (!strcmp(dstr, "import")) {
10214 dodir[BGP_VPN_POLICY_DIR_FROMVPN] = 1;
10215 } else if (!strcmp(dstr, "export")) {
10216 dodir[BGP_VPN_POLICY_DIR_TOVPN] = 1;
10217 } else if (!strcmp(dstr, "both")) {
10218 dodir[BGP_VPN_POLICY_DIR_FROMVPN] = 1;
10219 dodir[BGP_VPN_POLICY_DIR_TOVPN] = 1;
10220 }
10221
10222 for (dir = 0; dir < BGP_VPN_POLICY_DIR_MAX; ++dir) {
10223 if (!dodir[dir])
10224 continue;
10225
10226 vpn_leak_prechange(dir, afi, bgp_get_default(), bgp);
10227
10228 if (bgp->vpn_policy[afi].rmap_name[dir])
10229 XFREE(MTYPE_ROUTE_MAP_NAME,
10230 bgp->vpn_policy[afi].rmap_name[dir]);
10231 bgp->vpn_policy[afi].rmap_name[dir] = NULL;
10232 bgp->vpn_policy[afi].rmap[dir] = NULL;
10233
10234 vpn_leak_postchange(dir, afi, bgp_get_default(), bgp);
10235 }
10236
10237 return NB_OK;
10238 }
10239
10240 /*
10241 * XPath:
10242 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/rmap-import
10243 */
10244 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rmap_import_modify(
10245 struct nb_cb_modify_args *args)
10246 {
10247 struct bgp *bgp;
10248 const struct lyd_node *af_dnode;
10249 const char *af_name;
10250 afi_t afi;
10251 safi_t safi;
10252
10253 switch (args->event) {
10254 case NB_EV_VALIDATE:
10255 bgp = nb_running_get_entry(args->dnode, NULL, false);
10256 if (!bgp)
10257 return NB_OK;
10258 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10259 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10260 yang_afi_safi_identity2value(af_name, &afi, &safi);
10261
10262 if (!vpn_policy_check_import(bgp, afi, safi, false,
10263 args->errmsg, args->errmsg_len))
10264 return NB_ERR_VALIDATION;
10265 break;
10266 case NB_EV_PREPARE:
10267 case NB_EV_ABORT:
10268 return NB_OK;
10269 case NB_EV_APPLY:
10270 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_modify(
10271 args, "import");
10272 }
10273
10274 return NB_OK;
10275 }
10276
10277 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rmap_import_destroy(
10278 struct nb_cb_destroy_args *args)
10279 {
10280 struct bgp *bgp;
10281 const struct lyd_node *af_dnode;
10282 const char *af_name;
10283 afi_t afi;
10284 safi_t safi;
10285
10286 switch (args->event) {
10287 case NB_EV_VALIDATE:
10288 bgp = nb_running_get_entry(args->dnode, NULL, false);
10289 if (!bgp)
10290 return NB_OK;
10291 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10292 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10293 yang_afi_safi_identity2value(af_name, &afi, &safi);
10294
10295 if (!vpn_policy_check_import(bgp, afi, safi, false,
10296 args->errmsg, args->errmsg_len))
10297 return NB_ERR_VALIDATION;
10298 break;
10299 case NB_EV_PREPARE:
10300 case NB_EV_ABORT:
10301 return NB_OK;
10302 case NB_EV_APPLY:
10303 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_destroy(
10304 args, "import");
10305 }
10306
10307 return NB_OK;
10308 }
10309
10310 /*
10311 * XPath:
10312 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/rmap-export
10313 */
10314 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rmap_export_modify(
10315 struct nb_cb_modify_args *args)
10316 {
10317 switch (args->event) {
10318 case NB_EV_VALIDATE:
10319 case NB_EV_PREPARE:
10320 case NB_EV_ABORT:
10321 return NB_OK;
10322 case NB_EV_APPLY:
10323 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_modify(
10324 args, "export");
10325 }
10326
10327 return NB_OK;
10328 }
10329
10330 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rmap_export_destroy(
10331 struct nb_cb_destroy_args *args)
10332 {
10333 switch (args->event) {
10334 case NB_EV_VALIDATE:
10335 case NB_EV_PREPARE:
10336 case NB_EV_ABORT:
10337 return NB_OK;
10338 case NB_EV_APPLY:
10339 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_destroy(
10340 args, "export");
10341 break;
10342 }
10343
10344 return NB_OK;
10345 }
10346
10347 /*
10348 * XPath:
10349 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/redirect-rt
10350 */
10351 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_redirect_rt_modify(
10352 struct nb_cb_modify_args *args)
10353 {
10354 switch (args->event) {
10355 case NB_EV_VALIDATE:
10356 case NB_EV_PREPARE:
10357 case NB_EV_ABORT:
10358 case NB_EV_APPLY:
10359 /* TODO: implement me. */
10360 break;
10361 }
10362
10363 return NB_OK;
10364 }
10365
10366 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_redirect_rt_destroy(
10367 struct nb_cb_destroy_args *args)
10368 {
10369 switch (args->event) {
10370 case NB_EV_VALIDATE:
10371 case NB_EV_PREPARE:
10372 case NB_EV_ABORT:
10373 case NB_EV_APPLY:
10374 /* TODO: implement me. */
10375 break;
10376 }
10377
10378 return NB_OK;
10379 }
10380
10381 /*
10382 * XPath:
10383 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/import-rt-list
10384 */
10385 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_import_rt_list_create(
10386 struct nb_cb_create_args *args)
10387 {
10388 switch (args->event) {
10389 case NB_EV_VALIDATE:
10390 case NB_EV_PREPARE:
10391 case NB_EV_ABORT:
10392 case NB_EV_APPLY:
10393 /* TODO: implement me. */
10394 break;
10395 }
10396
10397 return NB_OK;
10398 }
10399
10400 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_import_rt_list_destroy(
10401 struct nb_cb_destroy_args *args)
10402 {
10403 switch (args->event) {
10404 case NB_EV_VALIDATE:
10405 case NB_EV_PREPARE:
10406 case NB_EV_ABORT:
10407 case NB_EV_APPLY:
10408 /* TODO: implement me. */
10409 break;
10410 }
10411
10412 return NB_OK;
10413 }
10414
10415 /*
10416 * XPath:
10417 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/export-rt-list
10418 */
10419 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_export_rt_list_create(
10420 struct nb_cb_create_args *args)
10421 {
10422 switch (args->event) {
10423 case NB_EV_VALIDATE:
10424 case NB_EV_PREPARE:
10425 case NB_EV_ABORT:
10426 case NB_EV_APPLY:
10427 /* TODO: implement me. */
10428 break;
10429 }
10430
10431 return NB_OK;
10432 }
10433
10434 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_export_rt_list_destroy(
10435 struct nb_cb_destroy_args *args)
10436 {
10437 switch (args->event) {
10438 case NB_EV_VALIDATE:
10439 case NB_EV_PREPARE:
10440 case NB_EV_ABORT:
10441 case NB_EV_APPLY:
10442 /* TODO: implement me. */
10443 break;
10444 }
10445
10446 return NB_OK;
10447 }
10448
10449 /*
10450 * XPath:
10451 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/rt-list
10452 */
10453 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rt_list_create(
10454 struct nb_cb_create_args *args)
10455 {
10456 switch (args->event) {
10457 case NB_EV_VALIDATE:
10458 case NB_EV_PREPARE:
10459 case NB_EV_ABORT:
10460 case NB_EV_APPLY:
10461 /* TODO: implement me. */
10462 break;
10463 }
10464
10465 return NB_OK;
10466 }
10467
10468 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rt_list_destroy(
10469 struct nb_cb_destroy_args *args)
10470 {
10471 switch (args->event) {
10472 case NB_EV_VALIDATE:
10473 case NB_EV_PREPARE:
10474 case NB_EV_ABORT:
10475 case NB_EV_APPLY:
10476 /* TODO: implement me. */
10477 break;
10478 }
10479
10480 return NB_OK;
10481 }
10482
10483 /*
10484 * XPath:
10485 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/network-config
10486 */
10487 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_create(
10488 struct nb_cb_create_args *args)
10489 {
10490 /* Handled in network_config_apply_finish callback */
10491
10492 return NB_OK;
10493 }
10494
10495 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_destroy(
10496 struct nb_cb_destroy_args *args)
10497 {
10498 switch (args->event) {
10499 case NB_EV_VALIDATE:
10500 case NB_EV_PREPARE:
10501 case NB_EV_ABORT:
10502 return NB_OK;
10503 case NB_EV_APPLY:
10504 return bgp_global_afi_safis_afi_safi_network_config_destroy(
10505 args);
10506 break;
10507 }
10508
10509 return NB_OK;
10510 }
10511
10512 /*
10513 * XPath:
10514 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/network-config/backdoor
10515 */
10516 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_backdoor_modify(
10517 struct nb_cb_modify_args *args)
10518 {
10519 /* Handled in unicast_network_config_apply_finish callback */
10520
10521 return NB_OK;
10522 }
10523
10524 /*
10525 * XPath:
10526 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/network-config/label-index
10527 */
10528 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_label_index_modify(
10529 struct nb_cb_modify_args *args)
10530 {
10531 /* Handled in unicast_network_config_apply_finish callback */
10532
10533 return NB_OK;
10534 }
10535
10536 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_label_index_destroy(
10537 struct nb_cb_destroy_args *args)
10538 {
10539 switch (args->event) {
10540 case NB_EV_VALIDATE:
10541 case NB_EV_PREPARE:
10542 case NB_EV_ABORT:
10543 case NB_EV_APPLY:
10544 /* TODO: implement me. */
10545 break;
10546 }
10547
10548 return NB_OK;
10549 }
10550
10551 /*
10552 * XPath:
10553 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/network-config/rmap-policy-export
10554 */
10555 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_rmap_policy_export_modify(
10556 struct nb_cb_modify_args *args)
10557 {
10558 /* Handled in unicast_network_config_apply_finish callback */
10559
10560 return NB_OK;
10561 }
10562
10563 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_rmap_policy_export_destroy(
10564 struct nb_cb_destroy_args *args)
10565 {
10566 switch (args->event) {
10567 case NB_EV_VALIDATE:
10568 case NB_EV_PREPARE:
10569 case NB_EV_ABORT:
10570 case NB_EV_APPLY:
10571 /* TODO: implement me. */
10572 break;
10573 }
10574
10575 return NB_OK;
10576 }
10577
10578 /*
10579 * XPath:
10580 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route
10581 */
10582 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_create(
10583 struct nb_cb_create_args *args)
10584 {
10585 switch (args->event) {
10586 case NB_EV_VALIDATE:
10587 case NB_EV_PREPARE:
10588 case NB_EV_ABORT:
10589 case NB_EV_APPLY:
10590 /* TODO: implement me. */
10591 break;
10592 }
10593
10594 return NB_OK;
10595 }
10596
10597 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_destroy(
10598 struct nb_cb_destroy_args *args)
10599 {
10600 switch (args->event) {
10601 case NB_EV_VALIDATE:
10602 case NB_EV_PREPARE:
10603 case NB_EV_ABORT:
10604 return NB_OK;
10605 case NB_EV_APPLY:
10606 return bgp_global_afi_safi_aggregate_route_destroy(args);
10607 }
10608
10609 return NB_OK;
10610 }
10611
10612 /*
10613 * XPath:
10614 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/as-set
10615 */
10616 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_as_set_modify(
10617 struct nb_cb_modify_args *args)
10618 {
10619 switch (args->event) {
10620 case NB_EV_VALIDATE:
10621 case NB_EV_PREPARE:
10622 case NB_EV_ABORT:
10623 case NB_EV_APPLY:
10624 /* TODO: implement me. */
10625 break;
10626 }
10627
10628 return NB_OK;
10629 }
10630
10631 /*
10632 * XPath:
10633 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/summary-only
10634 */
10635 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_summary_only_modify(
10636 struct nb_cb_modify_args *args)
10637 {
10638 switch (args->event) {
10639 case NB_EV_VALIDATE:
10640 case NB_EV_PREPARE:
10641 case NB_EV_ABORT:
10642 case NB_EV_APPLY:
10643 /* TODO: implement me. */
10644 break;
10645 }
10646
10647 return NB_OK;
10648 }
10649
10650 /*
10651 * XPath:
10652 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/rmap-policy-export
10653 */
10654 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_rmap_policy_export_modify(
10655 struct nb_cb_modify_args *args)
10656 {
10657 switch (args->event) {
10658 case NB_EV_VALIDATE:
10659 case NB_EV_PREPARE:
10660 case NB_EV_ABORT:
10661 case NB_EV_APPLY:
10662 /* TODO: implement me. */
10663 break;
10664 }
10665
10666 return NB_OK;
10667 }
10668
10669 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_rmap_policy_export_destroy(
10670 struct nb_cb_destroy_args *args)
10671 {
10672 switch (args->event) {
10673 case NB_EV_VALIDATE:
10674 case NB_EV_PREPARE:
10675 case NB_EV_ABORT:
10676 case NB_EV_APPLY:
10677 /* TODO: implement me. */
10678 break;
10679 }
10680
10681 return NB_OK;
10682 }
10683
10684 /*
10685 * XPath:
10686 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/origin
10687 */
10688 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_origin_modify(
10689 struct nb_cb_modify_args *args)
10690 {
10691 switch (args->event) {
10692 case NB_EV_VALIDATE:
10693 case NB_EV_PREPARE:
10694 case NB_EV_ABORT:
10695 case NB_EV_APPLY:
10696 /* TODO: implement me. */
10697 break;
10698 }
10699
10700 return NB_OK;
10701 }
10702
10703 /*
10704 * XPath:
10705 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/match-med
10706 */
10707 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_match_med_modify(
10708 struct nb_cb_modify_args *args)
10709 {
10710 switch (args->event) {
10711 case NB_EV_VALIDATE:
10712 case NB_EV_PREPARE:
10713 case NB_EV_ABORT:
10714 case NB_EV_APPLY:
10715 /* TODO: implement me. */
10716 break;
10717 }
10718
10719 return NB_OK;
10720 }
10721
10722 /*
10723 * XPath:
10724 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/suppress-map
10725 */
10726 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_suppress_map_modify(
10727 struct nb_cb_modify_args *args)
10728 {
10729 switch (args->event) {
10730 case NB_EV_VALIDATE:
10731 case NB_EV_PREPARE:
10732 case NB_EV_ABORT:
10733 case NB_EV_APPLY:
10734 /* TODO: implement me. */
10735 break;
10736 }
10737
10738 return NB_OK;
10739 }
10740
10741 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_suppress_map_destroy(
10742 struct nb_cb_destroy_args *args)
10743 {
10744 switch (args->event) {
10745 case NB_EV_VALIDATE:
10746 case NB_EV_PREPARE:
10747 case NB_EV_ABORT:
10748 case NB_EV_APPLY:
10749 /* TODO: implement me. */
10750 break;
10751 }
10752
10753 return NB_OK;
10754 }
10755
10756 /*
10757 * XPath:
10758 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance-route
10759 */
10760 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_route_create(
10761 struct nb_cb_create_args *args)
10762 {
10763 switch (args->event) {
10764 case NB_EV_VALIDATE:
10765 case NB_EV_PREPARE:
10766 case NB_EV_ABORT:
10767 case NB_EV_APPLY:
10768 /* TODO: implement me. */
10769 break;
10770 }
10771
10772 return NB_OK;
10773 }
10774
10775 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_route_destroy(
10776 struct nb_cb_destroy_args *args)
10777 {
10778 switch (args->event) {
10779 case NB_EV_VALIDATE:
10780 case NB_EV_PREPARE:
10781 case NB_EV_ABORT:
10782 return NB_OK;
10783 case NB_EV_APPLY:
10784 return bgp_global_afi_safi_admin_distance_route_destroy(args);
10785 }
10786
10787 return NB_OK;
10788 }
10789
10790 /*
10791 * XPath:
10792 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance-route/distance
10793 */
10794 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_route_distance_modify(
10795 struct nb_cb_modify_args *args)
10796 {
10797 switch (args->event) {
10798 case NB_EV_VALIDATE:
10799 case NB_EV_PREPARE:
10800 case NB_EV_ABORT:
10801 case NB_EV_APPLY:
10802 /* TODO: implement me. */
10803 break;
10804 }
10805
10806 return NB_OK;
10807 }
10808
10809 /*
10810 * XPath:
10811 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance-route/access-list-policy-export
10812 */
10813 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_route_access_list_policy_export_modify(
10814 struct nb_cb_modify_args *args)
10815 {
10816 switch (args->event) {
10817 case NB_EV_VALIDATE:
10818 case NB_EV_PREPARE:
10819 case NB_EV_ABORT:
10820 case NB_EV_APPLY:
10821 /* TODO: implement me. */
10822 break;
10823 }
10824
10825 return NB_OK;
10826 }
10827
10828 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_route_access_list_policy_export_destroy(
10829 struct nb_cb_destroy_args *args)
10830 {
10831 switch (args->event) {
10832 case NB_EV_VALIDATE:
10833 case NB_EV_PREPARE:
10834 case NB_EV_ABORT:
10835 case NB_EV_APPLY:
10836 /* TODO: implement me. */
10837 break;
10838 }
10839
10840 return NB_OK;
10841 }
10842
10843 /*
10844 * XPath:
10845 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/route-flap-dampening/enable
10846 */
10847 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_enable_modify(
10848 struct nb_cb_modify_args *args)
10849 {
10850 switch (args->event) {
10851 case NB_EV_VALIDATE:
10852 return bgp_global_afi_safi_route_flap_validation(args);
10853 case NB_EV_PREPARE:
10854 case NB_EV_ABORT:
10855 case NB_EV_APPLY:
10856 break;
10857 }
10858
10859 return NB_OK;
10860 }
10861
10862 /*
10863 * XPath:
10864 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/route-flap-dampening/reach-decay
10865 */
10866 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_reach_decay_modify(
10867 struct nb_cb_modify_args *args)
10868 {
10869 switch (args->event) {
10870 case NB_EV_VALIDATE:
10871 case NB_EV_PREPARE:
10872 case NB_EV_ABORT:
10873 case NB_EV_APPLY:
10874 /* TODO: implement me. */
10875 break;
10876 }
10877
10878 return NB_OK;
10879 }
10880
10881 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_reach_decay_destroy(
10882 struct nb_cb_destroy_args *args)
10883 {
10884 switch (args->event) {
10885 case NB_EV_VALIDATE:
10886 case NB_EV_PREPARE:
10887 case NB_EV_ABORT:
10888 case NB_EV_APPLY:
10889 /* TODO: implement me. */
10890 break;
10891 }
10892
10893 return NB_OK;
10894 }
10895
10896 /*
10897 * XPath:
10898 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/route-flap-dampening/reuse-above
10899 */
10900 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_reuse_above_modify(
10901 struct nb_cb_modify_args *args)
10902 {
10903 int reuse = DEFAULT_REUSE;
10904 int suppress = DEFAULT_SUPPRESS;
10905
10906 switch (args->event) {
10907 case NB_EV_VALIDATE:
10908 if (yang_dnode_exists(args->dnode, "../suppress-above"))
10909 suppress = yang_dnode_get_uint16(args->dnode,
10910 "../suppress-above");
10911 reuse = yang_dnode_get_uint16(args->dnode, "../reuse-above");
10912 if (suppress < reuse) {
10913 snprintf(
10914 args->errmsg, args->errmsg_len,
10915 "Suppress value cannot be less than reuse value \n");
10916 return NB_ERR_VALIDATION;
10917 }
10918 break;
10919 case NB_EV_PREPARE:
10920 case NB_EV_ABORT:
10921 case NB_EV_APPLY:
10922 /* TODO: implement me. */
10923 break;
10924 }
10925
10926 return NB_OK;
10927 }
10928
10929 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_reuse_above_destroy(
10930 struct nb_cb_destroy_args *args)
10931 {
10932 switch (args->event) {
10933 case NB_EV_VALIDATE:
10934 case NB_EV_PREPARE:
10935 case NB_EV_ABORT:
10936 case NB_EV_APPLY:
10937 /* TODO: implement me. */
10938 break;
10939 }
10940
10941 return NB_OK;
10942 }
10943
10944 /*
10945 * XPath:
10946 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/route-flap-dampening/suppress-above
10947 */
10948 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_suppress_above_modify(
10949 struct nb_cb_modify_args *args)
10950 {
10951 switch (args->event) {
10952 case NB_EV_VALIDATE:
10953 case NB_EV_PREPARE:
10954 case NB_EV_ABORT:
10955 case NB_EV_APPLY:
10956 /* TODO: implement me. */
10957 break;
10958 }
10959
10960 return NB_OK;
10961 }
10962
10963 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_suppress_above_destroy(
10964 struct nb_cb_destroy_args *args)
10965 {
10966 switch (args->event) {
10967 case NB_EV_VALIDATE:
10968 case NB_EV_PREPARE:
10969 case NB_EV_ABORT:
10970 case NB_EV_APPLY:
10971 /* TODO: implement me. */
10972 break;
10973 }
10974
10975 return NB_OK;
10976 }
10977
10978 /*
10979 * XPath:
10980 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/route-flap-dampening/unreach-decay
10981 */
10982 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_unreach_decay_modify(
10983 struct nb_cb_modify_args *args)
10984 {
10985 switch (args->event) {
10986 case NB_EV_VALIDATE:
10987 case NB_EV_PREPARE:
10988 case NB_EV_ABORT:
10989 case NB_EV_APPLY:
10990 /* TODO: implement me. */
10991 break;
10992 }
10993
10994 return NB_OK;
10995 }
10996
10997 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_unreach_decay_destroy(
10998 struct nb_cb_destroy_args *args)
10999 {
11000 switch (args->event) {
11001 case NB_EV_VALIDATE:
11002 case NB_EV_PREPARE:
11003 case NB_EV_ABORT:
11004 case NB_EV_APPLY:
11005 /* TODO: implement me. */
11006 break;
11007 }
11008
11009 return NB_OK;
11010 }
11011
11012 /*
11013 * XPath:
11014 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/use-multiple-paths/ebgp/maximum-paths
11015 */
11016 int bgp_global_afi_safis_afi_safi_ipv6_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
11017 struct nb_cb_modify_args *args)
11018 {
11019 uint16_t maxpaths;
11020
11021 switch (args->event) {
11022 case NB_EV_VALIDATE:
11023 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
11024 if (maxpaths > multipath_num) {
11025 snprintf(args->errmsg, args->errmsg_len,
11026 "maxpaths %u is out of range %u", maxpaths,
11027 multipath_num);
11028 return NB_ERR_VALIDATION;
11029 }
11030 break;
11031 case NB_EV_PREPARE:
11032 case NB_EV_ABORT:
11033 return NB_OK;
11034 case NB_EV_APPLY:
11035 return bgp_global_afi_safi_ip_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
11036 args);
11037 }
11038
11039 return NB_OK;
11040 }
11041
11042 /*
11043 * XPath:
11044 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/use-multiple-paths/ibgp/maximum-paths
11045 */
11046 int bgp_global_afi_safis_afi_safi_ipv6_unicast_use_multiple_paths_ibgp_maximum_paths_modify(
11047 struct nb_cb_modify_args *args)
11048 {
11049 switch (args->event) {
11050 case NB_EV_VALIDATE:
11051 case NB_EV_PREPARE:
11052 case NB_EV_ABORT:
11053 case NB_EV_APPLY:
11054 /* TODO: implement me. */
11055 break;
11056 }
11057
11058 return NB_OK;
11059 }
11060
11061 /*
11062 * XPath:
11063 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/use-multiple-paths/ibgp/cluster-length-list
11064 */
11065 int bgp_global_afi_safis_afi_safi_ipv6_unicast_use_multiple_paths_ibgp_cluster_length_list_modify(
11066 struct nb_cb_modify_args *args)
11067 {
11068 switch (args->event) {
11069 case NB_EV_VALIDATE:
11070 case NB_EV_PREPARE:
11071 case NB_EV_ABORT:
11072 case NB_EV_APPLY:
11073 /* TODO: implement me. */
11074 break;
11075 }
11076
11077 return NB_OK;
11078 }
11079
11080 int bgp_global_afi_safis_afi_safi_ipv6_unicast_use_multiple_paths_ibgp_cluster_length_list_destroy(
11081 struct nb_cb_destroy_args *args)
11082 {
11083 switch (args->event) {
11084 case NB_EV_VALIDATE:
11085 case NB_EV_PREPARE:
11086 case NB_EV_ABORT:
11087 case NB_EV_APPLY:
11088 /* TODO: implement me. */
11089 break;
11090 }
11091
11092 return NB_OK;
11093 }
11094
11095 /*
11096 * XPath:
11097 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/redistribution-list
11098 */
11099 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_create(
11100 struct nb_cb_create_args *args)
11101 {
11102 switch (args->event) {
11103 case NB_EV_VALIDATE:
11104 case NB_EV_PREPARE:
11105 case NB_EV_ABORT:
11106 case NB_EV_APPLY:
11107 /* TODO: implement me. */
11108 break;
11109 }
11110
11111 return NB_OK;
11112 }
11113
11114 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_destroy(
11115 struct nb_cb_destroy_args *args)
11116 {
11117 const struct lyd_node *af_dnode;
11118 struct bgp *bgp;
11119 const char *af_name;
11120 afi_t afi;
11121 safi_t safi;
11122 int route_type;
11123 int route_instance;
11124
11125 switch (args->event) {
11126 case NB_EV_VALIDATE:
11127 case NB_EV_PREPARE:
11128 case NB_EV_ABORT:
11129 return NB_OK;
11130 case NB_EV_APPLY:
11131 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
11132 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
11133 yang_afi_safi_identity2value(af_name, &afi, &safi);
11134 bgp = nb_running_get_entry(af_dnode, NULL, true);
11135
11136 route_type = yang_dnode_get_enum(args->dnode, "./route-type");
11137 route_instance =
11138 yang_dnode_get_uint16(args->dnode, "./route-instance");
11139
11140 bgp_redistribute_unset(bgp, afi, route_type, route_instance);
11141
11142 break;
11143 }
11144
11145 return NB_OK;
11146 }
11147
11148 /*
11149 * XPath:
11150 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/redistribution-list/metric
11151 */
11152 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_metric_modify(
11153 struct nb_cb_modify_args *args)
11154 {
11155 switch (args->event) {
11156 case NB_EV_VALIDATE:
11157 case NB_EV_PREPARE:
11158 case NB_EV_ABORT:
11159 case NB_EV_APPLY:
11160 /* TODO: implement me. */
11161 break;
11162 }
11163
11164 return NB_OK;
11165 }
11166
11167 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_metric_destroy(
11168 struct nb_cb_destroy_args *args)
11169 {
11170 switch (args->event) {
11171 case NB_EV_VALIDATE:
11172 case NB_EV_PREPARE:
11173 case NB_EV_ABORT:
11174 case NB_EV_APPLY:
11175 /* TODO: implement me. */
11176 break;
11177 }
11178
11179 return NB_OK;
11180 }
11181
11182 /*
11183 * XPath:
11184 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/redistribution-list/rmap-policy-import
11185 */
11186 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_rmap_policy_import_modify(
11187 struct nb_cb_modify_args *args)
11188 {
11189 switch (args->event) {
11190 case NB_EV_VALIDATE:
11191 case NB_EV_PREPARE:
11192 case NB_EV_ABORT:
11193 case NB_EV_APPLY:
11194 /* TODO: implement me. */
11195 break;
11196 }
11197
11198 return NB_OK;
11199 }
11200
11201 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_rmap_policy_import_destroy(
11202 struct nb_cb_destroy_args *args)
11203 {
11204 switch (args->event) {
11205 case NB_EV_VALIDATE:
11206 case NB_EV_PREPARE:
11207 case NB_EV_ABORT:
11208 case NB_EV_APPLY:
11209 /* TODO: implement me. */
11210 break;
11211 }
11212
11213 return NB_OK;
11214 }
11215
11216 /*
11217 * XPath:
11218 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance
11219 */
11220 void bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_apply_finish(
11221 struct nb_cb_apply_finish_args *args)
11222 {
11223 bgp_global_afi_safis_admin_distance_modify(args);
11224 }
11225
11226 /*
11227 * XPath:
11228 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance/external
11229 */
11230 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_external_modify(
11231 struct nb_cb_modify_args *args)
11232 {
11233 /* Handled in admin_distance_apply_finish callback */
11234
11235 return NB_OK;
11236 }
11237
11238 /*
11239 * XPath:
11240 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance/internal
11241 */
11242 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_internal_modify(
11243 struct nb_cb_modify_args *args)
11244 {
11245 /* Handled in admin_distance_apply_finish callback */
11246
11247 return NB_OK;
11248 }
11249
11250 /*
11251 * XPath:
11252 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance/local
11253 */
11254 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_local_modify(
11255 struct nb_cb_modify_args *args)
11256 {
11257 /* Handled in admin_distance_apply_finish callback */
11258
11259 return NB_OK;
11260 }
11261
11262 /*
11263 * XPath:
11264 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/filter-config/rmap-export
11265 */
11266 int bgp_global_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_modify(
11267 struct nb_cb_modify_args *args)
11268 {
11269 switch (args->event) {
11270 case NB_EV_VALIDATE:
11271 case NB_EV_PREPARE:
11272 case NB_EV_ABORT:
11273 case NB_EV_APPLY:
11274 /* TODO: implement me. */
11275 break;
11276 }
11277
11278 return NB_OK;
11279 }
11280
11281 int bgp_global_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_destroy(
11282 struct nb_cb_destroy_args *args)
11283 {
11284 switch (args->event) {
11285 case NB_EV_VALIDATE:
11286 case NB_EV_PREPARE:
11287 case NB_EV_ABORT:
11288 case NB_EV_APPLY:
11289 /* TODO: implement me. */
11290 break;
11291 }
11292
11293 return NB_OK;
11294 }
11295
11296 /*
11297 * XPath:
11298 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/rd
11299 */
11300 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rd_modify(
11301 struct nb_cb_modify_args *args)
11302 {
11303 struct bgp *bgp;
11304 const struct lyd_node *af_dnode;
11305 const char *af_name;
11306 afi_t afi;
11307 safi_t safi;
11308
11309 switch (args->event) {
11310 case NB_EV_VALIDATE:
11311 bgp = nb_running_get_entry(args->dnode, NULL, false);
11312 if (!bgp)
11313 return NB_OK;
11314
11315 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
11316 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
11317 yang_afi_safi_identity2value(af_name, &afi, &safi);
11318
11319 if (!vpn_policy_check_import(bgp, afi, safi, false,
11320 args->errmsg, args->errmsg_len))
11321 return NB_ERR_VALIDATION;
11322
11323 break;
11324 case NB_EV_PREPARE:
11325 case NB_EV_ABORT:
11326 return NB_OK;
11327 case NB_EV_APPLY:
11328 return bgp_global_afi_safi_ip_unicast_vpn_config_rd_modify(
11329 args);
11330 }
11331
11332 return NB_OK;
11333 }
11334
11335 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rd_destroy(
11336 struct nb_cb_destroy_args *args)
11337 {
11338 switch (args->event) {
11339 case NB_EV_VALIDATE:
11340 case NB_EV_PREPARE:
11341 case NB_EV_ABORT:
11342 return NB_OK;
11343 case NB_EV_APPLY:
11344 return bgp_global_afi_safi_ip_unicast_vpn_config_rd_destroy(
11345 args);
11346 }
11347
11348 return NB_OK;
11349 }
11350
11351 /*
11352 * XPath:
11353 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/label
11354 */
11355 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_label_modify(
11356 struct nb_cb_modify_args *args)
11357 {
11358 switch (args->event) {
11359 case NB_EV_VALIDATE:
11360 case NB_EV_PREPARE:
11361 case NB_EV_ABORT:
11362 case NB_EV_APPLY:
11363 /* TODO: implement me. */
11364 break;
11365 }
11366
11367 return NB_OK;
11368 }
11369
11370 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_label_destroy(
11371 struct nb_cb_destroy_args *args)
11372 {
11373 switch (args->event) {
11374 case NB_EV_VALIDATE:
11375 case NB_EV_PREPARE:
11376 case NB_EV_ABORT:
11377 case NB_EV_APPLY:
11378 /* TODO: implement me. */
11379 break;
11380 }
11381
11382 return NB_OK;
11383 }
11384
11385 /*
11386 * XPath:
11387 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/label-auto
11388 */
11389 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_label_auto_modify(
11390 struct nb_cb_modify_args *args)
11391 {
11392 switch (args->event) {
11393 case NB_EV_VALIDATE:
11394 case NB_EV_PREPARE:
11395 case NB_EV_ABORT:
11396 case NB_EV_APPLY:
11397 /* TODO: implement me. */
11398 break;
11399 }
11400
11401 return NB_OK;
11402 }
11403
11404 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_label_auto_destroy(
11405 struct nb_cb_destroy_args *args)
11406 {
11407 switch (args->event) {
11408 case NB_EV_VALIDATE:
11409 case NB_EV_PREPARE:
11410 case NB_EV_ABORT:
11411 case NB_EV_APPLY:
11412 /* TODO: implement me. */
11413 break;
11414 }
11415
11416 return NB_OK;
11417 }
11418
11419 /*
11420 * XPath:
11421 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/nexthop
11422 */
11423 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_nexthop_modify(
11424 struct nb_cb_modify_args *args)
11425 {
11426 struct bgp *bgp;
11427 const struct lyd_node *af_dnode;
11428 const char *af_name;
11429 afi_t afi;
11430 safi_t safi;
11431
11432 switch (args->event) {
11433 case NB_EV_VALIDATE:
11434 bgp = nb_running_get_entry(args->dnode, NULL, false);
11435 if (!bgp)
11436 return NB_OK;
11437
11438 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
11439 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
11440 yang_afi_safi_identity2value(af_name, &afi, &safi);
11441
11442 if (!vpn_policy_check_import(bgp, afi, safi, false,
11443 args->errmsg, args->errmsg_len))
11444 return NB_ERR_VALIDATION;
11445
11446 break;
11447 case NB_EV_PREPARE:
11448 case NB_EV_ABORT:
11449 return NB_OK;
11450 case NB_EV_APPLY:
11451 return bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_modify(
11452 args);
11453 }
11454
11455 return NB_OK;
11456 }
11457
11458 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_nexthop_destroy(
11459 struct nb_cb_destroy_args *args)
11460 {
11461 switch (args->event) {
11462 case NB_EV_VALIDATE:
11463 case NB_EV_PREPARE:
11464 case NB_EV_ABORT:
11465 return NB_OK;
11466 case NB_EV_APPLY:
11467 return bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_destroy(
11468 args);
11469 }
11470
11471 return NB_OK;
11472 }
11473
11474 /*
11475 * XPath:
11476 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/import-vpn
11477 */
11478 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_import_vpn_modify(
11479 struct nb_cb_modify_args *args)
11480 {
11481 switch (args->event) {
11482 case NB_EV_VALIDATE:
11483 case NB_EV_PREPARE:
11484 case NB_EV_ABORT:
11485 case NB_EV_APPLY:
11486 /* TODO: implement me. */
11487 break;
11488 }
11489
11490 return NB_OK;
11491 }
11492
11493 /*
11494 * XPath:
11495 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/export-vpn
11496 */
11497 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_export_vpn_modify(
11498 struct nb_cb_modify_args *args)
11499 {
11500 switch (args->event) {
11501 case NB_EV_VALIDATE:
11502 case NB_EV_PREPARE:
11503 case NB_EV_ABORT:
11504 case NB_EV_APPLY:
11505 /* TODO: implement me. */
11506 break;
11507 }
11508
11509 return NB_OK;
11510 }
11511
11512 /*
11513 * XPath:
11514 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/import-vrf-list
11515 */
11516 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_import_vrf_list_create(
11517 struct nb_cb_create_args *args)
11518 {
11519 struct bgp *bgp;
11520 const struct lyd_node *af_dnode;
11521 const char *af_name;
11522 afi_t afi;
11523 safi_t safi;
11524
11525 switch (args->event) {
11526 case NB_EV_VALIDATE:
11527 bgp = nb_running_get_entry(args->dnode, NULL, false);
11528 if (!bgp)
11529 return NB_OK;
11530 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
11531 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
11532 yang_afi_safi_identity2value(af_name, &afi, &safi);
11533
11534 if (!vpn_policy_check_import(bgp, afi, safi, true, args->errmsg,
11535 args->errmsg_len))
11536 return NB_ERR_VALIDATION;
11537
11538 break;
11539 case NB_EV_PREPARE:
11540 case NB_EV_ABORT:
11541 return NB_OK;
11542 case NB_EV_APPLY:
11543 return bgp_global_afi_safi_ip_unicast_vpn_config_import_vrfs_create(
11544 args);
11545 }
11546
11547 return NB_OK;
11548 }
11549
11550 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_import_vrf_list_destroy(
11551 struct nb_cb_destroy_args *args)
11552 {
11553 switch (args->event) {
11554 case NB_EV_VALIDATE:
11555 case NB_EV_PREPARE:
11556 case NB_EV_ABORT:
11557 return NB_OK;
11558 case NB_EV_APPLY:
11559 return bgp_global_afi_safi_ip_unicast_vpn_config_import_vrf_list_destroy(
11560 args);
11561 }
11562
11563 return NB_OK;
11564 }
11565
11566 /*
11567 * XPath:
11568 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/rmap-import
11569 */
11570 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rmap_import_modify(
11571 struct nb_cb_modify_args *args)
11572 {
11573 switch (args->event) {
11574 case NB_EV_VALIDATE:
11575 case NB_EV_PREPARE:
11576 case NB_EV_ABORT:
11577 return NB_OK;
11578 case NB_EV_APPLY:
11579 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_modify(
11580 args, "import");
11581 }
11582
11583 return NB_OK;
11584 }
11585
11586 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rmap_import_destroy(
11587 struct nb_cb_destroy_args *args)
11588 {
11589 switch (args->event) {
11590 case NB_EV_VALIDATE:
11591 case NB_EV_PREPARE:
11592 case NB_EV_ABORT:
11593 return NB_OK;
11594 case NB_EV_APPLY:
11595 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_destroy(
11596 args, "import");
11597 }
11598
11599 return NB_OK;
11600 }
11601
11602 /*
11603 * XPath:
11604 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/rmap-export
11605 */
11606 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rmap_export_modify(
11607 struct nb_cb_modify_args *args)
11608 {
11609 switch (args->event) {
11610 case NB_EV_VALIDATE:
11611 case NB_EV_PREPARE:
11612 case NB_EV_ABORT:
11613 return NB_OK;
11614 case NB_EV_APPLY:
11615 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_modify(
11616 args, "export");
11617 }
11618
11619 return NB_OK;
11620 }
11621
11622 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rmap_export_destroy(
11623 struct nb_cb_destroy_args *args)
11624 {
11625 switch (args->event) {
11626 case NB_EV_VALIDATE:
11627 case NB_EV_PREPARE:
11628 case NB_EV_ABORT:
11629 return NB_OK;
11630 case NB_EV_APPLY:
11631 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_destroy(
11632 args, "export");
11633 }
11634
11635 return NB_OK;
11636 }
11637
11638 /*
11639 * XPath:
11640 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/redirect-rt
11641 */
11642 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_redirect_rt_modify(
11643 struct nb_cb_modify_args *args)
11644 {
11645 switch (args->event) {
11646 case NB_EV_VALIDATE:
11647 case NB_EV_PREPARE:
11648 case NB_EV_ABORT:
11649 case NB_EV_APPLY:
11650 /* TODO: implement me. */
11651 break;
11652 }
11653
11654 return NB_OK;
11655 }
11656
11657 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_redirect_rt_destroy(
11658 struct nb_cb_destroy_args *args)
11659 {
11660 switch (args->event) {
11661 case NB_EV_VALIDATE:
11662 case NB_EV_PREPARE:
11663 case NB_EV_ABORT:
11664 case NB_EV_APPLY:
11665 /* TODO: implement me. */
11666 break;
11667 }
11668
11669 return NB_OK;
11670 }
11671
11672 /*
11673 * XPath:
11674 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/import-rt-list
11675 */
11676 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_import_rt_list_create(
11677 struct nb_cb_create_args *args)
11678 {
11679 switch (args->event) {
11680 case NB_EV_VALIDATE:
11681 case NB_EV_PREPARE:
11682 case NB_EV_ABORT:
11683 case NB_EV_APPLY:
11684 /* TODO: implement me. */
11685 break;
11686 }
11687
11688 return NB_OK;
11689 }
11690
11691 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_import_rt_list_destroy(
11692 struct nb_cb_destroy_args *args)
11693 {
11694 switch (args->event) {
11695 case NB_EV_VALIDATE:
11696 case NB_EV_PREPARE:
11697 case NB_EV_ABORT:
11698 case NB_EV_APPLY:
11699 /* TODO: implement me. */
11700 break;
11701 }
11702
11703 return NB_OK;
11704 }
11705
11706 /*
11707 * XPath:
11708 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/export-rt-list
11709 */
11710 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_export_rt_list_create(
11711 struct nb_cb_create_args *args)
11712 {
11713 switch (args->event) {
11714 case NB_EV_VALIDATE:
11715 case NB_EV_PREPARE:
11716 case NB_EV_ABORT:
11717 case NB_EV_APPLY:
11718 /* TODO: implement me. */
11719 break;
11720 }
11721
11722 return NB_OK;
11723 }
11724
11725 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_export_rt_list_destroy(
11726 struct nb_cb_destroy_args *args)
11727 {
11728 switch (args->event) {
11729 case NB_EV_VALIDATE:
11730 case NB_EV_PREPARE:
11731 case NB_EV_ABORT:
11732 case NB_EV_APPLY:
11733 /* TODO: implement me. */
11734 break;
11735 }
11736
11737 return NB_OK;
11738 }
11739
11740 /*
11741 * XPath:
11742 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/rt-list
11743 */
11744 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rt_list_create(
11745 struct nb_cb_create_args *args)
11746 {
11747 switch (args->event) {
11748 case NB_EV_VALIDATE:
11749 case NB_EV_PREPARE:
11750 case NB_EV_ABORT:
11751 case NB_EV_APPLY:
11752 /* TODO: implement me. */
11753 break;
11754 }
11755
11756 return NB_OK;
11757 }
11758
11759 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rt_list_destroy(
11760 struct nb_cb_destroy_args *args)
11761 {
11762 switch (args->event) {
11763 case NB_EV_VALIDATE:
11764 case NB_EV_PREPARE:
11765 case NB_EV_ABORT:
11766 case NB_EV_APPLY:
11767 /* TODO: implement me. */
11768 break;
11769 }
11770
11771 return NB_OK;
11772 }
11773
11774 /*
11775 * XPath:
11776 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/use-multiple-paths/ebgp/maximum-paths
11777 */
11778 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
11779 struct nb_cb_modify_args *args)
11780 {
11781 uint16_t maxpaths;
11782
11783 switch (args->event) {
11784 case NB_EV_VALIDATE:
11785 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
11786 if (maxpaths > multipath_num) {
11787 snprintf(args->errmsg, args->errmsg_len,
11788 "maxpaths %u is out of range %u", maxpaths,
11789 multipath_num);
11790 return NB_ERR_VALIDATION;
11791 }
11792 break;
11793 case NB_EV_PREPARE:
11794 case NB_EV_ABORT:
11795 return NB_OK;
11796 case NB_EV_APPLY:
11797 return bgp_global_afi_safi_ip_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
11798 args);
11799 }
11800
11801 return NB_OK;
11802 }
11803
11804 /*
11805 * XPath:
11806 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/use-multiple-paths/ibgp/maximum-paths
11807 */
11808 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_use_multiple_paths_ibgp_maximum_paths_modify(
11809 struct nb_cb_modify_args *args)
11810 {
11811 switch (args->event) {
11812 case NB_EV_VALIDATE:
11813 case NB_EV_PREPARE:
11814 case NB_EV_ABORT:
11815 case NB_EV_APPLY:
11816 /* TODO: implement me. */
11817 break;
11818 }
11819
11820 return NB_OK;
11821 }
11822
11823 /*
11824 * XPath:
11825 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/use-multiple-paths/ibgp/cluster-length-list
11826 */
11827 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_use_multiple_paths_ibgp_cluster_length_list_modify(
11828 struct nb_cb_modify_args *args)
11829 {
11830 switch (args->event) {
11831 case NB_EV_VALIDATE:
11832 case NB_EV_PREPARE:
11833 case NB_EV_ABORT:
11834 case NB_EV_APPLY:
11835 /* TODO: implement me. */
11836 break;
11837 }
11838
11839 return NB_OK;
11840 }
11841
11842 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_use_multiple_paths_ibgp_cluster_length_list_destroy(
11843 struct nb_cb_destroy_args *args)
11844 {
11845 switch (args->event) {
11846 case NB_EV_VALIDATE:
11847 case NB_EV_PREPARE:
11848 case NB_EV_ABORT:
11849 case NB_EV_APPLY:
11850 /* TODO: implement me. */
11851 break;
11852 }
11853
11854 return NB_OK;
11855 }
11856
11857 /*
11858 * XPath:
11859 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/route-flap-dampening/enable
11860 */
11861 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_enable_modify(
11862 struct nb_cb_modify_args *args)
11863 {
11864 switch (args->event) {
11865 case NB_EV_VALIDATE:
11866 return bgp_global_afi_safi_route_flap_validation(args);
11867 case NB_EV_PREPARE:
11868 case NB_EV_ABORT:
11869 case NB_EV_APPLY:
11870 break;
11871 }
11872
11873 return NB_OK;
11874 }
11875
11876 /*
11877 * XPath:
11878 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/route-flap-dampening/reach-decay
11879 */
11880 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_reach_decay_modify(
11881 struct nb_cb_modify_args *args)
11882 {
11883 switch (args->event) {
11884 case NB_EV_VALIDATE:
11885 case NB_EV_PREPARE:
11886 case NB_EV_ABORT:
11887 case NB_EV_APPLY:
11888 /* TODO: implement me. */
11889 break;
11890 }
11891
11892 return NB_OK;
11893 }
11894
11895 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_reach_decay_destroy(
11896 struct nb_cb_destroy_args *args)
11897 {
11898 switch (args->event) {
11899 case NB_EV_VALIDATE:
11900 case NB_EV_PREPARE:
11901 case NB_EV_ABORT:
11902 case NB_EV_APPLY:
11903 /* TODO: implement me. */
11904 break;
11905 }
11906
11907 return NB_OK;
11908 }
11909
11910 /*
11911 * XPath:
11912 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/route-flap-dampening/reuse-above
11913 */
11914 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_reuse_above_modify(
11915 struct nb_cb_modify_args *args)
11916 {
11917 switch (args->event) {
11918 case NB_EV_VALIDATE:
11919 case NB_EV_PREPARE:
11920 case NB_EV_ABORT:
11921 case NB_EV_APPLY:
11922 /* TODO: implement me. */
11923 break;
11924 }
11925
11926 return NB_OK;
11927 }
11928
11929 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_reuse_above_destroy(
11930 struct nb_cb_destroy_args *args)
11931 {
11932 switch (args->event) {
11933 case NB_EV_VALIDATE:
11934 case NB_EV_PREPARE:
11935 case NB_EV_ABORT:
11936 case NB_EV_APPLY:
11937 /* TODO: implement me. */
11938 break;
11939 }
11940
11941 return NB_OK;
11942 }
11943
11944 /*
11945 * XPath:
11946 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/route-flap-dampening/suppress-above
11947 */
11948 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_suppress_above_modify(
11949 struct nb_cb_modify_args *args)
11950 {
11951 switch (args->event) {
11952 case NB_EV_VALIDATE:
11953 case NB_EV_PREPARE:
11954 case NB_EV_ABORT:
11955 case NB_EV_APPLY:
11956 /* TODO: implement me. */
11957 break;
11958 }
11959
11960 return NB_OK;
11961 }
11962
11963 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_suppress_above_destroy(
11964 struct nb_cb_destroy_args *args)
11965 {
11966 switch (args->event) {
11967 case NB_EV_VALIDATE:
11968 case NB_EV_PREPARE:
11969 case NB_EV_ABORT:
11970 case NB_EV_APPLY:
11971 /* TODO: implement me. */
11972 break;
11973 }
11974
11975 return NB_OK;
11976 }
11977
11978 /*
11979 * XPath:
11980 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/route-flap-dampening/unreach-decay
11981 */
11982 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_unreach_decay_modify(
11983 struct nb_cb_modify_args *args)
11984 {
11985 switch (args->event) {
11986 case NB_EV_VALIDATE:
11987 case NB_EV_PREPARE:
11988 case NB_EV_ABORT:
11989 case NB_EV_APPLY:
11990 /* TODO: implement me. */
11991 break;
11992 }
11993
11994 return NB_OK;
11995 }
11996
11997 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_unreach_decay_destroy(
11998 struct nb_cb_destroy_args *args)
11999 {
12000 switch (args->event) {
12001 case NB_EV_VALIDATE:
12002 case NB_EV_PREPARE:
12003 case NB_EV_ABORT:
12004 case NB_EV_APPLY:
12005 /* TODO: implement me. */
12006 break;
12007 }
12008
12009 return NB_OK;
12010 }
12011
12012 /*
12013 * XPath:
12014 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/use-multiple-paths/ebgp/maximum-paths
12015 */
12016 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
12017 struct nb_cb_modify_args *args)
12018 {
12019 uint16_t maxpaths;
12020
12021 switch (args->event) {
12022 case NB_EV_VALIDATE:
12023 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
12024 if (maxpaths > multipath_num) {
12025 snprintf(args->errmsg, args->errmsg_len,
12026 "maxpaths %u is out of range %u", maxpaths,
12027 multipath_num);
12028 return NB_ERR_VALIDATION;
12029 }
12030 break;
12031 case NB_EV_PREPARE:
12032 case NB_EV_ABORT:
12033 return NB_OK;
12034 case NB_EV_APPLY:
12035 return bgp_global_afi_safi_ip_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
12036 args);
12037 }
12038
12039 return NB_OK;
12040 }
12041
12042 /*
12043 * XPath:
12044 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/use-multiple-paths/ibgp/maximum-paths
12045 */
12046 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_use_multiple_paths_ibgp_maximum_paths_modify(
12047 struct nb_cb_modify_args *args)
12048 {
12049 uint16_t maxpaths;
12050
12051 switch (args->event) {
12052 case NB_EV_VALIDATE:
12053 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
12054 if (maxpaths > multipath_num) {
12055 snprintf(args->errmsg, args->errmsg_len,
12056 "maxpaths %u is out of range %u", maxpaths,
12057 multipath_num);
12058 return NB_ERR_VALIDATION;
12059 }
12060 break;
12061 case NB_EV_PREPARE:
12062 case NB_EV_ABORT:
12063 case NB_EV_APPLY:
12064 /* TODO: implement me. */
12065 break;
12066 }
12067
12068 return NB_OK;
12069 }
12070
12071 /*
12072 * XPath:
12073 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/use-multiple-paths/ibgp/cluster-length-list
12074 */
12075 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_use_multiple_paths_ibgp_cluster_length_list_modify(
12076 struct nb_cb_modify_args *args)
12077 {
12078 switch (args->event) {
12079 case NB_EV_VALIDATE:
12080 case NB_EV_PREPARE:
12081 case NB_EV_ABORT:
12082 case NB_EV_APPLY:
12083 /* TODO: implement me. */
12084 break;
12085 }
12086
12087 return NB_OK;
12088 }
12089
12090 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_use_multiple_paths_ibgp_cluster_length_list_destroy(
12091 struct nb_cb_destroy_args *args)
12092 {
12093 switch (args->event) {
12094 case NB_EV_VALIDATE:
12095 case NB_EV_PREPARE:
12096 case NB_EV_ABORT:
12097 case NB_EV_APPLY:
12098 /* TODO: implement me. */
12099 break;
12100 }
12101
12102 return NB_OK;
12103 }
12104
12105 /*
12106 * XPath:
12107 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/route-flap-dampening/enable
12108 */
12109 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_enable_modify(
12110 struct nb_cb_modify_args *args)
12111 {
12112 switch (args->event) {
12113 case NB_EV_VALIDATE:
12114 return bgp_global_afi_safi_route_flap_validation(args);
12115 case NB_EV_PREPARE:
12116 case NB_EV_ABORT:
12117 case NB_EV_APPLY:
12118 break;
12119 }
12120
12121 return NB_OK;
12122 }
12123
12124 /*
12125 * XPath:
12126 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/route-flap-dampening/reach-decay
12127 */
12128 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_reach_decay_modify(
12129 struct nb_cb_modify_args *args)
12130 {
12131 switch (args->event) {
12132 case NB_EV_VALIDATE:
12133 case NB_EV_PREPARE:
12134 case NB_EV_ABORT:
12135 case NB_EV_APPLY:
12136 /* TODO: implement me. */
12137 break;
12138 }
12139
12140 return NB_OK;
12141 }
12142
12143 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_reach_decay_destroy(
12144 struct nb_cb_destroy_args *args)
12145 {
12146 switch (args->event) {
12147 case NB_EV_VALIDATE:
12148 case NB_EV_PREPARE:
12149 case NB_EV_ABORT:
12150 case NB_EV_APPLY:
12151 /* TODO: implement me. */
12152 break;
12153 }
12154
12155 return NB_OK;
12156 }
12157
12158 /*
12159 * XPath:
12160 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/route-flap-dampening/reuse-above
12161 */
12162 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_reuse_above_modify(
12163 struct nb_cb_modify_args *args)
12164 {
12165 switch (args->event) {
12166 case NB_EV_VALIDATE:
12167 case NB_EV_PREPARE:
12168 case NB_EV_ABORT:
12169 case NB_EV_APPLY:
12170 /* TODO: implement me. */
12171 break;
12172 }
12173
12174 return NB_OK;
12175 }
12176
12177 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_reuse_above_destroy(
12178 struct nb_cb_destroy_args *args)
12179 {
12180 switch (args->event) {
12181 case NB_EV_VALIDATE:
12182 case NB_EV_PREPARE:
12183 case NB_EV_ABORT:
12184 case NB_EV_APPLY:
12185 /* TODO: implement me. */
12186 break;
12187 }
12188
12189 return NB_OK;
12190 }
12191
12192 /*
12193 * XPath:
12194 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/route-flap-dampening/suppress-above
12195 */
12196 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_suppress_above_modify(
12197 struct nb_cb_modify_args *args)
12198 {
12199 switch (args->event) {
12200 case NB_EV_VALIDATE:
12201 case NB_EV_PREPARE:
12202 case NB_EV_ABORT:
12203 case NB_EV_APPLY:
12204 /* TODO: implement me. */
12205 break;
12206 }
12207
12208 return NB_OK;
12209 }
12210
12211 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_suppress_above_destroy(
12212 struct nb_cb_destroy_args *args)
12213 {
12214 switch (args->event) {
12215 case NB_EV_VALIDATE:
12216 case NB_EV_PREPARE:
12217 case NB_EV_ABORT:
12218 case NB_EV_APPLY:
12219 /* TODO: implement me. */
12220 break;
12221 }
12222
12223 return NB_OK;
12224 }
12225
12226 /*
12227 * XPath:
12228 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/route-flap-dampening/unreach-decay
12229 */
12230 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_unreach_decay_modify(
12231 struct nb_cb_modify_args *args)
12232 {
12233 switch (args->event) {
12234 case NB_EV_VALIDATE:
12235 case NB_EV_PREPARE:
12236 case NB_EV_ABORT:
12237 case NB_EV_APPLY:
12238 /* TODO: implement me. */
12239 break;
12240 }
12241
12242 return NB_OK;
12243 }
12244
12245 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_unreach_decay_destroy(
12246 struct nb_cb_destroy_args *args)
12247 {
12248 switch (args->event) {
12249 case NB_EV_VALIDATE:
12250 case NB_EV_PREPARE:
12251 case NB_EV_ABORT:
12252 case NB_EV_APPLY:
12253 /* TODO: implement me. */
12254 break;
12255 }
12256
12257 return NB_OK;
12258 }
12259
12260 /*
12261 * XPath:
12262 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/network-config
12263 */
12264 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_create(
12265 struct nb_cb_create_args *args)
12266 {
12267 /* Handled in network_config_apply_finish callback */
12268
12269 return NB_OK;
12270 }
12271
12272 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_destroy(
12273 struct nb_cb_destroy_args *args)
12274 {
12275 switch (args->event) {
12276 case NB_EV_VALIDATE:
12277 case NB_EV_PREPARE:
12278 case NB_EV_ABORT:
12279 return NB_OK;
12280 case NB_EV_APPLY:
12281 return bgp_global_afi_safis_afi_safi_network_config_destroy(
12282 args);
12283 break;
12284 }
12285
12286 return NB_OK;
12287 }
12288
12289 /*
12290 * XPath:
12291 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/network-config/backdoor
12292 */
12293 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_backdoor_modify(
12294 struct nb_cb_modify_args *args)
12295 {
12296 switch (args->event) {
12297 case NB_EV_VALIDATE:
12298 case NB_EV_PREPARE:
12299 case NB_EV_ABORT:
12300 case NB_EV_APPLY:
12301 /* TODO: implement me. */
12302 break;
12303 }
12304
12305 return NB_OK;
12306 }
12307
12308 /*
12309 * XPath:
12310 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/network-config/label-index
12311 */
12312 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_label_index_modify(
12313 struct nb_cb_modify_args *args)
12314 {
12315 switch (args->event) {
12316 case NB_EV_VALIDATE:
12317 case NB_EV_PREPARE:
12318 case NB_EV_ABORT:
12319 case NB_EV_APPLY:
12320 /* TODO: implement me. */
12321 break;
12322 }
12323
12324 return NB_OK;
12325 }
12326
12327 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_label_index_destroy(
12328 struct nb_cb_destroy_args *args)
12329 {
12330 switch (args->event) {
12331 case NB_EV_VALIDATE:
12332 case NB_EV_PREPARE:
12333 case NB_EV_ABORT:
12334 case NB_EV_APPLY:
12335 /* TODO: implement me. */
12336 break;
12337 }
12338
12339 return NB_OK;
12340 }
12341
12342 /*
12343 * XPath:
12344 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/network-config/rmap-policy-export
12345 */
12346 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_rmap_policy_export_modify(
12347 struct nb_cb_modify_args *args)
12348 {
12349 switch (args->event) {
12350 case NB_EV_VALIDATE:
12351 case NB_EV_PREPARE:
12352 case NB_EV_ABORT:
12353 case NB_EV_APPLY:
12354 /* TODO: implement me. */
12355 break;
12356 }
12357
12358 return NB_OK;
12359 }
12360
12361 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_rmap_policy_export_destroy(
12362 struct nb_cb_destroy_args *args)
12363 {
12364 switch (args->event) {
12365 case NB_EV_VALIDATE:
12366 case NB_EV_PREPARE:
12367 case NB_EV_ABORT:
12368 case NB_EV_APPLY:
12369 /* TODO: implement me. */
12370 break;
12371 }
12372
12373 return NB_OK;
12374 }
12375
12376 /*
12377 * XPath:
12378 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route
12379 */
12380 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_create(
12381 struct nb_cb_create_args *args)
12382 {
12383 switch (args->event) {
12384 case NB_EV_VALIDATE:
12385 case NB_EV_PREPARE:
12386 case NB_EV_ABORT:
12387 case NB_EV_APPLY:
12388 /* TODO: implement me. */
12389 break;
12390 }
12391
12392 return NB_OK;
12393 }
12394
12395 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_destroy(
12396 struct nb_cb_destroy_args *args)
12397 {
12398 switch (args->event) {
12399 case NB_EV_VALIDATE:
12400 case NB_EV_PREPARE:
12401 case NB_EV_ABORT:
12402 case NB_EV_APPLY:
12403 /* TODO: implement me. */
12404 break;
12405 }
12406
12407 return NB_OK;
12408 }
12409
12410 /*
12411 * XPath:
12412 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/as-set
12413 */
12414 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_as_set_modify(
12415 struct nb_cb_modify_args *args)
12416 {
12417 switch (args->event) {
12418 case NB_EV_VALIDATE:
12419 case NB_EV_PREPARE:
12420 case NB_EV_ABORT:
12421 case NB_EV_APPLY:
12422 /* TODO: implement me. */
12423 break;
12424 }
12425
12426 return NB_OK;
12427 }
12428
12429 /*
12430 * XPath:
12431 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/summary-only
12432 */
12433 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_summary_only_modify(
12434 struct nb_cb_modify_args *args)
12435 {
12436 switch (args->event) {
12437 case NB_EV_VALIDATE:
12438 case NB_EV_PREPARE:
12439 case NB_EV_ABORT:
12440 case NB_EV_APPLY:
12441 /* TODO: implement me. */
12442 break;
12443 }
12444
12445 return NB_OK;
12446 }
12447
12448 /*
12449 * XPath:
12450 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/rmap-policy-export
12451 */
12452 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_rmap_policy_export_modify(
12453 struct nb_cb_modify_args *args)
12454 {
12455 switch (args->event) {
12456 case NB_EV_VALIDATE:
12457 case NB_EV_PREPARE:
12458 case NB_EV_ABORT:
12459 case NB_EV_APPLY:
12460 /* TODO: implement me. */
12461 break;
12462 }
12463
12464 return NB_OK;
12465 }
12466
12467 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_rmap_policy_export_destroy(
12468 struct nb_cb_destroy_args *args)
12469 {
12470 switch (args->event) {
12471 case NB_EV_VALIDATE:
12472 case NB_EV_PREPARE:
12473 case NB_EV_ABORT:
12474 case NB_EV_APPLY:
12475 /* TODO: implement me. */
12476 break;
12477 }
12478
12479 return NB_OK;
12480 }
12481
12482 /*
12483 * XPath:
12484 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/origin
12485 */
12486 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_origin_modify(
12487 struct nb_cb_modify_args *args)
12488 {
12489 switch (args->event) {
12490 case NB_EV_VALIDATE:
12491 case NB_EV_PREPARE:
12492 case NB_EV_ABORT:
12493 case NB_EV_APPLY:
12494 /* TODO: implement me. */
12495 break;
12496 }
12497
12498 return NB_OK;
12499 }
12500
12501 /*
12502 * XPath:
12503 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/match-med
12504 */
12505 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_match_med_modify(
12506 struct nb_cb_modify_args *args)
12507 {
12508 switch (args->event) {
12509 case NB_EV_VALIDATE:
12510 case NB_EV_PREPARE:
12511 case NB_EV_ABORT:
12512 case NB_EV_APPLY:
12513 /* TODO: implement me. */
12514 break;
12515 }
12516
12517 return NB_OK;
12518 }
12519
12520 /*
12521 * XPath:
12522 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/suppress-map
12523 */
12524 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_suppress_map_modify(
12525 struct nb_cb_modify_args *args)
12526 {
12527 switch (args->event) {
12528 case NB_EV_VALIDATE:
12529 case NB_EV_PREPARE:
12530 case NB_EV_ABORT:
12531 case NB_EV_APPLY:
12532 /* TODO: implement me. */
12533 break;
12534 }
12535
12536 return NB_OK;
12537 }
12538
12539 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_suppress_map_destroy(
12540 struct nb_cb_destroy_args *args)
12541 {
12542 switch (args->event) {
12543 case NB_EV_VALIDATE:
12544 case NB_EV_PREPARE:
12545 case NB_EV_ABORT:
12546 case NB_EV_APPLY:
12547 /* TODO: implement me. */
12548 break;
12549 }
12550
12551 return NB_OK;
12552 }
12553
12554 /*
12555 * XPath:
12556 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance-route
12557 */
12558 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_route_create(
12559 struct nb_cb_create_args *args)
12560 {
12561 switch (args->event) {
12562 case NB_EV_VALIDATE:
12563 case NB_EV_PREPARE:
12564 case NB_EV_ABORT:
12565 case NB_EV_APPLY:
12566 /* TODO: implement me. */
12567 break;
12568 }
12569
12570 return NB_OK;
12571 }
12572
12573 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_route_destroy(
12574 struct nb_cb_destroy_args *args)
12575 {
12576 switch (args->event) {
12577 case NB_EV_VALIDATE:
12578 case NB_EV_PREPARE:
12579 case NB_EV_ABORT:
12580 return NB_OK;
12581 case NB_EV_APPLY:
12582 return bgp_global_afi_safi_admin_distance_route_destroy(args);
12583 }
12584
12585 return NB_OK;
12586 }
12587
12588 /*
12589 * XPath:
12590 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance-route/distance
12591 */
12592 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_route_distance_modify(
12593 struct nb_cb_modify_args *args)
12594 {
12595 switch (args->event) {
12596 case NB_EV_VALIDATE:
12597 case NB_EV_PREPARE:
12598 case NB_EV_ABORT:
12599 case NB_EV_APPLY:
12600 /* TODO: implement me. */
12601 break;
12602 }
12603
12604 return NB_OK;
12605 }
12606
12607 /*
12608 * XPath:
12609 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance-route/access-list-policy-export
12610 */
12611 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_route_access_list_policy_export_modify(
12612 struct nb_cb_modify_args *args)
12613 {
12614 switch (args->event) {
12615 case NB_EV_VALIDATE:
12616 case NB_EV_PREPARE:
12617 case NB_EV_ABORT:
12618 case NB_EV_APPLY:
12619 /* TODO: implement me. */
12620 break;
12621 }
12622
12623 return NB_OK;
12624 }
12625
12626 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_route_access_list_policy_export_destroy(
12627 struct nb_cb_destroy_args *args)
12628 {
12629 switch (args->event) {
12630 case NB_EV_VALIDATE:
12631 case NB_EV_PREPARE:
12632 case NB_EV_ABORT:
12633 case NB_EV_APPLY:
12634 /* TODO: implement me. */
12635 break;
12636 }
12637
12638 return NB_OK;
12639 }
12640
12641 /*
12642 * XPath:
12643 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/admin-distance-route/distance
12644 */
12645 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_route_distance_modify(
12646 struct nb_cb_modify_args *args)
12647 {
12648 switch (args->event) {
12649 case NB_EV_VALIDATE:
12650 case NB_EV_PREPARE:
12651 case NB_EV_ABORT:
12652 case NB_EV_APPLY:
12653 /* TODO: implement me. */
12654 break;
12655 }
12656
12657 return NB_OK;
12658 }
12659
12660 /*
12661 * XPath:
12662 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/admin-distance-route/access-list-policy-export
12663 */
12664 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_route_access_list_policy_export_modify(
12665 struct nb_cb_modify_args *args)
12666 {
12667 switch (args->event) {
12668 case NB_EV_VALIDATE:
12669 case NB_EV_PREPARE:
12670 case NB_EV_ABORT:
12671 case NB_EV_APPLY:
12672 /* TODO: implement me. */
12673 break;
12674 }
12675
12676 return NB_OK;
12677 }
12678
12679 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_route_access_list_policy_export_destroy(
12680 struct nb_cb_destroy_args *args)
12681 {
12682 switch (args->event) {
12683 case NB_EV_VALIDATE:
12684 case NB_EV_PREPARE:
12685 case NB_EV_ABORT:
12686 case NB_EV_APPLY:
12687 /* TODO: implement me. */
12688 break;
12689 }
12690
12691 return NB_OK;
12692 }
12693
12694 /*
12695 * XPath:
12696 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/route-flap-dampening/enable
12697 */
12698 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_enable_modify(
12699 struct nb_cb_modify_args *args)
12700 {
12701 switch (args->event) {
12702 case NB_EV_VALIDATE:
12703 return bgp_global_afi_safi_route_flap_validation(args);
12704 case NB_EV_PREPARE:
12705 case NB_EV_ABORT:
12706 case NB_EV_APPLY:
12707 break;
12708 }
12709
12710 return NB_OK;
12711 }
12712
12713 /*
12714 * XPath:
12715 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/route-flap-dampening/reach-decay
12716 */
12717 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_reach_decay_modify(
12718 struct nb_cb_modify_args *args)
12719 {
12720 switch (args->event) {
12721 case NB_EV_VALIDATE:
12722 case NB_EV_PREPARE:
12723 case NB_EV_ABORT:
12724 case NB_EV_APPLY:
12725 /* TODO: implement me. */
12726 break;
12727 }
12728
12729 return NB_OK;
12730 }
12731
12732 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_reach_decay_destroy(
12733 struct nb_cb_destroy_args *args)
12734 {
12735 switch (args->event) {
12736 case NB_EV_VALIDATE:
12737 case NB_EV_PREPARE:
12738 case NB_EV_ABORT:
12739 case NB_EV_APPLY:
12740 /* TODO: implement me. */
12741 break;
12742 }
12743
12744 return NB_OK;
12745 }
12746
12747 /*
12748 * XPath:
12749 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/route-flap-dampening/reuse-above
12750 */
12751 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_reuse_above_modify(
12752 struct nb_cb_modify_args *args)
12753 {
12754 switch (args->event) {
12755 case NB_EV_VALIDATE:
12756 case NB_EV_PREPARE:
12757 case NB_EV_ABORT:
12758 case NB_EV_APPLY:
12759 /* TODO: implement me. */
12760 break;
12761 }
12762
12763 return NB_OK;
12764 }
12765
12766 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_reuse_above_destroy(
12767 struct nb_cb_destroy_args *args)
12768 {
12769 switch (args->event) {
12770 case NB_EV_VALIDATE:
12771 case NB_EV_PREPARE:
12772 case NB_EV_ABORT:
12773 case NB_EV_APPLY:
12774 /* TODO: implement me. */
12775 break;
12776 }
12777
12778 return NB_OK;
12779 }
12780
12781 /*
12782 * XPath:
12783 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/route-flap-dampening/suppress-above
12784 */
12785 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_suppress_above_modify(
12786 struct nb_cb_modify_args *args)
12787 {
12788 switch (args->event) {
12789 case NB_EV_VALIDATE:
12790 case NB_EV_PREPARE:
12791 case NB_EV_ABORT:
12792 case NB_EV_APPLY:
12793 /* TODO: implement me. */
12794 break;
12795 }
12796
12797 return NB_OK;
12798 }
12799
12800 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_suppress_above_destroy(
12801 struct nb_cb_destroy_args *args)
12802 {
12803 switch (args->event) {
12804 case NB_EV_VALIDATE:
12805 case NB_EV_PREPARE:
12806 case NB_EV_ABORT:
12807 case NB_EV_APPLY:
12808 /* TODO: implement me. */
12809 break;
12810 }
12811
12812 return NB_OK;
12813 }
12814
12815 /*
12816 * XPath:
12817 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/route-flap-dampening/unreach-decay
12818 */
12819 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_unreach_decay_modify(
12820 struct nb_cb_modify_args *args)
12821 {
12822 switch (args->event) {
12823 case NB_EV_VALIDATE:
12824 case NB_EV_PREPARE:
12825 case NB_EV_ABORT:
12826 case NB_EV_APPLY:
12827 /* TODO: implement me. */
12828 break;
12829 }
12830
12831 return NB_OK;
12832 }
12833
12834 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_unreach_decay_destroy(
12835 struct nb_cb_destroy_args *args)
12836 {
12837 switch (args->event) {
12838 case NB_EV_VALIDATE:
12839 case NB_EV_PREPARE:
12840 case NB_EV_ABORT:
12841 case NB_EV_APPLY:
12842 /* TODO: implement me. */
12843 break;
12844 }
12845
12846 return NB_OK;
12847 }
12848
12849 /*
12850 * XPath:
12851 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance
12852 */
12853 void bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_apply_finish(
12854 struct nb_cb_apply_finish_args *args)
12855 {
12856 bgp_global_afi_safis_admin_distance_modify(args);
12857 }
12858
12859 /*
12860 * XPath:
12861 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance/external
12862 */
12863 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_external_modify(
12864 struct nb_cb_modify_args *args)
12865 {
12866 /* Handled in admin_distance_apply_finish callback */
12867
12868 return NB_OK;
12869 }
12870
12871 /*
12872 * XPath:
12873 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance/internal
12874 */
12875 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_internal_modify(
12876 struct nb_cb_modify_args *args)
12877 {
12878 /* Handled in admin_distance_apply_finish callback */
12879
12880 return NB_OK;
12881 }
12882
12883 /*
12884 * XPath:
12885 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance/local
12886 */
12887 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_local_modify(
12888 struct nb_cb_modify_args *args)
12889 {
12890 /* Handled in admin_distance_apply_finish callback */
12891
12892 return NB_OK;
12893 }
12894
12895 /*
12896 * XPath:
12897 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/route-flap-dampening/enable
12898 */
12899 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_enable_modify(
12900 struct nb_cb_modify_args *args)
12901 {
12902 switch (args->event) {
12903 case NB_EV_VALIDATE:
12904 return bgp_global_afi_safi_route_flap_validation(args);
12905 case NB_EV_PREPARE:
12906 case NB_EV_ABORT:
12907 case NB_EV_APPLY:
12908 break;
12909 }
12910
12911 return NB_OK;
12912 }
12913
12914 /*
12915 * XPath:
12916 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/route-flap-dampening/reach-decay
12917 */
12918 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_reach_decay_modify(
12919 struct nb_cb_modify_args *args)
12920 {
12921 switch (args->event) {
12922 case NB_EV_VALIDATE:
12923 case NB_EV_PREPARE:
12924 case NB_EV_ABORT:
12925 case NB_EV_APPLY:
12926 /* TODO: implement me. */
12927 break;
12928 }
12929
12930 return NB_OK;
12931 }
12932
12933 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_reach_decay_destroy(
12934 struct nb_cb_destroy_args *args)
12935 {
12936 switch (args->event) {
12937 case NB_EV_VALIDATE:
12938 case NB_EV_PREPARE:
12939 case NB_EV_ABORT:
12940 case NB_EV_APPLY:
12941 /* TODO: implement me. */
12942 break;
12943 }
12944
12945 return NB_OK;
12946 }
12947
12948 /*
12949 * XPath:
12950 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/route-flap-dampening/reuse-above
12951 */
12952 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_reuse_above_modify(
12953 struct nb_cb_modify_args *args)
12954 {
12955 switch (args->event) {
12956 case NB_EV_VALIDATE:
12957 case NB_EV_PREPARE:
12958 case NB_EV_ABORT:
12959 case NB_EV_APPLY:
12960 /* TODO: implement me. */
12961 break;
12962 }
12963
12964 return NB_OK;
12965 }
12966
12967 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_reuse_above_destroy(
12968 struct nb_cb_destroy_args *args)
12969 {
12970 switch (args->event) {
12971 case NB_EV_VALIDATE:
12972 case NB_EV_PREPARE:
12973 case NB_EV_ABORT:
12974 case NB_EV_APPLY:
12975 /* TODO: implement me. */
12976 break;
12977 }
12978
12979 return NB_OK;
12980 }
12981
12982 /*
12983 * XPath:
12984 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/route-flap-dampening/suppress-above
12985 */
12986 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_suppress_above_modify(
12987 struct nb_cb_modify_args *args)
12988 {
12989 switch (args->event) {
12990 case NB_EV_VALIDATE:
12991 case NB_EV_PREPARE:
12992 case NB_EV_ABORT:
12993 case NB_EV_APPLY:
12994 /* TODO: implement me. */
12995 break;
12996 }
12997
12998 return NB_OK;
12999 }
13000
13001 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_suppress_above_destroy(
13002 struct nb_cb_destroy_args *args)
13003 {
13004 switch (args->event) {
13005 case NB_EV_VALIDATE:
13006 case NB_EV_PREPARE:
13007 case NB_EV_ABORT:
13008 case NB_EV_APPLY:
13009 /* TODO: implement me. */
13010 break;
13011 }
13012
13013 return NB_OK;
13014 }
13015
13016 /*
13017 * XPath:
13018 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/route-flap-dampening/unreach-decay
13019 */
13020 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_unreach_decay_modify(
13021 struct nb_cb_modify_args *args)
13022 {
13023 switch (args->event) {
13024 case NB_EV_VALIDATE:
13025 case NB_EV_PREPARE:
13026 case NB_EV_ABORT:
13027 case NB_EV_APPLY:
13028 /* TODO: implement me. */
13029 break;
13030 }
13031
13032 return NB_OK;
13033 }
13034
13035 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_unreach_decay_destroy(
13036 struct nb_cb_destroy_args *args)
13037 {
13038 switch (args->event) {
13039 case NB_EV_VALIDATE:
13040 case NB_EV_PREPARE:
13041 case NB_EV_ABORT:
13042 case NB_EV_APPLY:
13043 /* TODO: implement me. */
13044 break;
13045 }
13046
13047 return NB_OK;
13048 }
13049
13050 /*
13051 * XPath:
13052 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/filter-config/rmap-export
13053 */
13054 int bgp_global_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_modify(
13055 struct nb_cb_modify_args *args)
13056 {
13057 switch (args->event) {
13058 case NB_EV_VALIDATE:
13059 case NB_EV_PREPARE:
13060 case NB_EV_ABORT:
13061 case NB_EV_APPLY:
13062 /* TODO: implement me. */
13063 break;
13064 }
13065
13066 return NB_OK;
13067 }
13068
13069 int bgp_global_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_destroy(
13070 struct nb_cb_destroy_args *args)
13071 {
13072 switch (args->event) {
13073 case NB_EV_VALIDATE:
13074 case NB_EV_PREPARE:
13075 case NB_EV_ABORT:
13076 case NB_EV_APPLY:
13077 /* TODO: implement me. */
13078 break;
13079 }
13080
13081 return NB_OK;
13082 }
13083
13084 /*
13085 * XPath:
13086 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/network-config
13087 */
13088 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_create(
13089 struct nb_cb_create_args *args)
13090 {
13091 /* Handled in network_config_apply_finish callback */
13092
13093 return NB_OK;
13094 }
13095
13096 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_destroy(
13097 struct nb_cb_destroy_args *args)
13098 {
13099 switch (args->event) {
13100 case NB_EV_VALIDATE:
13101 case NB_EV_PREPARE:
13102 case NB_EV_ABORT:
13103 return NB_OK;
13104 case NB_EV_APPLY:
13105 return bgp_global_afi_safis_afi_safi_network_config_destroy(
13106 args);
13107
13108 break;
13109 }
13110
13111 return NB_OK;
13112 }
13113
13114 /*
13115 * XPath:
13116 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/network-config/backdoor
13117 */
13118 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_backdoor_modify(
13119 struct nb_cb_modify_args *args)
13120 {
13121 switch (args->event) {
13122 case NB_EV_VALIDATE:
13123 case NB_EV_PREPARE:
13124 case NB_EV_ABORT:
13125 case NB_EV_APPLY:
13126 /* TODO: implement me. */
13127 break;
13128 }
13129
13130 return NB_OK;
13131 }
13132
13133 /*
13134 * XPath:
13135 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/network-config/label-index
13136 */
13137 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_label_index_modify(
13138 struct nb_cb_modify_args *args)
13139 {
13140 switch (args->event) {
13141 case NB_EV_VALIDATE:
13142 case NB_EV_PREPARE:
13143 case NB_EV_ABORT:
13144 case NB_EV_APPLY:
13145 /* TODO: implement me. */
13146 break;
13147 }
13148
13149 return NB_OK;
13150 }
13151
13152 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_label_index_destroy(
13153 struct nb_cb_destroy_args *args)
13154 {
13155 switch (args->event) {
13156 case NB_EV_VALIDATE:
13157 case NB_EV_PREPARE:
13158 case NB_EV_ABORT:
13159 case NB_EV_APPLY:
13160 /* TODO: implement me. */
13161 break;
13162 }
13163
13164 return NB_OK;
13165 }
13166
13167 /*
13168 * XPath:
13169 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/network-config/rmap-policy-export
13170 */
13171 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_rmap_policy_export_modify(
13172 struct nb_cb_modify_args *args)
13173 {
13174 switch (args->event) {
13175 case NB_EV_VALIDATE:
13176 case NB_EV_PREPARE:
13177 case NB_EV_ABORT:
13178 case NB_EV_APPLY:
13179 /* TODO: implement me. */
13180 break;
13181 }
13182
13183 return NB_OK;
13184 }
13185
13186 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_rmap_policy_export_destroy(
13187 struct nb_cb_destroy_args *args)
13188 {
13189 switch (args->event) {
13190 case NB_EV_VALIDATE:
13191 case NB_EV_PREPARE:
13192 case NB_EV_ABORT:
13193 case NB_EV_APPLY:
13194 /* TODO: implement me. */
13195 break;
13196 }
13197
13198 return NB_OK;
13199 }
13200
13201 /*
13202 * XPath:
13203 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route
13204 */
13205 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_create(
13206 struct nb_cb_create_args *args)
13207 {
13208 switch (args->event) {
13209 case NB_EV_VALIDATE:
13210 case NB_EV_PREPARE:
13211 case NB_EV_ABORT:
13212 case NB_EV_APPLY:
13213 /* TODO: implement me. */
13214 break;
13215 }
13216
13217 return NB_OK;
13218 }
13219
13220 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_destroy(
13221 struct nb_cb_destroy_args *args)
13222 {
13223 switch (args->event) {
13224 case NB_EV_VALIDATE:
13225 case NB_EV_PREPARE:
13226 case NB_EV_ABORT:
13227 case NB_EV_APPLY:
13228 /* TODO: implement me. */
13229 break;
13230 }
13231
13232 return NB_OK;
13233 }
13234
13235 /*
13236 * XPath:
13237 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/as-set
13238 */
13239 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_as_set_modify(
13240 struct nb_cb_modify_args *args)
13241 {
13242 switch (args->event) {
13243 case NB_EV_VALIDATE:
13244 case NB_EV_PREPARE:
13245 case NB_EV_ABORT:
13246 case NB_EV_APPLY:
13247 /* TODO: implement me. */
13248 break;
13249 }
13250
13251 return NB_OK;
13252 }
13253
13254 /*
13255 * XPath:
13256 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/summary-only
13257 */
13258 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_summary_only_modify(
13259 struct nb_cb_modify_args *args)
13260 {
13261 switch (args->event) {
13262 case NB_EV_VALIDATE:
13263 case NB_EV_PREPARE:
13264 case NB_EV_ABORT:
13265 case NB_EV_APPLY:
13266 /* TODO: implement me. */
13267 break;
13268 }
13269
13270 return NB_OK;
13271 }
13272
13273 /*
13274 * XPath:
13275 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/rmap-policy-export
13276 */
13277 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_rmap_policy_export_modify(
13278 struct nb_cb_modify_args *args)
13279 {
13280 switch (args->event) {
13281 case NB_EV_VALIDATE:
13282 case NB_EV_PREPARE:
13283 case NB_EV_ABORT:
13284 case NB_EV_APPLY:
13285 /* TODO: implement me. */
13286 break;
13287 }
13288
13289 return NB_OK;
13290 }
13291
13292 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_rmap_policy_export_destroy(
13293 struct nb_cb_destroy_args *args)
13294 {
13295 switch (args->event) {
13296 case NB_EV_VALIDATE:
13297 case NB_EV_PREPARE:
13298 case NB_EV_ABORT:
13299 case NB_EV_APPLY:
13300 /* TODO: implement me. */
13301 break;
13302 }
13303
13304 return NB_OK;
13305 }
13306
13307 /*
13308 * XPath:
13309 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/origin
13310 */
13311 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_origin_modify(
13312 struct nb_cb_modify_args *args)
13313 {
13314 switch (args->event) {
13315 case NB_EV_VALIDATE:
13316 case NB_EV_PREPARE:
13317 case NB_EV_ABORT:
13318 case NB_EV_APPLY:
13319 /* TODO: implement me. */
13320 break;
13321 }
13322
13323 return NB_OK;
13324 }
13325
13326 /*
13327 * XPath:
13328 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/match-med
13329 */
13330 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_match_med_modify(
13331 struct nb_cb_modify_args *args)
13332 {
13333 switch (args->event) {
13334 case NB_EV_VALIDATE:
13335 case NB_EV_PREPARE:
13336 case NB_EV_ABORT:
13337 case NB_EV_APPLY:
13338 /* TODO: implement me. */
13339 break;
13340 }
13341
13342 return NB_OK;
13343 }
13344
13345 /*
13346 * XPath:
13347 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/suppress-map
13348 */
13349 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_suppress_map_modify(
13350 struct nb_cb_modify_args *args)
13351 {
13352 switch (args->event) {
13353 case NB_EV_VALIDATE:
13354 case NB_EV_PREPARE:
13355 case NB_EV_ABORT:
13356 case NB_EV_APPLY:
13357 /* TODO: implement me. */
13358 break;
13359 }
13360
13361 return NB_OK;
13362 }
13363
13364 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_suppress_map_destroy(
13365 struct nb_cb_destroy_args *args)
13366 {
13367 switch (args->event) {
13368 case NB_EV_VALIDATE:
13369 case NB_EV_PREPARE:
13370 case NB_EV_ABORT:
13371 case NB_EV_APPLY:
13372 /* TODO: implement me. */
13373 break;
13374 }
13375
13376 return NB_OK;
13377 }
13378
13379 /*
13380 * XPath:
13381 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/admin-distance-route
13382 */
13383 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_route_create(
13384 struct nb_cb_create_args *args)
13385 {
13386 switch (args->event) {
13387 case NB_EV_VALIDATE:
13388 case NB_EV_PREPARE:
13389 case NB_EV_ABORT:
13390 case NB_EV_APPLY:
13391 /* TODO: implement me. */
13392 break;
13393 }
13394
13395 return NB_OK;
13396 }
13397
13398 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_route_destroy(
13399 struct nb_cb_destroy_args *args)
13400 {
13401 switch (args->event) {
13402 case NB_EV_VALIDATE:
13403 case NB_EV_PREPARE:
13404 case NB_EV_ABORT:
13405 return NB_OK;
13406 case NB_EV_APPLY:
13407 return bgp_global_afi_safi_admin_distance_route_destroy(args);
13408 }
13409
13410 return NB_OK;
13411 }
13412
13413 /*
13414 * XPath:
13415 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance
13416 */
13417 void bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_apply_finish(
13418 struct nb_cb_apply_finish_args *args)
13419 {
13420 bgp_global_afi_safis_admin_distance_modify(args);
13421 }
13422
13423 /*
13424 * XPath:
13425 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/admin-distance/external
13426 */
13427 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_external_modify(
13428 struct nb_cb_modify_args *args)
13429 {
13430 /* Handled in admin_distance_apply_finish callback */
13431
13432 return NB_OK;
13433 }
13434
13435 /*
13436 * XPath:
13437 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/admin-distance/internal
13438 */
13439 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_internal_modify(
13440 struct nb_cb_modify_args *args)
13441 {
13442 /* Handled in admin_distance_apply_finish callback */
13443
13444 return NB_OK;
13445 }
13446
13447 /*
13448 * XPath:
13449 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/admin-distance/local
13450 */
13451 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_local_modify(
13452 struct nb_cb_modify_args *args)
13453 {
13454 /* Handled in admin_distance_apply_finish callback */
13455
13456 return NB_OK;
13457 }
13458
13459 /*
13460 * XPath:
13461 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-flowspec/flow-spec-config/interface
13462 */
13463 int bgp_global_afi_safis_afi_safi_ipv4_flowspec_flow_spec_config_interface_modify(
13464 struct nb_cb_modify_args *args)
13465 {
13466 switch (args->event) {
13467 case NB_EV_VALIDATE:
13468 case NB_EV_PREPARE:
13469 case NB_EV_ABORT:
13470 case NB_EV_APPLY:
13471 /* TODO: implement me. */
13472 break;
13473 }
13474
13475 return NB_OK;
13476 }
13477
13478 int bgp_global_afi_safis_afi_safi_ipv4_flowspec_flow_spec_config_interface_destroy(
13479 struct nb_cb_destroy_args *args)
13480 {
13481 switch (args->event) {
13482 case NB_EV_VALIDATE:
13483 case NB_EV_PREPARE:
13484 case NB_EV_ABORT:
13485 case NB_EV_APPLY:
13486 /* TODO: implement me. */
13487 break;
13488 }
13489
13490 return NB_OK;
13491 }
13492
13493 /*
13494 * XPath:
13495 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/network-config
13496 */
13497 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_create(
13498 struct nb_cb_create_args *args)
13499 {
13500 switch (args->event) {
13501 case NB_EV_VALIDATE:
13502 case NB_EV_PREPARE:
13503 case NB_EV_ABORT:
13504 case NB_EV_APPLY:
13505 /* TODO: implement me. */
13506 break;
13507 }
13508
13509 return NB_OK;
13510 }
13511
13512 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_destroy(
13513 struct nb_cb_destroy_args *args)
13514 {
13515 switch (args->event) {
13516 case NB_EV_VALIDATE:
13517 case NB_EV_PREPARE:
13518 case NB_EV_ABORT:
13519 case NB_EV_APPLY:
13520 /* TODO: implement me. */
13521 break;
13522 }
13523
13524 return NB_OK;
13525 }
13526
13527 /*
13528 * XPath:
13529 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/network-config/prefix-list
13530 */
13531 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_prefix_list_create(
13532 struct nb_cb_create_args *args)
13533 {
13534 switch (args->event) {
13535 case NB_EV_VALIDATE:
13536 case NB_EV_PREPARE:
13537 case NB_EV_ABORT:
13538 case NB_EV_APPLY:
13539 /* TODO: implement me. */
13540 break;
13541 }
13542
13543 return NB_OK;
13544 }
13545
13546 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_prefix_list_destroy(
13547 struct nb_cb_destroy_args *args)
13548 {
13549 switch (args->event) {
13550 case NB_EV_VALIDATE:
13551 case NB_EV_PREPARE:
13552 case NB_EV_ABORT:
13553 case NB_EV_APPLY:
13554 /* TODO: implement me. */
13555 break;
13556 }
13557
13558 return NB_OK;
13559 }
13560
13561 /*
13562 * XPath:
13563 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/network-config/prefix-list/label-index
13564 */
13565 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_prefix_list_label_index_modify(
13566 struct nb_cb_modify_args *args)
13567 {
13568 switch (args->event) {
13569 case NB_EV_VALIDATE:
13570 case NB_EV_PREPARE:
13571 case NB_EV_ABORT:
13572 case NB_EV_APPLY:
13573 /* TODO: implement me. */
13574 break;
13575 }
13576
13577 return NB_OK;
13578 }
13579
13580 /*
13581 * XPath:
13582 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/network-config/prefix-list/rmap-policy-export
13583 */
13584 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_prefix_list_rmap_policy_export_modify(
13585 struct nb_cb_modify_args *args)
13586 {
13587 switch (args->event) {
13588 case NB_EV_VALIDATE:
13589 case NB_EV_PREPARE:
13590 case NB_EV_ABORT:
13591 case NB_EV_APPLY:
13592 /* TODO: implement me. */
13593 break;
13594 }
13595
13596 return NB_OK;
13597 }
13598
13599 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_prefix_list_rmap_policy_export_destroy(
13600 struct nb_cb_destroy_args *args)
13601 {
13602 switch (args->event) {
13603 case NB_EV_VALIDATE:
13604 case NB_EV_PREPARE:
13605 case NB_EV_ABORT:
13606 case NB_EV_APPLY:
13607 /* TODO: implement me. */
13608 break;
13609 }
13610
13611 return NB_OK;
13612 }
13613
13614 /*
13615 * XPath:
13616 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/network-config
13617 */
13618 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_create(
13619 struct nb_cb_create_args *args)
13620 {
13621 switch (args->event) {
13622 case NB_EV_VALIDATE:
13623 case NB_EV_PREPARE:
13624 case NB_EV_ABORT:
13625 case NB_EV_APPLY:
13626 /* TODO: implement me. */
13627 break;
13628 }
13629
13630 return NB_OK;
13631 }
13632
13633 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_destroy(
13634 struct nb_cb_destroy_args *args)
13635 {
13636 switch (args->event) {
13637 case NB_EV_VALIDATE:
13638 case NB_EV_PREPARE:
13639 case NB_EV_ABORT:
13640 case NB_EV_APPLY:
13641 /* TODO: implement me. */
13642 break;
13643 }
13644
13645 return NB_OK;
13646 }
13647
13648 /*
13649 * XPath:
13650 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/network-config/prefix-list
13651 */
13652 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_prefix_list_create(
13653 struct nb_cb_create_args *args)
13654 {
13655 switch (args->event) {
13656 case NB_EV_VALIDATE:
13657 case NB_EV_PREPARE:
13658 case NB_EV_ABORT:
13659 case NB_EV_APPLY:
13660 /* TODO: implement me. */
13661 break;
13662 }
13663
13664 return NB_OK;
13665 }
13666
13667 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_prefix_list_destroy(
13668 struct nb_cb_destroy_args *args)
13669 {
13670 switch (args->event) {
13671 case NB_EV_VALIDATE:
13672 case NB_EV_PREPARE:
13673 case NB_EV_ABORT:
13674 case NB_EV_APPLY:
13675 /* TODO: implement me. */
13676 break;
13677 }
13678
13679 return NB_OK;
13680 }
13681
13682 /*
13683 * XPath:
13684 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/network-config/prefix-list/label-index
13685 */
13686 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_prefix_list_label_index_modify(
13687 struct nb_cb_modify_args *args)
13688 {
13689 switch (args->event) {
13690 case NB_EV_VALIDATE:
13691 case NB_EV_PREPARE:
13692 case NB_EV_ABORT:
13693 case NB_EV_APPLY:
13694 /* TODO: implement me. */
13695 break;
13696 }
13697
13698 return NB_OK;
13699 }
13700
13701 /*
13702 * XPath:
13703 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/network-config/prefix-list/rmap-policy-export
13704 */
13705 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_prefix_list_rmap_policy_export_modify(
13706 struct nb_cb_modify_args *args)
13707 {
13708 switch (args->event) {
13709 case NB_EV_VALIDATE:
13710 case NB_EV_PREPARE:
13711 case NB_EV_ABORT:
13712 case NB_EV_APPLY:
13713 /* TODO: implement me. */
13714 break;
13715 }
13716
13717 return NB_OK;
13718 }
13719
13720 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_prefix_list_rmap_policy_export_destroy(
13721 struct nb_cb_destroy_args *args)
13722 {
13723 switch (args->event) {
13724 case NB_EV_VALIDATE:
13725 case NB_EV_PREPARE:
13726 case NB_EV_ABORT:
13727 case NB_EV_APPLY:
13728 /* TODO: implement me. */
13729 break;
13730 }
13731
13732 return NB_OK;
13733 }
13734
13735 /*
13736 * XPath:
13737 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/afi-safis/afi-safi/ipv4-unicast/common-config/pre-policy
13738 */
13739 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv4_unicast_common_config_pre_policy_modify(
13740 struct nb_cb_modify_args *args)
13741 {
13742 switch (args->event) {
13743 case NB_EV_VALIDATE:
13744 case NB_EV_PREPARE:
13745 case NB_EV_ABORT:
13746 case NB_EV_APPLY:
13747 /* TODO: implement me. */
13748 break;
13749 }
13750
13751 return NB_OK;
13752 }
13753
13754 /*
13755 * XPath:
13756 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/afi-safis/afi-safi/ipv4-unicast/common-config/post-policy
13757 */
13758 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv4_unicast_common_config_post_policy_modify(
13759 struct nb_cb_modify_args *args)
13760 {
13761 switch (args->event) {
13762 case NB_EV_VALIDATE:
13763 case NB_EV_PREPARE:
13764 case NB_EV_ABORT:
13765 case NB_EV_APPLY:
13766 /* TODO: implement me. */
13767 break;
13768 }
13769
13770 return NB_OK;
13771 }
13772
13773 /*
13774 * XPath:
13775 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/afi-safis/afi-safi/ipv4-multicast/common-config/pre-policy
13776 */
13777 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv4_multicast_common_config_pre_policy_modify(
13778 struct nb_cb_modify_args *args)
13779 {
13780 switch (args->event) {
13781 case NB_EV_VALIDATE:
13782 case NB_EV_PREPARE:
13783 case NB_EV_ABORT:
13784 case NB_EV_APPLY:
13785 /* TODO: implement me. */
13786 break;
13787 }
13788
13789 return NB_OK;
13790 }
13791
13792 /*
13793 * XPath:
13794 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/afi-safis/afi-safi/ipv4-multicast/common-config/post-policy
13795 */
13796 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv4_multicast_common_config_post_policy_modify(
13797 struct nb_cb_modify_args *args)
13798 {
13799 switch (args->event) {
13800 case NB_EV_VALIDATE:
13801 case NB_EV_PREPARE:
13802 case NB_EV_ABORT:
13803 case NB_EV_APPLY:
13804 /* TODO: implement me. */
13805 break;
13806 }
13807
13808 return NB_OK;
13809 }
13810
13811 /*
13812 * XPath:
13813 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/afi-safis/afi-safi/ipv6-unicast/common-config/pre-policy
13814 */
13815 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv6_unicast_common_config_pre_policy_modify(
13816 struct nb_cb_modify_args *args)
13817 {
13818 switch (args->event) {
13819 case NB_EV_VALIDATE:
13820 case NB_EV_PREPARE:
13821 case NB_EV_ABORT:
13822 case NB_EV_APPLY:
13823 /* TODO: implement me. */
13824 break;
13825 }
13826
13827 return NB_OK;
13828 }
13829
13830 /*
13831 * XPath:
13832 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/afi-safis/afi-safi/ipv6-unicast/common-config/post-policy
13833 */
13834 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv6_unicast_common_config_post_policy_modify(
13835 struct nb_cb_modify_args *args)
13836 {
13837 switch (args->event) {
13838 case NB_EV_VALIDATE:
13839 case NB_EV_PREPARE:
13840 case NB_EV_ABORT:
13841 case NB_EV_APPLY:
13842 /* TODO: implement me. */
13843 break;
13844 }
13845
13846 return NB_OK;
13847 }
13848
13849 /*
13850 * XPath:
13851 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/afi-safis/afi-safi/ipv6-multicast/common-config/pre-policy
13852 */
13853 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv6_multicast_common_config_pre_policy_modify(
13854 struct nb_cb_modify_args *args)
13855 {
13856 switch (args->event) {
13857 case NB_EV_VALIDATE:
13858 case NB_EV_PREPARE:
13859 case NB_EV_ABORT:
13860 case NB_EV_APPLY:
13861 /* TODO: implement me. */
13862 break;
13863 }
13864
13865 return NB_OK;
13866 }
13867
13868 /*
13869 * XPath:
13870 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/afi-safis/afi-safi/ipv6-multicast/common-config/post-policy
13871 */
13872 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv6_multicast_common_config_post_policy_modify(
13873 struct nb_cb_modify_args *args)
13874 {
13875 switch (args->event) {
13876 case NB_EV_VALIDATE:
13877 case NB_EV_PREPARE:
13878 case NB_EV_ABORT:
13879 case NB_EV_APPLY:
13880 /* TODO: implement me. */
13881 break;
13882 }
13883
13884 return NB_OK;
13885 }
13886
13887 static int bgp_neighbor_afi_safi_flag_modify(struct nb_cb_modify_args *args,
13888 uint32_t flags, bool set)
13889 {
13890 struct bgp *bgp;
13891 const char *peer_str;
13892 struct peer *peer;
13893 const struct lyd_node *nbr_dnode;
13894 const struct lyd_node *nbr_af_dnode;
13895 const char *af_name;
13896 afi_t afi;
13897 safi_t safi;
13898
13899 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
13900 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
13901 yang_afi_safi_identity2value(af_name, &afi, &safi);
13902
13903 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
13904 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
13905 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
13906 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
13907 args->errmsg_len);
13908
13909 if (peer_af_flag_modify_nb(peer, afi, safi, flags, set, args->errmsg,
13910 args->errmsg_len)
13911 < 0)
13912 return NB_ERR_INCONSISTENCY;
13913
13914 return NB_OK;
13915 }
13916
13917 /*
13918 * XPath:
13919 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/add-paths/path-type
13920 */
13921 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_add_paths_path_type_modify(
13922 struct nb_cb_modify_args *args)
13923 {
13924 switch (args->event) {
13925 case NB_EV_VALIDATE:
13926 case NB_EV_PREPARE:
13927 case NB_EV_ABORT:
13928 case NB_EV_APPLY:
13929 /* TODO: implement me. */
13930 break;
13931 }
13932
13933 return NB_OK;
13934 }
13935
13936 /*
13937 * XPath:
13938 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/as-path-options/allow-own-as
13939 */
13940 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_modify(
13941 struct nb_cb_modify_args *args)
13942 {
13943 switch (args->event) {
13944 case NB_EV_VALIDATE:
13945 case NB_EV_PREPARE:
13946 case NB_EV_ABORT:
13947 case NB_EV_APPLY:
13948 /* TODO: implement me. */
13949 break;
13950 }
13951
13952 return NB_OK;
13953 }
13954
13955 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_destroy(
13956 struct nb_cb_destroy_args *args)
13957 {
13958 switch (args->event) {
13959 case NB_EV_VALIDATE:
13960 case NB_EV_PREPARE:
13961 case NB_EV_ABORT:
13962 case NB_EV_APPLY:
13963 /* TODO: implement me. */
13964 break;
13965 }
13966
13967 return NB_OK;
13968 }
13969
13970 /*
13971 * XPath:
13972 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/as-path-options/allow-own-origin-as
13973 */
13974 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
13975 struct nb_cb_modify_args *args)
13976 {
13977 switch (args->event) {
13978 case NB_EV_VALIDATE:
13979 case NB_EV_PREPARE:
13980 case NB_EV_ABORT:
13981 case NB_EV_APPLY:
13982 /* TODO: implement me. */
13983 break;
13984 }
13985
13986 return NB_OK;
13987 }
13988
13989 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
13990 struct nb_cb_destroy_args *args)
13991 {
13992 switch (args->event) {
13993 case NB_EV_VALIDATE:
13994 case NB_EV_PREPARE:
13995 case NB_EV_ABORT:
13996 case NB_EV_APPLY:
13997 /* TODO: implement me. */
13998 break;
13999 }
14000
14001 return NB_OK;
14002 }
14003
14004 /*
14005 * XPath:
14006 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/as-path-options/replace-peer-as
14007 */
14008 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_replace_peer_as_modify(
14009 struct nb_cb_modify_args *args)
14010 {
14011 switch (args->event) {
14012 case NB_EV_VALIDATE:
14013 case NB_EV_PREPARE:
14014 case NB_EV_ABORT:
14015 return NB_OK;
14016 case NB_EV_APPLY:
14017 return bgp_neighbor_afi_safi_flag_modify(
14018 args, PEER_FLAG_AS_OVERRIDE,
14019 yang_dnode_get_bool(args->dnode, NULL));
14020
14021 break;
14022 }
14023
14024 return NB_OK;
14025 }
14026
14027 static int
14028 bgp_peer_afi_safi_default_originate_apply(struct nb_cb_apply_finish_args *args,
14029 struct peer *peer, afi_t afi,
14030 safi_t safi)
14031 {
14032 bool originate = false;
14033 int ret = 0;
14034 struct route_map *route_map = NULL;
14035 const char *rmap = NULL;
14036
14037 originate = yang_dnode_get_bool(args->dnode, "./originate");
14038
14039 if (yang_dnode_exists(args->dnode, "./route-map")) {
14040 rmap = yang_dnode_get_string(args->dnode, "./route-map");
14041 route_map = route_map_lookup_by_name(rmap);
14042 if (!route_map) {
14043 snprintf(args->errmsg, args->errmsg_len,
14044 "The route-map '%s' does not exist.", rmap);
14045 return -1;
14046 }
14047 }
14048
14049 // zlog_debug("%s: originate %u route-map %s", __func__, originate,
14050 // rmap);
14051 if (originate)
14052 ret = peer_default_originate_set(peer, afi, safi, rmap,
14053 route_map);
14054 else
14055 ret = peer_default_originate_unset(peer, afi, safi);
14056
14057 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
14058 }
14059
14060 /*
14061 * XPath:
14062 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate
14063 */
14064 void bgp_neighbor_afi_safi_default_originate_apply_finish(
14065 struct nb_cb_apply_finish_args *args)
14066 {
14067 struct bgp *bgp;
14068 const char *peer_str;
14069 struct peer *peer;
14070 const struct lyd_node *nbr_dnode;
14071 const struct lyd_node *nbr_af_dnode;
14072 const char *af_name;
14073 afi_t afi;
14074 safi_t safi;
14075
14076 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
14077 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
14078 yang_afi_safi_identity2value(af_name, &afi, &safi);
14079
14080 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
14081 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
14082 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
14083 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
14084 args->errmsg_len);
14085 if (!peer)
14086 return;
14087
14088 bgp_peer_afi_safi_default_originate_apply(args, peer, afi, safi);
14089 }
14090
14091 /*
14092 * XPath:
14093 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate/originate
14094 */
14095 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_originate_modify(
14096 struct nb_cb_modify_args *args)
14097 {
14098 switch (args->event) {
14099 case NB_EV_VALIDATE:
14100 case NB_EV_PREPARE:
14101 case NB_EV_ABORT:
14102 case NB_EV_APPLY:
14103 /* TODO: implement me. */
14104 break;
14105 }
14106
14107 return NB_OK;
14108 }
14109
14110 /*
14111 * XPath:
14112 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate/route-map
14113 */
14114 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_modify(
14115 struct nb_cb_modify_args *args)
14116 {
14117 switch (args->event) {
14118 case NB_EV_VALIDATE:
14119 case NB_EV_PREPARE:
14120 case NB_EV_ABORT:
14121 case NB_EV_APPLY:
14122 /* TODO: implement me. */
14123 break;
14124 }
14125
14126 return NB_OK;
14127 }
14128
14129 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_destroy(
14130 struct nb_cb_destroy_args *args)
14131 {
14132 switch (args->event) {
14133 case NB_EV_VALIDATE:
14134 case NB_EV_PREPARE:
14135 case NB_EV_ABORT:
14136 case NB_EV_APPLY:
14137 /* TODO: implement me. */
14138 break;
14139 }
14140
14141 return NB_OK;
14142 }
14143
14144 static int
14145 bgp_neighbor_afi_safi_prefix_limit_list_destroy(struct nb_cb_destroy_args *args)
14146 {
14147 struct bgp *bgp;
14148 const char *peer_str;
14149 struct peer *peer;
14150 const struct lyd_node *nbr_dnode;
14151 const struct lyd_node *nbr_af_dnode;
14152 const char *af_name;
14153 afi_t afi;
14154 safi_t safi;
14155 int direction;
14156
14157 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
14158 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
14159 yang_afi_safi_identity2value(af_name, &afi, &safi);
14160
14161 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
14162 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
14163 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
14164 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
14165 args->errmsg_len);
14166 if (!peer)
14167 return NB_ERR_INCONSISTENCY;
14168
14169 direction = yang_dnode_get_enum(args->dnode, "./direction");
14170
14171 switch (direction) {
14172 case 1:
14173 peer_maximum_prefix_unset(peer, afi, safi);
14174 break;
14175 case 2:
14176 UNSET_FLAG(peer->af_flags[afi][safi], PEER_FLAG_MAX_PREFIX_OUT);
14177 peer->pmax_out[afi][safi] = 0;
14178 break;
14179 }
14180
14181 return NB_OK;
14182 }
14183
14184 /*
14185 * XPath:
14186 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list
14187 */
14188 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_create(
14189 struct nb_cb_create_args *args)
14190 {
14191 switch (args->event) {
14192 case NB_EV_VALIDATE:
14193 case NB_EV_PREPARE:
14194 case NB_EV_ABORT:
14195 case NB_EV_APPLY:
14196 /* TODO: implement me. */
14197 break;
14198 }
14199
14200 return NB_OK;
14201 }
14202
14203 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_destroy(
14204 struct nb_cb_destroy_args *args)
14205 {
14206 switch (args->event) {
14207 case NB_EV_VALIDATE:
14208 case NB_EV_PREPARE:
14209 case NB_EV_ABORT:
14210 return NB_OK;
14211 case NB_EV_APPLY:
14212 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
14213 }
14214
14215 return NB_OK;
14216 }
14217
14218 static void
14219 bgp_peer_afi_safi_maximum_prefix_set(struct nb_cb_apply_finish_args *args,
14220 struct peer *peer, afi_t afi, safi_t safi)
14221 {
14222 int direction;
14223 uint32_t max;
14224 uint8_t threshold = MAXIMUM_PREFIX_THRESHOLD_DEFAULT;
14225 uint16_t restart = 0;
14226 bool warning = false;
14227 bool force;
14228
14229 max = yang_dnode_get_uint32(args->dnode, "./max-prefixes");
14230 direction = yang_dnode_get_enum(args->dnode, "./direction");
14231 switch (direction) {
14232 case 1:
14233 force = yang_dnode_get_bool(args->dnode, "./force-check");
14234
14235 if (yang_dnode_exists(args->dnode,
14236 "./options/shutdown-threshold-pct"))
14237 threshold = yang_dnode_get_uint8(
14238 args->dnode,
14239 "./options/shutdown-threshold-pct");
14240 if (yang_dnode_exists(args->dnode,
14241 "./options/tw-shutdown-threshold-pct"))
14242 threshold = yang_dnode_get_uint8(
14243 args->dnode,
14244 "./options/tw-shutdown-threshold-pct");
14245 if (yang_dnode_exists(args->dnode,
14246 "./options/tr-shutdown-threshold-pct"))
14247 threshold = yang_dnode_get_uint8(
14248 args->dnode,
14249 "./options/tr-shutdown-threshold-pct");
14250
14251 if (yang_dnode_exists(args->dnode, "./options/warning-only"))
14252 warning = yang_dnode_get_bool(args->dnode,
14253 "./options/warning-only");
14254 if (yang_dnode_exists(args->dnode, "./options/tw-warning-only"))
14255 warning = yang_dnode_get_bool(
14256 args->dnode, "./options/tw-warning-only");
14257
14258 if (yang_dnode_exists(args->dnode, "./options/restart-timer"))
14259 restart = yang_dnode_get_uint16(
14260 args->dnode, "./options/restart-timer");
14261 if (yang_dnode_exists(args->dnode,
14262 "./options/tr-restart-timer"))
14263 restart = yang_dnode_get_uint16(
14264 args->dnode, "./options/tr-restart-timer");
14265
14266 peer_maximum_prefix_set(peer, afi, safi, max, threshold,
14267 warning, restart, force);
14268
14269 break;
14270 case 2:
14271 SET_FLAG(peer->af_flags[afi][safi], PEER_FLAG_MAX_PREFIX_OUT);
14272 peer->pmax_out[afi][safi] = max;
14273
14274 break;
14275 }
14276 }
14277
14278 void bgp_neighbors_neighbor_afi_safi_prefix_limit_apply_finish(
14279 struct nb_cb_apply_finish_args *args)
14280 {
14281 struct bgp *bgp;
14282 const char *peer_str;
14283 struct peer *peer;
14284 const struct lyd_node *nbr_dnode;
14285 const struct lyd_node *nbr_af_dnode;
14286 const char *af_name;
14287 afi_t afi;
14288 safi_t safi;
14289
14290 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
14291 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
14292 yang_afi_safi_identity2value(af_name, &afi, &safi);
14293
14294 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
14295 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
14296 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
14297 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
14298 args->errmsg_len);
14299 if (!peer)
14300 return;
14301
14302 bgp_peer_afi_safi_maximum_prefix_set(args, peer, afi, safi);
14303 }
14304
14305 /*
14306 * XPath:
14307 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/max-prefixes
14308 */
14309 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
14310 struct nb_cb_modify_args *args)
14311 {
14312 switch (args->event) {
14313 case NB_EV_VALIDATE:
14314 case NB_EV_PREPARE:
14315 case NB_EV_ABORT:
14316 case NB_EV_APPLY:
14317 /* TODO: implement me. */
14318 break;
14319 }
14320
14321 return NB_OK;
14322 }
14323
14324 /*
14325 * XPath:
14326 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/force-check
14327 */
14328 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
14329 struct nb_cb_modify_args *args)
14330 {
14331 switch (args->event) {
14332 case NB_EV_VALIDATE:
14333 case NB_EV_PREPARE:
14334 case NB_EV_ABORT:
14335 case NB_EV_APPLY:
14336 /* TODO: implement me. */
14337 break;
14338 }
14339
14340 return NB_OK;
14341 }
14342
14343 /*
14344 * XPath:
14345 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/warning-only
14346 */
14347 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
14348 struct nb_cb_modify_args *args)
14349 {
14350 switch (args->event) {
14351 case NB_EV_VALIDATE:
14352 case NB_EV_PREPARE:
14353 case NB_EV_ABORT:
14354 case NB_EV_APPLY:
14355 /* TODO: implement me. */
14356 break;
14357 }
14358
14359 return NB_OK;
14360 }
14361
14362 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
14363 struct nb_cb_destroy_args *args)
14364 {
14365 switch (args->event) {
14366 case NB_EV_VALIDATE:
14367 case NB_EV_PREPARE:
14368 case NB_EV_ABORT:
14369 case NB_EV_APPLY:
14370 /* TODO: implement me. */
14371 break;
14372 }
14373
14374 return NB_OK;
14375 }
14376
14377 /*
14378 * XPath:
14379 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/restart-timer
14380 */
14381 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
14382 struct nb_cb_modify_args *args)
14383 {
14384 switch (args->event) {
14385 case NB_EV_VALIDATE:
14386 case NB_EV_PREPARE:
14387 case NB_EV_ABORT:
14388 case NB_EV_APPLY:
14389 /* TODO: implement me. */
14390 break;
14391 }
14392
14393 return NB_OK;
14394 }
14395
14396 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
14397 struct nb_cb_destroy_args *args)
14398 {
14399 switch (args->event) {
14400 case NB_EV_VALIDATE:
14401 case NB_EV_PREPARE:
14402 case NB_EV_ABORT:
14403 case NB_EV_APPLY:
14404 /* TODO: implement me. */
14405 break;
14406 }
14407
14408 return NB_OK;
14409 }
14410
14411 /*
14412 * XPath:
14413 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
14414 */
14415 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
14416 struct nb_cb_modify_args *args)
14417 {
14418 switch (args->event) {
14419 case NB_EV_VALIDATE:
14420 case NB_EV_PREPARE:
14421 case NB_EV_ABORT:
14422 case NB_EV_APPLY:
14423 /* TODO: implement me. */
14424 break;
14425 }
14426
14427 return NB_OK;
14428 }
14429
14430 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
14431 struct nb_cb_destroy_args *args)
14432 {
14433 switch (args->event) {
14434 case NB_EV_VALIDATE:
14435 case NB_EV_PREPARE:
14436 case NB_EV_ABORT:
14437 case NB_EV_APPLY:
14438 /* TODO: implement me. */
14439 break;
14440 }
14441
14442 return NB_OK;
14443 }
14444
14445 /*
14446 * XPath:
14447 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
14448 */
14449 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
14450 struct nb_cb_modify_args *args)
14451 {
14452 switch (args->event) {
14453 case NB_EV_VALIDATE:
14454 case NB_EV_PREPARE:
14455 case NB_EV_ABORT:
14456 case NB_EV_APPLY:
14457 /* TODO: implement me. */
14458 break;
14459 }
14460
14461 return NB_OK;
14462 }
14463
14464 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
14465 struct nb_cb_destroy_args *args)
14466 {
14467 switch (args->event) {
14468 case NB_EV_VALIDATE:
14469 case NB_EV_PREPARE:
14470 case NB_EV_ABORT:
14471 case NB_EV_APPLY:
14472 /* TODO: implement me. */
14473 break;
14474 }
14475
14476 return NB_OK;
14477 }
14478
14479 /*
14480 * XPath:
14481 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tr-restart-timer
14482 */
14483 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
14484 struct nb_cb_modify_args *args)
14485 {
14486 switch (args->event) {
14487 case NB_EV_VALIDATE:
14488 case NB_EV_PREPARE:
14489 case NB_EV_ABORT:
14490 case NB_EV_APPLY:
14491 /* TODO: implement me. */
14492 break;
14493 }
14494
14495 return NB_OK;
14496 }
14497
14498 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
14499 struct nb_cb_destroy_args *args)
14500 {
14501 switch (args->event) {
14502 case NB_EV_VALIDATE:
14503 case NB_EV_PREPARE:
14504 case NB_EV_ABORT:
14505 case NB_EV_APPLY:
14506 /* TODO: implement me. */
14507 break;
14508 }
14509
14510 return NB_OK;
14511 }
14512
14513 /*
14514 * XPath:
14515 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
14516 */
14517 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
14518 struct nb_cb_modify_args *args)
14519 {
14520 switch (args->event) {
14521 case NB_EV_VALIDATE:
14522 case NB_EV_PREPARE:
14523 case NB_EV_ABORT:
14524 case NB_EV_APPLY:
14525 /* TODO: implement me. */
14526 break;
14527 }
14528
14529 return NB_OK;
14530 }
14531
14532 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
14533 struct nb_cb_destroy_args *args)
14534 {
14535 switch (args->event) {
14536 case NB_EV_VALIDATE:
14537 case NB_EV_PREPARE:
14538 case NB_EV_ABORT:
14539 case NB_EV_APPLY:
14540 /* TODO: implement me. */
14541 break;
14542 }
14543
14544 return NB_OK;
14545 }
14546
14547 /*
14548 * XPath:
14549 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tw-warning-only
14550 */
14551 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
14552 struct nb_cb_modify_args *args)
14553 {
14554 switch (args->event) {
14555 case NB_EV_VALIDATE:
14556 case NB_EV_PREPARE:
14557 case NB_EV_ABORT:
14558 case NB_EV_APPLY:
14559 /* TODO: implement me. */
14560 break;
14561 }
14562
14563 return NB_OK;
14564 }
14565
14566 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
14567 struct nb_cb_destroy_args *args)
14568 {
14569 switch (args->event) {
14570 case NB_EV_VALIDATE:
14571 case NB_EV_PREPARE:
14572 case NB_EV_ABORT:
14573 case NB_EV_APPLY:
14574 /* TODO: implement me. */
14575 break;
14576 }
14577
14578 return NB_OK;
14579 }
14580
14581 /*
14582 * XPath:
14583 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/nexthop-self/next-hop-self
14584 */
14585 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_modify(
14586 struct nb_cb_modify_args *args)
14587 {
14588 switch (args->event) {
14589 case NB_EV_VALIDATE:
14590 case NB_EV_PREPARE:
14591 case NB_EV_ABORT:
14592 return NB_OK;
14593 case NB_EV_APPLY:
14594 return bgp_neighbor_afi_safi_flag_modify(
14595 args, PEER_FLAG_NEXTHOP_SELF,
14596 yang_dnode_get_bool(args->dnode, NULL));
14597
14598 break;
14599 }
14600
14601 return NB_OK;
14602 }
14603
14604 /*
14605 * XPath:
14606 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/nexthop-self/next-hop-self-force
14607 */
14608 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
14609 struct nb_cb_modify_args *args)
14610 {
14611 switch (args->event) {
14612 case NB_EV_VALIDATE:
14613 case NB_EV_PREPARE:
14614 case NB_EV_ABORT:
14615 return NB_OK;
14616 case NB_EV_APPLY:
14617 return bgp_neighbor_afi_safi_flag_modify(
14618 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
14619 yang_dnode_get_bool(args->dnode, NULL));
14620
14621 break;
14622 }
14623
14624 return NB_OK;
14625 }
14626
14627 /*
14628 * XPath:
14629 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as-all
14630 */
14631 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_modify(
14632 struct nb_cb_modify_args *args)
14633 {
14634 switch (args->event) {
14635 case NB_EV_VALIDATE:
14636 case NB_EV_PREPARE:
14637 case NB_EV_ABORT:
14638 return NB_OK;
14639 case NB_EV_APPLY:
14640 return bgp_neighbor_afi_safi_flag_modify(
14641 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
14642 yang_dnode_get_bool(args->dnode, NULL));
14643
14644 break;
14645 }
14646
14647 return NB_OK;
14648 }
14649
14650 /*
14651 * XPath:
14652 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as-all-replace
14653 */
14654 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
14655 struct nb_cb_modify_args *args)
14656 {
14657 switch (args->event) {
14658 case NB_EV_VALIDATE:
14659 case NB_EV_PREPARE:
14660 case NB_EV_ABORT:
14661 return NB_OK;
14662 case NB_EV_APPLY:
14663 return bgp_neighbor_afi_safi_flag_modify(
14664 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
14665 yang_dnode_get_bool(args->dnode, NULL));
14666
14667 break;
14668 }
14669
14670 return NB_OK;
14671 }
14672
14673 /*
14674 * XPath:
14675 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as
14676 */
14677 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_modify(
14678 struct nb_cb_modify_args *args)
14679 {
14680 switch (args->event) {
14681 case NB_EV_VALIDATE:
14682 case NB_EV_PREPARE:
14683 case NB_EV_ABORT:
14684 return NB_OK;
14685 case NB_EV_APPLY:
14686 return bgp_neighbor_afi_safi_flag_modify(
14687 args, PEER_FLAG_REMOVE_PRIVATE_AS,
14688 yang_dnode_get_bool(args->dnode, NULL));
14689
14690 break;
14691 }
14692
14693 return NB_OK;
14694 }
14695
14696 /*
14697 * XPath:
14698 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as-replace
14699 */
14700 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_replace_modify(
14701 struct nb_cb_modify_args *args)
14702 {
14703 switch (args->event) {
14704 case NB_EV_VALIDATE:
14705 case NB_EV_PREPARE:
14706 case NB_EV_ABORT:
14707 return NB_OK;
14708 case NB_EV_APPLY:
14709 return bgp_neighbor_afi_safi_flag_modify(
14710 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
14711 yang_dnode_get_bool(args->dnode, NULL));
14712
14713 break;
14714 }
14715
14716 return NB_OK;
14717 }
14718
14719 static int bgp_neighbor_afi_safi_weight_modify(struct nb_cb_modify_args *args)
14720 {
14721 struct bgp *bgp;
14722 const char *peer_str;
14723 struct peer *peer;
14724 const struct lyd_node *nbr_dnode;
14725 const struct lyd_node *nbr_af_dnode;
14726 const char *af_name;
14727 uint16_t weight;
14728 afi_t afi;
14729 safi_t safi;
14730 int ret;
14731
14732 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
14733 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
14734 yang_afi_safi_identity2value(af_name, &afi, &safi);
14735
14736 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
14737 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
14738 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
14739 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
14740 args->errmsg_len);
14741
14742 weight = yang_dnode_get_uint16(args->dnode, NULL);
14743
14744 ret = peer_weight_set(peer, afi, safi, weight);
14745 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
14746 return NB_ERR_INCONSISTENCY;
14747
14748 return NB_OK;
14749 }
14750
14751 static int bgp_neighbor_afi_safi_weight_destroy(struct nb_cb_destroy_args *args)
14752 {
14753 struct bgp *bgp;
14754 const char *peer_str;
14755 struct peer *peer;
14756 const struct lyd_node *nbr_dnode;
14757 const struct lyd_node *nbr_af_dnode;
14758 const char *af_name;
14759 afi_t afi;
14760 safi_t safi;
14761 int ret;
14762
14763 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
14764 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
14765 yang_afi_safi_identity2value(af_name, &afi, &safi);
14766
14767 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
14768 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
14769 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
14770 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
14771 args->errmsg_len);
14772
14773 ret = peer_weight_unset(peer, afi, safi);
14774 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
14775 return NB_ERR_INCONSISTENCY;
14776
14777 return NB_OK;
14778 }
14779
14780 /*
14781 * XPath:
14782 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/weight/weight-attribute
14783 */
14784 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_modify(
14785 struct nb_cb_modify_args *args)
14786 {
14787 switch (args->event) {
14788 case NB_EV_VALIDATE:
14789 case NB_EV_PREPARE:
14790 case NB_EV_ABORT:
14791 return NB_OK;
14792 case NB_EV_APPLY:
14793 return bgp_neighbor_afi_safi_weight_modify(args);
14794
14795 break;
14796 }
14797
14798 return NB_OK;
14799 }
14800
14801 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_destroy(
14802 struct nb_cb_destroy_args *args)
14803 {
14804 switch (args->event) {
14805 case NB_EV_VALIDATE:
14806 case NB_EV_PREPARE:
14807 case NB_EV_ABORT:
14808 return NB_OK;
14809 case NB_EV_APPLY:
14810 return bgp_neighbor_afi_safi_weight_destroy(args);
14811
14812 break;
14813 }
14814
14815 return NB_OK;
14816 }
14817
14818 /*
14819 * XPath:
14820 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/route-reflector/route-reflector-client
14821 */
14822 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_route_reflector_route_reflector_client_modify(
14823 struct nb_cb_modify_args *args)
14824 {
14825 switch (args->event) {
14826 case NB_EV_VALIDATE:
14827 case NB_EV_PREPARE:
14828 case NB_EV_ABORT:
14829 return NB_OK;
14830 case NB_EV_APPLY:
14831 return bgp_neighbor_afi_safi_flag_modify(
14832 args, PEER_FLAG_REFLECTOR_CLIENT,
14833 yang_dnode_get_bool(args->dnode, NULL));
14834
14835 break;
14836 }
14837
14838 return NB_OK;
14839 }
14840
14841 /*
14842 * XPath:
14843 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/route-server/route-server-client
14844 */
14845 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_route_server_route_server_client_modify(
14846 struct nb_cb_modify_args *args)
14847 {
14848 switch (args->event) {
14849 case NB_EV_VALIDATE:
14850 case NB_EV_PREPARE:
14851 case NB_EV_ABORT:
14852 return NB_OK;
14853 case NB_EV_APPLY:
14854 return bgp_neighbor_afi_safi_flag_modify(
14855 args, PEER_FLAG_RSERVER_CLIENT,
14856 yang_dnode_get_bool(args->dnode, NULL));
14857
14858 break;
14859 }
14860
14861 return NB_OK;
14862 }
14863
14864 /*
14865 * XPath:
14866 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/send-community/send-community
14867 */
14868 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_community_modify(
14869 struct nb_cb_modify_args *args)
14870 {
14871 switch (args->event) {
14872 case NB_EV_VALIDATE:
14873 case NB_EV_PREPARE:
14874 case NB_EV_ABORT:
14875 return NB_OK;
14876 case NB_EV_APPLY:
14877 return bgp_neighbor_afi_safi_flag_modify(
14878 args, PEER_FLAG_SEND_COMMUNITY,
14879 yang_dnode_get_bool(args->dnode, NULL));
14880
14881 break;
14882 }
14883
14884 return NB_OK;
14885 }
14886
14887 /*
14888 * XPath:
14889 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/send-community/send-ext-community
14890 */
14891 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_ext_community_modify(
14892 struct nb_cb_modify_args *args)
14893 {
14894 switch (args->event) {
14895 case NB_EV_VALIDATE:
14896 case NB_EV_PREPARE:
14897 case NB_EV_ABORT:
14898 return NB_OK;
14899 case NB_EV_APPLY:
14900 return bgp_neighbor_afi_safi_flag_modify(
14901 args, PEER_FLAG_SEND_EXT_COMMUNITY,
14902 yang_dnode_get_bool(args->dnode, NULL));
14903
14904 break;
14905 }
14906
14907 return NB_OK;
14908 }
14909
14910 /*
14911 * XPath:
14912 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/send-community/send-large-community
14913 */
14914 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_large_community_modify(
14915 struct nb_cb_modify_args *args)
14916 {
14917 switch (args->event) {
14918 case NB_EV_VALIDATE:
14919 case NB_EV_PREPARE:
14920 case NB_EV_ABORT:
14921 return NB_OK;
14922 case NB_EV_APPLY:
14923 return bgp_neighbor_afi_safi_flag_modify(
14924 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
14925 yang_dnode_get_bool(args->dnode, NULL));
14926
14927 break;
14928 }
14929
14930 return NB_OK;
14931 }
14932
14933 /*
14934 * XPath:
14935 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/soft-reconfiguration
14936 */
14937 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_soft_reconfiguration_modify(
14938 struct nb_cb_modify_args *args)
14939 {
14940 switch (args->event) {
14941 case NB_EV_VALIDATE:
14942 case NB_EV_PREPARE:
14943 case NB_EV_ABORT:
14944 return NB_OK;
14945 case NB_EV_APPLY:
14946 return bgp_neighbor_afi_safi_flag_modify(
14947 args, PEER_FLAG_SOFT_RECONFIG,
14948 yang_dnode_get_bool(args->dnode, NULL));
14949
14950 break;
14951 }
14952
14953 return NB_OK;
14954 }
14955
14956 /*
14957 * XPath:
14958 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/attr-unchanged/as-path-unchanged
14959 */
14960 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
14961 struct nb_cb_modify_args *args)
14962 {
14963 switch (args->event) {
14964 case NB_EV_VALIDATE:
14965 case NB_EV_PREPARE:
14966 case NB_EV_ABORT:
14967 return NB_OK;
14968 case NB_EV_APPLY:
14969 return bgp_neighbor_afi_safi_flag_modify(
14970 args, PEER_FLAG_AS_PATH_UNCHANGED,
14971 yang_dnode_get_bool(args->dnode, NULL));
14972
14973 break;
14974 }
14975
14976 return NB_OK;
14977 }
14978
14979 /*
14980 * XPath:
14981 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/attr-unchanged/next-hop-unchanged
14982 */
14983 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
14984 struct nb_cb_modify_args *args)
14985 {
14986 switch (args->event) {
14987 case NB_EV_VALIDATE:
14988 case NB_EV_PREPARE:
14989 case NB_EV_ABORT:
14990 return NB_OK;
14991 case NB_EV_APPLY:
14992 return bgp_neighbor_afi_safi_flag_modify(
14993 args, PEER_FLAG_NEXTHOP_UNCHANGED,
14994 yang_dnode_get_bool(args->dnode, NULL));
14995
14996 break;
14997 }
14998
14999 return NB_OK;
15000 }
15001
15002 /*
15003 * XPath:
15004 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/attr-unchanged/med-unchanged
15005 */
15006 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_med_unchanged_modify(
15007 struct nb_cb_modify_args *args)
15008 {
15009 switch (args->event) {
15010 case NB_EV_VALIDATE:
15011 case NB_EV_PREPARE:
15012 case NB_EV_ABORT:
15013 return NB_OK;
15014 case NB_EV_APPLY:
15015 return bgp_neighbor_afi_safi_flag_modify(
15016 args, PEER_FLAG_MED_UNCHANGED,
15017 yang_dnode_get_bool(args->dnode, NULL));
15018
15019 break;
15020 }
15021
15022 return NB_OK;
15023 }
15024
15025 /*
15026 * XPath:
15027 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-send
15028 */
15029 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_modify(
15030 struct nb_cb_modify_args *args)
15031 {
15032 switch (args->event) {
15033 case NB_EV_VALIDATE:
15034 case NB_EV_PREPARE:
15035 case NB_EV_ABORT:
15036 case NB_EV_APPLY:
15037 /* TODO: implement me. */
15038 break;
15039 }
15040
15041 return NB_OK;
15042 }
15043
15044 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_destroy(
15045 struct nb_cb_destroy_args *args)
15046 {
15047 switch (args->event) {
15048 case NB_EV_VALIDATE:
15049 case NB_EV_PREPARE:
15050 case NB_EV_ABORT:
15051 case NB_EV_APPLY:
15052 /* TODO: implement me. */
15053 break;
15054 }
15055
15056 return NB_OK;
15057 }
15058
15059 /*
15060 * XPath:
15061 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-receive
15062 */
15063 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_modify(
15064 struct nb_cb_modify_args *args)
15065 {
15066 switch (args->event) {
15067 case NB_EV_VALIDATE:
15068 case NB_EV_PREPARE:
15069 case NB_EV_ABORT:
15070 case NB_EV_APPLY:
15071 /* TODO: implement me. */
15072 break;
15073 }
15074
15075 return NB_OK;
15076 }
15077
15078 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_destroy(
15079 struct nb_cb_destroy_args *args)
15080 {
15081 switch (args->event) {
15082 case NB_EV_VALIDATE:
15083 case NB_EV_PREPARE:
15084 case NB_EV_ABORT:
15085 case NB_EV_APPLY:
15086 /* TODO: implement me. */
15087 break;
15088 }
15089
15090 return NB_OK;
15091 }
15092
15093 /*
15094 * XPath:
15095 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-both
15096 */
15097 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_modify(
15098 struct nb_cb_modify_args *args)
15099 {
15100 switch (args->event) {
15101 case NB_EV_VALIDATE:
15102 case NB_EV_PREPARE:
15103 case NB_EV_ABORT:
15104 case NB_EV_APPLY:
15105 /* TODO: implement me. */
15106 break;
15107 }
15108
15109 return NB_OK;
15110 }
15111
15112 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_destroy(
15113 struct nb_cb_destroy_args *args)
15114 {
15115 switch (args->event) {
15116 case NB_EV_VALIDATE:
15117 case NB_EV_PREPARE:
15118 case NB_EV_ABORT:
15119 case NB_EV_APPLY:
15120 /* TODO: implement me. */
15121 break;
15122 }
15123
15124 return NB_OK;
15125 }
15126
15127 static int bgp_neighbor_afi_safi_rmap_modify(struct nb_cb_modify_args *args,
15128 int direct)
15129 {
15130 struct bgp *bgp;
15131 const char *peer_str;
15132 struct peer *peer;
15133 const struct lyd_node *nbr_dnode;
15134 const struct lyd_node *nbr_af_dnode;
15135 const char *af_name;
15136 afi_t afi;
15137 safi_t safi;
15138 const char *name_str;
15139 struct route_map *route_map;
15140 int ret;
15141
15142 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
15143 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
15144 yang_afi_safi_identity2value(af_name, &afi, &safi);
15145
15146 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
15147 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
15148 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
15149 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
15150 args->errmsg_len);
15151
15152 name_str = yang_dnode_get_string(args->dnode, NULL);
15153 route_map = route_map_lookup_by_name(name_str);
15154 ret = peer_route_map_set(peer, afi, safi, direct, name_str, route_map);
15155
15156 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
15157 }
15158
15159 static int bgp_neighbor_afi_safi_rmap_destroy(struct nb_cb_destroy_args *args,
15160 int direct)
15161 {
15162 struct bgp *bgp;
15163 const char *peer_str;
15164 struct peer *peer;
15165 const struct lyd_node *nbr_dnode;
15166 const struct lyd_node *nbr_af_dnode;
15167 const char *af_name;
15168 afi_t afi;
15169 safi_t safi;
15170 int ret;
15171
15172 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
15173 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
15174 yang_afi_safi_identity2value(af_name, &afi, &safi);
15175
15176 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
15177 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
15178 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
15179 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
15180 args->errmsg_len);
15181
15182 ret = peer_route_map_unset(peer, afi, safi, direct);
15183
15184 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
15185 }
15186
15187 /*
15188 * XPath:
15189 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/rmap-import
15190 */
15191 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_modify(
15192 struct nb_cb_modify_args *args)
15193 {
15194 switch (args->event) {
15195 case NB_EV_VALIDATE:
15196 case NB_EV_PREPARE:
15197 case NB_EV_ABORT:
15198 break;
15199 case NB_EV_APPLY:
15200 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
15201 }
15202
15203 return NB_OK;
15204 }
15205
15206 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_destroy(
15207 struct nb_cb_destroy_args *args)
15208 {
15209 switch (args->event) {
15210 case NB_EV_VALIDATE:
15211 case NB_EV_PREPARE:
15212 case NB_EV_ABORT:
15213 break;
15214 case NB_EV_APPLY:
15215 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
15216 }
15217
15218 return NB_OK;
15219 }
15220
15221 /*
15222 * XPath:
15223 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/rmap-export
15224 */
15225 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_modify(
15226 struct nb_cb_modify_args *args)
15227 {
15228 switch (args->event) {
15229 case NB_EV_VALIDATE:
15230 case NB_EV_PREPARE:
15231 case NB_EV_ABORT:
15232 break;
15233 case NB_EV_APPLY:
15234 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
15235 }
15236
15237 return NB_OK;
15238 }
15239
15240 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_destroy(
15241 struct nb_cb_destroy_args *args)
15242 {
15243 switch (args->event) {
15244 case NB_EV_VALIDATE:
15245 case NB_EV_PREPARE:
15246 case NB_EV_ABORT:
15247 break;
15248 case NB_EV_APPLY:
15249 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
15250 }
15251
15252 return NB_OK;
15253 }
15254
15255 static int bgp_neighbor_afi_safi_plist_modify(struct nb_cb_modify_args *args,
15256 int direct)
15257 {
15258 struct bgp *bgp;
15259 const char *peer_str;
15260 struct peer *peer;
15261 const struct lyd_node *nbr_dnode;
15262 const struct lyd_node *nbr_af_dnode;
15263 const char *af_name;
15264 afi_t afi;
15265 safi_t safi;
15266 const char *name_str;
15267
15268 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
15269 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
15270 yang_afi_safi_identity2value(af_name, &afi, &safi);
15271
15272 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
15273 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
15274 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
15275 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
15276 args->errmsg_len);
15277
15278 name_str = yang_dnode_get_string(args->dnode, NULL);
15279 if (peer_prefix_list_set(peer, afi, safi, direct, name_str) < 0)
15280 return NB_ERR_INCONSISTENCY;
15281
15282 return NB_OK;
15283 }
15284
15285 static int bgp_neighbor_afi_safi_plist_destroy(struct nb_cb_destroy_args *args,
15286 int direct)
15287 {
15288 struct bgp *bgp;
15289 const char *peer_str;
15290 struct peer *peer;
15291 const struct lyd_node *nbr_dnode;
15292 const struct lyd_node *nbr_af_dnode;
15293 const char *af_name;
15294 afi_t afi;
15295 safi_t safi;
15296
15297 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
15298 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
15299 yang_afi_safi_identity2value(af_name, &afi, &safi);
15300
15301 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
15302 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
15303 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
15304 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
15305 args->errmsg_len);
15306
15307 if (peer_prefix_list_unset(peer, afi, safi, direct) < 0)
15308 return NB_ERR_INCONSISTENCY;
15309
15310 return NB_OK;
15311 }
15312
15313 /*
15314 * XPath:
15315 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/plist-import
15316 */
15317 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_modify(
15318 struct nb_cb_modify_args *args)
15319 {
15320 switch (args->event) {
15321 case NB_EV_VALIDATE:
15322 case NB_EV_PREPARE:
15323 case NB_EV_ABORT:
15324 break;
15325 case NB_EV_APPLY:
15326 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
15327 }
15328
15329 return NB_OK;
15330 }
15331
15332 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_destroy(
15333 struct nb_cb_destroy_args *args)
15334 {
15335 switch (args->event) {
15336 case NB_EV_VALIDATE:
15337 case NB_EV_PREPARE:
15338 case NB_EV_ABORT:
15339 break;
15340 case NB_EV_APPLY:
15341 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
15342 }
15343
15344 return NB_OK;
15345 }
15346
15347 /*
15348 * XPath:
15349 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/plist-export
15350 */
15351 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_modify(
15352 struct nb_cb_modify_args *args)
15353 {
15354 switch (args->event) {
15355 case NB_EV_VALIDATE:
15356 case NB_EV_PREPARE:
15357 case NB_EV_ABORT:
15358 break;
15359 case NB_EV_APPLY:
15360 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
15361 }
15362
15363 return NB_OK;
15364 }
15365
15366 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_destroy(
15367 struct nb_cb_destroy_args *args)
15368 {
15369 switch (args->event) {
15370 case NB_EV_VALIDATE:
15371 case NB_EV_PREPARE:
15372 case NB_EV_ABORT:
15373 break;
15374 case NB_EV_APPLY:
15375 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
15376 }
15377
15378 return NB_OK;
15379 }
15380
15381 /*
15382 * XPath:
15383 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/access-list-import
15384 */
15385 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_modify(
15386 struct nb_cb_modify_args *args)
15387 {
15388 switch (args->event) {
15389 case NB_EV_VALIDATE:
15390 case NB_EV_PREPARE:
15391 case NB_EV_ABORT:
15392 case NB_EV_APPLY:
15393 /* TODO: implement me. */
15394 break;
15395 }
15396
15397 return NB_OK;
15398 }
15399
15400 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_destroy(
15401 struct nb_cb_destroy_args *args)
15402 {
15403 switch (args->event) {
15404 case NB_EV_VALIDATE:
15405 case NB_EV_PREPARE:
15406 case NB_EV_ABORT:
15407 case NB_EV_APPLY:
15408 /* TODO: implement me. */
15409 break;
15410 }
15411
15412 return NB_OK;
15413 }
15414
15415 /*
15416 * XPath:
15417 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/access-list-export
15418 */
15419 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_modify(
15420 struct nb_cb_modify_args *args)
15421 {
15422 switch (args->event) {
15423 case NB_EV_VALIDATE:
15424 case NB_EV_PREPARE:
15425 case NB_EV_ABORT:
15426 case NB_EV_APPLY:
15427 /* TODO: implement me. */
15428 break;
15429 }
15430
15431 return NB_OK;
15432 }
15433
15434 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_destroy(
15435 struct nb_cb_destroy_args *args)
15436 {
15437 switch (args->event) {
15438 case NB_EV_VALIDATE:
15439 case NB_EV_PREPARE:
15440 case NB_EV_ABORT:
15441 case NB_EV_APPLY:
15442 /* TODO: implement me. */
15443 break;
15444 }
15445
15446 return NB_OK;
15447 }
15448
15449 /*
15450 * XPath:
15451 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/as-path-filter-list-import
15452 */
15453 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_modify(
15454 struct nb_cb_modify_args *args)
15455 {
15456 switch (args->event) {
15457 case NB_EV_VALIDATE:
15458 case NB_EV_PREPARE:
15459 case NB_EV_ABORT:
15460 case NB_EV_APPLY:
15461 /* TODO: implement me. */
15462 break;
15463 }
15464
15465 return NB_OK;
15466 }
15467
15468 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_destroy(
15469 struct nb_cb_destroy_args *args)
15470 {
15471 switch (args->event) {
15472 case NB_EV_VALIDATE:
15473 case NB_EV_PREPARE:
15474 case NB_EV_ABORT:
15475 case NB_EV_APPLY:
15476 /* TODO: implement me. */
15477 break;
15478 }
15479
15480 return NB_OK;
15481 }
15482
15483 /*
15484 * XPath:
15485 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/as-path-filter-list-export
15486 */
15487 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_modify(
15488 struct nb_cb_modify_args *args)
15489 {
15490 switch (args->event) {
15491 case NB_EV_VALIDATE:
15492 case NB_EV_PREPARE:
15493 case NB_EV_ABORT:
15494 case NB_EV_APPLY:
15495 /* TODO: implement me. */
15496 break;
15497 }
15498
15499 return NB_OK;
15500 }
15501
15502 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_destroy(
15503 struct nb_cb_destroy_args *args)
15504 {
15505 switch (args->event) {
15506 case NB_EV_VALIDATE:
15507 case NB_EV_PREPARE:
15508 case NB_EV_ABORT:
15509 case NB_EV_APPLY:
15510 /* TODO: implement me. */
15511 break;
15512 }
15513
15514 return NB_OK;
15515 }
15516
15517 /*
15518 * XPath:
15519 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/unsuppress-map-import
15520 */
15521 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_modify(
15522 struct nb_cb_modify_args *args)
15523 {
15524 switch (args->event) {
15525 case NB_EV_VALIDATE:
15526 case NB_EV_PREPARE:
15527 case NB_EV_ABORT:
15528 case NB_EV_APPLY:
15529 /* TODO: implement me. */
15530 break;
15531 }
15532
15533 return NB_OK;
15534 }
15535
15536 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_destroy(
15537 struct nb_cb_destroy_args *args)
15538 {
15539 switch (args->event) {
15540 case NB_EV_VALIDATE:
15541 case NB_EV_PREPARE:
15542 case NB_EV_ABORT:
15543 case NB_EV_APPLY:
15544 /* TODO: implement me. */
15545 break;
15546 }
15547
15548 return NB_OK;
15549 }
15550
15551 /*
15552 * XPath:
15553 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/unsuppress-map-export
15554 */
15555 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_modify(
15556 struct nb_cb_modify_args *args)
15557 {
15558 switch (args->event) {
15559 case NB_EV_VALIDATE:
15560 case NB_EV_PREPARE:
15561 case NB_EV_ABORT:
15562 case NB_EV_APPLY:
15563 /* TODO: implement me. */
15564 break;
15565 }
15566
15567 return NB_OK;
15568 }
15569
15570 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_destroy(
15571 struct nb_cb_destroy_args *args)
15572 {
15573 switch (args->event) {
15574 case NB_EV_VALIDATE:
15575 case NB_EV_PREPARE:
15576 case NB_EV_ABORT:
15577 case NB_EV_APPLY:
15578 /* TODO: implement me. */
15579 break;
15580 }
15581
15582 return NB_OK;
15583 }
15584
15585 /*
15586 * XPath:
15587 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/nexthop-local-unchanged
15588 */
15589 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_local_unchanged_modify(
15590 struct nb_cb_modify_args *args)
15591 {
15592 switch (args->event) {
15593 case NB_EV_VALIDATE:
15594 case NB_EV_PREPARE:
15595 case NB_EV_ABORT:
15596 case NB_EV_APPLY:
15597 /* TODO: implement me. */
15598 break;
15599 }
15600
15601 return NB_OK;
15602 }
15603
15604 /*
15605 * XPath:
15606 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/add-paths/path-type
15607 */
15608 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_add_paths_path_type_modify(
15609 struct nb_cb_modify_args *args)
15610 {
15611 switch (args->event) {
15612 case NB_EV_VALIDATE:
15613 case NB_EV_PREPARE:
15614 case NB_EV_ABORT:
15615 case NB_EV_APPLY:
15616 /* TODO: implement me. */
15617 break;
15618 }
15619
15620 return NB_OK;
15621 }
15622
15623 /*
15624 * XPath:
15625 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/as-path-options/allow-own-as
15626 */
15627 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_modify(
15628 struct nb_cb_modify_args *args)
15629 {
15630 switch (args->event) {
15631 case NB_EV_VALIDATE:
15632 case NB_EV_PREPARE:
15633 case NB_EV_ABORT:
15634 case NB_EV_APPLY:
15635 /* TODO: implement me. */
15636 break;
15637 }
15638
15639 return NB_OK;
15640 }
15641
15642 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_destroy(
15643 struct nb_cb_destroy_args *args)
15644 {
15645 switch (args->event) {
15646 case NB_EV_VALIDATE:
15647 case NB_EV_PREPARE:
15648 case NB_EV_ABORT:
15649 case NB_EV_APPLY:
15650 /* TODO: implement me. */
15651 break;
15652 }
15653
15654 return NB_OK;
15655 }
15656
15657 /*
15658 * XPath:
15659 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/as-path-options/allow-own-origin-as
15660 */
15661 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
15662 struct nb_cb_modify_args *args)
15663 {
15664 switch (args->event) {
15665 case NB_EV_VALIDATE:
15666 case NB_EV_PREPARE:
15667 case NB_EV_ABORT:
15668 case NB_EV_APPLY:
15669 /* TODO: implement me. */
15670 break;
15671 }
15672
15673 return NB_OK;
15674 }
15675
15676 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
15677 struct nb_cb_destroy_args *args)
15678 {
15679 switch (args->event) {
15680 case NB_EV_VALIDATE:
15681 case NB_EV_PREPARE:
15682 case NB_EV_ABORT:
15683 case NB_EV_APPLY:
15684 /* TODO: implement me. */
15685 break;
15686 }
15687
15688 return NB_OK;
15689 }
15690
15691 /*
15692 * XPath:
15693 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/as-path-options/replace-peer-as
15694 */
15695 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_replace_peer_as_modify(
15696 struct nb_cb_modify_args *args)
15697 {
15698 switch (args->event) {
15699 case NB_EV_VALIDATE:
15700 case NB_EV_PREPARE:
15701 case NB_EV_ABORT:
15702 return NB_OK;
15703 case NB_EV_APPLY:
15704 return bgp_neighbor_afi_safi_flag_modify(
15705 args, PEER_FLAG_AS_OVERRIDE,
15706 yang_dnode_get_bool(args->dnode, NULL));
15707
15708 break;
15709 }
15710
15711 return NB_OK;
15712 }
15713
15714 /*
15715 * XPath:
15716 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/default-originate/originate
15717 */
15718 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_originate_modify(
15719 struct nb_cb_modify_args *args)
15720 {
15721 switch (args->event) {
15722 case NB_EV_VALIDATE:
15723 case NB_EV_PREPARE:
15724 case NB_EV_ABORT:
15725 case NB_EV_APPLY:
15726 /* TODO: implement me. */
15727 break;
15728 }
15729
15730 return NB_OK;
15731 }
15732
15733 /*
15734 * XPath:
15735 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/default-originate/route-map
15736 */
15737 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_modify(
15738 struct nb_cb_modify_args *args)
15739 {
15740 switch (args->event) {
15741 case NB_EV_VALIDATE:
15742 case NB_EV_PREPARE:
15743 case NB_EV_ABORT:
15744 case NB_EV_APPLY:
15745 /* TODO: implement me. */
15746 break;
15747 }
15748
15749 return NB_OK;
15750 }
15751
15752 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_destroy(
15753 struct nb_cb_destroy_args *args)
15754 {
15755 switch (args->event) {
15756 case NB_EV_VALIDATE:
15757 case NB_EV_PREPARE:
15758 case NB_EV_ABORT:
15759 case NB_EV_APPLY:
15760 /* TODO: implement me. */
15761 break;
15762 }
15763
15764 return NB_OK;
15765 }
15766
15767 /*
15768 * XPath:
15769 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/attr-unchanged/as-path-unchanged
15770 */
15771 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
15772 struct nb_cb_modify_args *args)
15773 {
15774 switch (args->event) {
15775 case NB_EV_VALIDATE:
15776 case NB_EV_PREPARE:
15777 case NB_EV_ABORT:
15778 return NB_OK;
15779 case NB_EV_APPLY:
15780 return bgp_neighbor_afi_safi_flag_modify(
15781 args, PEER_FLAG_AS_PATH_UNCHANGED,
15782 yang_dnode_get_bool(args->dnode, NULL));
15783
15784 break;
15785 }
15786
15787 return NB_OK;
15788 }
15789
15790 /*
15791 * XPath:
15792 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/attr-unchanged/next-hop-unchanged
15793 */
15794 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
15795 struct nb_cb_modify_args *args)
15796 {
15797 switch (args->event) {
15798 case NB_EV_VALIDATE:
15799 case NB_EV_PREPARE:
15800 case NB_EV_ABORT:
15801 return NB_OK;
15802 case NB_EV_APPLY:
15803 return bgp_neighbor_afi_safi_flag_modify(
15804 args, PEER_FLAG_NEXTHOP_UNCHANGED,
15805 yang_dnode_get_bool(args->dnode, NULL));
15806
15807 break;
15808 }
15809
15810 return NB_OK;
15811 }
15812
15813 /*
15814 * XPath:
15815 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/attr-unchanged/med-unchanged
15816 */
15817 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_med_unchanged_modify(
15818 struct nb_cb_modify_args *args)
15819 {
15820 switch (args->event) {
15821 case NB_EV_VALIDATE:
15822 case NB_EV_PREPARE:
15823 case NB_EV_ABORT:
15824 return NB_OK;
15825 case NB_EV_APPLY:
15826 return bgp_neighbor_afi_safi_flag_modify(
15827 args, PEER_FLAG_MED_UNCHANGED,
15828 yang_dnode_get_bool(args->dnode, NULL));
15829
15830 break;
15831 }
15832
15833 return NB_OK;
15834 }
15835
15836 /*
15837 * XPath:
15838 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-send
15839 */
15840 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_modify(
15841 struct nb_cb_modify_args *args)
15842 {
15843 switch (args->event) {
15844 case NB_EV_VALIDATE:
15845 case NB_EV_PREPARE:
15846 case NB_EV_ABORT:
15847 case NB_EV_APPLY:
15848 /* TODO: implement me. */
15849 break;
15850 }
15851
15852 return NB_OK;
15853 }
15854
15855 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_destroy(
15856 struct nb_cb_destroy_args *args)
15857 {
15858 switch (args->event) {
15859 case NB_EV_VALIDATE:
15860 case NB_EV_PREPARE:
15861 case NB_EV_ABORT:
15862 case NB_EV_APPLY:
15863 /* TODO: implement me. */
15864 break;
15865 }
15866
15867 return NB_OK;
15868 }
15869
15870 /*
15871 * XPath:
15872 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-receive
15873 */
15874 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_modify(
15875 struct nb_cb_modify_args *args)
15876 {
15877 switch (args->event) {
15878 case NB_EV_VALIDATE:
15879 case NB_EV_PREPARE:
15880 case NB_EV_ABORT:
15881 case NB_EV_APPLY:
15882 /* TODO: implement me. */
15883 break;
15884 }
15885
15886 return NB_OK;
15887 }
15888
15889 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_destroy(
15890 struct nb_cb_destroy_args *args)
15891 {
15892 switch (args->event) {
15893 case NB_EV_VALIDATE:
15894 case NB_EV_PREPARE:
15895 case NB_EV_ABORT:
15896 case NB_EV_APPLY:
15897 /* TODO: implement me. */
15898 break;
15899 }
15900
15901 return NB_OK;
15902 }
15903
15904 /*
15905 * XPath:
15906 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-both
15907 */
15908 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_modify(
15909 struct nb_cb_modify_args *args)
15910 {
15911 switch (args->event) {
15912 case NB_EV_VALIDATE:
15913 case NB_EV_PREPARE:
15914 case NB_EV_ABORT:
15915 case NB_EV_APPLY:
15916 /* TODO: implement me. */
15917 break;
15918 }
15919
15920 return NB_OK;
15921 }
15922
15923 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_destroy(
15924 struct nb_cb_destroy_args *args)
15925 {
15926 switch (args->event) {
15927 case NB_EV_VALIDATE:
15928 case NB_EV_PREPARE:
15929 case NB_EV_ABORT:
15930 case NB_EV_APPLY:
15931 /* TODO: implement me. */
15932 break;
15933 }
15934
15935 return NB_OK;
15936 }
15937
15938 /*
15939 * XPath:
15940 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list
15941 */
15942 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_create(
15943 struct nb_cb_create_args *args)
15944 {
15945 switch (args->event) {
15946 case NB_EV_VALIDATE:
15947 case NB_EV_PREPARE:
15948 case NB_EV_ABORT:
15949 case NB_EV_APPLY:
15950 /* TODO: implement me. */
15951 break;
15952 }
15953
15954 return NB_OK;
15955 }
15956
15957 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_destroy(
15958 struct nb_cb_destroy_args *args)
15959 {
15960 switch (args->event) {
15961 case NB_EV_VALIDATE:
15962 case NB_EV_PREPARE:
15963 case NB_EV_ABORT:
15964 return NB_OK;
15965 case NB_EV_APPLY:
15966 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
15967 }
15968
15969 return NB_OK;
15970 }
15971
15972 /*
15973 * XPath:
15974 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/max-prefixes
15975 */
15976 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
15977 struct nb_cb_modify_args *args)
15978 {
15979 switch (args->event) {
15980 case NB_EV_VALIDATE:
15981 case NB_EV_PREPARE:
15982 case NB_EV_ABORT:
15983 case NB_EV_APPLY:
15984 /* TODO: implement me. */
15985 break;
15986 }
15987
15988 return NB_OK;
15989 }
15990
15991 /*
15992 * XPath:
15993 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/force-check
15994 */
15995 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
15996 struct nb_cb_modify_args *args)
15997 {
15998 switch (args->event) {
15999 case NB_EV_VALIDATE:
16000 case NB_EV_PREPARE:
16001 case NB_EV_ABORT:
16002 case NB_EV_APPLY:
16003 /* TODO: implement me. */
16004 break;
16005 }
16006
16007 return NB_OK;
16008 }
16009
16010 /*
16011 * XPath:
16012 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/warning-only
16013 */
16014 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
16015 struct nb_cb_modify_args *args)
16016 {
16017 switch (args->event) {
16018 case NB_EV_VALIDATE:
16019 case NB_EV_PREPARE:
16020 case NB_EV_ABORT:
16021 case NB_EV_APPLY:
16022 /* TODO: implement me. */
16023 break;
16024 }
16025
16026 return NB_OK;
16027 }
16028
16029 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
16030 struct nb_cb_destroy_args *args)
16031 {
16032 switch (args->event) {
16033 case NB_EV_VALIDATE:
16034 case NB_EV_PREPARE:
16035 case NB_EV_ABORT:
16036 case NB_EV_APPLY:
16037 /* TODO: implement me. */
16038 break;
16039 }
16040
16041 return NB_OK;
16042 }
16043
16044 /*
16045 * XPath:
16046 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/restart-timer
16047 */
16048 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
16049 struct nb_cb_modify_args *args)
16050 {
16051 switch (args->event) {
16052 case NB_EV_VALIDATE:
16053 case NB_EV_PREPARE:
16054 case NB_EV_ABORT:
16055 case NB_EV_APPLY:
16056 /* TODO: implement me. */
16057 break;
16058 }
16059
16060 return NB_OK;
16061 }
16062
16063 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
16064 struct nb_cb_destroy_args *args)
16065 {
16066 switch (args->event) {
16067 case NB_EV_VALIDATE:
16068 case NB_EV_PREPARE:
16069 case NB_EV_ABORT:
16070 case NB_EV_APPLY:
16071 /* TODO: implement me. */
16072 break;
16073 }
16074
16075 return NB_OK;
16076 }
16077
16078 /*
16079 * XPath:
16080 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
16081 */
16082 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
16083 struct nb_cb_modify_args *args)
16084 {
16085 switch (args->event) {
16086 case NB_EV_VALIDATE:
16087 case NB_EV_PREPARE:
16088 case NB_EV_ABORT:
16089 case NB_EV_APPLY:
16090 /* TODO: implement me. */
16091 break;
16092 }
16093
16094 return NB_OK;
16095 }
16096
16097 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
16098 struct nb_cb_destroy_args *args)
16099 {
16100 switch (args->event) {
16101 case NB_EV_VALIDATE:
16102 case NB_EV_PREPARE:
16103 case NB_EV_ABORT:
16104 case NB_EV_APPLY:
16105 /* TODO: implement me. */
16106 break;
16107 }
16108
16109 return NB_OK;
16110 }
16111
16112 /*
16113 * XPath:
16114 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
16115 */
16116 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
16117 struct nb_cb_modify_args *args)
16118 {
16119 switch (args->event) {
16120 case NB_EV_VALIDATE:
16121 case NB_EV_PREPARE:
16122 case NB_EV_ABORT:
16123 case NB_EV_APPLY:
16124 /* TODO: implement me. */
16125 break;
16126 }
16127
16128 return NB_OK;
16129 }
16130
16131 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
16132 struct nb_cb_destroy_args *args)
16133 {
16134 switch (args->event) {
16135 case NB_EV_VALIDATE:
16136 case NB_EV_PREPARE:
16137 case NB_EV_ABORT:
16138 case NB_EV_APPLY:
16139 /* TODO: implement me. */
16140 break;
16141 }
16142
16143 return NB_OK;
16144 }
16145
16146 /*
16147 * XPath:
16148 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tr-restart-timer
16149 */
16150 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
16151 struct nb_cb_modify_args *args)
16152 {
16153 switch (args->event) {
16154 case NB_EV_VALIDATE:
16155 case NB_EV_PREPARE:
16156 case NB_EV_ABORT:
16157 case NB_EV_APPLY:
16158 /* TODO: implement me. */
16159 break;
16160 }
16161
16162 return NB_OK;
16163 }
16164
16165 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
16166 struct nb_cb_destroy_args *args)
16167 {
16168 switch (args->event) {
16169 case NB_EV_VALIDATE:
16170 case NB_EV_PREPARE:
16171 case NB_EV_ABORT:
16172 case NB_EV_APPLY:
16173 /* TODO: implement me. */
16174 break;
16175 }
16176
16177 return NB_OK;
16178 }
16179
16180 /*
16181 * XPath:
16182 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
16183 */
16184 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
16185 struct nb_cb_modify_args *args)
16186 {
16187 switch (args->event) {
16188 case NB_EV_VALIDATE:
16189 case NB_EV_PREPARE:
16190 case NB_EV_ABORT:
16191 case NB_EV_APPLY:
16192 /* TODO: implement me. */
16193 break;
16194 }
16195
16196 return NB_OK;
16197 }
16198
16199 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
16200 struct nb_cb_destroy_args *args)
16201 {
16202 switch (args->event) {
16203 case NB_EV_VALIDATE:
16204 case NB_EV_PREPARE:
16205 case NB_EV_ABORT:
16206 case NB_EV_APPLY:
16207 /* TODO: implement me. */
16208 break;
16209 }
16210
16211 return NB_OK;
16212 }
16213
16214 /*
16215 * XPath:
16216 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tw-warning-only
16217 */
16218 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
16219 struct nb_cb_modify_args *args)
16220 {
16221 switch (args->event) {
16222 case NB_EV_VALIDATE:
16223 case NB_EV_PREPARE:
16224 case NB_EV_ABORT:
16225 case NB_EV_APPLY:
16226 /* TODO: implement me. */
16227 break;
16228 }
16229
16230 return NB_OK;
16231 }
16232
16233 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
16234 struct nb_cb_destroy_args *args)
16235 {
16236 switch (args->event) {
16237 case NB_EV_VALIDATE:
16238 case NB_EV_PREPARE:
16239 case NB_EV_ABORT:
16240 case NB_EV_APPLY:
16241 /* TODO: implement me. */
16242 break;
16243 }
16244
16245 return NB_OK;
16246 }
16247
16248 /*
16249 * XPath:
16250 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/nexthop-self/next-hop-self
16251 */
16252 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_modify(
16253 struct nb_cb_modify_args *args)
16254 {
16255 switch (args->event) {
16256 case NB_EV_VALIDATE:
16257 case NB_EV_PREPARE:
16258 case NB_EV_ABORT:
16259 return NB_OK;
16260 case NB_EV_APPLY:
16261 return bgp_neighbor_afi_safi_flag_modify(
16262 args, PEER_FLAG_NEXTHOP_SELF,
16263 yang_dnode_get_bool(args->dnode, NULL));
16264
16265 break;
16266 }
16267
16268 return NB_OK;
16269 }
16270
16271 /*
16272 * XPath:
16273 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/nexthop-self/next-hop-self-force
16274 */
16275 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
16276 struct nb_cb_modify_args *args)
16277 {
16278 switch (args->event) {
16279 case NB_EV_VALIDATE:
16280 case NB_EV_PREPARE:
16281 case NB_EV_ABORT:
16282 return NB_OK;
16283 case NB_EV_APPLY:
16284 return bgp_neighbor_afi_safi_flag_modify(
16285 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
16286 yang_dnode_get_bool(args->dnode, NULL));
16287
16288 break;
16289 }
16290
16291 return NB_OK;
16292 }
16293
16294 /*
16295 * XPath:
16296 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as-all
16297 */
16298 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_modify(
16299 struct nb_cb_modify_args *args)
16300 {
16301 switch (args->event) {
16302 case NB_EV_VALIDATE:
16303 case NB_EV_PREPARE:
16304 case NB_EV_ABORT:
16305 return NB_OK;
16306 case NB_EV_APPLY:
16307 return bgp_neighbor_afi_safi_flag_modify(
16308 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
16309 yang_dnode_get_bool(args->dnode, NULL));
16310
16311 break;
16312 }
16313
16314 return NB_OK;
16315 }
16316
16317 /*
16318 * XPath:
16319 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as-all-replace
16320 */
16321 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
16322 struct nb_cb_modify_args *args)
16323 {
16324 switch (args->event) {
16325 case NB_EV_VALIDATE:
16326 case NB_EV_PREPARE:
16327 case NB_EV_ABORT:
16328 return NB_OK;
16329 case NB_EV_APPLY:
16330 return bgp_neighbor_afi_safi_flag_modify(
16331 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
16332 yang_dnode_get_bool(args->dnode, NULL));
16333
16334 break;
16335 }
16336
16337 return NB_OK;
16338 }
16339
16340 /*
16341 * XPath:
16342 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as
16343 */
16344 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_modify(
16345 struct nb_cb_modify_args *args)
16346 {
16347 switch (args->event) {
16348 case NB_EV_VALIDATE:
16349 case NB_EV_PREPARE:
16350 case NB_EV_ABORT:
16351 return NB_OK;
16352 case NB_EV_APPLY:
16353 return bgp_neighbor_afi_safi_flag_modify(
16354 args, PEER_FLAG_REMOVE_PRIVATE_AS,
16355 yang_dnode_get_bool(args->dnode, NULL));
16356
16357 break;
16358 }
16359
16360 return NB_OK;
16361 }
16362
16363 /*
16364 * XPath:
16365 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as-replace
16366 */
16367 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_replace_modify(
16368 struct nb_cb_modify_args *args)
16369 {
16370 switch (args->event) {
16371 case NB_EV_VALIDATE:
16372 case NB_EV_PREPARE:
16373 case NB_EV_ABORT:
16374 return NB_OK;
16375 case NB_EV_APPLY:
16376 return bgp_neighbor_afi_safi_flag_modify(
16377 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
16378 yang_dnode_get_bool(args->dnode, NULL));
16379
16380 break;
16381 }
16382
16383 return NB_OK;
16384 }
16385
16386 /*
16387 * XPath:
16388 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/route-reflector/route-reflector-client
16389 */
16390 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_route_reflector_route_reflector_client_modify(
16391 struct nb_cb_modify_args *args)
16392 {
16393 switch (args->event) {
16394 case NB_EV_VALIDATE:
16395 case NB_EV_PREPARE:
16396 case NB_EV_ABORT:
16397 return NB_OK;
16398 case NB_EV_APPLY:
16399 return bgp_neighbor_afi_safi_flag_modify(
16400 args, PEER_FLAG_REFLECTOR_CLIENT,
16401 yang_dnode_get_bool(args->dnode, NULL));
16402
16403 break;
16404 }
16405
16406 return NB_OK;
16407 }
16408
16409 /*
16410 * XPath:
16411 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/route-server/route-server-client
16412 */
16413 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_route_server_route_server_client_modify(
16414 struct nb_cb_modify_args *args)
16415 {
16416 switch (args->event) {
16417 case NB_EV_VALIDATE:
16418 case NB_EV_PREPARE:
16419 case NB_EV_ABORT:
16420 return NB_OK;
16421 case NB_EV_APPLY:
16422 return bgp_neighbor_afi_safi_flag_modify(
16423 args, PEER_FLAG_RSERVER_CLIENT,
16424 yang_dnode_get_bool(args->dnode, NULL));
16425
16426 break;
16427 }
16428
16429 return NB_OK;
16430 }
16431
16432 /*
16433 * XPath:
16434 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/send-community/send-community
16435 */
16436 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_community_modify(
16437 struct nb_cb_modify_args *args)
16438 {
16439 switch (args->event) {
16440 case NB_EV_VALIDATE:
16441 case NB_EV_PREPARE:
16442 case NB_EV_ABORT:
16443 return NB_OK;
16444 case NB_EV_APPLY:
16445 return bgp_neighbor_afi_safi_flag_modify(
16446 args, PEER_FLAG_SEND_COMMUNITY,
16447 yang_dnode_get_bool(args->dnode, NULL));
16448
16449 break;
16450 }
16451
16452 return NB_OK;
16453 }
16454
16455 /*
16456 * XPath:
16457 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/send-community/send-ext-community
16458 */
16459 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_ext_community_modify(
16460 struct nb_cb_modify_args *args)
16461 {
16462 switch (args->event) {
16463 case NB_EV_VALIDATE:
16464 case NB_EV_PREPARE:
16465 case NB_EV_ABORT:
16466 return NB_OK;
16467 case NB_EV_APPLY:
16468 return bgp_neighbor_afi_safi_flag_modify(
16469 args, PEER_FLAG_SEND_EXT_COMMUNITY,
16470 yang_dnode_get_bool(args->dnode, NULL));
16471
16472 break;
16473 }
16474
16475 return NB_OK;
16476 }
16477
16478 /*
16479 * XPath:
16480 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/send-community/send-large-community
16481 */
16482 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_large_community_modify(
16483 struct nb_cb_modify_args *args)
16484 {
16485 switch (args->event) {
16486 case NB_EV_VALIDATE:
16487 case NB_EV_PREPARE:
16488 case NB_EV_ABORT:
16489 return NB_OK;
16490 case NB_EV_APPLY:
16491 return bgp_neighbor_afi_safi_flag_modify(
16492 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
16493 yang_dnode_get_bool(args->dnode, NULL));
16494
16495 break;
16496 }
16497
16498 return NB_OK;
16499 }
16500
16501 /*
16502 * XPath:
16503 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/soft-reconfiguration
16504 */
16505 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_soft_reconfiguration_modify(
16506 struct nb_cb_modify_args *args)
16507 {
16508 switch (args->event) {
16509 case NB_EV_VALIDATE:
16510 case NB_EV_PREPARE:
16511 case NB_EV_ABORT:
16512 return NB_OK;
16513 case NB_EV_APPLY:
16514 return bgp_neighbor_afi_safi_flag_modify(
16515 args, PEER_FLAG_SOFT_RECONFIG,
16516 yang_dnode_get_bool(args->dnode, NULL));
16517
16518 break;
16519 }
16520
16521 return NB_OK;
16522 }
16523
16524 /*
16525 * XPath:
16526 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/weight/weight-attribute
16527 */
16528 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_modify(
16529 struct nb_cb_modify_args *args)
16530 {
16531 switch (args->event) {
16532 case NB_EV_VALIDATE:
16533 case NB_EV_PREPARE:
16534 case NB_EV_ABORT:
16535 return NB_OK;
16536 case NB_EV_APPLY:
16537 return bgp_neighbor_afi_safi_weight_modify(args);
16538
16539 break;
16540 }
16541
16542 return NB_OK;
16543 }
16544
16545 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_destroy(
16546 struct nb_cb_destroy_args *args)
16547 {
16548 switch (args->event) {
16549 case NB_EV_VALIDATE:
16550 case NB_EV_PREPARE:
16551 case NB_EV_ABORT:
16552 return NB_OK;
16553 case NB_EV_APPLY:
16554 return bgp_neighbor_afi_safi_weight_destroy(args);
16555
16556 break;
16557 }
16558
16559 return NB_OK;
16560 }
16561
16562 /*
16563 * XPath:
16564 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/rmap-import
16565 */
16566 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_modify(
16567 struct nb_cb_modify_args *args)
16568 {
16569 switch (args->event) {
16570 case NB_EV_VALIDATE:
16571 case NB_EV_PREPARE:
16572 case NB_EV_ABORT:
16573 break;
16574 case NB_EV_APPLY:
16575 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
16576 }
16577
16578 return NB_OK;
16579 }
16580
16581 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_destroy(
16582 struct nb_cb_destroy_args *args)
16583 {
16584 switch (args->event) {
16585 case NB_EV_VALIDATE:
16586 case NB_EV_PREPARE:
16587 case NB_EV_ABORT:
16588 break;
16589 case NB_EV_APPLY:
16590 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
16591 }
16592
16593 return NB_OK;
16594 }
16595
16596 /*
16597 * XPath:
16598 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/rmap-export
16599 */
16600 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_modify(
16601 struct nb_cb_modify_args *args)
16602 {
16603 switch (args->event) {
16604 case NB_EV_VALIDATE:
16605 case NB_EV_PREPARE:
16606 case NB_EV_ABORT:
16607 break;
16608 case NB_EV_APPLY:
16609 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
16610 }
16611
16612 return NB_OK;
16613 }
16614
16615 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_destroy(
16616 struct nb_cb_destroy_args *args)
16617 {
16618 switch (args->event) {
16619 case NB_EV_VALIDATE:
16620 case NB_EV_PREPARE:
16621 case NB_EV_ABORT:
16622 break;
16623 case NB_EV_APPLY:
16624 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
16625 }
16626
16627 return NB_OK;
16628 }
16629
16630 /*
16631 * XPath:
16632 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/plist-import
16633 */
16634 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_modify(
16635 struct nb_cb_modify_args *args)
16636 {
16637 switch (args->event) {
16638 case NB_EV_VALIDATE:
16639 case NB_EV_PREPARE:
16640 case NB_EV_ABORT:
16641 break;
16642 case NB_EV_APPLY:
16643 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
16644 }
16645
16646 return NB_OK;
16647 }
16648
16649 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_destroy(
16650 struct nb_cb_destroy_args *args)
16651 {
16652 switch (args->event) {
16653 case NB_EV_VALIDATE:
16654 case NB_EV_PREPARE:
16655 case NB_EV_ABORT:
16656 break;
16657 case NB_EV_APPLY:
16658 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
16659 }
16660
16661 return NB_OK;
16662 }
16663
16664 /*
16665 * XPath:
16666 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/plist-export
16667 */
16668 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_modify(
16669 struct nb_cb_modify_args *args)
16670 {
16671 switch (args->event) {
16672 case NB_EV_VALIDATE:
16673 case NB_EV_PREPARE:
16674 case NB_EV_ABORT:
16675 break;
16676 case NB_EV_APPLY:
16677 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
16678 }
16679
16680 return NB_OK;
16681 }
16682
16683 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_destroy(
16684 struct nb_cb_destroy_args *args)
16685 {
16686 switch (args->event) {
16687 case NB_EV_VALIDATE:
16688 case NB_EV_PREPARE:
16689 case NB_EV_ABORT:
16690 break;
16691 case NB_EV_APPLY:
16692 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
16693 }
16694
16695 return NB_OK;
16696 }
16697
16698 /*
16699 * XPath:
16700 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/access-list-import
16701 */
16702 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_modify(
16703 struct nb_cb_modify_args *args)
16704 {
16705 switch (args->event) {
16706 case NB_EV_VALIDATE:
16707 case NB_EV_PREPARE:
16708 case NB_EV_ABORT:
16709 case NB_EV_APPLY:
16710 /* TODO: implement me. */
16711 break;
16712 }
16713
16714 return NB_OK;
16715 }
16716
16717 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_destroy(
16718 struct nb_cb_destroy_args *args)
16719 {
16720 switch (args->event) {
16721 case NB_EV_VALIDATE:
16722 case NB_EV_PREPARE:
16723 case NB_EV_ABORT:
16724 case NB_EV_APPLY:
16725 /* TODO: implement me. */
16726 break;
16727 }
16728
16729 return NB_OK;
16730 }
16731
16732 /*
16733 * XPath:
16734 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/access-list-export
16735 */
16736 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_modify(
16737 struct nb_cb_modify_args *args)
16738 {
16739 switch (args->event) {
16740 case NB_EV_VALIDATE:
16741 case NB_EV_PREPARE:
16742 case NB_EV_ABORT:
16743 case NB_EV_APPLY:
16744 /* TODO: implement me. */
16745 break;
16746 }
16747
16748 return NB_OK;
16749 }
16750
16751 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_destroy(
16752 struct nb_cb_destroy_args *args)
16753 {
16754 switch (args->event) {
16755 case NB_EV_VALIDATE:
16756 case NB_EV_PREPARE:
16757 case NB_EV_ABORT:
16758 case NB_EV_APPLY:
16759 /* TODO: implement me. */
16760 break;
16761 }
16762
16763 return NB_OK;
16764 }
16765
16766 /*
16767 * XPath:
16768 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/as-path-filter-list-import
16769 */
16770 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_modify(
16771 struct nb_cb_modify_args *args)
16772 {
16773 switch (args->event) {
16774 case NB_EV_VALIDATE:
16775 case NB_EV_PREPARE:
16776 case NB_EV_ABORT:
16777 case NB_EV_APPLY:
16778 /* TODO: implement me. */
16779 break;
16780 }
16781
16782 return NB_OK;
16783 }
16784
16785 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_destroy(
16786 struct nb_cb_destroy_args *args)
16787 {
16788 switch (args->event) {
16789 case NB_EV_VALIDATE:
16790 case NB_EV_PREPARE:
16791 case NB_EV_ABORT:
16792 case NB_EV_APPLY:
16793 /* TODO: implement me. */
16794 break;
16795 }
16796
16797 return NB_OK;
16798 }
16799
16800 /*
16801 * XPath:
16802 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/as-path-filter-list-export
16803 */
16804 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_modify(
16805 struct nb_cb_modify_args *args)
16806 {
16807 switch (args->event) {
16808 case NB_EV_VALIDATE:
16809 case NB_EV_PREPARE:
16810 case NB_EV_ABORT:
16811 case NB_EV_APPLY:
16812 /* TODO: implement me. */
16813 break;
16814 }
16815
16816 return NB_OK;
16817 }
16818
16819 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_destroy(
16820 struct nb_cb_destroy_args *args)
16821 {
16822 switch (args->event) {
16823 case NB_EV_VALIDATE:
16824 case NB_EV_PREPARE:
16825 case NB_EV_ABORT:
16826 case NB_EV_APPLY:
16827 /* TODO: implement me. */
16828 break;
16829 }
16830
16831 return NB_OK;
16832 }
16833
16834 /*
16835 * XPath:
16836 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/unsuppress-map-import
16837 */
16838 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_modify(
16839 struct nb_cb_modify_args *args)
16840 {
16841 switch (args->event) {
16842 case NB_EV_VALIDATE:
16843 case NB_EV_PREPARE:
16844 case NB_EV_ABORT:
16845 case NB_EV_APPLY:
16846 /* TODO: implement me. */
16847 break;
16848 }
16849
16850 return NB_OK;
16851 }
16852
16853 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_destroy(
16854 struct nb_cb_destroy_args *args)
16855 {
16856 switch (args->event) {
16857 case NB_EV_VALIDATE:
16858 case NB_EV_PREPARE:
16859 case NB_EV_ABORT:
16860 case NB_EV_APPLY:
16861 /* TODO: implement me. */
16862 break;
16863 }
16864
16865 return NB_OK;
16866 }
16867
16868 /*
16869 * XPath:
16870 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/unsuppress-map-export
16871 */
16872 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_modify(
16873 struct nb_cb_modify_args *args)
16874 {
16875 switch (args->event) {
16876 case NB_EV_VALIDATE:
16877 case NB_EV_PREPARE:
16878 case NB_EV_ABORT:
16879 case NB_EV_APPLY:
16880 /* TODO: implement me. */
16881 break;
16882 }
16883
16884 return NB_OK;
16885 }
16886
16887 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_destroy(
16888 struct nb_cb_destroy_args *args)
16889 {
16890 switch (args->event) {
16891 case NB_EV_VALIDATE:
16892 case NB_EV_PREPARE:
16893 case NB_EV_ABORT:
16894 case NB_EV_APPLY:
16895 /* TODO: implement me. */
16896 break;
16897 }
16898
16899 return NB_OK;
16900 }
16901
16902
16903 /*
16904 * XPath:
16905 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/add-paths/path-type
16906 */
16907 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_add_paths_path_type_modify(
16908 struct nb_cb_modify_args *args)
16909 {
16910 switch (args->event) {
16911 case NB_EV_VALIDATE:
16912 case NB_EV_PREPARE:
16913 case NB_EV_ABORT:
16914 case NB_EV_APPLY:
16915 /* TODO: implement me. */
16916 break;
16917 }
16918
16919 return NB_OK;
16920 }
16921
16922 /*
16923 * XPath:
16924 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/as-path-options/allow-own-as
16925 */
16926 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_modify(
16927 struct nb_cb_modify_args *args)
16928 {
16929 switch (args->event) {
16930 case NB_EV_VALIDATE:
16931 case NB_EV_PREPARE:
16932 case NB_EV_ABORT:
16933 case NB_EV_APPLY:
16934 /* TODO: implement me. */
16935 break;
16936 }
16937
16938 return NB_OK;
16939 }
16940
16941 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_destroy(
16942 struct nb_cb_destroy_args *args)
16943 {
16944 switch (args->event) {
16945 case NB_EV_VALIDATE:
16946 case NB_EV_PREPARE:
16947 case NB_EV_ABORT:
16948 case NB_EV_APPLY:
16949 /* TODO: implement me. */
16950 break;
16951 }
16952
16953 return NB_OK;
16954 }
16955
16956 /*
16957 * XPath:
16958 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/as-path-options/allow-own-origin-as
16959 */
16960 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_modify(
16961 struct nb_cb_modify_args *args)
16962 {
16963 switch (args->event) {
16964 case NB_EV_VALIDATE:
16965 case NB_EV_PREPARE:
16966 case NB_EV_ABORT:
16967 case NB_EV_APPLY:
16968 /* TODO: implement me. */
16969 break;
16970 }
16971
16972 return NB_OK;
16973 }
16974
16975 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_destroy(
16976 struct nb_cb_destroy_args *args)
16977 {
16978 switch (args->event) {
16979 case NB_EV_VALIDATE:
16980 case NB_EV_PREPARE:
16981 case NB_EV_ABORT:
16982 case NB_EV_APPLY:
16983 /* TODO: implement me. */
16984 break;
16985 }
16986
16987 return NB_OK;
16988 }
16989
16990 /*
16991 * XPath:
16992 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/as-path-options/replace-peer-as
16993 */
16994 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_replace_peer_as_modify(
16995 struct nb_cb_modify_args *args)
16996 {
16997 switch (args->event) {
16998 case NB_EV_VALIDATE:
16999 case NB_EV_PREPARE:
17000 case NB_EV_ABORT:
17001 return NB_OK;
17002 case NB_EV_APPLY:
17003 return bgp_neighbor_afi_safi_flag_modify(
17004 args, PEER_FLAG_AS_OVERRIDE,
17005 yang_dnode_get_bool(args->dnode, NULL));
17006
17007 break;
17008 }
17009
17010 return NB_OK;
17011 }
17012
17013 /*
17014 * XPath:
17015 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/default-originate/originate
17016 */
17017 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_originate_modify(
17018 struct nb_cb_modify_args *args)
17019 {
17020 switch (args->event) {
17021 case NB_EV_VALIDATE:
17022 case NB_EV_PREPARE:
17023 case NB_EV_ABORT:
17024 case NB_EV_APPLY:
17025 /* TODO: implement me. */
17026 break;
17027 }
17028
17029 return NB_OK;
17030 }
17031
17032 /*
17033 * XPath:
17034 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/default-originate/route-map
17035 */
17036 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_modify(
17037 struct nb_cb_modify_args *args)
17038 {
17039 switch (args->event) {
17040 case NB_EV_VALIDATE:
17041 case NB_EV_PREPARE:
17042 case NB_EV_ABORT:
17043 case NB_EV_APPLY:
17044 /* TODO: implement me. */
17045 break;
17046 }
17047
17048 return NB_OK;
17049 }
17050
17051 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_destroy(
17052 struct nb_cb_destroy_args *args)
17053 {
17054 switch (args->event) {
17055 case NB_EV_VALIDATE:
17056 case NB_EV_PREPARE:
17057 case NB_EV_ABORT:
17058 case NB_EV_APPLY:
17059 /* TODO: implement me. */
17060 break;
17061 }
17062
17063 return NB_OK;
17064 }
17065
17066 /*
17067 * XPath:
17068 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/attr-unchanged/as-path-unchanged
17069 */
17070 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_as_path_unchanged_modify(
17071 struct nb_cb_modify_args *args)
17072 {
17073 switch (args->event) {
17074 case NB_EV_VALIDATE:
17075 case NB_EV_PREPARE:
17076 case NB_EV_ABORT:
17077 return NB_OK;
17078 case NB_EV_APPLY:
17079 return bgp_neighbor_afi_safi_flag_modify(
17080 args, PEER_FLAG_AS_PATH_UNCHANGED,
17081 yang_dnode_get_bool(args->dnode, NULL));
17082
17083 break;
17084 }
17085
17086 return NB_OK;
17087 }
17088
17089 /*
17090 * XPath:
17091 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/attr-unchanged/next-hop-unchanged
17092 */
17093 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_next_hop_unchanged_modify(
17094 struct nb_cb_modify_args *args)
17095 {
17096 switch (args->event) {
17097 case NB_EV_VALIDATE:
17098 case NB_EV_PREPARE:
17099 case NB_EV_ABORT:
17100 return NB_OK;
17101 case NB_EV_APPLY:
17102 return bgp_neighbor_afi_safi_flag_modify(
17103 args, PEER_FLAG_NEXTHOP_UNCHANGED,
17104 yang_dnode_get_bool(args->dnode, NULL));
17105
17106 break;
17107 }
17108
17109 return NB_OK;
17110 }
17111
17112 /*
17113 * XPath:
17114 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/attr-unchanged/med-unchanged
17115 */
17116 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_med_unchanged_modify(
17117 struct nb_cb_modify_args *args)
17118 {
17119 switch (args->event) {
17120 case NB_EV_VALIDATE:
17121 case NB_EV_PREPARE:
17122 case NB_EV_ABORT:
17123 return NB_OK;
17124 case NB_EV_APPLY:
17125 return bgp_neighbor_afi_safi_flag_modify(
17126 args, PEER_FLAG_MED_UNCHANGED,
17127 yang_dnode_get_bool(args->dnode, NULL));
17128
17129 break;
17130 }
17131
17132 return NB_OK;
17133 }
17134
17135 /*
17136 * XPath:
17137 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-send
17138 */
17139 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_modify(
17140 struct nb_cb_modify_args *args)
17141 {
17142 switch (args->event) {
17143 case NB_EV_VALIDATE:
17144 case NB_EV_PREPARE:
17145 case NB_EV_ABORT:
17146 case NB_EV_APPLY:
17147 /* TODO: implement me. */
17148 break;
17149 }
17150
17151 return NB_OK;
17152 }
17153
17154 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_destroy(
17155 struct nb_cb_destroy_args *args)
17156 {
17157 switch (args->event) {
17158 case NB_EV_VALIDATE:
17159 case NB_EV_PREPARE:
17160 case NB_EV_ABORT:
17161 case NB_EV_APPLY:
17162 /* TODO: implement me. */
17163 break;
17164 }
17165
17166 return NB_OK;
17167 }
17168
17169 /*
17170 * XPath:
17171 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-receive
17172 */
17173 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_modify(
17174 struct nb_cb_modify_args *args)
17175 {
17176 switch (args->event) {
17177 case NB_EV_VALIDATE:
17178 case NB_EV_PREPARE:
17179 case NB_EV_ABORT:
17180 case NB_EV_APPLY:
17181 /* TODO: implement me. */
17182 break;
17183 }
17184
17185 return NB_OK;
17186 }
17187
17188 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_destroy(
17189 struct nb_cb_destroy_args *args)
17190 {
17191 switch (args->event) {
17192 case NB_EV_VALIDATE:
17193 case NB_EV_PREPARE:
17194 case NB_EV_ABORT:
17195 case NB_EV_APPLY:
17196 /* TODO: implement me. */
17197 break;
17198 }
17199
17200 return NB_OK;
17201 }
17202
17203 /*
17204 * XPath:
17205 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-both
17206 */
17207 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_modify(
17208 struct nb_cb_modify_args *args)
17209 {
17210 switch (args->event) {
17211 case NB_EV_VALIDATE:
17212 case NB_EV_PREPARE:
17213 case NB_EV_ABORT:
17214 case NB_EV_APPLY:
17215 /* TODO: implement me. */
17216 break;
17217 }
17218
17219 return NB_OK;
17220 }
17221
17222 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_destroy(
17223 struct nb_cb_destroy_args *args)
17224 {
17225 switch (args->event) {
17226 case NB_EV_VALIDATE:
17227 case NB_EV_PREPARE:
17228 case NB_EV_ABORT:
17229 case NB_EV_APPLY:
17230 /* TODO: implement me. */
17231 break;
17232 }
17233
17234 return NB_OK;
17235 }
17236
17237 /*
17238 * XPath:
17239 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list
17240 */
17241 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_create(
17242 struct nb_cb_create_args *args)
17243 {
17244 switch (args->event) {
17245 case NB_EV_VALIDATE:
17246 case NB_EV_PREPARE:
17247 case NB_EV_ABORT:
17248 case NB_EV_APPLY:
17249 /* TODO: implement me. */
17250 break;
17251 }
17252
17253 return NB_OK;
17254 }
17255
17256 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_destroy(
17257 struct nb_cb_destroy_args *args)
17258 {
17259 switch (args->event) {
17260 case NB_EV_VALIDATE:
17261 case NB_EV_PREPARE:
17262 case NB_EV_ABORT:
17263 return NB_OK;
17264 case NB_EV_APPLY:
17265 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
17266 }
17267
17268 return NB_OK;
17269 }
17270
17271 /*
17272 * XPath:
17273 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/max-prefixes
17274 */
17275 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_max_prefixes_modify(
17276 struct nb_cb_modify_args *args)
17277 {
17278 switch (args->event) {
17279 case NB_EV_VALIDATE:
17280 case NB_EV_PREPARE:
17281 case NB_EV_ABORT:
17282 case NB_EV_APPLY:
17283 /* TODO: implement me. */
17284 break;
17285 }
17286
17287 return NB_OK;
17288 }
17289
17290 /*
17291 * XPath:
17292 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/force-check
17293 */
17294 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_force_check_modify(
17295 struct nb_cb_modify_args *args)
17296 {
17297 switch (args->event) {
17298 case NB_EV_VALIDATE:
17299 case NB_EV_PREPARE:
17300 case NB_EV_ABORT:
17301 case NB_EV_APPLY:
17302 /* TODO: implement me. */
17303 break;
17304 }
17305
17306 return NB_OK;
17307 }
17308
17309 /*
17310 * XPath:
17311 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/warning-only
17312 */
17313 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_modify(
17314 struct nb_cb_modify_args *args)
17315 {
17316 switch (args->event) {
17317 case NB_EV_VALIDATE:
17318 case NB_EV_PREPARE:
17319 case NB_EV_ABORT:
17320 case NB_EV_APPLY:
17321 /* TODO: implement me. */
17322 break;
17323 }
17324
17325 return NB_OK;
17326 }
17327
17328 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_destroy(
17329 struct nb_cb_destroy_args *args)
17330 {
17331 switch (args->event) {
17332 case NB_EV_VALIDATE:
17333 case NB_EV_PREPARE:
17334 case NB_EV_ABORT:
17335 case NB_EV_APPLY:
17336 /* TODO: implement me. */
17337 break;
17338 }
17339
17340 return NB_OK;
17341 }
17342
17343 /*
17344 * XPath:
17345 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/restart-timer
17346 */
17347 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_modify(
17348 struct nb_cb_modify_args *args)
17349 {
17350 switch (args->event) {
17351 case NB_EV_VALIDATE:
17352 case NB_EV_PREPARE:
17353 case NB_EV_ABORT:
17354 case NB_EV_APPLY:
17355 /* TODO: implement me. */
17356 break;
17357 }
17358
17359 return NB_OK;
17360 }
17361
17362 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
17363 struct nb_cb_destroy_args *args)
17364 {
17365 switch (args->event) {
17366 case NB_EV_VALIDATE:
17367 case NB_EV_PREPARE:
17368 case NB_EV_ABORT:
17369 case NB_EV_APPLY:
17370 /* TODO: implement me. */
17371 break;
17372 }
17373
17374 return NB_OK;
17375 }
17376
17377 /*
17378 * XPath:
17379 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/shutdown-threshold-pct
17380 */
17381 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
17382 struct nb_cb_modify_args *args)
17383 {
17384 switch (args->event) {
17385 case NB_EV_VALIDATE:
17386 case NB_EV_PREPARE:
17387 case NB_EV_ABORT:
17388 case NB_EV_APPLY:
17389 /* TODO: implement me. */
17390 break;
17391 }
17392
17393 return NB_OK;
17394 }
17395
17396 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
17397 struct nb_cb_destroy_args *args)
17398 {
17399 switch (args->event) {
17400 case NB_EV_VALIDATE:
17401 case NB_EV_PREPARE:
17402 case NB_EV_ABORT:
17403 case NB_EV_APPLY:
17404 /* TODO: implement me. */
17405 break;
17406 }
17407
17408 return NB_OK;
17409 }
17410
17411 /*
17412 * XPath:
17413 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
17414 */
17415 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
17416 struct nb_cb_modify_args *args)
17417 {
17418 switch (args->event) {
17419 case NB_EV_VALIDATE:
17420 case NB_EV_PREPARE:
17421 case NB_EV_ABORT:
17422 case NB_EV_APPLY:
17423 /* TODO: implement me. */
17424 break;
17425 }
17426
17427 return NB_OK;
17428 }
17429
17430 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
17431 struct nb_cb_destroy_args *args)
17432 {
17433 switch (args->event) {
17434 case NB_EV_VALIDATE:
17435 case NB_EV_PREPARE:
17436 case NB_EV_ABORT:
17437 case NB_EV_APPLY:
17438 /* TODO: implement me. */
17439 break;
17440 }
17441
17442 return NB_OK;
17443 }
17444
17445 /*
17446 * XPath:
17447 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tr-restart-timer
17448 */
17449 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
17450 struct nb_cb_modify_args *args)
17451 {
17452 switch (args->event) {
17453 case NB_EV_VALIDATE:
17454 case NB_EV_PREPARE:
17455 case NB_EV_ABORT:
17456 case NB_EV_APPLY:
17457 /* TODO: implement me. */
17458 break;
17459 }
17460
17461 return NB_OK;
17462 }
17463
17464 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
17465 struct nb_cb_destroy_args *args)
17466 {
17467 switch (args->event) {
17468 case NB_EV_VALIDATE:
17469 case NB_EV_PREPARE:
17470 case NB_EV_ABORT:
17471 case NB_EV_APPLY:
17472 /* TODO: implement me. */
17473 break;
17474 }
17475
17476 return NB_OK;
17477 }
17478
17479 /*
17480 * XPath:
17481 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
17482 */
17483 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
17484 struct nb_cb_modify_args *args)
17485 {
17486 switch (args->event) {
17487 case NB_EV_VALIDATE:
17488 case NB_EV_PREPARE:
17489 case NB_EV_ABORT:
17490 case NB_EV_APPLY:
17491 /* TODO: implement me. */
17492 break;
17493 }
17494
17495 return NB_OK;
17496 }
17497
17498 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
17499 struct nb_cb_destroy_args *args)
17500 {
17501 switch (args->event) {
17502 case NB_EV_VALIDATE:
17503 case NB_EV_PREPARE:
17504 case NB_EV_ABORT:
17505 case NB_EV_APPLY:
17506 /* TODO: implement me. */
17507 break;
17508 }
17509
17510 return NB_OK;
17511 }
17512
17513 /*
17514 * XPath:
17515 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tw-warning-only
17516 */
17517 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
17518 struct nb_cb_modify_args *args)
17519 {
17520 switch (args->event) {
17521 case NB_EV_VALIDATE:
17522 case NB_EV_PREPARE:
17523 case NB_EV_ABORT:
17524 case NB_EV_APPLY:
17525 /* TODO: implement me. */
17526 break;
17527 }
17528
17529 return NB_OK;
17530 }
17531
17532 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
17533 struct nb_cb_destroy_args *args)
17534 {
17535 switch (args->event) {
17536 case NB_EV_VALIDATE:
17537 case NB_EV_PREPARE:
17538 case NB_EV_ABORT:
17539 case NB_EV_APPLY:
17540 /* TODO: implement me. */
17541 break;
17542 }
17543
17544 return NB_OK;
17545 }
17546
17547 /*
17548 * XPath:
17549 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/nexthop-self/next-hop-self
17550 */
17551 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_modify(
17552 struct nb_cb_modify_args *args)
17553 {
17554 switch (args->event) {
17555 case NB_EV_VALIDATE:
17556 case NB_EV_PREPARE:
17557 case NB_EV_ABORT:
17558 return NB_OK;
17559 case NB_EV_APPLY:
17560 return bgp_neighbor_afi_safi_flag_modify(
17561 args, PEER_FLAG_NEXTHOP_SELF,
17562 yang_dnode_get_bool(args->dnode, NULL));
17563
17564 break;
17565 }
17566
17567 return NB_OK;
17568 }
17569
17570 /*
17571 * XPath:
17572 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/nexthop-self/next-hop-self-force
17573 */
17574 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_force_modify(
17575 struct nb_cb_modify_args *args)
17576 {
17577 switch (args->event) {
17578 case NB_EV_VALIDATE:
17579 case NB_EV_PREPARE:
17580 case NB_EV_ABORT:
17581 return NB_OK;
17582 case NB_EV_APPLY:
17583 return bgp_neighbor_afi_safi_flag_modify(
17584 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
17585 yang_dnode_get_bool(args->dnode, NULL));
17586
17587 break;
17588 }
17589
17590 return NB_OK;
17591 }
17592
17593 /*
17594 * XPath:
17595 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as-all
17596 */
17597 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_modify(
17598 struct nb_cb_modify_args *args)
17599 {
17600 switch (args->event) {
17601 case NB_EV_VALIDATE:
17602 case NB_EV_PREPARE:
17603 case NB_EV_ABORT:
17604 return NB_OK;
17605 case NB_EV_APPLY:
17606 return bgp_neighbor_afi_safi_flag_modify(
17607 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
17608 yang_dnode_get_bool(args->dnode, NULL));
17609
17610 break;
17611 }
17612
17613 return NB_OK;
17614 }
17615
17616 /*
17617 * XPath:
17618 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as-all-replace
17619 */
17620 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_replace_modify(
17621 struct nb_cb_modify_args *args)
17622 {
17623 switch (args->event) {
17624 case NB_EV_VALIDATE:
17625 case NB_EV_PREPARE:
17626 case NB_EV_ABORT:
17627 return NB_OK;
17628 case NB_EV_APPLY:
17629 return bgp_neighbor_afi_safi_flag_modify(
17630 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
17631 yang_dnode_get_bool(args->dnode, NULL));
17632
17633 break;
17634 }
17635
17636 return NB_OK;
17637 }
17638
17639 /*
17640 * XPath:
17641 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as
17642 */
17643 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_modify(
17644 struct nb_cb_modify_args *args)
17645 {
17646 switch (args->event) {
17647 case NB_EV_VALIDATE:
17648 case NB_EV_PREPARE:
17649 case NB_EV_ABORT:
17650 return NB_OK;
17651 case NB_EV_APPLY:
17652 return bgp_neighbor_afi_safi_flag_modify(
17653 args, PEER_FLAG_REMOVE_PRIVATE_AS,
17654 yang_dnode_get_bool(args->dnode, NULL));
17655
17656 break;
17657 }
17658
17659 return NB_OK;
17660 }
17661
17662 /*
17663 * XPath:
17664 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as-replace
17665 */
17666 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_replace_modify(
17667 struct nb_cb_modify_args *args)
17668 {
17669 switch (args->event) {
17670 case NB_EV_VALIDATE:
17671 case NB_EV_PREPARE:
17672 case NB_EV_ABORT:
17673 return NB_OK;
17674 case NB_EV_APPLY:
17675 return bgp_neighbor_afi_safi_flag_modify(
17676 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
17677 yang_dnode_get_bool(args->dnode, NULL));
17678
17679 break;
17680 }
17681
17682 return NB_OK;
17683 }
17684
17685 /*
17686 * XPath:
17687 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/route-reflector/route-reflector-client
17688 */
17689 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_route_reflector_route_reflector_client_modify(
17690 struct nb_cb_modify_args *args)
17691 {
17692 switch (args->event) {
17693 case NB_EV_VALIDATE:
17694 case NB_EV_PREPARE:
17695 case NB_EV_ABORT:
17696 return NB_OK;
17697 case NB_EV_APPLY:
17698 return bgp_neighbor_afi_safi_flag_modify(
17699 args, PEER_FLAG_REFLECTOR_CLIENT,
17700 yang_dnode_get_bool(args->dnode, NULL));
17701
17702 break;
17703 }
17704
17705 return NB_OK;
17706 }
17707
17708 /*
17709 * XPath:
17710 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/route-server/route-server-client
17711 */
17712 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_route_server_route_server_client_modify(
17713 struct nb_cb_modify_args *args)
17714 {
17715 switch (args->event) {
17716 case NB_EV_VALIDATE:
17717 case NB_EV_PREPARE:
17718 case NB_EV_ABORT:
17719 return NB_OK;
17720 case NB_EV_APPLY:
17721 return bgp_neighbor_afi_safi_flag_modify(
17722 args, PEER_FLAG_RSERVER_CLIENT,
17723 yang_dnode_get_bool(args->dnode, NULL));
17724
17725 break;
17726 }
17727
17728 return NB_OK;
17729 }
17730
17731 /*
17732 * XPath:
17733 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/send-community/send-community
17734 */
17735 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_community_modify(
17736 struct nb_cb_modify_args *args)
17737 {
17738 switch (args->event) {
17739 case NB_EV_VALIDATE:
17740 case NB_EV_PREPARE:
17741 case NB_EV_ABORT:
17742 return NB_OK;
17743 case NB_EV_APPLY:
17744 return bgp_neighbor_afi_safi_flag_modify(
17745 args, PEER_FLAG_SEND_COMMUNITY,
17746 yang_dnode_get_bool(args->dnode, NULL));
17747
17748 break;
17749 }
17750
17751 return NB_OK;
17752 }
17753
17754 /*
17755 * XPath:
17756 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/send-community/send-ext-community
17757 */
17758 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_ext_community_modify(
17759 struct nb_cb_modify_args *args)
17760 {
17761 switch (args->event) {
17762 case NB_EV_VALIDATE:
17763 case NB_EV_PREPARE:
17764 case NB_EV_ABORT:
17765 return NB_OK;
17766 case NB_EV_APPLY:
17767 return bgp_neighbor_afi_safi_flag_modify(
17768 args, PEER_FLAG_SEND_EXT_COMMUNITY,
17769 yang_dnode_get_bool(args->dnode, NULL));
17770
17771 break;
17772 }
17773
17774 return NB_OK;
17775 }
17776
17777 /*
17778 * XPath:
17779 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/send-community/send-large-community
17780 */
17781 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_large_community_modify(
17782 struct nb_cb_modify_args *args)
17783 {
17784 switch (args->event) {
17785 case NB_EV_VALIDATE:
17786 case NB_EV_PREPARE:
17787 case NB_EV_ABORT:
17788 return NB_OK;
17789 case NB_EV_APPLY:
17790 return bgp_neighbor_afi_safi_flag_modify(
17791 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
17792 yang_dnode_get_bool(args->dnode, NULL));
17793
17794 break;
17795 }
17796
17797 return NB_OK;
17798 }
17799
17800 /*
17801 * XPath:
17802 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/soft-reconfiguration
17803 */
17804 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_soft_reconfiguration_modify(
17805 struct nb_cb_modify_args *args)
17806 {
17807 switch (args->event) {
17808 case NB_EV_VALIDATE:
17809 case NB_EV_PREPARE:
17810 case NB_EV_ABORT:
17811 return NB_OK;
17812 case NB_EV_APPLY:
17813 return bgp_neighbor_afi_safi_flag_modify(
17814 args, PEER_FLAG_SOFT_RECONFIG,
17815 yang_dnode_get_bool(args->dnode, NULL));
17816
17817 break;
17818 }
17819
17820 return NB_OK;
17821 }
17822
17823 /*
17824 * XPath:
17825 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/weight/weight-attribute
17826 */
17827 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_modify(
17828 struct nb_cb_modify_args *args)
17829 {
17830 switch (args->event) {
17831 case NB_EV_VALIDATE:
17832 case NB_EV_PREPARE:
17833 case NB_EV_ABORT:
17834 return NB_OK;
17835 case NB_EV_APPLY:
17836 return bgp_neighbor_afi_safi_weight_modify(args);
17837
17838 break;
17839 }
17840
17841 return NB_OK;
17842 }
17843
17844 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_destroy(
17845 struct nb_cb_destroy_args *args)
17846 {
17847 switch (args->event) {
17848 case NB_EV_VALIDATE:
17849 case NB_EV_PREPARE:
17850 case NB_EV_ABORT:
17851 return NB_OK;
17852 case NB_EV_APPLY:
17853 return bgp_neighbor_afi_safi_weight_destroy(args);
17854
17855 break;
17856 }
17857
17858 return NB_OK;
17859 }
17860
17861 /*
17862 * XPath:
17863 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/rmap-import
17864 */
17865 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_modify(
17866 struct nb_cb_modify_args *args)
17867 {
17868 switch (args->event) {
17869 case NB_EV_VALIDATE:
17870 case NB_EV_PREPARE:
17871 case NB_EV_ABORT:
17872 break;
17873 case NB_EV_APPLY:
17874 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
17875 }
17876
17877 return NB_OK;
17878 }
17879
17880 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_destroy(
17881 struct nb_cb_destroy_args *args)
17882 {
17883 switch (args->event) {
17884 case NB_EV_VALIDATE:
17885 case NB_EV_PREPARE:
17886 case NB_EV_ABORT:
17887 break;
17888 case NB_EV_APPLY:
17889 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
17890 }
17891
17892 return NB_OK;
17893 }
17894
17895 /*
17896 * XPath:
17897 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/rmap-export
17898 */
17899 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_modify(
17900 struct nb_cb_modify_args *args)
17901 {
17902 switch (args->event) {
17903 case NB_EV_VALIDATE:
17904 case NB_EV_PREPARE:
17905 case NB_EV_ABORT:
17906 break;
17907 case NB_EV_APPLY:
17908 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
17909 }
17910
17911 return NB_OK;
17912 }
17913
17914 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_destroy(
17915 struct nb_cb_destroy_args *args)
17916 {
17917 switch (args->event) {
17918 case NB_EV_VALIDATE:
17919 case NB_EV_PREPARE:
17920 case NB_EV_ABORT:
17921 break;
17922 case NB_EV_APPLY:
17923 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
17924 }
17925
17926 return NB_OK;
17927 }
17928
17929 /*
17930 * XPath:
17931 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/plist-import
17932 */
17933 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_modify(
17934 struct nb_cb_modify_args *args)
17935 {
17936 switch (args->event) {
17937 case NB_EV_VALIDATE:
17938 case NB_EV_PREPARE:
17939 case NB_EV_ABORT:
17940 break;
17941 case NB_EV_APPLY:
17942 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
17943 }
17944
17945 return NB_OK;
17946 }
17947
17948 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_destroy(
17949 struct nb_cb_destroy_args *args)
17950 {
17951 switch (args->event) {
17952 case NB_EV_VALIDATE:
17953 case NB_EV_PREPARE:
17954 case NB_EV_ABORT:
17955 break;
17956 case NB_EV_APPLY:
17957 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
17958 }
17959
17960 return NB_OK;
17961 }
17962
17963 /*
17964 * XPath:
17965 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/plist-export
17966 */
17967 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_modify(
17968 struct nb_cb_modify_args *args)
17969 {
17970 switch (args->event) {
17971 case NB_EV_VALIDATE:
17972 case NB_EV_PREPARE:
17973 case NB_EV_ABORT:
17974 break;
17975 case NB_EV_APPLY:
17976 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
17977 }
17978
17979 return NB_OK;
17980 }
17981
17982 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_destroy(
17983 struct nb_cb_destroy_args *args)
17984 {
17985 switch (args->event) {
17986 case NB_EV_VALIDATE:
17987 case NB_EV_PREPARE:
17988 case NB_EV_ABORT:
17989 break;
17990 case NB_EV_APPLY:
17991 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
17992 }
17993
17994 return NB_OK;
17995 }
17996
17997 /*
17998 * XPath:
17999 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/access-list-import
18000 */
18001 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_modify(
18002 struct nb_cb_modify_args *args)
18003 {
18004 switch (args->event) {
18005 case NB_EV_VALIDATE:
18006 case NB_EV_PREPARE:
18007 case NB_EV_ABORT:
18008 case NB_EV_APPLY:
18009 /* TODO: implement me. */
18010 break;
18011 }
18012
18013 return NB_OK;
18014 }
18015
18016 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_destroy(
18017 struct nb_cb_destroy_args *args)
18018 {
18019 switch (args->event) {
18020 case NB_EV_VALIDATE:
18021 case NB_EV_PREPARE:
18022 case NB_EV_ABORT:
18023 case NB_EV_APPLY:
18024 /* TODO: implement me. */
18025 break;
18026 }
18027
18028 return NB_OK;
18029 }
18030
18031 /*
18032 * XPath:
18033 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/access-list-export
18034 */
18035 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_modify(
18036 struct nb_cb_modify_args *args)
18037 {
18038 switch (args->event) {
18039 case NB_EV_VALIDATE:
18040 case NB_EV_PREPARE:
18041 case NB_EV_ABORT:
18042 case NB_EV_APPLY:
18043 /* TODO: implement me. */
18044 break;
18045 }
18046
18047 return NB_OK;
18048 }
18049
18050 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_destroy(
18051 struct nb_cb_destroy_args *args)
18052 {
18053 switch (args->event) {
18054 case NB_EV_VALIDATE:
18055 case NB_EV_PREPARE:
18056 case NB_EV_ABORT:
18057 case NB_EV_APPLY:
18058 /* TODO: implement me. */
18059 break;
18060 }
18061
18062 return NB_OK;
18063 }
18064
18065 /*
18066 * XPath:
18067 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/as-path-filter-list-import
18068 */
18069 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_modify(
18070 struct nb_cb_modify_args *args)
18071 {
18072 switch (args->event) {
18073 case NB_EV_VALIDATE:
18074 case NB_EV_PREPARE:
18075 case NB_EV_ABORT:
18076 case NB_EV_APPLY:
18077 /* TODO: implement me. */
18078 break;
18079 }
18080
18081 return NB_OK;
18082 }
18083
18084 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_destroy(
18085 struct nb_cb_destroy_args *args)
18086 {
18087 switch (args->event) {
18088 case NB_EV_VALIDATE:
18089 case NB_EV_PREPARE:
18090 case NB_EV_ABORT:
18091 case NB_EV_APPLY:
18092 /* TODO: implement me. */
18093 break;
18094 }
18095
18096 return NB_OK;
18097 }
18098
18099 /*
18100 * XPath:
18101 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/as-path-filter-list-export
18102 */
18103 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_modify(
18104 struct nb_cb_modify_args *args)
18105 {
18106 switch (args->event) {
18107 case NB_EV_VALIDATE:
18108 case NB_EV_PREPARE:
18109 case NB_EV_ABORT:
18110 case NB_EV_APPLY:
18111 /* TODO: implement me. */
18112 break;
18113 }
18114
18115 return NB_OK;
18116 }
18117
18118 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_destroy(
18119 struct nb_cb_destroy_args *args)
18120 {
18121 switch (args->event) {
18122 case NB_EV_VALIDATE:
18123 case NB_EV_PREPARE:
18124 case NB_EV_ABORT:
18125 case NB_EV_APPLY:
18126 /* TODO: implement me. */
18127 break;
18128 }
18129
18130 return NB_OK;
18131 }
18132
18133 /*
18134 * XPath:
18135 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/unsuppress-map-import
18136 */
18137 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_modify(
18138 struct nb_cb_modify_args *args)
18139 {
18140 switch (args->event) {
18141 case NB_EV_VALIDATE:
18142 case NB_EV_PREPARE:
18143 case NB_EV_ABORT:
18144 case NB_EV_APPLY:
18145 /* TODO: implement me. */
18146 break;
18147 }
18148
18149 return NB_OK;
18150 }
18151
18152 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_destroy(
18153 struct nb_cb_destroy_args *args)
18154 {
18155 switch (args->event) {
18156 case NB_EV_VALIDATE:
18157 case NB_EV_PREPARE:
18158 case NB_EV_ABORT:
18159 case NB_EV_APPLY:
18160 /* TODO: implement me. */
18161 break;
18162 }
18163
18164 return NB_OK;
18165 }
18166
18167 /*
18168 * XPath:
18169 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/unsuppress-map-export
18170 */
18171 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_modify(
18172 struct nb_cb_modify_args *args)
18173 {
18174 switch (args->event) {
18175 case NB_EV_VALIDATE:
18176 case NB_EV_PREPARE:
18177 case NB_EV_ABORT:
18178 case NB_EV_APPLY:
18179 /* TODO: implement me. */
18180 break;
18181 }
18182
18183 return NB_OK;
18184 }
18185
18186 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_destroy(
18187 struct nb_cb_destroy_args *args)
18188 {
18189 switch (args->event) {
18190 case NB_EV_VALIDATE:
18191 case NB_EV_PREPARE:
18192 case NB_EV_ABORT:
18193 case NB_EV_APPLY:
18194 /* TODO: implement me. */
18195 break;
18196 }
18197
18198 return NB_OK;
18199 }
18200
18201 /*
18202 * XPath:
18203 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/add-paths/path-type
18204 */
18205 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_add_paths_path_type_modify(
18206 struct nb_cb_modify_args *args)
18207 {
18208 switch (args->event) {
18209 case NB_EV_VALIDATE:
18210 case NB_EV_PREPARE:
18211 case NB_EV_ABORT:
18212 case NB_EV_APPLY:
18213 /* TODO: implement me. */
18214 break;
18215 }
18216
18217 return NB_OK;
18218 }
18219
18220 /*
18221 * XPath:
18222 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/as-path-options/allow-own-as
18223 */
18224 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_modify(
18225 struct nb_cb_modify_args *args)
18226 {
18227 switch (args->event) {
18228 case NB_EV_VALIDATE:
18229 case NB_EV_PREPARE:
18230 case NB_EV_ABORT:
18231 case NB_EV_APPLY:
18232 /* TODO: implement me. */
18233 break;
18234 }
18235
18236 return NB_OK;
18237 }
18238
18239 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_destroy(
18240 struct nb_cb_destroy_args *args)
18241 {
18242 switch (args->event) {
18243 case NB_EV_VALIDATE:
18244 case NB_EV_PREPARE:
18245 case NB_EV_ABORT:
18246 case NB_EV_APPLY:
18247 /* TODO: implement me. */
18248 break;
18249 }
18250
18251 return NB_OK;
18252 }
18253
18254 /*
18255 * XPath:
18256 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/as-path-options/allow-own-origin-as
18257 */
18258 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_modify(
18259 struct nb_cb_modify_args *args)
18260 {
18261 switch (args->event) {
18262 case NB_EV_VALIDATE:
18263 case NB_EV_PREPARE:
18264 case NB_EV_ABORT:
18265 case NB_EV_APPLY:
18266 /* TODO: implement me. */
18267 break;
18268 }
18269
18270 return NB_OK;
18271 }
18272
18273 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_destroy(
18274 struct nb_cb_destroy_args *args)
18275 {
18276 switch (args->event) {
18277 case NB_EV_VALIDATE:
18278 case NB_EV_PREPARE:
18279 case NB_EV_ABORT:
18280 case NB_EV_APPLY:
18281 /* TODO: implement me. */
18282 break;
18283 }
18284
18285 return NB_OK;
18286 }
18287
18288 /*
18289 * XPath:
18290 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/as-path-options/replace-peer-as
18291 */
18292 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_replace_peer_as_modify(
18293 struct nb_cb_modify_args *args)
18294 {
18295 switch (args->event) {
18296 case NB_EV_VALIDATE:
18297 case NB_EV_PREPARE:
18298 case NB_EV_ABORT:
18299 return NB_OK;
18300 case NB_EV_APPLY:
18301 return bgp_neighbor_afi_safi_flag_modify(
18302 args, PEER_FLAG_AS_OVERRIDE,
18303 yang_dnode_get_bool(args->dnode, NULL));
18304
18305 break;
18306 }
18307
18308 return NB_OK;
18309 }
18310
18311 /*
18312 * XPath:
18313 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/default-originate/originate
18314 */
18315 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_originate_modify(
18316 struct nb_cb_modify_args *args)
18317 {
18318 switch (args->event) {
18319 case NB_EV_VALIDATE:
18320 case NB_EV_PREPARE:
18321 case NB_EV_ABORT:
18322 case NB_EV_APPLY:
18323 /* TODO: implement me. */
18324 break;
18325 }
18326
18327 return NB_OK;
18328 }
18329
18330 /*
18331 * XPath:
18332 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/default-originate/route-map
18333 */
18334 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_modify(
18335 struct nb_cb_modify_args *args)
18336 {
18337 switch (args->event) {
18338 case NB_EV_VALIDATE:
18339 case NB_EV_PREPARE:
18340 case NB_EV_ABORT:
18341 case NB_EV_APPLY:
18342 /* TODO: implement me. */
18343 break;
18344 }
18345
18346 return NB_OK;
18347 }
18348
18349 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_destroy(
18350 struct nb_cb_destroy_args *args)
18351 {
18352 switch (args->event) {
18353 case NB_EV_VALIDATE:
18354 case NB_EV_PREPARE:
18355 case NB_EV_ABORT:
18356 case NB_EV_APPLY:
18357 /* TODO: implement me. */
18358 break;
18359 }
18360
18361 return NB_OK;
18362 }
18363
18364 /*
18365 * XPath:
18366 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/attr-unchanged/as-path-unchanged
18367 */
18368 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_as_path_unchanged_modify(
18369 struct nb_cb_modify_args *args)
18370 {
18371 switch (args->event) {
18372 case NB_EV_VALIDATE:
18373 case NB_EV_PREPARE:
18374 case NB_EV_ABORT:
18375 return NB_OK;
18376 case NB_EV_APPLY:
18377 return bgp_neighbor_afi_safi_flag_modify(
18378 args, PEER_FLAG_AS_PATH_UNCHANGED,
18379 yang_dnode_get_bool(args->dnode, NULL));
18380
18381 break;
18382 }
18383
18384 return NB_OK;
18385 }
18386
18387 /*
18388 * XPath:
18389 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/attr-unchanged/next-hop-unchanged
18390 */
18391 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_next_hop_unchanged_modify(
18392 struct nb_cb_modify_args *args)
18393 {
18394 switch (args->event) {
18395 case NB_EV_VALIDATE:
18396 case NB_EV_PREPARE:
18397 case NB_EV_ABORT:
18398 return NB_OK;
18399 case NB_EV_APPLY:
18400 return bgp_neighbor_afi_safi_flag_modify(
18401 args, PEER_FLAG_NEXTHOP_UNCHANGED,
18402 yang_dnode_get_bool(args->dnode, NULL));
18403
18404 break;
18405 }
18406
18407 return NB_OK;
18408 }
18409
18410 /*
18411 * XPath:
18412 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/attr-unchanged/med-unchanged
18413 */
18414 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_med_unchanged_modify(
18415 struct nb_cb_modify_args *args)
18416 {
18417 switch (args->event) {
18418 case NB_EV_VALIDATE:
18419 case NB_EV_PREPARE:
18420 case NB_EV_ABORT:
18421 return NB_OK;
18422 case NB_EV_APPLY:
18423 return bgp_neighbor_afi_safi_flag_modify(
18424 args, PEER_FLAG_MED_UNCHANGED,
18425 yang_dnode_get_bool(args->dnode, NULL));
18426
18427 break;
18428 }
18429
18430 return NB_OK;
18431 }
18432
18433 /*
18434 * XPath:
18435 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-send
18436 */
18437 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_modify(
18438 struct nb_cb_modify_args *args)
18439 {
18440 switch (args->event) {
18441 case NB_EV_VALIDATE:
18442 case NB_EV_PREPARE:
18443 case NB_EV_ABORT:
18444 case NB_EV_APPLY:
18445 /* TODO: implement me. */
18446 break;
18447 }
18448
18449 return NB_OK;
18450 }
18451
18452 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_destroy(
18453 struct nb_cb_destroy_args *args)
18454 {
18455 switch (args->event) {
18456 case NB_EV_VALIDATE:
18457 case NB_EV_PREPARE:
18458 case NB_EV_ABORT:
18459 case NB_EV_APPLY:
18460 /* TODO: implement me. */
18461 break;
18462 }
18463
18464 return NB_OK;
18465 }
18466
18467 /*
18468 * XPath:
18469 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-receive
18470 */
18471 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_modify(
18472 struct nb_cb_modify_args *args)
18473 {
18474 switch (args->event) {
18475 case NB_EV_VALIDATE:
18476 case NB_EV_PREPARE:
18477 case NB_EV_ABORT:
18478 case NB_EV_APPLY:
18479 /* TODO: implement me. */
18480 break;
18481 }
18482
18483 return NB_OK;
18484 }
18485
18486 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_destroy(
18487 struct nb_cb_destroy_args *args)
18488 {
18489 switch (args->event) {
18490 case NB_EV_VALIDATE:
18491 case NB_EV_PREPARE:
18492 case NB_EV_ABORT:
18493 case NB_EV_APPLY:
18494 /* TODO: implement me. */
18495 break;
18496 }
18497
18498 return NB_OK;
18499 }
18500
18501 /*
18502 * XPath:
18503 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-both
18504 */
18505 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_modify(
18506 struct nb_cb_modify_args *args)
18507 {
18508 switch (args->event) {
18509 case NB_EV_VALIDATE:
18510 case NB_EV_PREPARE:
18511 case NB_EV_ABORT:
18512 case NB_EV_APPLY:
18513 /* TODO: implement me. */
18514 break;
18515 }
18516
18517 return NB_OK;
18518 }
18519
18520 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_destroy(
18521 struct nb_cb_destroy_args *args)
18522 {
18523 switch (args->event) {
18524 case NB_EV_VALIDATE:
18525 case NB_EV_PREPARE:
18526 case NB_EV_ABORT:
18527 case NB_EV_APPLY:
18528 /* TODO: implement me. */
18529 break;
18530 }
18531
18532 return NB_OK;
18533 }
18534
18535 /*
18536 * XPath:
18537 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list
18538 */
18539 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_create(
18540 struct nb_cb_create_args *args)
18541 {
18542 switch (args->event) {
18543 case NB_EV_VALIDATE:
18544 case NB_EV_PREPARE:
18545 case NB_EV_ABORT:
18546 case NB_EV_APPLY:
18547 /* TODO: implement me. */
18548 break;
18549 }
18550
18551 return NB_OK;
18552 }
18553
18554 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_destroy(
18555 struct nb_cb_destroy_args *args)
18556 {
18557 switch (args->event) {
18558 case NB_EV_VALIDATE:
18559 case NB_EV_PREPARE:
18560 case NB_EV_ABORT:
18561 return NB_OK;
18562 case NB_EV_APPLY:
18563 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
18564 }
18565
18566 return NB_OK;
18567 }
18568
18569 /*
18570 * XPath:
18571 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/max-prefixes
18572 */
18573 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_max_prefixes_modify(
18574 struct nb_cb_modify_args *args)
18575 {
18576 switch (args->event) {
18577 case NB_EV_VALIDATE:
18578 case NB_EV_PREPARE:
18579 case NB_EV_ABORT:
18580 case NB_EV_APPLY:
18581 /* TODO: implement me. */
18582 break;
18583 }
18584
18585 return NB_OK;
18586 }
18587
18588 /*
18589 * XPath:
18590 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/force-check
18591 */
18592 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_force_check_modify(
18593 struct nb_cb_modify_args *args)
18594 {
18595 switch (args->event) {
18596 case NB_EV_VALIDATE:
18597 case NB_EV_PREPARE:
18598 case NB_EV_ABORT:
18599 case NB_EV_APPLY:
18600 /* TODO: implement me. */
18601 break;
18602 }
18603
18604 return NB_OK;
18605 }
18606
18607 /*
18608 * XPath:
18609 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/warning-only
18610 */
18611 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_modify(
18612 struct nb_cb_modify_args *args)
18613 {
18614 switch (args->event) {
18615 case NB_EV_VALIDATE:
18616 case NB_EV_PREPARE:
18617 case NB_EV_ABORT:
18618 case NB_EV_APPLY:
18619 /* TODO: implement me. */
18620 break;
18621 }
18622
18623 return NB_OK;
18624 }
18625
18626 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_destroy(
18627 struct nb_cb_destroy_args *args)
18628 {
18629 switch (args->event) {
18630 case NB_EV_VALIDATE:
18631 case NB_EV_PREPARE:
18632 case NB_EV_ABORT:
18633 case NB_EV_APPLY:
18634 /* TODO: implement me. */
18635 break;
18636 }
18637
18638 return NB_OK;
18639 }
18640
18641 /*
18642 * XPath:
18643 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/restart-timer
18644 */
18645 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_modify(
18646 struct nb_cb_modify_args *args)
18647 {
18648 switch (args->event) {
18649 case NB_EV_VALIDATE:
18650 case NB_EV_PREPARE:
18651 case NB_EV_ABORT:
18652 case NB_EV_APPLY:
18653 /* TODO: implement me. */
18654 break;
18655 }
18656
18657 return NB_OK;
18658 }
18659
18660 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
18661 struct nb_cb_destroy_args *args)
18662 {
18663 switch (args->event) {
18664 case NB_EV_VALIDATE:
18665 case NB_EV_PREPARE:
18666 case NB_EV_ABORT:
18667 case NB_EV_APPLY:
18668 /* TODO: implement me. */
18669 break;
18670 }
18671
18672 return NB_OK;
18673 }
18674
18675 /*
18676 * XPath:
18677 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/shutdown-threshold-pct
18678 */
18679 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
18680 struct nb_cb_modify_args *args)
18681 {
18682 switch (args->event) {
18683 case NB_EV_VALIDATE:
18684 case NB_EV_PREPARE:
18685 case NB_EV_ABORT:
18686 case NB_EV_APPLY:
18687 /* TODO: implement me. */
18688 break;
18689 }
18690
18691 return NB_OK;
18692 }
18693
18694 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
18695 struct nb_cb_destroy_args *args)
18696 {
18697 switch (args->event) {
18698 case NB_EV_VALIDATE:
18699 case NB_EV_PREPARE:
18700 case NB_EV_ABORT:
18701 case NB_EV_APPLY:
18702 /* TODO: implement me. */
18703 break;
18704 }
18705
18706 return NB_OK;
18707 }
18708
18709 /*
18710 * XPath:
18711 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
18712 */
18713 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
18714 struct nb_cb_modify_args *args)
18715 {
18716 switch (args->event) {
18717 case NB_EV_VALIDATE:
18718 case NB_EV_PREPARE:
18719 case NB_EV_ABORT:
18720 case NB_EV_APPLY:
18721 /* TODO: implement me. */
18722 break;
18723 }
18724
18725 return NB_OK;
18726 }
18727
18728 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
18729 struct nb_cb_destroy_args *args)
18730 {
18731 switch (args->event) {
18732 case NB_EV_VALIDATE:
18733 case NB_EV_PREPARE:
18734 case NB_EV_ABORT:
18735 case NB_EV_APPLY:
18736 /* TODO: implement me. */
18737 break;
18738 }
18739
18740 return NB_OK;
18741 }
18742
18743 /*
18744 * XPath:
18745 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tr-restart-timer
18746 */
18747 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
18748 struct nb_cb_modify_args *args)
18749 {
18750 switch (args->event) {
18751 case NB_EV_VALIDATE:
18752 case NB_EV_PREPARE:
18753 case NB_EV_ABORT:
18754 case NB_EV_APPLY:
18755 /* TODO: implement me. */
18756 break;
18757 }
18758
18759 return NB_OK;
18760 }
18761
18762 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
18763 struct nb_cb_destroy_args *args)
18764 {
18765 switch (args->event) {
18766 case NB_EV_VALIDATE:
18767 case NB_EV_PREPARE:
18768 case NB_EV_ABORT:
18769 case NB_EV_APPLY:
18770 /* TODO: implement me. */
18771 break;
18772 }
18773
18774 return NB_OK;
18775 }
18776
18777 /*
18778 * XPath:
18779 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
18780 */
18781 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
18782 struct nb_cb_modify_args *args)
18783 {
18784 switch (args->event) {
18785 case NB_EV_VALIDATE:
18786 case NB_EV_PREPARE:
18787 case NB_EV_ABORT:
18788 case NB_EV_APPLY:
18789 /* TODO: implement me. */
18790 break;
18791 }
18792
18793 return NB_OK;
18794 }
18795
18796 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
18797 struct nb_cb_destroy_args *args)
18798 {
18799 switch (args->event) {
18800 case NB_EV_VALIDATE:
18801 case NB_EV_PREPARE:
18802 case NB_EV_ABORT:
18803 case NB_EV_APPLY:
18804 /* TODO: implement me. */
18805 break;
18806 }
18807
18808 return NB_OK;
18809 }
18810
18811 /*
18812 * XPath:
18813 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tw-warning-only
18814 */
18815 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
18816 struct nb_cb_modify_args *args)
18817 {
18818 switch (args->event) {
18819 case NB_EV_VALIDATE:
18820 case NB_EV_PREPARE:
18821 case NB_EV_ABORT:
18822 case NB_EV_APPLY:
18823 /* TODO: implement me. */
18824 break;
18825 }
18826
18827 return NB_OK;
18828 }
18829
18830 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
18831 struct nb_cb_destroy_args *args)
18832 {
18833 switch (args->event) {
18834 case NB_EV_VALIDATE:
18835 case NB_EV_PREPARE:
18836 case NB_EV_ABORT:
18837 case NB_EV_APPLY:
18838 /* TODO: implement me. */
18839 break;
18840 }
18841
18842 return NB_OK;
18843 }
18844
18845 /*
18846 * XPath:
18847 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/nexthop-self/next-hop-self
18848 */
18849 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_modify(
18850 struct nb_cb_modify_args *args)
18851 {
18852 switch (args->event) {
18853 case NB_EV_VALIDATE:
18854 case NB_EV_PREPARE:
18855 case NB_EV_ABORT:
18856 return NB_OK;
18857 case NB_EV_APPLY:
18858 return bgp_neighbor_afi_safi_flag_modify(
18859 args, PEER_FLAG_NEXTHOP_SELF,
18860 yang_dnode_get_bool(args->dnode, NULL));
18861
18862 break;
18863 }
18864
18865 return NB_OK;
18866 }
18867
18868 /*
18869 * XPath:
18870 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/nexthop-self/next-hop-self-force
18871 */
18872 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_force_modify(
18873 struct nb_cb_modify_args *args)
18874 {
18875 switch (args->event) {
18876 case NB_EV_VALIDATE:
18877 case NB_EV_PREPARE:
18878 case NB_EV_ABORT:
18879 return NB_OK;
18880 case NB_EV_APPLY:
18881 return bgp_neighbor_afi_safi_flag_modify(
18882 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
18883 yang_dnode_get_bool(args->dnode, NULL));
18884
18885 break;
18886 }
18887
18888 return NB_OK;
18889 }
18890
18891 /*
18892 * XPath:
18893 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as-all
18894 */
18895 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_modify(
18896 struct nb_cb_modify_args *args)
18897 {
18898 switch (args->event) {
18899 case NB_EV_VALIDATE:
18900 case NB_EV_PREPARE:
18901 case NB_EV_ABORT:
18902 return NB_OK;
18903 case NB_EV_APPLY:
18904 return bgp_neighbor_afi_safi_flag_modify(
18905 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
18906 yang_dnode_get_bool(args->dnode, NULL));
18907
18908 break;
18909 }
18910
18911 return NB_OK;
18912 }
18913
18914 /*
18915 * XPath:
18916 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as-all-replace
18917 */
18918 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_replace_modify(
18919 struct nb_cb_modify_args *args)
18920 {
18921 switch (args->event) {
18922 case NB_EV_VALIDATE:
18923 case NB_EV_PREPARE:
18924 case NB_EV_ABORT:
18925 return NB_OK;
18926 case NB_EV_APPLY:
18927 return bgp_neighbor_afi_safi_flag_modify(
18928 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
18929 yang_dnode_get_bool(args->dnode, NULL));
18930
18931 break;
18932 }
18933
18934 return NB_OK;
18935 }
18936
18937 /*
18938 * XPath:
18939 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as
18940 */
18941 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_modify(
18942 struct nb_cb_modify_args *args)
18943 {
18944 switch (args->event) {
18945 case NB_EV_VALIDATE:
18946 case NB_EV_PREPARE:
18947 case NB_EV_ABORT:
18948 return NB_OK;
18949 case NB_EV_APPLY:
18950 return bgp_neighbor_afi_safi_flag_modify(
18951 args, PEER_FLAG_REMOVE_PRIVATE_AS,
18952 yang_dnode_get_bool(args->dnode, NULL));
18953
18954 break;
18955 }
18956
18957 return NB_OK;
18958 }
18959
18960 /*
18961 * XPath:
18962 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as-replace
18963 */
18964 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_replace_modify(
18965 struct nb_cb_modify_args *args)
18966 {
18967 switch (args->event) {
18968 case NB_EV_VALIDATE:
18969 case NB_EV_PREPARE:
18970 case NB_EV_ABORT:
18971 return NB_OK;
18972 case NB_EV_APPLY:
18973 return bgp_neighbor_afi_safi_flag_modify(
18974 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
18975 yang_dnode_get_bool(args->dnode, NULL));
18976
18977 break;
18978 }
18979
18980 return NB_OK;
18981 }
18982
18983 /*
18984 * XPath:
18985 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/route-reflector/route-reflector-client
18986 */
18987 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_route_reflector_route_reflector_client_modify(
18988 struct nb_cb_modify_args *args)
18989 {
18990 switch (args->event) {
18991 case NB_EV_VALIDATE:
18992 case NB_EV_PREPARE:
18993 case NB_EV_ABORT:
18994 return NB_OK;
18995 case NB_EV_APPLY:
18996 return bgp_neighbor_afi_safi_flag_modify(
18997 args, PEER_FLAG_REFLECTOR_CLIENT,
18998 yang_dnode_get_bool(args->dnode, NULL));
18999
19000 break;
19001 }
19002
19003 return NB_OK;
19004 }
19005
19006 /*
19007 * XPath:
19008 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/route-server/route-server-client
19009 */
19010 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_route_server_route_server_client_modify(
19011 struct nb_cb_modify_args *args)
19012 {
19013 switch (args->event) {
19014 case NB_EV_VALIDATE:
19015 case NB_EV_PREPARE:
19016 case NB_EV_ABORT:
19017 return NB_OK;
19018 case NB_EV_APPLY:
19019 return bgp_neighbor_afi_safi_flag_modify(
19020 args, PEER_FLAG_RSERVER_CLIENT,
19021 yang_dnode_get_bool(args->dnode, NULL));
19022
19023 break;
19024 }
19025
19026 return NB_OK;
19027 }
19028
19029 /*
19030 * XPath:
19031 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/send-community/send-community
19032 */
19033 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_community_modify(
19034 struct nb_cb_modify_args *args)
19035 {
19036 switch (args->event) {
19037 case NB_EV_VALIDATE:
19038 case NB_EV_PREPARE:
19039 case NB_EV_ABORT:
19040 return NB_OK;
19041 case NB_EV_APPLY:
19042 return bgp_neighbor_afi_safi_flag_modify(
19043 args, PEER_FLAG_SEND_COMMUNITY,
19044 yang_dnode_get_bool(args->dnode, NULL));
19045
19046 break;
19047 }
19048
19049 return NB_OK;
19050 }
19051
19052 /*
19053 * XPath:
19054 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/send-community/send-ext-community
19055 */
19056 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_ext_community_modify(
19057 struct nb_cb_modify_args *args)
19058 {
19059 switch (args->event) {
19060 case NB_EV_VALIDATE:
19061 case NB_EV_PREPARE:
19062 case NB_EV_ABORT:
19063 return NB_OK;
19064 case NB_EV_APPLY:
19065 return bgp_neighbor_afi_safi_flag_modify(
19066 args, PEER_FLAG_SEND_EXT_COMMUNITY,
19067 yang_dnode_get_bool(args->dnode, NULL));
19068
19069 break;
19070 }
19071
19072 return NB_OK;
19073 }
19074
19075 /*
19076 * XPath:
19077 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/send-community/send-large-community
19078 */
19079 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_large_community_modify(
19080 struct nb_cb_modify_args *args)
19081 {
19082 switch (args->event) {
19083 case NB_EV_VALIDATE:
19084 case NB_EV_PREPARE:
19085 case NB_EV_ABORT:
19086 return NB_OK;
19087 case NB_EV_APPLY:
19088 return bgp_neighbor_afi_safi_flag_modify(
19089 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
19090 yang_dnode_get_bool(args->dnode, NULL));
19091
19092 break;
19093 }
19094
19095 return NB_OK;
19096 }
19097
19098 /*
19099 * XPath:
19100 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/soft-reconfiguration
19101 */
19102 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_soft_reconfiguration_modify(
19103 struct nb_cb_modify_args *args)
19104 {
19105 switch (args->event) {
19106 case NB_EV_VALIDATE:
19107 case NB_EV_PREPARE:
19108 case NB_EV_ABORT:
19109 return NB_OK;
19110 case NB_EV_APPLY:
19111 return bgp_neighbor_afi_safi_flag_modify(
19112 args, PEER_FLAG_SOFT_RECONFIG,
19113 yang_dnode_get_bool(args->dnode, NULL));
19114
19115 break;
19116 }
19117
19118 return NB_OK;
19119 }
19120
19121 /*
19122 * XPath:
19123 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/weight/weight-attribute
19124 */
19125 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_modify(
19126 struct nb_cb_modify_args *args)
19127 {
19128 switch (args->event) {
19129 case NB_EV_VALIDATE:
19130 case NB_EV_PREPARE:
19131 case NB_EV_ABORT:
19132 return NB_OK;
19133 case NB_EV_APPLY:
19134 return bgp_neighbor_afi_safi_weight_modify(args);
19135
19136 break;
19137 }
19138
19139 return NB_OK;
19140 }
19141
19142 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_destroy(
19143 struct nb_cb_destroy_args *args)
19144 {
19145 switch (args->event) {
19146 case NB_EV_VALIDATE:
19147 case NB_EV_PREPARE:
19148 case NB_EV_ABORT:
19149 return NB_OK;
19150 case NB_EV_APPLY:
19151 return bgp_neighbor_afi_safi_weight_destroy(args);
19152
19153 break;
19154 }
19155
19156 return NB_OK;
19157 }
19158
19159 /*
19160 * XPath:
19161 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/rmap-import
19162 */
19163 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_modify(
19164 struct nb_cb_modify_args *args)
19165 {
19166 switch (args->event) {
19167 case NB_EV_VALIDATE:
19168 case NB_EV_PREPARE:
19169 case NB_EV_ABORT:
19170 break;
19171 case NB_EV_APPLY:
19172 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
19173 }
19174
19175 return NB_OK;
19176 }
19177
19178 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_destroy(
19179 struct nb_cb_destroy_args *args)
19180 {
19181 switch (args->event) {
19182 case NB_EV_VALIDATE:
19183 case NB_EV_PREPARE:
19184 case NB_EV_ABORT:
19185 break;
19186 case NB_EV_APPLY:
19187 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
19188 }
19189
19190 return NB_OK;
19191 }
19192
19193 /*
19194 * XPath:
19195 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/rmap-export
19196 */
19197 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_modify(
19198 struct nb_cb_modify_args *args)
19199 {
19200 switch (args->event) {
19201 case NB_EV_VALIDATE:
19202 case NB_EV_PREPARE:
19203 case NB_EV_ABORT:
19204 break;
19205 case NB_EV_APPLY:
19206 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
19207 }
19208
19209 return NB_OK;
19210 }
19211
19212 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_destroy(
19213 struct nb_cb_destroy_args *args)
19214 {
19215 switch (args->event) {
19216 case NB_EV_VALIDATE:
19217 case NB_EV_PREPARE:
19218 case NB_EV_ABORT:
19219 break;
19220 case NB_EV_APPLY:
19221 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
19222 }
19223
19224 return NB_OK;
19225 }
19226
19227 /*
19228 * XPath:
19229 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/plist-import
19230 */
19231 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_modify(
19232 struct nb_cb_modify_args *args)
19233 {
19234 switch (args->event) {
19235 case NB_EV_VALIDATE:
19236 case NB_EV_PREPARE:
19237 case NB_EV_ABORT:
19238 break;
19239 case NB_EV_APPLY:
19240 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
19241 }
19242
19243 return NB_OK;
19244 }
19245
19246 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_destroy(
19247 struct nb_cb_destroy_args *args)
19248 {
19249 switch (args->event) {
19250 case NB_EV_VALIDATE:
19251 case NB_EV_PREPARE:
19252 case NB_EV_ABORT:
19253 break;
19254 case NB_EV_APPLY:
19255 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
19256 }
19257
19258 return NB_OK;
19259 }
19260
19261 /*
19262 * XPath:
19263 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/plist-export
19264 */
19265 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_modify(
19266 struct nb_cb_modify_args *args)
19267 {
19268 switch (args->event) {
19269 case NB_EV_VALIDATE:
19270 case NB_EV_PREPARE:
19271 case NB_EV_ABORT:
19272 break;
19273 case NB_EV_APPLY:
19274 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
19275 }
19276
19277 return NB_OK;
19278 }
19279
19280 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_destroy(
19281 struct nb_cb_destroy_args *args)
19282 {
19283 switch (args->event) {
19284 case NB_EV_VALIDATE:
19285 case NB_EV_PREPARE:
19286 case NB_EV_ABORT:
19287 break;
19288 case NB_EV_APPLY:
19289 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
19290 }
19291
19292 return NB_OK;
19293 }
19294
19295 /*
19296 * XPath:
19297 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/access-list-import
19298 */
19299 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_modify(
19300 struct nb_cb_modify_args *args)
19301 {
19302 switch (args->event) {
19303 case NB_EV_VALIDATE:
19304 case NB_EV_PREPARE:
19305 case NB_EV_ABORT:
19306 case NB_EV_APPLY:
19307 /* TODO: implement me. */
19308 break;
19309 }
19310
19311 return NB_OK;
19312 }
19313
19314 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_destroy(
19315 struct nb_cb_destroy_args *args)
19316 {
19317 switch (args->event) {
19318 case NB_EV_VALIDATE:
19319 case NB_EV_PREPARE:
19320 case NB_EV_ABORT:
19321 case NB_EV_APPLY:
19322 /* TODO: implement me. */
19323 break;
19324 }
19325
19326 return NB_OK;
19327 }
19328
19329 /*
19330 * XPath:
19331 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/access-list-export
19332 */
19333 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_modify(
19334 struct nb_cb_modify_args *args)
19335 {
19336 switch (args->event) {
19337 case NB_EV_VALIDATE:
19338 case NB_EV_PREPARE:
19339 case NB_EV_ABORT:
19340 case NB_EV_APPLY:
19341 /* TODO: implement me. */
19342 break;
19343 }
19344
19345 return NB_OK;
19346 }
19347
19348 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_destroy(
19349 struct nb_cb_destroy_args *args)
19350 {
19351 switch (args->event) {
19352 case NB_EV_VALIDATE:
19353 case NB_EV_PREPARE:
19354 case NB_EV_ABORT:
19355 case NB_EV_APPLY:
19356 /* TODO: implement me. */
19357 break;
19358 }
19359
19360 return NB_OK;
19361 }
19362
19363 /*
19364 * XPath:
19365 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/as-path-filter-list-import
19366 */
19367 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_modify(
19368 struct nb_cb_modify_args *args)
19369 {
19370 switch (args->event) {
19371 case NB_EV_VALIDATE:
19372 case NB_EV_PREPARE:
19373 case NB_EV_ABORT:
19374 case NB_EV_APPLY:
19375 /* TODO: implement me. */
19376 break;
19377 }
19378
19379 return NB_OK;
19380 }
19381
19382 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_destroy(
19383 struct nb_cb_destroy_args *args)
19384 {
19385 switch (args->event) {
19386 case NB_EV_VALIDATE:
19387 case NB_EV_PREPARE:
19388 case NB_EV_ABORT:
19389 case NB_EV_APPLY:
19390 /* TODO: implement me. */
19391 break;
19392 }
19393
19394 return NB_OK;
19395 }
19396
19397 /*
19398 * XPath:
19399 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/as-path-filter-list-export
19400 */
19401 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_modify(
19402 struct nb_cb_modify_args *args)
19403 {
19404 switch (args->event) {
19405 case NB_EV_VALIDATE:
19406 case NB_EV_PREPARE:
19407 case NB_EV_ABORT:
19408 case NB_EV_APPLY:
19409 /* TODO: implement me. */
19410 break;
19411 }
19412
19413 return NB_OK;
19414 }
19415
19416 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_destroy(
19417 struct nb_cb_destroy_args *args)
19418 {
19419 switch (args->event) {
19420 case NB_EV_VALIDATE:
19421 case NB_EV_PREPARE:
19422 case NB_EV_ABORT:
19423 case NB_EV_APPLY:
19424 /* TODO: implement me. */
19425 break;
19426 }
19427
19428 return NB_OK;
19429 }
19430
19431 /*
19432 * XPath:
19433 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/unsuppress-map-import
19434 */
19435 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_modify(
19436 struct nb_cb_modify_args *args)
19437 {
19438 switch (args->event) {
19439 case NB_EV_VALIDATE:
19440 case NB_EV_PREPARE:
19441 case NB_EV_ABORT:
19442 case NB_EV_APPLY:
19443 /* TODO: implement me. */
19444 break;
19445 }
19446
19447 return NB_OK;
19448 }
19449
19450 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_destroy(
19451 struct nb_cb_destroy_args *args)
19452 {
19453 switch (args->event) {
19454 case NB_EV_VALIDATE:
19455 case NB_EV_PREPARE:
19456 case NB_EV_ABORT:
19457 case NB_EV_APPLY:
19458 /* TODO: implement me. */
19459 break;
19460 }
19461
19462 return NB_OK;
19463 }
19464
19465 /*
19466 * XPath:
19467 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/unsuppress-map-export
19468 */
19469 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_modify(
19470 struct nb_cb_modify_args *args)
19471 {
19472 switch (args->event) {
19473 case NB_EV_VALIDATE:
19474 case NB_EV_PREPARE:
19475 case NB_EV_ABORT:
19476 case NB_EV_APPLY:
19477 /* TODO: implement me. */
19478 break;
19479 }
19480
19481 return NB_OK;
19482 }
19483
19484 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_destroy(
19485 struct nb_cb_destroy_args *args)
19486 {
19487 switch (args->event) {
19488 case NB_EV_VALIDATE:
19489 case NB_EV_PREPARE:
19490 case NB_EV_ABORT:
19491 case NB_EV_APPLY:
19492 /* TODO: implement me. */
19493 break;
19494 }
19495
19496 return NB_OK;
19497 }
19498
19499 /*
19500 * XPath:
19501 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/add-paths/path-type
19502 */
19503 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_add_paths_path_type_modify(
19504 struct nb_cb_modify_args *args)
19505 {
19506 switch (args->event) {
19507 case NB_EV_VALIDATE:
19508 case NB_EV_PREPARE:
19509 case NB_EV_ABORT:
19510 case NB_EV_APPLY:
19511 /* TODO: implement me. */
19512 break;
19513 }
19514
19515 return NB_OK;
19516 }
19517
19518 /*
19519 * XPath:
19520 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/as-path-options/allow-own-as
19521 */
19522 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_modify(
19523 struct nb_cb_modify_args *args)
19524 {
19525 switch (args->event) {
19526 case NB_EV_VALIDATE:
19527 case NB_EV_PREPARE:
19528 case NB_EV_ABORT:
19529 case NB_EV_APPLY:
19530 /* TODO: implement me. */
19531 break;
19532 }
19533
19534 return NB_OK;
19535 }
19536
19537 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_destroy(
19538 struct nb_cb_destroy_args *args)
19539 {
19540 switch (args->event) {
19541 case NB_EV_VALIDATE:
19542 case NB_EV_PREPARE:
19543 case NB_EV_ABORT:
19544 case NB_EV_APPLY:
19545 /* TODO: implement me. */
19546 break;
19547 }
19548
19549 return NB_OK;
19550 }
19551
19552 /*
19553 * XPath:
19554 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/as-path-options/allow-own-origin-as
19555 */
19556 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_modify(
19557 struct nb_cb_modify_args *args)
19558 {
19559 switch (args->event) {
19560 case NB_EV_VALIDATE:
19561 case NB_EV_PREPARE:
19562 case NB_EV_ABORT:
19563 case NB_EV_APPLY:
19564 /* TODO: implement me. */
19565 break;
19566 }
19567
19568 return NB_OK;
19569 }
19570
19571 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
19572 struct nb_cb_destroy_args *args)
19573 {
19574 switch (args->event) {
19575 case NB_EV_VALIDATE:
19576 case NB_EV_PREPARE:
19577 case NB_EV_ABORT:
19578 case NB_EV_APPLY:
19579 /* TODO: implement me. */
19580 break;
19581 }
19582
19583 return NB_OK;
19584 }
19585
19586 /*
19587 * XPath:
19588 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/as-path-options/replace-peer-as
19589 */
19590 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_replace_peer_as_modify(
19591 struct nb_cb_modify_args *args)
19592 {
19593 switch (args->event) {
19594 case NB_EV_VALIDATE:
19595 case NB_EV_PREPARE:
19596 case NB_EV_ABORT:
19597 return NB_OK;
19598 case NB_EV_APPLY:
19599 return bgp_neighbor_afi_safi_flag_modify(
19600 args, PEER_FLAG_AS_OVERRIDE,
19601 yang_dnode_get_bool(args->dnode, NULL));
19602
19603 break;
19604 }
19605
19606 return NB_OK;
19607 }
19608
19609 /*
19610 * XPath:
19611 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/default-originate/originate
19612 */
19613 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_originate_modify(
19614 struct nb_cb_modify_args *args)
19615 {
19616 switch (args->event) {
19617 case NB_EV_VALIDATE:
19618 case NB_EV_PREPARE:
19619 case NB_EV_ABORT:
19620 case NB_EV_APPLY:
19621 /* TODO: implement me. */
19622 break;
19623 }
19624
19625 return NB_OK;
19626 }
19627
19628 /*
19629 * XPath:
19630 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/default-originate/route-map
19631 */
19632 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_modify(
19633 struct nb_cb_modify_args *args)
19634 {
19635 switch (args->event) {
19636 case NB_EV_VALIDATE:
19637 case NB_EV_PREPARE:
19638 case NB_EV_ABORT:
19639 case NB_EV_APPLY:
19640 /* TODO: implement me. */
19641 break;
19642 }
19643
19644 return NB_OK;
19645 }
19646
19647 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_destroy(
19648 struct nb_cb_destroy_args *args)
19649 {
19650 switch (args->event) {
19651 case NB_EV_VALIDATE:
19652 case NB_EV_PREPARE:
19653 case NB_EV_ABORT:
19654 case NB_EV_APPLY:
19655 /* TODO: implement me. */
19656 break;
19657 }
19658
19659 return NB_OK;
19660 }
19661
19662 /*
19663 * XPath:
19664 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/attr-unchanged/as-path-unchanged
19665 */
19666 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
19667 struct nb_cb_modify_args *args)
19668 {
19669 switch (args->event) {
19670 case NB_EV_VALIDATE:
19671 case NB_EV_PREPARE:
19672 case NB_EV_ABORT:
19673 return NB_OK;
19674 case NB_EV_APPLY:
19675 return bgp_neighbor_afi_safi_flag_modify(
19676 args, PEER_FLAG_AS_PATH_UNCHANGED,
19677 yang_dnode_get_bool(args->dnode, NULL));
19678
19679 break;
19680 }
19681
19682 return NB_OK;
19683 }
19684
19685 /*
19686 * XPath:
19687 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/attr-unchanged/next-hop-unchanged
19688 */
19689 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
19690 struct nb_cb_modify_args *args)
19691 {
19692 switch (args->event) {
19693 case NB_EV_VALIDATE:
19694 case NB_EV_PREPARE:
19695 case NB_EV_ABORT:
19696 return NB_OK;
19697 case NB_EV_APPLY:
19698 return bgp_neighbor_afi_safi_flag_modify(
19699 args, PEER_FLAG_NEXTHOP_UNCHANGED,
19700 yang_dnode_get_bool(args->dnode, NULL));
19701
19702 break;
19703 }
19704
19705 return NB_OK;
19706 }
19707
19708 /*
19709 * XPath:
19710 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/attr-unchanged/med-unchanged
19711 */
19712 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_med_unchanged_modify(
19713 struct nb_cb_modify_args *args)
19714 {
19715 switch (args->event) {
19716 case NB_EV_VALIDATE:
19717 case NB_EV_PREPARE:
19718 case NB_EV_ABORT:
19719 return NB_OK;
19720 case NB_EV_APPLY:
19721 return bgp_neighbor_afi_safi_flag_modify(
19722 args, PEER_FLAG_MED_UNCHANGED,
19723 yang_dnode_get_bool(args->dnode, NULL));
19724
19725 break;
19726 }
19727
19728 return NB_OK;
19729 }
19730
19731 /*
19732 * XPath:
19733 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/orf-capability/orf-send
19734 */
19735 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_modify(
19736 struct nb_cb_modify_args *args)
19737 {
19738 switch (args->event) {
19739 case NB_EV_VALIDATE:
19740 case NB_EV_PREPARE:
19741 case NB_EV_ABORT:
19742 case NB_EV_APPLY:
19743 /* TODO: implement me. */
19744 break;
19745 }
19746
19747 return NB_OK;
19748 }
19749
19750 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_destroy(
19751 struct nb_cb_destroy_args *args)
19752 {
19753 switch (args->event) {
19754 case NB_EV_VALIDATE:
19755 case NB_EV_PREPARE:
19756 case NB_EV_ABORT:
19757 case NB_EV_APPLY:
19758 /* TODO: implement me. */
19759 break;
19760 }
19761
19762 return NB_OK;
19763 }
19764
19765 /*
19766 * XPath:
19767 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/orf-capability/orf-receive
19768 */
19769 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_modify(
19770 struct nb_cb_modify_args *args)
19771 {
19772 switch (args->event) {
19773 case NB_EV_VALIDATE:
19774 case NB_EV_PREPARE:
19775 case NB_EV_ABORT:
19776 case NB_EV_APPLY:
19777 /* TODO: implement me. */
19778 break;
19779 }
19780
19781 return NB_OK;
19782 }
19783
19784 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_destroy(
19785 struct nb_cb_destroy_args *args)
19786 {
19787 switch (args->event) {
19788 case NB_EV_VALIDATE:
19789 case NB_EV_PREPARE:
19790 case NB_EV_ABORT:
19791 case NB_EV_APPLY:
19792 /* TODO: implement me. */
19793 break;
19794 }
19795
19796 return NB_OK;
19797 }
19798
19799 /*
19800 * XPath:
19801 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/orf-capability/orf-both
19802 */
19803 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_modify(
19804 struct nb_cb_modify_args *args)
19805 {
19806 switch (args->event) {
19807 case NB_EV_VALIDATE:
19808 case NB_EV_PREPARE:
19809 case NB_EV_ABORT:
19810 case NB_EV_APPLY:
19811 /* TODO: implement me. */
19812 break;
19813 }
19814
19815 return NB_OK;
19816 }
19817
19818 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_destroy(
19819 struct nb_cb_destroy_args *args)
19820 {
19821 switch (args->event) {
19822 case NB_EV_VALIDATE:
19823 case NB_EV_PREPARE:
19824 case NB_EV_ABORT:
19825 case NB_EV_APPLY:
19826 /* TODO: implement me. */
19827 break;
19828 }
19829
19830 return NB_OK;
19831 }
19832
19833 /*
19834 * XPath:
19835 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list
19836 */
19837 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_create(
19838 struct nb_cb_create_args *args)
19839 {
19840 switch (args->event) {
19841 case NB_EV_VALIDATE:
19842 case NB_EV_PREPARE:
19843 case NB_EV_ABORT:
19844 case NB_EV_APPLY:
19845 /* TODO: implement me. */
19846 break;
19847 }
19848
19849 return NB_OK;
19850 }
19851
19852 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_destroy(
19853 struct nb_cb_destroy_args *args)
19854 {
19855 switch (args->event) {
19856 case NB_EV_VALIDATE:
19857 case NB_EV_PREPARE:
19858 case NB_EV_ABORT:
19859 return NB_OK;
19860 case NB_EV_APPLY:
19861 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
19862 }
19863
19864 return NB_OK;
19865 }
19866
19867 /*
19868 * XPath:
19869 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/max-prefixes
19870 */
19871 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
19872 struct nb_cb_modify_args *args)
19873 {
19874 switch (args->event) {
19875 case NB_EV_VALIDATE:
19876 case NB_EV_PREPARE:
19877 case NB_EV_ABORT:
19878 case NB_EV_APPLY:
19879 /* TODO: implement me. */
19880 break;
19881 }
19882
19883 return NB_OK;
19884 }
19885
19886 /*
19887 * XPath:
19888 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/force-check
19889 */
19890 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_force_check_modify(
19891 struct nb_cb_modify_args *args)
19892 {
19893 switch (args->event) {
19894 case NB_EV_VALIDATE:
19895 case NB_EV_PREPARE:
19896 case NB_EV_ABORT:
19897 case NB_EV_APPLY:
19898 /* TODO: implement me. */
19899 break;
19900 }
19901
19902 return NB_OK;
19903 }
19904
19905 /*
19906 * XPath:
19907 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/warning-only
19908 */
19909 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
19910 struct nb_cb_modify_args *args)
19911 {
19912 switch (args->event) {
19913 case NB_EV_VALIDATE:
19914 case NB_EV_PREPARE:
19915 case NB_EV_ABORT:
19916 case NB_EV_APPLY:
19917 /* TODO: implement me. */
19918 break;
19919 }
19920
19921 return NB_OK;
19922 }
19923
19924 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
19925 struct nb_cb_destroy_args *args)
19926 {
19927 switch (args->event) {
19928 case NB_EV_VALIDATE:
19929 case NB_EV_PREPARE:
19930 case NB_EV_ABORT:
19931 case NB_EV_APPLY:
19932 /* TODO: implement me. */
19933 break;
19934 }
19935
19936 return NB_OK;
19937 }
19938
19939 /*
19940 * XPath:
19941 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/restart-timer
19942 */
19943 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
19944 struct nb_cb_modify_args *args)
19945 {
19946 switch (args->event) {
19947 case NB_EV_VALIDATE:
19948 case NB_EV_PREPARE:
19949 case NB_EV_ABORT:
19950 case NB_EV_APPLY:
19951 /* TODO: implement me. */
19952 break;
19953 }
19954
19955 return NB_OK;
19956 }
19957
19958 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
19959 struct nb_cb_destroy_args *args)
19960 {
19961 switch (args->event) {
19962 case NB_EV_VALIDATE:
19963 case NB_EV_PREPARE:
19964 case NB_EV_ABORT:
19965 case NB_EV_APPLY:
19966 /* TODO: implement me. */
19967 break;
19968 }
19969
19970 return NB_OK;
19971 }
19972
19973 /*
19974 * XPath:
19975 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
19976 */
19977 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
19978 struct nb_cb_modify_args *args)
19979 {
19980 switch (args->event) {
19981 case NB_EV_VALIDATE:
19982 case NB_EV_PREPARE:
19983 case NB_EV_ABORT:
19984 case NB_EV_APPLY:
19985 /* TODO: implement me. */
19986 break;
19987 }
19988
19989 return NB_OK;
19990 }
19991
19992 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
19993 struct nb_cb_destroy_args *args)
19994 {
19995 switch (args->event) {
19996 case NB_EV_VALIDATE:
19997 case NB_EV_PREPARE:
19998 case NB_EV_ABORT:
19999 case NB_EV_APPLY:
20000 /* TODO: implement me. */
20001 break;
20002 }
20003
20004 return NB_OK;
20005 }
20006
20007 /*
20008 * XPath:
20009 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
20010 */
20011 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
20012 struct nb_cb_modify_args *args)
20013 {
20014 switch (args->event) {
20015 case NB_EV_VALIDATE:
20016 case NB_EV_PREPARE:
20017 case NB_EV_ABORT:
20018 case NB_EV_APPLY:
20019 /* TODO: implement me. */
20020 break;
20021 }
20022
20023 return NB_OK;
20024 }
20025
20026 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
20027 struct nb_cb_destroy_args *args)
20028 {
20029 switch (args->event) {
20030 case NB_EV_VALIDATE:
20031 case NB_EV_PREPARE:
20032 case NB_EV_ABORT:
20033 case NB_EV_APPLY:
20034 /* TODO: implement me. */
20035 break;
20036 }
20037
20038 return NB_OK;
20039 }
20040
20041 /*
20042 * XPath:
20043 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tr-restart-timer
20044 */
20045 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
20046 struct nb_cb_modify_args *args)
20047 {
20048 switch (args->event) {
20049 case NB_EV_VALIDATE:
20050 case NB_EV_PREPARE:
20051 case NB_EV_ABORT:
20052 case NB_EV_APPLY:
20053 /* TODO: implement me. */
20054 break;
20055 }
20056
20057 return NB_OK;
20058 }
20059
20060 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
20061 struct nb_cb_destroy_args *args)
20062 {
20063 switch (args->event) {
20064 case NB_EV_VALIDATE:
20065 case NB_EV_PREPARE:
20066 case NB_EV_ABORT:
20067 case NB_EV_APPLY:
20068 /* TODO: implement me. */
20069 break;
20070 }
20071
20072 return NB_OK;
20073 }
20074
20075 /*
20076 * XPath:
20077 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
20078 */
20079 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
20080 struct nb_cb_modify_args *args)
20081 {
20082 switch (args->event) {
20083 case NB_EV_VALIDATE:
20084 case NB_EV_PREPARE:
20085 case NB_EV_ABORT:
20086 case NB_EV_APPLY:
20087 /* TODO: implement me. */
20088 break;
20089 }
20090
20091 return NB_OK;
20092 }
20093
20094 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
20095 struct nb_cb_destroy_args *args)
20096 {
20097 switch (args->event) {
20098 case NB_EV_VALIDATE:
20099 case NB_EV_PREPARE:
20100 case NB_EV_ABORT:
20101 case NB_EV_APPLY:
20102 /* TODO: implement me. */
20103 break;
20104 }
20105
20106 return NB_OK;
20107 }
20108
20109 /*
20110 * XPath:
20111 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tw-warning-only
20112 */
20113 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
20114 struct nb_cb_modify_args *args)
20115 {
20116 switch (args->event) {
20117 case NB_EV_VALIDATE:
20118 case NB_EV_PREPARE:
20119 case NB_EV_ABORT:
20120 case NB_EV_APPLY:
20121 /* TODO: implement me. */
20122 break;
20123 }
20124
20125 return NB_OK;
20126 }
20127
20128 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
20129 struct nb_cb_destroy_args *args)
20130 {
20131 switch (args->event) {
20132 case NB_EV_VALIDATE:
20133 case NB_EV_PREPARE:
20134 case NB_EV_ABORT:
20135 case NB_EV_APPLY:
20136 /* TODO: implement me. */
20137 break;
20138 }
20139
20140 return NB_OK;
20141 }
20142
20143 /*
20144 * XPath:
20145 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/nexthop-self/next-hop-self
20146 */
20147 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_modify(
20148 struct nb_cb_modify_args *args)
20149 {
20150 switch (args->event) {
20151 case NB_EV_VALIDATE:
20152 case NB_EV_PREPARE:
20153 case NB_EV_ABORT:
20154 return NB_OK;
20155 case NB_EV_APPLY:
20156 return bgp_neighbor_afi_safi_flag_modify(
20157 args, PEER_FLAG_NEXTHOP_SELF,
20158 yang_dnode_get_bool(args->dnode, NULL));
20159
20160 break;
20161 }
20162
20163 return NB_OK;
20164 }
20165
20166 /*
20167 * XPath:
20168 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/nexthop-self/next-hop-self-force
20169 */
20170 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_force_modify(
20171 struct nb_cb_modify_args *args)
20172 {
20173 switch (args->event) {
20174 case NB_EV_VALIDATE:
20175 case NB_EV_PREPARE:
20176 case NB_EV_ABORT:
20177 return NB_OK;
20178 case NB_EV_APPLY:
20179 return bgp_neighbor_afi_safi_flag_modify(
20180 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
20181 yang_dnode_get_bool(args->dnode, NULL));
20182
20183 break;
20184 }
20185
20186 return NB_OK;
20187 }
20188
20189 /*
20190 * XPath:
20191 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as-all
20192 */
20193 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_modify(
20194 struct nb_cb_modify_args *args)
20195 {
20196 switch (args->event) {
20197 case NB_EV_VALIDATE:
20198 case NB_EV_PREPARE:
20199 case NB_EV_ABORT:
20200 return NB_OK;
20201 case NB_EV_APPLY:
20202 return bgp_neighbor_afi_safi_flag_modify(
20203 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
20204 yang_dnode_get_bool(args->dnode, NULL));
20205
20206 break;
20207 }
20208
20209 return NB_OK;
20210 }
20211
20212 /*
20213 * XPath:
20214 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as-all-replace
20215 */
20216 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_replace_modify(
20217 struct nb_cb_modify_args *args)
20218 {
20219 switch (args->event) {
20220 case NB_EV_VALIDATE:
20221 case NB_EV_PREPARE:
20222 case NB_EV_ABORT:
20223 return NB_OK;
20224 case NB_EV_APPLY:
20225 return bgp_neighbor_afi_safi_flag_modify(
20226 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
20227 yang_dnode_get_bool(args->dnode, NULL));
20228
20229 break;
20230 }
20231
20232 return NB_OK;
20233 }
20234
20235 /*
20236 * XPath:
20237 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as
20238 */
20239 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_modify(
20240 struct nb_cb_modify_args *args)
20241 {
20242 switch (args->event) {
20243 case NB_EV_VALIDATE:
20244 case NB_EV_PREPARE:
20245 case NB_EV_ABORT:
20246 return NB_OK;
20247 case NB_EV_APPLY:
20248 return bgp_neighbor_afi_safi_flag_modify(
20249 args, PEER_FLAG_REMOVE_PRIVATE_AS,
20250 yang_dnode_get_bool(args->dnode, NULL));
20251
20252 break;
20253 }
20254
20255 return NB_OK;
20256 }
20257
20258 /*
20259 * XPath:
20260 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as-replace
20261 */
20262 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_replace_modify(
20263 struct nb_cb_modify_args *args)
20264 {
20265 switch (args->event) {
20266 case NB_EV_VALIDATE:
20267 case NB_EV_PREPARE:
20268 case NB_EV_ABORT:
20269 return NB_OK;
20270 case NB_EV_APPLY:
20271 return bgp_neighbor_afi_safi_flag_modify(
20272 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
20273 yang_dnode_get_bool(args->dnode, NULL));
20274
20275 break;
20276 }
20277
20278 return NB_OK;
20279 }
20280
20281 /*
20282 * XPath:
20283 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/route-reflector/route-reflector-client
20284 */
20285 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_route_reflector_route_reflector_client_modify(
20286 struct nb_cb_modify_args *args)
20287 {
20288 switch (args->event) {
20289 case NB_EV_VALIDATE:
20290 case NB_EV_PREPARE:
20291 case NB_EV_ABORT:
20292 return NB_OK;
20293 case NB_EV_APPLY:
20294 return bgp_neighbor_afi_safi_flag_modify(
20295 args, PEER_FLAG_REFLECTOR_CLIENT,
20296 yang_dnode_get_bool(args->dnode, NULL));
20297
20298 break;
20299 }
20300
20301 return NB_OK;
20302 }
20303
20304 /*
20305 * XPath:
20306 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/route-server/route-server-client
20307 */
20308 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_route_server_route_server_client_modify(
20309 struct nb_cb_modify_args *args)
20310 {
20311 switch (args->event) {
20312 case NB_EV_VALIDATE:
20313 case NB_EV_PREPARE:
20314 case NB_EV_ABORT:
20315 return NB_OK;
20316 case NB_EV_APPLY:
20317 return bgp_neighbor_afi_safi_flag_modify(
20318 args, PEER_FLAG_RSERVER_CLIENT,
20319 yang_dnode_get_bool(args->dnode, NULL));
20320
20321 break;
20322 }
20323
20324 return NB_OK;
20325 }
20326
20327 /*
20328 * XPath:
20329 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/send-community/send-community
20330 */
20331 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_community_modify(
20332 struct nb_cb_modify_args *args)
20333 {
20334 switch (args->event) {
20335 case NB_EV_VALIDATE:
20336 case NB_EV_PREPARE:
20337 case NB_EV_ABORT:
20338 return NB_OK;
20339 case NB_EV_APPLY:
20340 return bgp_neighbor_afi_safi_flag_modify(
20341 args, PEER_FLAG_SEND_COMMUNITY,
20342 yang_dnode_get_bool(args->dnode, NULL));
20343
20344 break;
20345 }
20346
20347 return NB_OK;
20348 }
20349
20350 /*
20351 * XPath:
20352 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/send-community/send-ext-community
20353 */
20354 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_ext_community_modify(
20355 struct nb_cb_modify_args *args)
20356 {
20357 switch (args->event) {
20358 case NB_EV_VALIDATE:
20359 case NB_EV_PREPARE:
20360 case NB_EV_ABORT:
20361 return NB_OK;
20362 case NB_EV_APPLY:
20363 return bgp_neighbor_afi_safi_flag_modify(
20364 args, PEER_FLAG_SEND_EXT_COMMUNITY,
20365 yang_dnode_get_bool(args->dnode, NULL));
20366
20367 break;
20368 }
20369
20370 return NB_OK;
20371 }
20372
20373 /*
20374 * XPath:
20375 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/send-community/send-large-community
20376 */
20377 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_large_community_modify(
20378 struct nb_cb_modify_args *args)
20379 {
20380 switch (args->event) {
20381 case NB_EV_VALIDATE:
20382 case NB_EV_PREPARE:
20383 case NB_EV_ABORT:
20384 return NB_OK;
20385 case NB_EV_APPLY:
20386 return bgp_neighbor_afi_safi_flag_modify(
20387 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
20388 yang_dnode_get_bool(args->dnode, NULL));
20389
20390 break;
20391 }
20392
20393 return NB_OK;
20394 }
20395
20396 /*
20397 * XPath:
20398 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/soft-reconfiguration
20399 */
20400 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_soft_reconfiguration_modify(
20401 struct nb_cb_modify_args *args)
20402 {
20403 switch (args->event) {
20404 case NB_EV_VALIDATE:
20405 case NB_EV_PREPARE:
20406 case NB_EV_ABORT:
20407 return NB_OK;
20408 case NB_EV_APPLY:
20409 return bgp_neighbor_afi_safi_flag_modify(
20410 args, PEER_FLAG_SOFT_RECONFIG,
20411 yang_dnode_get_bool(args->dnode, NULL));
20412
20413 break;
20414 }
20415
20416 return NB_OK;
20417 }
20418
20419 /*
20420 * XPath:
20421 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/weight/weight-attribute
20422 */
20423 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_modify(
20424 struct nb_cb_modify_args *args)
20425 {
20426 switch (args->event) {
20427 case NB_EV_VALIDATE:
20428 case NB_EV_PREPARE:
20429 case NB_EV_ABORT:
20430 return NB_OK;
20431 case NB_EV_APPLY:
20432 return bgp_neighbor_afi_safi_weight_modify(args);
20433
20434 break;
20435 }
20436
20437 return NB_OK;
20438 }
20439
20440 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_destroy(
20441 struct nb_cb_destroy_args *args)
20442 {
20443 switch (args->event) {
20444 case NB_EV_VALIDATE:
20445 case NB_EV_PREPARE:
20446 case NB_EV_ABORT:
20447 return NB_OK;
20448 case NB_EV_APPLY:
20449 return bgp_neighbor_afi_safi_weight_destroy(args);
20450
20451 break;
20452 }
20453
20454 return NB_OK;
20455 }
20456
20457 /*
20458 * XPath:
20459 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/rmap-import
20460 */
20461 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_modify(
20462 struct nb_cb_modify_args *args)
20463 {
20464 switch (args->event) {
20465 case NB_EV_VALIDATE:
20466 case NB_EV_PREPARE:
20467 case NB_EV_ABORT:
20468 break;
20469 case NB_EV_APPLY:
20470 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
20471 }
20472
20473 return NB_OK;
20474 }
20475
20476 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_destroy(
20477 struct nb_cb_destroy_args *args)
20478 {
20479 switch (args->event) {
20480 case NB_EV_VALIDATE:
20481 case NB_EV_PREPARE:
20482 case NB_EV_ABORT:
20483 break;
20484 case NB_EV_APPLY:
20485 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
20486 }
20487
20488 return NB_OK;
20489 }
20490
20491 /*
20492 * XPath:
20493 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/rmap-export
20494 */
20495 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_modify(
20496 struct nb_cb_modify_args *args)
20497 {
20498 switch (args->event) {
20499 case NB_EV_VALIDATE:
20500 case NB_EV_PREPARE:
20501 case NB_EV_ABORT:
20502 break;
20503 case NB_EV_APPLY:
20504 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
20505 }
20506
20507 return NB_OK;
20508 }
20509
20510 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_destroy(
20511 struct nb_cb_destroy_args *args)
20512 {
20513 switch (args->event) {
20514 case NB_EV_VALIDATE:
20515 case NB_EV_PREPARE:
20516 case NB_EV_ABORT:
20517 break;
20518 case NB_EV_APPLY:
20519 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
20520 }
20521
20522 return NB_OK;
20523 }
20524
20525 /*
20526 * XPath:
20527 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/plist-import
20528 */
20529 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_modify(
20530 struct nb_cb_modify_args *args)
20531 {
20532 switch (args->event) {
20533 case NB_EV_VALIDATE:
20534 case NB_EV_PREPARE:
20535 case NB_EV_ABORT:
20536 break;
20537 case NB_EV_APPLY:
20538 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
20539 }
20540
20541 return NB_OK;
20542 }
20543
20544 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_destroy(
20545 struct nb_cb_destroy_args *args)
20546 {
20547 switch (args->event) {
20548 case NB_EV_VALIDATE:
20549 case NB_EV_PREPARE:
20550 case NB_EV_ABORT:
20551 break;
20552 case NB_EV_APPLY:
20553 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
20554 }
20555
20556 return NB_OK;
20557 }
20558
20559 /*
20560 * XPath:
20561 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/plist-export
20562 */
20563 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_modify(
20564 struct nb_cb_modify_args *args)
20565 {
20566 switch (args->event) {
20567 case NB_EV_VALIDATE:
20568 case NB_EV_PREPARE:
20569 case NB_EV_ABORT:
20570 break;
20571 case NB_EV_APPLY:
20572 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
20573 }
20574
20575 return NB_OK;
20576 }
20577
20578 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_destroy(
20579 struct nb_cb_destroy_args *args)
20580 {
20581 switch (args->event) {
20582 case NB_EV_VALIDATE:
20583 case NB_EV_PREPARE:
20584 case NB_EV_ABORT:
20585 break;
20586 case NB_EV_APPLY:
20587 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
20588 }
20589
20590 return NB_OK;
20591 }
20592
20593 /*
20594 * XPath:
20595 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/access-list-import
20596 */
20597 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_modify(
20598 struct nb_cb_modify_args *args)
20599 {
20600 switch (args->event) {
20601 case NB_EV_VALIDATE:
20602 case NB_EV_PREPARE:
20603 case NB_EV_ABORT:
20604 case NB_EV_APPLY:
20605 /* TODO: implement me. */
20606 break;
20607 }
20608
20609 return NB_OK;
20610 }
20611
20612 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_destroy(
20613 struct nb_cb_destroy_args *args)
20614 {
20615 switch (args->event) {
20616 case NB_EV_VALIDATE:
20617 case NB_EV_PREPARE:
20618 case NB_EV_ABORT:
20619 case NB_EV_APPLY:
20620 /* TODO: implement me. */
20621 break;
20622 }
20623
20624 return NB_OK;
20625 }
20626
20627 /*
20628 * XPath:
20629 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/access-list-export
20630 */
20631 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_modify(
20632 struct nb_cb_modify_args *args)
20633 {
20634 switch (args->event) {
20635 case NB_EV_VALIDATE:
20636 case NB_EV_PREPARE:
20637 case NB_EV_ABORT:
20638 case NB_EV_APPLY:
20639 /* TODO: implement me. */
20640 break;
20641 }
20642
20643 return NB_OK;
20644 }
20645
20646 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_destroy(
20647 struct nb_cb_destroy_args *args)
20648 {
20649 switch (args->event) {
20650 case NB_EV_VALIDATE:
20651 case NB_EV_PREPARE:
20652 case NB_EV_ABORT:
20653 case NB_EV_APPLY:
20654 /* TODO: implement me. */
20655 break;
20656 }
20657
20658 return NB_OK;
20659 }
20660
20661 /*
20662 * XPath:
20663 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/as-path-filter-list-import
20664 */
20665 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_modify(
20666 struct nb_cb_modify_args *args)
20667 {
20668 switch (args->event) {
20669 case NB_EV_VALIDATE:
20670 case NB_EV_PREPARE:
20671 case NB_EV_ABORT:
20672 case NB_EV_APPLY:
20673 /* TODO: implement me. */
20674 break;
20675 }
20676
20677 return NB_OK;
20678 }
20679
20680 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_destroy(
20681 struct nb_cb_destroy_args *args)
20682 {
20683 switch (args->event) {
20684 case NB_EV_VALIDATE:
20685 case NB_EV_PREPARE:
20686 case NB_EV_ABORT:
20687 case NB_EV_APPLY:
20688 /* TODO: implement me. */
20689 break;
20690 }
20691
20692 return NB_OK;
20693 }
20694
20695 /*
20696 * XPath:
20697 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/as-path-filter-list-export
20698 */
20699 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_modify(
20700 struct nb_cb_modify_args *args)
20701 {
20702 switch (args->event) {
20703 case NB_EV_VALIDATE:
20704 case NB_EV_PREPARE:
20705 case NB_EV_ABORT:
20706 case NB_EV_APPLY:
20707 /* TODO: implement me. */
20708 break;
20709 }
20710
20711 return NB_OK;
20712 }
20713
20714 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_destroy(
20715 struct nb_cb_destroy_args *args)
20716 {
20717 switch (args->event) {
20718 case NB_EV_VALIDATE:
20719 case NB_EV_PREPARE:
20720 case NB_EV_ABORT:
20721 case NB_EV_APPLY:
20722 /* TODO: implement me. */
20723 break;
20724 }
20725
20726 return NB_OK;
20727 }
20728
20729 /*
20730 * XPath:
20731 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/unsuppress-map-import
20732 */
20733 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_modify(
20734 struct nb_cb_modify_args *args)
20735 {
20736 switch (args->event) {
20737 case NB_EV_VALIDATE:
20738 case NB_EV_PREPARE:
20739 case NB_EV_ABORT:
20740 case NB_EV_APPLY:
20741 /* TODO: implement me. */
20742 break;
20743 }
20744
20745 return NB_OK;
20746 }
20747
20748 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_destroy(
20749 struct nb_cb_destroy_args *args)
20750 {
20751 switch (args->event) {
20752 case NB_EV_VALIDATE:
20753 case NB_EV_PREPARE:
20754 case NB_EV_ABORT:
20755 case NB_EV_APPLY:
20756 /* TODO: implement me. */
20757 break;
20758 }
20759
20760 return NB_OK;
20761 }
20762
20763 /*
20764 * XPath:
20765 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/unsuppress-map-export
20766 */
20767 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_modify(
20768 struct nb_cb_modify_args *args)
20769 {
20770 switch (args->event) {
20771 case NB_EV_VALIDATE:
20772 case NB_EV_PREPARE:
20773 case NB_EV_ABORT:
20774 case NB_EV_APPLY:
20775 /* TODO: implement me. */
20776 break;
20777 }
20778
20779 return NB_OK;
20780 }
20781
20782 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_destroy(
20783 struct nb_cb_destroy_args *args)
20784 {
20785 switch (args->event) {
20786 case NB_EV_VALIDATE:
20787 case NB_EV_PREPARE:
20788 case NB_EV_ABORT:
20789 case NB_EV_APPLY:
20790 /* TODO: implement me. */
20791 break;
20792 }
20793
20794 return NB_OK;
20795 }
20796
20797 /*
20798 * XPath:
20799 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/add-paths/path-type
20800 */
20801 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_add_paths_path_type_modify(
20802 struct nb_cb_modify_args *args)
20803 {
20804 switch (args->event) {
20805 case NB_EV_VALIDATE:
20806 case NB_EV_PREPARE:
20807 case NB_EV_ABORT:
20808 case NB_EV_APPLY:
20809 /* TODO: implement me. */
20810 break;
20811 }
20812
20813 return NB_OK;
20814 }
20815
20816 /*
20817 * XPath:
20818 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/as-path-options/allow-own-as
20819 */
20820 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_modify(
20821 struct nb_cb_modify_args *args)
20822 {
20823 switch (args->event) {
20824 case NB_EV_VALIDATE:
20825 case NB_EV_PREPARE:
20826 case NB_EV_ABORT:
20827 case NB_EV_APPLY:
20828 /* TODO: implement me. */
20829 break;
20830 }
20831
20832 return NB_OK;
20833 }
20834
20835 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_destroy(
20836 struct nb_cb_destroy_args *args)
20837 {
20838 switch (args->event) {
20839 case NB_EV_VALIDATE:
20840 case NB_EV_PREPARE:
20841 case NB_EV_ABORT:
20842 case NB_EV_APPLY:
20843 /* TODO: implement me. */
20844 break;
20845 }
20846
20847 return NB_OK;
20848 }
20849
20850 /*
20851 * XPath:
20852 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/as-path-options/allow-own-origin-as
20853 */
20854 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_modify(
20855 struct nb_cb_modify_args *args)
20856 {
20857 switch (args->event) {
20858 case NB_EV_VALIDATE:
20859 case NB_EV_PREPARE:
20860 case NB_EV_ABORT:
20861 case NB_EV_APPLY:
20862 /* TODO: implement me. */
20863 break;
20864 }
20865
20866 return NB_OK;
20867 }
20868
20869 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
20870 struct nb_cb_destroy_args *args)
20871 {
20872 switch (args->event) {
20873 case NB_EV_VALIDATE:
20874 case NB_EV_PREPARE:
20875 case NB_EV_ABORT:
20876 case NB_EV_APPLY:
20877 /* TODO: implement me. */
20878 break;
20879 }
20880
20881 return NB_OK;
20882 }
20883
20884 /*
20885 * XPath:
20886 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/as-path-options/replace-peer-as
20887 */
20888 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_replace_peer_as_modify(
20889 struct nb_cb_modify_args *args)
20890 {
20891 switch (args->event) {
20892 case NB_EV_VALIDATE:
20893 case NB_EV_PREPARE:
20894 case NB_EV_ABORT:
20895 return NB_OK;
20896 case NB_EV_APPLY:
20897 return bgp_neighbor_afi_safi_flag_modify(
20898 args, PEER_FLAG_AS_OVERRIDE,
20899 yang_dnode_get_bool(args->dnode, NULL));
20900
20901 break;
20902 }
20903
20904 return NB_OK;
20905 }
20906
20907 /*
20908 * XPath:
20909 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/default-originate/originate
20910 */
20911 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_originate_modify(
20912 struct nb_cb_modify_args *args)
20913 {
20914 switch (args->event) {
20915 case NB_EV_VALIDATE:
20916 case NB_EV_PREPARE:
20917 case NB_EV_ABORT:
20918 case NB_EV_APPLY:
20919 /* TODO: implement me. */
20920 break;
20921 }
20922
20923 return NB_OK;
20924 }
20925
20926 /*
20927 * XPath:
20928 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/default-originate/route-map
20929 */
20930 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_modify(
20931 struct nb_cb_modify_args *args)
20932 {
20933 switch (args->event) {
20934 case NB_EV_VALIDATE:
20935 case NB_EV_PREPARE:
20936 case NB_EV_ABORT:
20937 case NB_EV_APPLY:
20938 /* TODO: implement me. */
20939 break;
20940 }
20941
20942 return NB_OK;
20943 }
20944
20945 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_destroy(
20946 struct nb_cb_destroy_args *args)
20947 {
20948 switch (args->event) {
20949 case NB_EV_VALIDATE:
20950 case NB_EV_PREPARE:
20951 case NB_EV_ABORT:
20952 case NB_EV_APPLY:
20953 /* TODO: implement me. */
20954 break;
20955 }
20956
20957 return NB_OK;
20958 }
20959
20960 /*
20961 * XPath:
20962 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/attr-unchanged/as-path-unchanged
20963 */
20964 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
20965 struct nb_cb_modify_args *args)
20966 {
20967 switch (args->event) {
20968 case NB_EV_VALIDATE:
20969 case NB_EV_PREPARE:
20970 case NB_EV_ABORT:
20971 return NB_OK;
20972 case NB_EV_APPLY:
20973 return bgp_neighbor_afi_safi_flag_modify(
20974 args, PEER_FLAG_AS_PATH_UNCHANGED,
20975 yang_dnode_get_bool(args->dnode, NULL));
20976
20977 break;
20978 }
20979
20980 return NB_OK;
20981 }
20982
20983 /*
20984 * XPath:
20985 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/attr-unchanged/next-hop-unchanged
20986 */
20987 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
20988 struct nb_cb_modify_args *args)
20989 {
20990 switch (args->event) {
20991 case NB_EV_VALIDATE:
20992 case NB_EV_PREPARE:
20993 case NB_EV_ABORT:
20994 return NB_OK;
20995 case NB_EV_APPLY:
20996 return bgp_neighbor_afi_safi_flag_modify(
20997 args, PEER_FLAG_NEXTHOP_UNCHANGED,
20998 yang_dnode_get_bool(args->dnode, NULL));
20999
21000 break;
21001 }
21002
21003 return NB_OK;
21004 }
21005
21006 /*
21007 * XPath:
21008 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/attr-unchanged/med-unchanged
21009 */
21010 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_med_unchanged_modify(
21011 struct nb_cb_modify_args *args)
21012 {
21013 switch (args->event) {
21014 case NB_EV_VALIDATE:
21015 case NB_EV_PREPARE:
21016 case NB_EV_ABORT:
21017 return NB_OK;
21018 case NB_EV_APPLY:
21019 return bgp_neighbor_afi_safi_flag_modify(
21020 args, PEER_FLAG_MED_UNCHANGED,
21021 yang_dnode_get_bool(args->dnode, NULL));
21022
21023 break;
21024 }
21025
21026 return NB_OK;
21027 }
21028
21029 /*
21030 * XPath:
21031 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/orf-capability/orf-send
21032 */
21033 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_modify(
21034 struct nb_cb_modify_args *args)
21035 {
21036 switch (args->event) {
21037 case NB_EV_VALIDATE:
21038 case NB_EV_PREPARE:
21039 case NB_EV_ABORT:
21040 case NB_EV_APPLY:
21041 /* TODO: implement me. */
21042 break;
21043 }
21044
21045 return NB_OK;
21046 }
21047
21048 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_destroy(
21049 struct nb_cb_destroy_args *args)
21050 {
21051 switch (args->event) {
21052 case NB_EV_VALIDATE:
21053 case NB_EV_PREPARE:
21054 case NB_EV_ABORT:
21055 case NB_EV_APPLY:
21056 /* TODO: implement me. */
21057 break;
21058 }
21059
21060 return NB_OK;
21061 }
21062
21063 /*
21064 * XPath:
21065 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/orf-capability/orf-receive
21066 */
21067 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_modify(
21068 struct nb_cb_modify_args *args)
21069 {
21070 switch (args->event) {
21071 case NB_EV_VALIDATE:
21072 case NB_EV_PREPARE:
21073 case NB_EV_ABORT:
21074 case NB_EV_APPLY:
21075 /* TODO: implement me. */
21076 break;
21077 }
21078
21079 return NB_OK;
21080 }
21081
21082 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_destroy(
21083 struct nb_cb_destroy_args *args)
21084 {
21085 switch (args->event) {
21086 case NB_EV_VALIDATE:
21087 case NB_EV_PREPARE:
21088 case NB_EV_ABORT:
21089 case NB_EV_APPLY:
21090 /* TODO: implement me. */
21091 break;
21092 }
21093
21094 return NB_OK;
21095 }
21096
21097 /*
21098 * XPath:
21099 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/orf-capability/orf-both
21100 */
21101 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_modify(
21102 struct nb_cb_modify_args *args)
21103 {
21104 switch (args->event) {
21105 case NB_EV_VALIDATE:
21106 case NB_EV_PREPARE:
21107 case NB_EV_ABORT:
21108 case NB_EV_APPLY:
21109 /* TODO: implement me. */
21110 break;
21111 }
21112
21113 return NB_OK;
21114 }
21115
21116 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_destroy(
21117 struct nb_cb_destroy_args *args)
21118 {
21119 switch (args->event) {
21120 case NB_EV_VALIDATE:
21121 case NB_EV_PREPARE:
21122 case NB_EV_ABORT:
21123 case NB_EV_APPLY:
21124 /* TODO: implement me. */
21125 break;
21126 }
21127
21128 return NB_OK;
21129 }
21130
21131 /*
21132 * XPath:
21133 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list
21134 */
21135 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_create(
21136 struct nb_cb_create_args *args)
21137 {
21138 switch (args->event) {
21139 case NB_EV_VALIDATE:
21140 case NB_EV_PREPARE:
21141 case NB_EV_ABORT:
21142 case NB_EV_APPLY:
21143 /* TODO: implement me. */
21144 break;
21145 }
21146
21147 return NB_OK;
21148 }
21149
21150 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_destroy(
21151 struct nb_cb_destroy_args *args)
21152 {
21153 switch (args->event) {
21154 case NB_EV_VALIDATE:
21155 case NB_EV_PREPARE:
21156 case NB_EV_ABORT:
21157 return NB_OK;
21158 case NB_EV_APPLY:
21159 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
21160 }
21161
21162 return NB_OK;
21163 }
21164
21165 /*
21166 * XPath:
21167 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/max-prefixes
21168 */
21169 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
21170 struct nb_cb_modify_args *args)
21171 {
21172 switch (args->event) {
21173 case NB_EV_VALIDATE:
21174 case NB_EV_PREPARE:
21175 case NB_EV_ABORT:
21176 case NB_EV_APPLY:
21177 /* TODO: implement me. */
21178 break;
21179 }
21180
21181 return NB_OK;
21182 }
21183
21184 /*
21185 * XPath:
21186 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/force-check
21187 */
21188 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_force_check_modify(
21189 struct nb_cb_modify_args *args)
21190 {
21191 switch (args->event) {
21192 case NB_EV_VALIDATE:
21193 case NB_EV_PREPARE:
21194 case NB_EV_ABORT:
21195 case NB_EV_APPLY:
21196 /* TODO: implement me. */
21197 break;
21198 }
21199
21200 return NB_OK;
21201 }
21202
21203 /*
21204 * XPath:
21205 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/warning-only
21206 */
21207 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
21208 struct nb_cb_modify_args *args)
21209 {
21210 switch (args->event) {
21211 case NB_EV_VALIDATE:
21212 case NB_EV_PREPARE:
21213 case NB_EV_ABORT:
21214 case NB_EV_APPLY:
21215 /* TODO: implement me. */
21216 break;
21217 }
21218
21219 return NB_OK;
21220 }
21221
21222 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
21223 struct nb_cb_destroy_args *args)
21224 {
21225 switch (args->event) {
21226 case NB_EV_VALIDATE:
21227 case NB_EV_PREPARE:
21228 case NB_EV_ABORT:
21229 case NB_EV_APPLY:
21230 /* TODO: implement me. */
21231 break;
21232 }
21233
21234 return NB_OK;
21235 }
21236
21237 /*
21238 * XPath:
21239 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/restart-timer
21240 */
21241 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
21242 struct nb_cb_modify_args *args)
21243 {
21244 switch (args->event) {
21245 case NB_EV_VALIDATE:
21246 case NB_EV_PREPARE:
21247 case NB_EV_ABORT:
21248 case NB_EV_APPLY:
21249 /* TODO: implement me. */
21250 break;
21251 }
21252
21253 return NB_OK;
21254 }
21255
21256 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
21257 struct nb_cb_destroy_args *args)
21258 {
21259 switch (args->event) {
21260 case NB_EV_VALIDATE:
21261 case NB_EV_PREPARE:
21262 case NB_EV_ABORT:
21263 case NB_EV_APPLY:
21264 /* TODO: implement me. */
21265 break;
21266 }
21267
21268 return NB_OK;
21269 }
21270
21271 /*
21272 * XPath:
21273 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
21274 */
21275 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
21276 struct nb_cb_modify_args *args)
21277 {
21278 switch (args->event) {
21279 case NB_EV_VALIDATE:
21280 case NB_EV_PREPARE:
21281 case NB_EV_ABORT:
21282 case NB_EV_APPLY:
21283 /* TODO: implement me. */
21284 break;
21285 }
21286
21287 return NB_OK;
21288 }
21289
21290 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
21291 struct nb_cb_destroy_args *args)
21292 {
21293 switch (args->event) {
21294 case NB_EV_VALIDATE:
21295 case NB_EV_PREPARE:
21296 case NB_EV_ABORT:
21297 case NB_EV_APPLY:
21298 /* TODO: implement me. */
21299 break;
21300 }
21301
21302 return NB_OK;
21303 }
21304
21305 /*
21306 * XPath:
21307 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
21308 */
21309 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
21310 struct nb_cb_modify_args *args)
21311 {
21312 switch (args->event) {
21313 case NB_EV_VALIDATE:
21314 case NB_EV_PREPARE:
21315 case NB_EV_ABORT:
21316 case NB_EV_APPLY:
21317 /* TODO: implement me. */
21318 break;
21319 }
21320
21321 return NB_OK;
21322 }
21323
21324 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
21325 struct nb_cb_destroy_args *args)
21326 {
21327 switch (args->event) {
21328 case NB_EV_VALIDATE:
21329 case NB_EV_PREPARE:
21330 case NB_EV_ABORT:
21331 case NB_EV_APPLY:
21332 /* TODO: implement me. */
21333 break;
21334 }
21335
21336 return NB_OK;
21337 }
21338
21339 /*
21340 * XPath:
21341 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tr-restart-timer
21342 */
21343 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
21344 struct nb_cb_modify_args *args)
21345 {
21346 switch (args->event) {
21347 case NB_EV_VALIDATE:
21348 case NB_EV_PREPARE:
21349 case NB_EV_ABORT:
21350 case NB_EV_APPLY:
21351 /* TODO: implement me. */
21352 break;
21353 }
21354
21355 return NB_OK;
21356 }
21357
21358 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
21359 struct nb_cb_destroy_args *args)
21360 {
21361 switch (args->event) {
21362 case NB_EV_VALIDATE:
21363 case NB_EV_PREPARE:
21364 case NB_EV_ABORT:
21365 case NB_EV_APPLY:
21366 /* TODO: implement me. */
21367 break;
21368 }
21369
21370 return NB_OK;
21371 }
21372
21373 /*
21374 * XPath:
21375 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
21376 */
21377 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
21378 struct nb_cb_modify_args *args)
21379 {
21380 switch (args->event) {
21381 case NB_EV_VALIDATE:
21382 case NB_EV_PREPARE:
21383 case NB_EV_ABORT:
21384 case NB_EV_APPLY:
21385 /* TODO: implement me. */
21386 break;
21387 }
21388
21389 return NB_OK;
21390 }
21391
21392 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
21393 struct nb_cb_destroy_args *args)
21394 {
21395 switch (args->event) {
21396 case NB_EV_VALIDATE:
21397 case NB_EV_PREPARE:
21398 case NB_EV_ABORT:
21399 case NB_EV_APPLY:
21400 /* TODO: implement me. */
21401 break;
21402 }
21403
21404 return NB_OK;
21405 }
21406
21407 /*
21408 * XPath:
21409 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tw-warning-only
21410 */
21411 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
21412 struct nb_cb_modify_args *args)
21413 {
21414 switch (args->event) {
21415 case NB_EV_VALIDATE:
21416 case NB_EV_PREPARE:
21417 case NB_EV_ABORT:
21418 case NB_EV_APPLY:
21419 /* TODO: implement me. */
21420 break;
21421 }
21422
21423 return NB_OK;
21424 }
21425
21426 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
21427 struct nb_cb_destroy_args *args)
21428 {
21429 switch (args->event) {
21430 case NB_EV_VALIDATE:
21431 case NB_EV_PREPARE:
21432 case NB_EV_ABORT:
21433 case NB_EV_APPLY:
21434 /* TODO: implement me. */
21435 break;
21436 }
21437
21438 return NB_OK;
21439 }
21440
21441 /*
21442 * XPath:
21443 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/nexthop-self/next-hop-self
21444 */
21445 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_modify(
21446 struct nb_cb_modify_args *args)
21447 {
21448 switch (args->event) {
21449 case NB_EV_VALIDATE:
21450 case NB_EV_PREPARE:
21451 case NB_EV_ABORT:
21452 return NB_OK;
21453 case NB_EV_APPLY:
21454 return bgp_neighbor_afi_safi_flag_modify(
21455 args, PEER_FLAG_NEXTHOP_SELF,
21456 yang_dnode_get_bool(args->dnode, NULL));
21457
21458 break;
21459 }
21460
21461 return NB_OK;
21462 }
21463
21464 /*
21465 * XPath:
21466 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/nexthop-self/next-hop-self-force
21467 */
21468 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_force_modify(
21469 struct nb_cb_modify_args *args)
21470 {
21471 switch (args->event) {
21472 case NB_EV_VALIDATE:
21473 case NB_EV_PREPARE:
21474 case NB_EV_ABORT:
21475 return NB_OK;
21476 case NB_EV_APPLY:
21477 return bgp_neighbor_afi_safi_flag_modify(
21478 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
21479 yang_dnode_get_bool(args->dnode, NULL));
21480
21481 break;
21482 }
21483
21484 return NB_OK;
21485 }
21486
21487 /*
21488 * XPath:
21489 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as-all
21490 */
21491 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_modify(
21492 struct nb_cb_modify_args *args)
21493 {
21494 switch (args->event) {
21495 case NB_EV_VALIDATE:
21496 case NB_EV_PREPARE:
21497 case NB_EV_ABORT:
21498 return NB_OK;
21499 case NB_EV_APPLY:
21500 return bgp_neighbor_afi_safi_flag_modify(
21501 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
21502 yang_dnode_get_bool(args->dnode, NULL));
21503
21504 break;
21505 }
21506
21507 return NB_OK;
21508 }
21509
21510 /*
21511 * XPath:
21512 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as-all-replace
21513 */
21514 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_replace_modify(
21515 struct nb_cb_modify_args *args)
21516 {
21517 switch (args->event) {
21518 case NB_EV_VALIDATE:
21519 case NB_EV_PREPARE:
21520 case NB_EV_ABORT:
21521 return NB_OK;
21522 case NB_EV_APPLY:
21523 return bgp_neighbor_afi_safi_flag_modify(
21524 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
21525 yang_dnode_get_bool(args->dnode, NULL));
21526
21527 break;
21528 }
21529
21530 return NB_OK;
21531 }
21532
21533 /*
21534 * XPath:
21535 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as
21536 */
21537 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_modify(
21538 struct nb_cb_modify_args *args)
21539 {
21540 switch (args->event) {
21541 case NB_EV_VALIDATE:
21542 case NB_EV_PREPARE:
21543 case NB_EV_ABORT:
21544 return NB_OK;
21545 case NB_EV_APPLY:
21546 return bgp_neighbor_afi_safi_flag_modify(
21547 args, PEER_FLAG_REMOVE_PRIVATE_AS,
21548 yang_dnode_get_bool(args->dnode, NULL));
21549
21550 break;
21551 }
21552
21553 return NB_OK;
21554 }
21555
21556 /*
21557 * XPath:
21558 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as-replace
21559 */
21560 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_replace_modify(
21561 struct nb_cb_modify_args *args)
21562 {
21563 switch (args->event) {
21564 case NB_EV_VALIDATE:
21565 case NB_EV_PREPARE:
21566 case NB_EV_ABORT:
21567 return NB_OK;
21568 case NB_EV_APPLY:
21569 return bgp_neighbor_afi_safi_flag_modify(
21570 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
21571 yang_dnode_get_bool(args->dnode, NULL));
21572
21573 break;
21574 }
21575
21576 return NB_OK;
21577 }
21578
21579 /*
21580 * XPath:
21581 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/route-reflector/route-reflector-client
21582 */
21583 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_route_reflector_route_reflector_client_modify(
21584 struct nb_cb_modify_args *args)
21585 {
21586 switch (args->event) {
21587 case NB_EV_VALIDATE:
21588 case NB_EV_PREPARE:
21589 case NB_EV_ABORT:
21590 return NB_OK;
21591 case NB_EV_APPLY:
21592 return bgp_neighbor_afi_safi_flag_modify(
21593 args, PEER_FLAG_REFLECTOR_CLIENT,
21594 yang_dnode_get_bool(args->dnode, NULL));
21595
21596 break;
21597 }
21598
21599 return NB_OK;
21600 }
21601
21602 /*
21603 * XPath:
21604 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/route-server/route-server-client
21605 */
21606 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_route_server_route_server_client_modify(
21607 struct nb_cb_modify_args *args)
21608 {
21609 switch (args->event) {
21610 case NB_EV_VALIDATE:
21611 case NB_EV_PREPARE:
21612 case NB_EV_ABORT:
21613 return NB_OK;
21614 case NB_EV_APPLY:
21615 return bgp_neighbor_afi_safi_flag_modify(
21616 args, PEER_FLAG_RSERVER_CLIENT,
21617 yang_dnode_get_bool(args->dnode, NULL));
21618
21619 break;
21620 }
21621
21622 return NB_OK;
21623 }
21624
21625 /*
21626 * XPath:
21627 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/send-community/send-community
21628 */
21629 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_community_modify(
21630 struct nb_cb_modify_args *args)
21631 {
21632 switch (args->event) {
21633 case NB_EV_VALIDATE:
21634 case NB_EV_PREPARE:
21635 case NB_EV_ABORT:
21636 return NB_OK;
21637 case NB_EV_APPLY:
21638 return bgp_neighbor_afi_safi_flag_modify(
21639 args, PEER_FLAG_SEND_COMMUNITY,
21640 yang_dnode_get_bool(args->dnode, NULL));
21641
21642 break;
21643 }
21644
21645 return NB_OK;
21646 }
21647
21648 /*
21649 * XPath:
21650 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/send-community/send-ext-community
21651 */
21652 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_ext_community_modify(
21653 struct nb_cb_modify_args *args)
21654 {
21655 switch (args->event) {
21656 case NB_EV_VALIDATE:
21657 case NB_EV_PREPARE:
21658 case NB_EV_ABORT:
21659 return NB_OK;
21660 case NB_EV_APPLY:
21661 return bgp_neighbor_afi_safi_flag_modify(
21662 args, PEER_FLAG_SEND_EXT_COMMUNITY,
21663 yang_dnode_get_bool(args->dnode, NULL));
21664
21665 break;
21666 }
21667
21668 return NB_OK;
21669 }
21670
21671 /*
21672 * XPath:
21673 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/send-community/send-large-community
21674 */
21675 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_large_community_modify(
21676 struct nb_cb_modify_args *args)
21677 {
21678 switch (args->event) {
21679 case NB_EV_VALIDATE:
21680 case NB_EV_PREPARE:
21681 case NB_EV_ABORT:
21682 return NB_OK;
21683 case NB_EV_APPLY:
21684 return bgp_neighbor_afi_safi_flag_modify(
21685 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
21686 yang_dnode_get_bool(args->dnode, NULL));
21687
21688 break;
21689 }
21690
21691 return NB_OK;
21692 }
21693
21694 /*
21695 * XPath:
21696 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/soft-reconfiguration
21697 */
21698 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_soft_reconfiguration_modify(
21699 struct nb_cb_modify_args *args)
21700 {
21701 switch (args->event) {
21702 case NB_EV_VALIDATE:
21703 case NB_EV_PREPARE:
21704 case NB_EV_ABORT:
21705 return NB_OK;
21706 case NB_EV_APPLY:
21707 return bgp_neighbor_afi_safi_flag_modify(
21708 args, PEER_FLAG_SOFT_RECONFIG,
21709 yang_dnode_get_bool(args->dnode, NULL));
21710
21711 break;
21712 }
21713
21714 return NB_OK;
21715 }
21716
21717 /*
21718 * XPath:
21719 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/weight/weight-attribute
21720 */
21721 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_modify(
21722 struct nb_cb_modify_args *args)
21723 {
21724 switch (args->event) {
21725 case NB_EV_VALIDATE:
21726 case NB_EV_PREPARE:
21727 case NB_EV_ABORT:
21728 return NB_OK;
21729 case NB_EV_APPLY:
21730 return bgp_neighbor_afi_safi_weight_modify(args);
21731
21732 break;
21733 }
21734
21735 return NB_OK;
21736 }
21737
21738 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_destroy(
21739 struct nb_cb_destroy_args *args)
21740 {
21741 switch (args->event) {
21742 case NB_EV_VALIDATE:
21743 case NB_EV_PREPARE:
21744 case NB_EV_ABORT:
21745 return NB_OK;
21746 case NB_EV_APPLY:
21747 return bgp_neighbor_afi_safi_weight_destroy(args);
21748
21749 break;
21750 }
21751
21752 return NB_OK;
21753 }
21754
21755 /*
21756 * XPath:
21757 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/rmap-import
21758 */
21759 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_import_modify(
21760 struct nb_cb_modify_args *args)
21761 {
21762 switch (args->event) {
21763 case NB_EV_VALIDATE:
21764 case NB_EV_PREPARE:
21765 case NB_EV_ABORT:
21766 break;
21767 case NB_EV_APPLY:
21768 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
21769 }
21770
21771 return NB_OK;
21772 }
21773
21774 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_import_destroy(
21775 struct nb_cb_destroy_args *args)
21776 {
21777 switch (args->event) {
21778 case NB_EV_VALIDATE:
21779 case NB_EV_PREPARE:
21780 case NB_EV_ABORT:
21781 break;
21782 case NB_EV_APPLY:
21783 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
21784 }
21785
21786 return NB_OK;
21787 }
21788
21789 /*
21790 * XPath:
21791 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/rmap-export
21792 */
21793 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_export_modify(
21794 struct nb_cb_modify_args *args)
21795 {
21796 switch (args->event) {
21797 case NB_EV_VALIDATE:
21798 case NB_EV_PREPARE:
21799 case NB_EV_ABORT:
21800 break;
21801 case NB_EV_APPLY:
21802 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
21803 }
21804
21805 return NB_OK;
21806 }
21807
21808 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_export_destroy(
21809 struct nb_cb_destroy_args *args)
21810 {
21811 switch (args->event) {
21812 case NB_EV_VALIDATE:
21813 case NB_EV_PREPARE:
21814 case NB_EV_ABORT:
21815 break;
21816 case NB_EV_APPLY:
21817 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
21818 }
21819
21820 return NB_OK;
21821 }
21822
21823 /*
21824 * XPath:
21825 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/plist-import
21826 */
21827 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_import_modify(
21828 struct nb_cb_modify_args *args)
21829 {
21830 switch (args->event) {
21831 case NB_EV_VALIDATE:
21832 case NB_EV_PREPARE:
21833 case NB_EV_ABORT:
21834 case NB_EV_APPLY:
21835 /* TODO: implement me. */
21836 break;
21837 }
21838
21839 return NB_OK;
21840 }
21841
21842 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_import_destroy(
21843 struct nb_cb_destroy_args *args)
21844 {
21845 switch (args->event) {
21846 case NB_EV_VALIDATE:
21847 case NB_EV_PREPARE:
21848 case NB_EV_ABORT:
21849 case NB_EV_APPLY:
21850 /* TODO: implement me. */
21851 break;
21852 }
21853
21854 return NB_OK;
21855 }
21856
21857 /*
21858 * XPath:
21859 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/plist-export
21860 */
21861 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_export_modify(
21862 struct nb_cb_modify_args *args)
21863 {
21864 switch (args->event) {
21865 case NB_EV_VALIDATE:
21866 case NB_EV_PREPARE:
21867 case NB_EV_ABORT:
21868 break;
21869 case NB_EV_APPLY:
21870 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
21871 }
21872
21873 return NB_OK;
21874 }
21875
21876 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_export_destroy(
21877 struct nb_cb_destroy_args *args)
21878 {
21879 switch (args->event) {
21880 case NB_EV_VALIDATE:
21881 case NB_EV_PREPARE:
21882 case NB_EV_ABORT:
21883 break;
21884 case NB_EV_APPLY:
21885 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
21886 }
21887
21888 return NB_OK;
21889 }
21890
21891 /*
21892 * XPath:
21893 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/access-list-import
21894 */
21895 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_import_modify(
21896 struct nb_cb_modify_args *args)
21897 {
21898 switch (args->event) {
21899 case NB_EV_VALIDATE:
21900 case NB_EV_PREPARE:
21901 case NB_EV_ABORT:
21902 case NB_EV_APPLY:
21903 /* TODO: implement me. */
21904 break;
21905 }
21906
21907 return NB_OK;
21908 }
21909
21910 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_import_destroy(
21911 struct nb_cb_destroy_args *args)
21912 {
21913 switch (args->event) {
21914 case NB_EV_VALIDATE:
21915 case NB_EV_PREPARE:
21916 case NB_EV_ABORT:
21917 case NB_EV_APPLY:
21918 /* TODO: implement me. */
21919 break;
21920 }
21921
21922 return NB_OK;
21923 }
21924
21925 /*
21926 * XPath:
21927 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/access-list-export
21928 */
21929 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_export_modify(
21930 struct nb_cb_modify_args *args)
21931 {
21932 switch (args->event) {
21933 case NB_EV_VALIDATE:
21934 case NB_EV_PREPARE:
21935 case NB_EV_ABORT:
21936 case NB_EV_APPLY:
21937 /* TODO: implement me. */
21938 break;
21939 }
21940
21941 return NB_OK;
21942 }
21943
21944 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_export_destroy(
21945 struct nb_cb_destroy_args *args)
21946 {
21947 switch (args->event) {
21948 case NB_EV_VALIDATE:
21949 case NB_EV_PREPARE:
21950 case NB_EV_ABORT:
21951 case NB_EV_APPLY:
21952 /* TODO: implement me. */
21953 break;
21954 }
21955
21956 return NB_OK;
21957 }
21958
21959 /*
21960 * XPath:
21961 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/as-path-filter-list-import
21962 */
21963 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_import_modify(
21964 struct nb_cb_modify_args *args)
21965 {
21966 switch (args->event) {
21967 case NB_EV_VALIDATE:
21968 case NB_EV_PREPARE:
21969 case NB_EV_ABORT:
21970 case NB_EV_APPLY:
21971 /* TODO: implement me. */
21972 break;
21973 }
21974
21975 return NB_OK;
21976 }
21977
21978 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_import_destroy(
21979 struct nb_cb_destroy_args *args)
21980 {
21981 switch (args->event) {
21982 case NB_EV_VALIDATE:
21983 case NB_EV_PREPARE:
21984 case NB_EV_ABORT:
21985 case NB_EV_APPLY:
21986 /* TODO: implement me. */
21987 break;
21988 }
21989
21990 return NB_OK;
21991 }
21992
21993 /*
21994 * XPath:
21995 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/as-path-filter-list-export
21996 */
21997 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_export_modify(
21998 struct nb_cb_modify_args *args)
21999 {
22000 switch (args->event) {
22001 case NB_EV_VALIDATE:
22002 case NB_EV_PREPARE:
22003 case NB_EV_ABORT:
22004 case NB_EV_APPLY:
22005 /* TODO: implement me. */
22006 break;
22007 }
22008
22009 return NB_OK;
22010 }
22011
22012 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_export_destroy(
22013 struct nb_cb_destroy_args *args)
22014 {
22015 switch (args->event) {
22016 case NB_EV_VALIDATE:
22017 case NB_EV_PREPARE:
22018 case NB_EV_ABORT:
22019 case NB_EV_APPLY:
22020 /* TODO: implement me. */
22021 break;
22022 }
22023
22024 return NB_OK;
22025 }
22026
22027 /*
22028 * XPath:
22029 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/unsuppress-map-import
22030 */
22031 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_import_modify(
22032 struct nb_cb_modify_args *args)
22033 {
22034 switch (args->event) {
22035 case NB_EV_VALIDATE:
22036 case NB_EV_PREPARE:
22037 case NB_EV_ABORT:
22038 case NB_EV_APPLY:
22039 /* TODO: implement me. */
22040 break;
22041 }
22042
22043 return NB_OK;
22044 }
22045
22046 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_import_destroy(
22047 struct nb_cb_destroy_args *args)
22048 {
22049 switch (args->event) {
22050 case NB_EV_VALIDATE:
22051 case NB_EV_PREPARE:
22052 case NB_EV_ABORT:
22053 case NB_EV_APPLY:
22054 /* TODO: implement me. */
22055 break;
22056 }
22057
22058 return NB_OK;
22059 }
22060
22061 /*
22062 * XPath:
22063 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/unsuppress-map-export
22064 */
22065 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_export_modify(
22066 struct nb_cb_modify_args *args)
22067 {
22068 switch (args->event) {
22069 case NB_EV_VALIDATE:
22070 case NB_EV_PREPARE:
22071 case NB_EV_ABORT:
22072 case NB_EV_APPLY:
22073 /* TODO: implement me. */
22074 break;
22075 }
22076
22077 return NB_OK;
22078 }
22079
22080 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_export_destroy(
22081 struct nb_cb_destroy_args *args)
22082 {
22083 switch (args->event) {
22084 case NB_EV_VALIDATE:
22085 case NB_EV_PREPARE:
22086 case NB_EV_ABORT:
22087 case NB_EV_APPLY:
22088 /* TODO: implement me. */
22089 break;
22090 }
22091
22092 return NB_OK;
22093 }
22094
22095 /*
22096 * XPath:
22097 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/add-paths/path-type
22098 */
22099 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_add_paths_path_type_modify(
22100 struct nb_cb_modify_args *args)
22101 {
22102 switch (args->event) {
22103 case NB_EV_VALIDATE:
22104 case NB_EV_PREPARE:
22105 case NB_EV_ABORT:
22106 case NB_EV_APPLY:
22107 /* TODO: implement me. */
22108 break;
22109 }
22110
22111 return NB_OK;
22112 }
22113
22114 /*
22115 * XPath:
22116 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/as-path-options/allow-own-as
22117 */
22118 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_modify(
22119 struct nb_cb_modify_args *args)
22120 {
22121 switch (args->event) {
22122 case NB_EV_VALIDATE:
22123 case NB_EV_PREPARE:
22124 case NB_EV_ABORT:
22125 case NB_EV_APPLY:
22126 /* TODO: implement me. */
22127 break;
22128 }
22129
22130 return NB_OK;
22131 }
22132
22133 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_destroy(
22134 struct nb_cb_destroy_args *args)
22135 {
22136 switch (args->event) {
22137 case NB_EV_VALIDATE:
22138 case NB_EV_PREPARE:
22139 case NB_EV_ABORT:
22140 case NB_EV_APPLY:
22141 /* TODO: implement me. */
22142 break;
22143 }
22144
22145 return NB_OK;
22146 }
22147
22148 /*
22149 * XPath:
22150 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/as-path-options/allow-own-origin-as
22151 */
22152 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
22153 struct nb_cb_modify_args *args)
22154 {
22155 switch (args->event) {
22156 case NB_EV_VALIDATE:
22157 case NB_EV_PREPARE:
22158 case NB_EV_ABORT:
22159 case NB_EV_APPLY:
22160 /* TODO: implement me. */
22161 break;
22162 }
22163
22164 return NB_OK;
22165 }
22166
22167 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
22168 struct nb_cb_destroy_args *args)
22169 {
22170 switch (args->event) {
22171 case NB_EV_VALIDATE:
22172 case NB_EV_PREPARE:
22173 case NB_EV_ABORT:
22174 case NB_EV_APPLY:
22175 /* TODO: implement me. */
22176 break;
22177 }
22178
22179 return NB_OK;
22180 }
22181
22182 /*
22183 * XPath:
22184 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/as-path-options/replace-peer-as
22185 */
22186 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_replace_peer_as_modify(
22187 struct nb_cb_modify_args *args)
22188 {
22189 switch (args->event) {
22190 case NB_EV_VALIDATE:
22191 case NB_EV_PREPARE:
22192 case NB_EV_ABORT:
22193 return NB_OK;
22194 case NB_EV_APPLY:
22195 return bgp_neighbor_afi_safi_flag_modify(
22196 args, PEER_FLAG_AS_OVERRIDE,
22197 yang_dnode_get_bool(args->dnode, NULL));
22198
22199 break;
22200 }
22201
22202 return NB_OK;
22203 }
22204
22205 /*
22206 * XPath:
22207 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/attr-unchanged/as-path-unchanged
22208 */
22209 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
22210 struct nb_cb_modify_args *args)
22211 {
22212 switch (args->event) {
22213 case NB_EV_VALIDATE:
22214 case NB_EV_PREPARE:
22215 case NB_EV_ABORT:
22216 return NB_OK;
22217 case NB_EV_APPLY:
22218 return bgp_neighbor_afi_safi_flag_modify(
22219 args, PEER_FLAG_AS_PATH_UNCHANGED,
22220 yang_dnode_get_bool(args->dnode, NULL));
22221
22222 break;
22223 }
22224
22225 return NB_OK;
22226 }
22227
22228 /*
22229 * XPath:
22230 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/attr-unchanged/next-hop-unchanged
22231 */
22232 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
22233 struct nb_cb_modify_args *args)
22234 {
22235 switch (args->event) {
22236 case NB_EV_VALIDATE:
22237 case NB_EV_PREPARE:
22238 case NB_EV_ABORT:
22239 return NB_OK;
22240 case NB_EV_APPLY:
22241 return bgp_neighbor_afi_safi_flag_modify(
22242 args, PEER_FLAG_NEXTHOP_UNCHANGED,
22243 yang_dnode_get_bool(args->dnode, NULL));
22244
22245 break;
22246 }
22247
22248 return NB_OK;
22249 }
22250
22251 /*
22252 * XPath:
22253 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/attr-unchanged/med-unchanged
22254 */
22255 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_med_unchanged_modify(
22256 struct nb_cb_modify_args *args)
22257 {
22258 switch (args->event) {
22259 case NB_EV_VALIDATE:
22260 case NB_EV_PREPARE:
22261 case NB_EV_ABORT:
22262 return NB_OK;
22263 case NB_EV_APPLY:
22264 return bgp_neighbor_afi_safi_flag_modify(
22265 args, PEER_FLAG_MED_UNCHANGED,
22266 yang_dnode_get_bool(args->dnode, NULL));
22267
22268 break;
22269 }
22270
22271 return NB_OK;
22272 }
22273
22274 /*
22275 * XPath:
22276 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list
22277 */
22278 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_create(
22279 struct nb_cb_create_args *args)
22280 {
22281 switch (args->event) {
22282 case NB_EV_VALIDATE:
22283 case NB_EV_PREPARE:
22284 case NB_EV_ABORT:
22285 case NB_EV_APPLY:
22286 /* TODO: implement me. */
22287 break;
22288 }
22289
22290 return NB_OK;
22291 }
22292
22293 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_destroy(
22294 struct nb_cb_destroy_args *args)
22295 {
22296 switch (args->event) {
22297 case NB_EV_VALIDATE:
22298 case NB_EV_PREPARE:
22299 case NB_EV_ABORT:
22300 return NB_OK;
22301 case NB_EV_APPLY:
22302 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
22303 }
22304
22305 return NB_OK;
22306 }
22307
22308 /*
22309 * XPath:
22310 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/max-prefixes
22311 */
22312 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
22313 struct nb_cb_modify_args *args)
22314 {
22315 switch (args->event) {
22316 case NB_EV_VALIDATE:
22317 case NB_EV_PREPARE:
22318 case NB_EV_ABORT:
22319 case NB_EV_APPLY:
22320 /* TODO: implement me. */
22321 break;
22322 }
22323
22324 return NB_OK;
22325 }
22326
22327 /*
22328 * XPath:
22329 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/force-check
22330 */
22331 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
22332 struct nb_cb_modify_args *args)
22333 {
22334 switch (args->event) {
22335 case NB_EV_VALIDATE:
22336 case NB_EV_PREPARE:
22337 case NB_EV_ABORT:
22338 case NB_EV_APPLY:
22339 /* TODO: implement me. */
22340 break;
22341 }
22342
22343 return NB_OK;
22344 }
22345
22346 /*
22347 * XPath:
22348 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/warning-only
22349 */
22350 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
22351 struct nb_cb_modify_args *args)
22352 {
22353 switch (args->event) {
22354 case NB_EV_VALIDATE:
22355 case NB_EV_PREPARE:
22356 case NB_EV_ABORT:
22357 case NB_EV_APPLY:
22358 /* TODO: implement me. */
22359 break;
22360 }
22361
22362 return NB_OK;
22363 }
22364
22365 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
22366 struct nb_cb_destroy_args *args)
22367 {
22368 switch (args->event) {
22369 case NB_EV_VALIDATE:
22370 case NB_EV_PREPARE:
22371 case NB_EV_ABORT:
22372 case NB_EV_APPLY:
22373 /* TODO: implement me. */
22374 break;
22375 }
22376
22377 return NB_OK;
22378 }
22379
22380 /*
22381 * XPath:
22382 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/restart-timer
22383 */
22384 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
22385 struct nb_cb_modify_args *args)
22386 {
22387 switch (args->event) {
22388 case NB_EV_VALIDATE:
22389 case NB_EV_PREPARE:
22390 case NB_EV_ABORT:
22391 case NB_EV_APPLY:
22392 /* TODO: implement me. */
22393 break;
22394 }
22395
22396 return NB_OK;
22397 }
22398
22399 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
22400 struct nb_cb_destroy_args *args)
22401 {
22402 switch (args->event) {
22403 case NB_EV_VALIDATE:
22404 case NB_EV_PREPARE:
22405 case NB_EV_ABORT:
22406 case NB_EV_APPLY:
22407 /* TODO: implement me. */
22408 break;
22409 }
22410
22411 return NB_OK;
22412 }
22413
22414 /*
22415 * XPath:
22416 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
22417 */
22418 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
22419 struct nb_cb_modify_args *args)
22420 {
22421 switch (args->event) {
22422 case NB_EV_VALIDATE:
22423 case NB_EV_PREPARE:
22424 case NB_EV_ABORT:
22425 case NB_EV_APPLY:
22426 /* TODO: implement me. */
22427 break;
22428 }
22429
22430 return NB_OK;
22431 }
22432
22433 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
22434 struct nb_cb_destroy_args *args)
22435 {
22436 switch (args->event) {
22437 case NB_EV_VALIDATE:
22438 case NB_EV_PREPARE:
22439 case NB_EV_ABORT:
22440 case NB_EV_APPLY:
22441 /* TODO: implement me. */
22442 break;
22443 }
22444
22445 return NB_OK;
22446 }
22447
22448 /*
22449 * XPath:
22450 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
22451 */
22452 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
22453 struct nb_cb_modify_args *args)
22454 {
22455 switch (args->event) {
22456 case NB_EV_VALIDATE:
22457 case NB_EV_PREPARE:
22458 case NB_EV_ABORT:
22459 case NB_EV_APPLY:
22460 /* TODO: implement me. */
22461 break;
22462 }
22463
22464 return NB_OK;
22465 }
22466
22467 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
22468 struct nb_cb_destroy_args *args)
22469 {
22470 switch (args->event) {
22471 case NB_EV_VALIDATE:
22472 case NB_EV_PREPARE:
22473 case NB_EV_ABORT:
22474 case NB_EV_APPLY:
22475 /* TODO: implement me. */
22476 break;
22477 }
22478
22479 return NB_OK;
22480 }
22481
22482 /*
22483 * XPath:
22484 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tr-restart-timer
22485 */
22486 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
22487 struct nb_cb_modify_args *args)
22488 {
22489 switch (args->event) {
22490 case NB_EV_VALIDATE:
22491 case NB_EV_PREPARE:
22492 case NB_EV_ABORT:
22493 case NB_EV_APPLY:
22494 /* TODO: implement me. */
22495 break;
22496 }
22497
22498 return NB_OK;
22499 }
22500
22501 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
22502 struct nb_cb_destroy_args *args)
22503 {
22504 switch (args->event) {
22505 case NB_EV_VALIDATE:
22506 case NB_EV_PREPARE:
22507 case NB_EV_ABORT:
22508 case NB_EV_APPLY:
22509 /* TODO: implement me. */
22510 break;
22511 }
22512
22513 return NB_OK;
22514 }
22515
22516 /*
22517 * XPath:
22518 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
22519 */
22520 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
22521 struct nb_cb_modify_args *args)
22522 {
22523 switch (args->event) {
22524 case NB_EV_VALIDATE:
22525 case NB_EV_PREPARE:
22526 case NB_EV_ABORT:
22527 case NB_EV_APPLY:
22528 /* TODO: implement me. */
22529 break;
22530 }
22531
22532 return NB_OK;
22533 }
22534
22535 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
22536 struct nb_cb_destroy_args *args)
22537 {
22538 switch (args->event) {
22539 case NB_EV_VALIDATE:
22540 case NB_EV_PREPARE:
22541 case NB_EV_ABORT:
22542 case NB_EV_APPLY:
22543 /* TODO: implement me. */
22544 break;
22545 }
22546
22547 return NB_OK;
22548 }
22549
22550 /*
22551 * XPath:
22552 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tw-warning-only
22553 */
22554 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
22555 struct nb_cb_modify_args *args)
22556 {
22557 switch (args->event) {
22558 case NB_EV_VALIDATE:
22559 case NB_EV_PREPARE:
22560 case NB_EV_ABORT:
22561 case NB_EV_APPLY:
22562 /* TODO: implement me. */
22563 break;
22564 }
22565
22566 return NB_OK;
22567 }
22568
22569 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
22570 struct nb_cb_destroy_args *args)
22571 {
22572 switch (args->event) {
22573 case NB_EV_VALIDATE:
22574 case NB_EV_PREPARE:
22575 case NB_EV_ABORT:
22576 case NB_EV_APPLY:
22577 /* TODO: implement me. */
22578 break;
22579 }
22580
22581 return NB_OK;
22582 }
22583
22584 /*
22585 * XPath:
22586 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/nexthop-self/next-hop-self
22587 */
22588 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_modify(
22589 struct nb_cb_modify_args *args)
22590 {
22591 switch (args->event) {
22592 case NB_EV_VALIDATE:
22593 case NB_EV_PREPARE:
22594 case NB_EV_ABORT:
22595 return NB_OK;
22596 case NB_EV_APPLY:
22597 return bgp_neighbor_afi_safi_flag_modify(
22598 args, PEER_FLAG_NEXTHOP_SELF,
22599 yang_dnode_get_bool(args->dnode, NULL));
22600
22601 break;
22602 }
22603
22604 return NB_OK;
22605 }
22606
22607 /*
22608 * XPath:
22609 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/nexthop-self/next-hop-self-force
22610 */
22611 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
22612 struct nb_cb_modify_args *args)
22613 {
22614 switch (args->event) {
22615 case NB_EV_VALIDATE:
22616 case NB_EV_PREPARE:
22617 case NB_EV_ABORT:
22618 return NB_OK;
22619 case NB_EV_APPLY:
22620 return bgp_neighbor_afi_safi_flag_modify(
22621 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
22622 yang_dnode_get_bool(args->dnode, NULL));
22623
22624 break;
22625 }
22626
22627 return NB_OK;
22628 }
22629
22630 /*
22631 * XPath:
22632 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as-all
22633 */
22634 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_modify(
22635 struct nb_cb_modify_args *args)
22636 {
22637 switch (args->event) {
22638 case NB_EV_VALIDATE:
22639 case NB_EV_PREPARE:
22640 case NB_EV_ABORT:
22641 return NB_OK;
22642 case NB_EV_APPLY:
22643 return bgp_neighbor_afi_safi_flag_modify(
22644 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
22645 yang_dnode_get_bool(args->dnode, NULL));
22646
22647 break;
22648 }
22649
22650 return NB_OK;
22651 }
22652
22653 /*
22654 * XPath:
22655 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as-all-replace
22656 */
22657 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
22658 struct nb_cb_modify_args *args)
22659 {
22660 switch (args->event) {
22661 case NB_EV_VALIDATE:
22662 case NB_EV_PREPARE:
22663 case NB_EV_ABORT:
22664 return NB_OK;
22665 case NB_EV_APPLY:
22666 return bgp_neighbor_afi_safi_flag_modify(
22667 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
22668 yang_dnode_get_bool(args->dnode, NULL));
22669
22670 break;
22671 }
22672
22673 return NB_OK;
22674 }
22675
22676 /*
22677 * XPath:
22678 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as
22679 */
22680 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_modify(
22681 struct nb_cb_modify_args *args)
22682 {
22683 switch (args->event) {
22684 case NB_EV_VALIDATE:
22685 case NB_EV_PREPARE:
22686 case NB_EV_ABORT:
22687 return NB_OK;
22688 case NB_EV_APPLY:
22689 return bgp_neighbor_afi_safi_flag_modify(
22690 args, PEER_FLAG_REMOVE_PRIVATE_AS,
22691 yang_dnode_get_bool(args->dnode, NULL));
22692
22693 break;
22694 }
22695
22696 return NB_OK;
22697 }
22698
22699 /*
22700 * XPath:
22701 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as-replace
22702 */
22703 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_replace_modify(
22704 struct nb_cb_modify_args *args)
22705 {
22706 switch (args->event) {
22707 case NB_EV_VALIDATE:
22708 case NB_EV_PREPARE:
22709 case NB_EV_ABORT:
22710 return NB_OK;
22711 case NB_EV_APPLY:
22712 return bgp_neighbor_afi_safi_flag_modify(
22713 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
22714 yang_dnode_get_bool(args->dnode, NULL));
22715
22716 break;
22717 }
22718
22719 return NB_OK;
22720 }
22721
22722 /*
22723 * XPath:
22724 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/route-reflector/route-reflector-client
22725 */
22726 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_reflector_route_reflector_client_modify(
22727 struct nb_cb_modify_args *args)
22728 {
22729 switch (args->event) {
22730 case NB_EV_VALIDATE:
22731 case NB_EV_PREPARE:
22732 case NB_EV_ABORT:
22733 return NB_OK;
22734 case NB_EV_APPLY:
22735 return bgp_neighbor_afi_safi_flag_modify(
22736 args, PEER_FLAG_REFLECTOR_CLIENT,
22737 yang_dnode_get_bool(args->dnode, NULL));
22738
22739 break;
22740 }
22741
22742 return NB_OK;
22743 }
22744
22745 /*
22746 * XPath:
22747 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/route-server/route-server-client
22748 */
22749 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_server_route_server_client_modify(
22750 struct nb_cb_modify_args *args)
22751 {
22752 switch (args->event) {
22753 case NB_EV_VALIDATE:
22754 case NB_EV_PREPARE:
22755 case NB_EV_ABORT:
22756 return NB_OK;
22757 case NB_EV_APPLY:
22758 return bgp_neighbor_afi_safi_flag_modify(
22759 args, PEER_FLAG_RSERVER_CLIENT,
22760 yang_dnode_get_bool(args->dnode, NULL));
22761
22762 break;
22763 }
22764
22765 return NB_OK;
22766 }
22767
22768 /*
22769 * XPath:
22770 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/send-community/send-community
22771 */
22772 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_community_modify(
22773 struct nb_cb_modify_args *args)
22774 {
22775 switch (args->event) {
22776 case NB_EV_VALIDATE:
22777 case NB_EV_PREPARE:
22778 case NB_EV_ABORT:
22779 return NB_OK;
22780 case NB_EV_APPLY:
22781 return bgp_neighbor_afi_safi_flag_modify(
22782 args, PEER_FLAG_SEND_COMMUNITY,
22783 yang_dnode_get_bool(args->dnode, NULL));
22784
22785 break;
22786 }
22787
22788 return NB_OK;
22789 }
22790
22791 /*
22792 * XPath:
22793 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/send-community/send-ext-community
22794 */
22795 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_ext_community_modify(
22796 struct nb_cb_modify_args *args)
22797 {
22798 switch (args->event) {
22799 case NB_EV_VALIDATE:
22800 case NB_EV_PREPARE:
22801 case NB_EV_ABORT:
22802 return NB_OK;
22803 case NB_EV_APPLY:
22804 return bgp_neighbor_afi_safi_flag_modify(
22805 args, PEER_FLAG_SEND_EXT_COMMUNITY,
22806 yang_dnode_get_bool(args->dnode, NULL));
22807
22808 break;
22809 }
22810
22811 return NB_OK;
22812 }
22813
22814 /*
22815 * XPath:
22816 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/send-community/send-large-community
22817 */
22818 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_large_community_modify(
22819 struct nb_cb_modify_args *args)
22820 {
22821 switch (args->event) {
22822 case NB_EV_VALIDATE:
22823 case NB_EV_PREPARE:
22824 case NB_EV_ABORT:
22825 return NB_OK;
22826 case NB_EV_APPLY:
22827 return bgp_neighbor_afi_safi_flag_modify(
22828 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
22829 yang_dnode_get_bool(args->dnode, NULL));
22830
22831 break;
22832 }
22833
22834 return NB_OK;
22835 }
22836
22837 /*
22838 * XPath:
22839 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/soft-reconfiguration
22840 */
22841 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_soft_reconfiguration_modify(
22842 struct nb_cb_modify_args *args)
22843 {
22844 switch (args->event) {
22845 case NB_EV_VALIDATE:
22846 case NB_EV_PREPARE:
22847 case NB_EV_ABORT:
22848 return NB_OK;
22849 case NB_EV_APPLY:
22850 return bgp_neighbor_afi_safi_flag_modify(
22851 args, PEER_FLAG_SOFT_RECONFIG,
22852 yang_dnode_get_bool(args->dnode, NULL));
22853
22854 break;
22855 }
22856
22857 return NB_OK;
22858 }
22859
22860 /*
22861 * XPath:
22862 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/weight/weight-attribute
22863 */
22864 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_modify(
22865 struct nb_cb_modify_args *args)
22866 {
22867 switch (args->event) {
22868 case NB_EV_VALIDATE:
22869 case NB_EV_PREPARE:
22870 case NB_EV_ABORT:
22871 return NB_OK;
22872 case NB_EV_APPLY:
22873 return bgp_neighbor_afi_safi_weight_modify(args);
22874
22875 break;
22876 }
22877
22878 return NB_OK;
22879 }
22880
22881 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_destroy(
22882 struct nb_cb_destroy_args *args)
22883 {
22884 switch (args->event) {
22885 case NB_EV_VALIDATE:
22886 case NB_EV_PREPARE:
22887 case NB_EV_ABORT:
22888 return NB_OK;
22889 case NB_EV_APPLY:
22890 return bgp_neighbor_afi_safi_weight_destroy(args);
22891
22892 break;
22893 }
22894
22895 return NB_OK;
22896 }
22897
22898 /*
22899 * XPath:
22900 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/rmap-import
22901 */
22902 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_import_modify(
22903 struct nb_cb_modify_args *args)
22904 {
22905 switch (args->event) {
22906 case NB_EV_VALIDATE:
22907 case NB_EV_PREPARE:
22908 case NB_EV_ABORT:
22909 break;
22910 case NB_EV_APPLY:
22911 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
22912 }
22913
22914 return NB_OK;
22915 }
22916
22917 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_import_destroy(
22918 struct nb_cb_destroy_args *args)
22919 {
22920 switch (args->event) {
22921 case NB_EV_VALIDATE:
22922 case NB_EV_PREPARE:
22923 case NB_EV_ABORT:
22924 break;
22925 case NB_EV_APPLY:
22926 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
22927 }
22928
22929 return NB_OK;
22930 }
22931
22932 /*
22933 * XPath:
22934 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/rmap-export
22935 */
22936 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_export_modify(
22937 struct nb_cb_modify_args *args)
22938 {
22939 switch (args->event) {
22940 case NB_EV_VALIDATE:
22941 case NB_EV_PREPARE:
22942 case NB_EV_ABORT:
22943 break;
22944 case NB_EV_APPLY:
22945 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
22946 }
22947
22948 return NB_OK;
22949 }
22950
22951 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_export_destroy(
22952 struct nb_cb_destroy_args *args)
22953 {
22954 switch (args->event) {
22955 case NB_EV_VALIDATE:
22956 case NB_EV_PREPARE:
22957 case NB_EV_ABORT:
22958 break;
22959 case NB_EV_APPLY:
22960 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
22961 }
22962
22963 return NB_OK;
22964 }
22965
22966 /*
22967 * XPath:
22968 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/plist-import
22969 */
22970 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_import_modify(
22971 struct nb_cb_modify_args *args)
22972 {
22973 switch (args->event) {
22974 case NB_EV_VALIDATE:
22975 case NB_EV_PREPARE:
22976 case NB_EV_ABORT:
22977 case NB_EV_APPLY:
22978 /* TODO: implement me. */
22979 break;
22980 }
22981
22982 return NB_OK;
22983 }
22984
22985 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_import_destroy(
22986 struct nb_cb_destroy_args *args)
22987 {
22988 switch (args->event) {
22989 case NB_EV_VALIDATE:
22990 case NB_EV_PREPARE:
22991 case NB_EV_ABORT:
22992 return NB_OK;
22993 case NB_EV_APPLY:
22994 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
22995 }
22996
22997 return NB_OK;
22998 }
22999
23000 /*
23001 * XPath:
23002 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/plist-export
23003 */
23004 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_export_modify(
23005 struct nb_cb_modify_args *args)
23006 {
23007 switch (args->event) {
23008 case NB_EV_VALIDATE:
23009 case NB_EV_PREPARE:
23010 case NB_EV_ABORT:
23011 break;
23012 case NB_EV_APPLY:
23013 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
23014 }
23015
23016 return NB_OK;
23017 }
23018
23019 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_export_destroy(
23020 struct nb_cb_destroy_args *args)
23021 {
23022 switch (args->event) {
23023 case NB_EV_VALIDATE:
23024 case NB_EV_PREPARE:
23025 case NB_EV_ABORT:
23026 break;
23027 case NB_EV_APPLY:
23028 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
23029 }
23030
23031 return NB_OK;
23032 }
23033
23034 /*
23035 * XPath:
23036 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/access-list-import
23037 */
23038 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_import_modify(
23039 struct nb_cb_modify_args *args)
23040 {
23041 switch (args->event) {
23042 case NB_EV_VALIDATE:
23043 case NB_EV_PREPARE:
23044 case NB_EV_ABORT:
23045 case NB_EV_APPLY:
23046 /* TODO: implement me. */
23047 break;
23048 }
23049
23050 return NB_OK;
23051 }
23052
23053 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_import_destroy(
23054 struct nb_cb_destroy_args *args)
23055 {
23056 switch (args->event) {
23057 case NB_EV_VALIDATE:
23058 case NB_EV_PREPARE:
23059 case NB_EV_ABORT:
23060 case NB_EV_APPLY:
23061 /* TODO: implement me. */
23062 break;
23063 }
23064
23065 return NB_OK;
23066 }
23067
23068 /*
23069 * XPath:
23070 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/access-list-export
23071 */
23072 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_export_modify(
23073 struct nb_cb_modify_args *args)
23074 {
23075 switch (args->event) {
23076 case NB_EV_VALIDATE:
23077 case NB_EV_PREPARE:
23078 case NB_EV_ABORT:
23079 case NB_EV_APPLY:
23080 /* TODO: implement me. */
23081 break;
23082 }
23083
23084 return NB_OK;
23085 }
23086
23087 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_export_destroy(
23088 struct nb_cb_destroy_args *args)
23089 {
23090 switch (args->event) {
23091 case NB_EV_VALIDATE:
23092 case NB_EV_PREPARE:
23093 case NB_EV_ABORT:
23094 case NB_EV_APPLY:
23095 /* TODO: implement me. */
23096 break;
23097 }
23098
23099 return NB_OK;
23100 }
23101
23102 /*
23103 * XPath:
23104 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/as-path-filter-list-import
23105 */
23106 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_import_modify(
23107 struct nb_cb_modify_args *args)
23108 {
23109 switch (args->event) {
23110 case NB_EV_VALIDATE:
23111 case NB_EV_PREPARE:
23112 case NB_EV_ABORT:
23113 case NB_EV_APPLY:
23114 /* TODO: implement me. */
23115 break;
23116 }
23117
23118 return NB_OK;
23119 }
23120
23121 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_import_destroy(
23122 struct nb_cb_destroy_args *args)
23123 {
23124 switch (args->event) {
23125 case NB_EV_VALIDATE:
23126 case NB_EV_PREPARE:
23127 case NB_EV_ABORT:
23128 case NB_EV_APPLY:
23129 /* TODO: implement me. */
23130 break;
23131 }
23132
23133 return NB_OK;
23134 }
23135
23136 /*
23137 * XPath:
23138 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/as-path-filter-list-export
23139 */
23140 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_export_modify(
23141 struct nb_cb_modify_args *args)
23142 {
23143 switch (args->event) {
23144 case NB_EV_VALIDATE:
23145 case NB_EV_PREPARE:
23146 case NB_EV_ABORT:
23147 case NB_EV_APPLY:
23148 /* TODO: implement me. */
23149 break;
23150 }
23151
23152 return NB_OK;
23153 }
23154
23155 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_export_destroy(
23156 struct nb_cb_destroy_args *args)
23157 {
23158 switch (args->event) {
23159 case NB_EV_VALIDATE:
23160 case NB_EV_PREPARE:
23161 case NB_EV_ABORT:
23162 case NB_EV_APPLY:
23163 /* TODO: implement me. */
23164 break;
23165 }
23166
23167 return NB_OK;
23168 }
23169
23170 /*
23171 * XPath:
23172 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/unsuppress-map-import
23173 */
23174 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_import_modify(
23175 struct nb_cb_modify_args *args)
23176 {
23177 switch (args->event) {
23178 case NB_EV_VALIDATE:
23179 case NB_EV_PREPARE:
23180 case NB_EV_ABORT:
23181 case NB_EV_APPLY:
23182 /* TODO: implement me. */
23183 break;
23184 }
23185
23186 return NB_OK;
23187 }
23188
23189 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_import_destroy(
23190 struct nb_cb_destroy_args *args)
23191 {
23192 switch (args->event) {
23193 case NB_EV_VALIDATE:
23194 case NB_EV_PREPARE:
23195 case NB_EV_ABORT:
23196 case NB_EV_APPLY:
23197 /* TODO: implement me. */
23198 break;
23199 }
23200
23201 return NB_OK;
23202 }
23203
23204 /*
23205 * XPath:
23206 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/unsuppress-map-export
23207 */
23208 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_export_modify(
23209 struct nb_cb_modify_args *args)
23210 {
23211 switch (args->event) {
23212 case NB_EV_VALIDATE:
23213 case NB_EV_PREPARE:
23214 case NB_EV_ABORT:
23215 case NB_EV_APPLY:
23216 /* TODO: implement me. */
23217 break;
23218 }
23219
23220 return NB_OK;
23221 }
23222
23223 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_export_destroy(
23224 struct nb_cb_destroy_args *args)
23225 {
23226 switch (args->event) {
23227 case NB_EV_VALIDATE:
23228 case NB_EV_PREPARE:
23229 case NB_EV_ABORT:
23230 case NB_EV_APPLY:
23231 /* TODO: implement me. */
23232 break;
23233 }
23234
23235 return NB_OK;
23236 }
23237
23238 /*
23239 * XPath:
23240 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/add-paths/path-type
23241 */
23242 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_add_paths_path_type_modify(
23243 struct nb_cb_modify_args *args)
23244 {
23245 switch (args->event) {
23246 case NB_EV_VALIDATE:
23247 case NB_EV_PREPARE:
23248 case NB_EV_ABORT:
23249 case NB_EV_APPLY:
23250 /* TODO: implement me. */
23251 break;
23252 }
23253
23254 return NB_OK;
23255 }
23256
23257 /*
23258 * XPath:
23259 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/as-path-options/allow-own-as
23260 */
23261 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_modify(
23262 struct nb_cb_modify_args *args)
23263 {
23264 switch (args->event) {
23265 case NB_EV_VALIDATE:
23266 case NB_EV_PREPARE:
23267 case NB_EV_ABORT:
23268 case NB_EV_APPLY:
23269 /* TODO: implement me. */
23270 break;
23271 }
23272
23273 return NB_OK;
23274 }
23275
23276 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_destroy(
23277 struct nb_cb_destroy_args *args)
23278 {
23279 switch (args->event) {
23280 case NB_EV_VALIDATE:
23281 case NB_EV_PREPARE:
23282 case NB_EV_ABORT:
23283 case NB_EV_APPLY:
23284 /* TODO: implement me. */
23285 break;
23286 }
23287
23288 return NB_OK;
23289 }
23290
23291 /*
23292 * XPath:
23293 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/as-path-options/allow-own-origin-as
23294 */
23295 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
23296 struct nb_cb_modify_args *args)
23297 {
23298 switch (args->event) {
23299 case NB_EV_VALIDATE:
23300 case NB_EV_PREPARE:
23301 case NB_EV_ABORT:
23302 case NB_EV_APPLY:
23303 /* TODO: implement me. */
23304 break;
23305 }
23306
23307 return NB_OK;
23308 }
23309
23310 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
23311 struct nb_cb_destroy_args *args)
23312 {
23313 switch (args->event) {
23314 case NB_EV_VALIDATE:
23315 case NB_EV_PREPARE:
23316 case NB_EV_ABORT:
23317 case NB_EV_APPLY:
23318 /* TODO: implement me. */
23319 break;
23320 }
23321
23322 return NB_OK;
23323 }
23324
23325 /*
23326 * XPath:
23327 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/as-path-options/replace-peer-as
23328 */
23329 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_replace_peer_as_modify(
23330 struct nb_cb_modify_args *args)
23331 {
23332 switch (args->event) {
23333 case NB_EV_VALIDATE:
23334 case NB_EV_PREPARE:
23335 case NB_EV_ABORT:
23336 return NB_OK;
23337 case NB_EV_APPLY:
23338 return bgp_neighbor_afi_safi_flag_modify(
23339 args, PEER_FLAG_AS_OVERRIDE,
23340 yang_dnode_get_bool(args->dnode, NULL));
23341
23342 break;
23343 }
23344
23345 return NB_OK;
23346 }
23347
23348 /*
23349 * XPath:
23350 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/attr-unchanged/as-path-unchanged
23351 */
23352 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
23353 struct nb_cb_modify_args *args)
23354 {
23355 switch (args->event) {
23356 case NB_EV_VALIDATE:
23357 case NB_EV_PREPARE:
23358 case NB_EV_ABORT:
23359 return NB_OK;
23360 case NB_EV_APPLY:
23361 return bgp_neighbor_afi_safi_flag_modify(
23362 args, PEER_FLAG_AS_PATH_UNCHANGED,
23363 yang_dnode_get_bool(args->dnode, NULL));
23364
23365 break;
23366 }
23367
23368 return NB_OK;
23369 }
23370
23371 /*
23372 * XPath:
23373 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/attr-unchanged/next-hop-unchanged
23374 */
23375 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
23376 struct nb_cb_modify_args *args)
23377 {
23378 switch (args->event) {
23379 case NB_EV_VALIDATE:
23380 case NB_EV_PREPARE:
23381 case NB_EV_ABORT:
23382 return NB_OK;
23383 case NB_EV_APPLY:
23384 return bgp_neighbor_afi_safi_flag_modify(
23385 args, PEER_FLAG_NEXTHOP_UNCHANGED,
23386 yang_dnode_get_bool(args->dnode, NULL));
23387
23388 break;
23389 }
23390
23391 return NB_OK;
23392 }
23393
23394 /*
23395 * XPath:
23396 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/attr-unchanged/med-unchanged
23397 */
23398 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_med_unchanged_modify(
23399 struct nb_cb_modify_args *args)
23400 {
23401 switch (args->event) {
23402 case NB_EV_VALIDATE:
23403 case NB_EV_PREPARE:
23404 case NB_EV_ABORT:
23405 return NB_OK;
23406 case NB_EV_APPLY:
23407 return bgp_neighbor_afi_safi_flag_modify(
23408 args, PEER_FLAG_MED_UNCHANGED,
23409 yang_dnode_get_bool(args->dnode, NULL));
23410
23411 break;
23412 }
23413
23414 return NB_OK;
23415 }
23416
23417 /*
23418 * XPath:
23419 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list
23420 */
23421 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_create(
23422 struct nb_cb_create_args *args)
23423 {
23424 switch (args->event) {
23425 case NB_EV_VALIDATE:
23426 case NB_EV_PREPARE:
23427 case NB_EV_ABORT:
23428 case NB_EV_APPLY:
23429 /* TODO: implement me. */
23430 break;
23431 }
23432
23433 return NB_OK;
23434 }
23435
23436 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_destroy(
23437 struct nb_cb_destroy_args *args)
23438 {
23439 switch (args->event) {
23440 case NB_EV_VALIDATE:
23441 case NB_EV_PREPARE:
23442 case NB_EV_ABORT:
23443 return NB_OK;
23444 case NB_EV_APPLY:
23445 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
23446 }
23447
23448 return NB_OK;
23449 }
23450
23451 /*
23452 * XPath:
23453 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/max-prefixes
23454 */
23455 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
23456 struct nb_cb_modify_args *args)
23457 {
23458 switch (args->event) {
23459 case NB_EV_VALIDATE:
23460 case NB_EV_PREPARE:
23461 case NB_EV_ABORT:
23462 case NB_EV_APPLY:
23463 /* TODO: implement me. */
23464 break;
23465 }
23466
23467 return NB_OK;
23468 }
23469
23470 /*
23471 * XPath:
23472 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/force-check
23473 */
23474 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
23475 struct nb_cb_modify_args *args)
23476 {
23477 switch (args->event) {
23478 case NB_EV_VALIDATE:
23479 case NB_EV_PREPARE:
23480 case NB_EV_ABORT:
23481 case NB_EV_APPLY:
23482 /* TODO: implement me. */
23483 break;
23484 }
23485
23486 return NB_OK;
23487 }
23488
23489 /*
23490 * XPath:
23491 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/warning-only
23492 */
23493 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
23494 struct nb_cb_modify_args *args)
23495 {
23496 switch (args->event) {
23497 case NB_EV_VALIDATE:
23498 case NB_EV_PREPARE:
23499 case NB_EV_ABORT:
23500 case NB_EV_APPLY:
23501 /* TODO: implement me. */
23502 break;
23503 }
23504
23505 return NB_OK;
23506 }
23507
23508 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
23509 struct nb_cb_destroy_args *args)
23510 {
23511 switch (args->event) {
23512 case NB_EV_VALIDATE:
23513 case NB_EV_PREPARE:
23514 case NB_EV_ABORT:
23515 case NB_EV_APPLY:
23516 /* TODO: implement me. */
23517 break;
23518 }
23519
23520 return NB_OK;
23521 }
23522
23523 /*
23524 * XPath:
23525 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/restart-timer
23526 */
23527 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
23528 struct nb_cb_modify_args *args)
23529 {
23530 switch (args->event) {
23531 case NB_EV_VALIDATE:
23532 case NB_EV_PREPARE:
23533 case NB_EV_ABORT:
23534 case NB_EV_APPLY:
23535 /* TODO: implement me. */
23536 break;
23537 }
23538
23539 return NB_OK;
23540 }
23541
23542 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
23543 struct nb_cb_destroy_args *args)
23544 {
23545 switch (args->event) {
23546 case NB_EV_VALIDATE:
23547 case NB_EV_PREPARE:
23548 case NB_EV_ABORT:
23549 case NB_EV_APPLY:
23550 /* TODO: implement me. */
23551 break;
23552 }
23553
23554 return NB_OK;
23555 }
23556
23557 /*
23558 * XPath:
23559 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
23560 */
23561 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
23562 struct nb_cb_modify_args *args)
23563 {
23564 switch (args->event) {
23565 case NB_EV_VALIDATE:
23566 case NB_EV_PREPARE:
23567 case NB_EV_ABORT:
23568 case NB_EV_APPLY:
23569 /* TODO: implement me. */
23570 break;
23571 }
23572
23573 return NB_OK;
23574 }
23575
23576 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
23577 struct nb_cb_destroy_args *args)
23578 {
23579 switch (args->event) {
23580 case NB_EV_VALIDATE:
23581 case NB_EV_PREPARE:
23582 case NB_EV_ABORT:
23583 case NB_EV_APPLY:
23584 /* TODO: implement me. */
23585 break;
23586 }
23587
23588 return NB_OK;
23589 }
23590
23591 /*
23592 * XPath:
23593 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
23594 */
23595 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
23596 struct nb_cb_modify_args *args)
23597 {
23598 switch (args->event) {
23599 case NB_EV_VALIDATE:
23600 case NB_EV_PREPARE:
23601 case NB_EV_ABORT:
23602 case NB_EV_APPLY:
23603 /* TODO: implement me. */
23604 break;
23605 }
23606
23607 return NB_OK;
23608 }
23609
23610 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
23611 struct nb_cb_destroy_args *args)
23612 {
23613 switch (args->event) {
23614 case NB_EV_VALIDATE:
23615 case NB_EV_PREPARE:
23616 case NB_EV_ABORT:
23617 case NB_EV_APPLY:
23618 /* TODO: implement me. */
23619 break;
23620 }
23621
23622 return NB_OK;
23623 }
23624
23625 /*
23626 * XPath:
23627 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tr-restart-timer
23628 */
23629 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
23630 struct nb_cb_modify_args *args)
23631 {
23632 switch (args->event) {
23633 case NB_EV_VALIDATE:
23634 case NB_EV_PREPARE:
23635 case NB_EV_ABORT:
23636 case NB_EV_APPLY:
23637 /* TODO: implement me. */
23638 break;
23639 }
23640
23641 return NB_OK;
23642 }
23643
23644 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
23645 struct nb_cb_destroy_args *args)
23646 {
23647 switch (args->event) {
23648 case NB_EV_VALIDATE:
23649 case NB_EV_PREPARE:
23650 case NB_EV_ABORT:
23651 case NB_EV_APPLY:
23652 /* TODO: implement me. */
23653 break;
23654 }
23655
23656 return NB_OK;
23657 }
23658
23659 /*
23660 * XPath:
23661 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
23662 */
23663 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
23664 struct nb_cb_modify_args *args)
23665 {
23666 switch (args->event) {
23667 case NB_EV_VALIDATE:
23668 case NB_EV_PREPARE:
23669 case NB_EV_ABORT:
23670 case NB_EV_APPLY:
23671 /* TODO: implement me. */
23672 break;
23673 }
23674
23675 return NB_OK;
23676 }
23677
23678 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
23679 struct nb_cb_destroy_args *args)
23680 {
23681 switch (args->event) {
23682 case NB_EV_VALIDATE:
23683 case NB_EV_PREPARE:
23684 case NB_EV_ABORT:
23685 case NB_EV_APPLY:
23686 /* TODO: implement me. */
23687 break;
23688 }
23689
23690 return NB_OK;
23691 }
23692
23693 /*
23694 * XPath:
23695 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tw-warning-only
23696 */
23697 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
23698 struct nb_cb_modify_args *args)
23699 {
23700 switch (args->event) {
23701 case NB_EV_VALIDATE:
23702 case NB_EV_PREPARE:
23703 case NB_EV_ABORT:
23704 case NB_EV_APPLY:
23705 /* TODO: implement me. */
23706 break;
23707 }
23708
23709 return NB_OK;
23710 }
23711
23712 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
23713 struct nb_cb_destroy_args *args)
23714 {
23715 switch (args->event) {
23716 case NB_EV_VALIDATE:
23717 case NB_EV_PREPARE:
23718 case NB_EV_ABORT:
23719 case NB_EV_APPLY:
23720 /* TODO: implement me. */
23721 break;
23722 }
23723
23724 return NB_OK;
23725 }
23726
23727 /*
23728 * XPath:
23729 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/nexthop-self/next-hop-self
23730 */
23731 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_modify(
23732 struct nb_cb_modify_args *args)
23733 {
23734 switch (args->event) {
23735 case NB_EV_VALIDATE:
23736 case NB_EV_PREPARE:
23737 case NB_EV_ABORT:
23738 return NB_OK;
23739 case NB_EV_APPLY:
23740 return bgp_neighbor_afi_safi_flag_modify(
23741 args, PEER_FLAG_NEXTHOP_SELF,
23742 yang_dnode_get_bool(args->dnode, NULL));
23743
23744 break;
23745 }
23746
23747 return NB_OK;
23748 }
23749
23750 /*
23751 * XPath:
23752 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/nexthop-self/next-hop-self-force
23753 */
23754 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
23755 struct nb_cb_modify_args *args)
23756 {
23757 switch (args->event) {
23758 case NB_EV_VALIDATE:
23759 case NB_EV_PREPARE:
23760 case NB_EV_ABORT:
23761 return NB_OK;
23762 case NB_EV_APPLY:
23763 return bgp_neighbor_afi_safi_flag_modify(
23764 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
23765 yang_dnode_get_bool(args->dnode, NULL));
23766
23767 break;
23768 }
23769
23770 return NB_OK;
23771 }
23772
23773 /*
23774 * XPath:
23775 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as-all
23776 */
23777 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_modify(
23778 struct nb_cb_modify_args *args)
23779 {
23780 switch (args->event) {
23781 case NB_EV_VALIDATE:
23782 case NB_EV_PREPARE:
23783 case NB_EV_ABORT:
23784 return NB_OK;
23785 case NB_EV_APPLY:
23786 return bgp_neighbor_afi_safi_flag_modify(
23787 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
23788 yang_dnode_get_bool(args->dnode, NULL));
23789
23790 break;
23791 }
23792
23793 return NB_OK;
23794 }
23795
23796 /*
23797 * XPath:
23798 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as-all-replace
23799 */
23800 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
23801 struct nb_cb_modify_args *args)
23802 {
23803 switch (args->event) {
23804 case NB_EV_VALIDATE:
23805 case NB_EV_PREPARE:
23806 case NB_EV_ABORT:
23807 return NB_OK;
23808 case NB_EV_APPLY:
23809 return bgp_neighbor_afi_safi_flag_modify(
23810 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
23811 yang_dnode_get_bool(args->dnode, NULL));
23812
23813 break;
23814 }
23815
23816 return NB_OK;
23817 }
23818
23819 /*
23820 * XPath:
23821 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as
23822 */
23823 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_modify(
23824 struct nb_cb_modify_args *args)
23825 {
23826 switch (args->event) {
23827 case NB_EV_VALIDATE:
23828 case NB_EV_PREPARE:
23829 case NB_EV_ABORT:
23830 return NB_OK;
23831 case NB_EV_APPLY:
23832 return bgp_neighbor_afi_safi_flag_modify(
23833 args, PEER_FLAG_REMOVE_PRIVATE_AS,
23834 yang_dnode_get_bool(args->dnode, NULL));
23835
23836 break;
23837 }
23838
23839 return NB_OK;
23840 }
23841
23842 /*
23843 * XPath:
23844 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as-replace
23845 */
23846 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_replace_modify(
23847 struct nb_cb_modify_args *args)
23848 {
23849 switch (args->event) {
23850 case NB_EV_VALIDATE:
23851 case NB_EV_PREPARE:
23852 case NB_EV_ABORT:
23853 return NB_OK;
23854 case NB_EV_APPLY:
23855 return bgp_neighbor_afi_safi_flag_modify(
23856 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
23857 yang_dnode_get_bool(args->dnode, NULL));
23858
23859 break;
23860 }
23861
23862 return NB_OK;
23863 }
23864
23865 /*
23866 * XPath:
23867 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/route-reflector/route-reflector-client
23868 */
23869 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_reflector_route_reflector_client_modify(
23870 struct nb_cb_modify_args *args)
23871 {
23872 switch (args->event) {
23873 case NB_EV_VALIDATE:
23874 case NB_EV_PREPARE:
23875 case NB_EV_ABORT:
23876 return NB_OK;
23877 case NB_EV_APPLY:
23878 return bgp_neighbor_afi_safi_flag_modify(
23879 args, PEER_FLAG_REFLECTOR_CLIENT,
23880 yang_dnode_get_bool(args->dnode, NULL));
23881
23882 break;
23883 }
23884
23885 return NB_OK;
23886 }
23887
23888 /*
23889 * XPath:
23890 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/route-server/route-server-client
23891 */
23892 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_server_route_server_client_modify(
23893 struct nb_cb_modify_args *args)
23894 {
23895 switch (args->event) {
23896 case NB_EV_VALIDATE:
23897 case NB_EV_PREPARE:
23898 case NB_EV_ABORT:
23899 return NB_OK;
23900 case NB_EV_APPLY:
23901 return bgp_neighbor_afi_safi_flag_modify(
23902 args, PEER_FLAG_RSERVER_CLIENT,
23903 yang_dnode_get_bool(args->dnode, NULL));
23904
23905 break;
23906 }
23907
23908 return NB_OK;
23909 }
23910
23911 /*
23912 * XPath:
23913 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/send-community/send-community
23914 */
23915 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_community_modify(
23916 struct nb_cb_modify_args *args)
23917 {
23918 switch (args->event) {
23919 case NB_EV_VALIDATE:
23920 case NB_EV_PREPARE:
23921 case NB_EV_ABORT:
23922 return NB_OK;
23923 case NB_EV_APPLY:
23924 return bgp_neighbor_afi_safi_flag_modify(
23925 args, PEER_FLAG_SEND_COMMUNITY,
23926 yang_dnode_get_bool(args->dnode, NULL));
23927
23928 break;
23929 }
23930
23931 return NB_OK;
23932 }
23933
23934 /*
23935 * XPath:
23936 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/send-community/send-ext-community
23937 */
23938 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_ext_community_modify(
23939 struct nb_cb_modify_args *args)
23940 {
23941 switch (args->event) {
23942 case NB_EV_VALIDATE:
23943 case NB_EV_PREPARE:
23944 case NB_EV_ABORT:
23945 return NB_OK;
23946 case NB_EV_APPLY:
23947 return bgp_neighbor_afi_safi_flag_modify(
23948 args, PEER_FLAG_SEND_EXT_COMMUNITY,
23949 yang_dnode_get_bool(args->dnode, NULL));
23950
23951 break;
23952 }
23953
23954 return NB_OK;
23955 }
23956
23957 /*
23958 * XPath:
23959 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/send-community/send-large-community
23960 */
23961 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_large_community_modify(
23962 struct nb_cb_modify_args *args)
23963 {
23964 switch (args->event) {
23965 case NB_EV_VALIDATE:
23966 case NB_EV_PREPARE:
23967 case NB_EV_ABORT:
23968 return NB_OK;
23969 case NB_EV_APPLY:
23970 return bgp_neighbor_afi_safi_flag_modify(
23971 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
23972 yang_dnode_get_bool(args->dnode, NULL));
23973
23974 break;
23975 }
23976
23977 return NB_OK;
23978 }
23979
23980 /*
23981 * XPath:
23982 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/soft-reconfiguration
23983 */
23984 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_soft_reconfiguration_modify(
23985 struct nb_cb_modify_args *args)
23986 {
23987 switch (args->event) {
23988 case NB_EV_VALIDATE:
23989 case NB_EV_PREPARE:
23990 case NB_EV_ABORT:
23991 return NB_OK;
23992 case NB_EV_APPLY:
23993 return bgp_neighbor_afi_safi_flag_modify(
23994 args, PEER_FLAG_SOFT_RECONFIG,
23995 yang_dnode_get_bool(args->dnode, NULL));
23996
23997 break;
23998 }
23999
24000 return NB_OK;
24001 }
24002
24003 /*
24004 * XPath:
24005 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/weight/weight-attribute
24006 */
24007 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_modify(
24008 struct nb_cb_modify_args *args)
24009 {
24010 switch (args->event) {
24011 case NB_EV_VALIDATE:
24012 case NB_EV_PREPARE:
24013 case NB_EV_ABORT:
24014 return NB_OK;
24015 case NB_EV_APPLY:
24016 return bgp_neighbor_afi_safi_weight_modify(args);
24017
24018 break;
24019 }
24020
24021 return NB_OK;
24022 }
24023
24024 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_destroy(
24025 struct nb_cb_destroy_args *args)
24026 {
24027 switch (args->event) {
24028 case NB_EV_VALIDATE:
24029 case NB_EV_PREPARE:
24030 case NB_EV_ABORT:
24031 return NB_OK;
24032 case NB_EV_APPLY:
24033 return bgp_neighbor_afi_safi_weight_destroy(args);
24034
24035 break;
24036 }
24037
24038 return NB_OK;
24039 }
24040
24041 /*
24042 * XPath:
24043 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/rmap-import
24044 */
24045 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_import_modify(
24046 struct nb_cb_modify_args *args)
24047 {
24048 switch (args->event) {
24049 case NB_EV_VALIDATE:
24050 case NB_EV_PREPARE:
24051 case NB_EV_ABORT:
24052 break;
24053 case NB_EV_APPLY:
24054 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
24055 }
24056
24057 return NB_OK;
24058 }
24059
24060 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_import_destroy(
24061 struct nb_cb_destroy_args *args)
24062 {
24063 switch (args->event) {
24064 case NB_EV_VALIDATE:
24065 case NB_EV_PREPARE:
24066 case NB_EV_ABORT:
24067 break;
24068 case NB_EV_APPLY:
24069 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
24070 }
24071
24072 return NB_OK;
24073 }
24074
24075 /*
24076 * XPath:
24077 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/rmap-export
24078 */
24079 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_export_modify(
24080 struct nb_cb_modify_args *args)
24081 {
24082 switch (args->event) {
24083 case NB_EV_VALIDATE:
24084 case NB_EV_PREPARE:
24085 case NB_EV_ABORT:
24086 break;
24087 case NB_EV_APPLY:
24088 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
24089 }
24090
24091 return NB_OK;
24092 }
24093
24094 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_export_destroy(
24095 struct nb_cb_destroy_args *args)
24096 {
24097 switch (args->event) {
24098 case NB_EV_VALIDATE:
24099 case NB_EV_PREPARE:
24100 case NB_EV_ABORT:
24101 break;
24102 case NB_EV_APPLY:
24103 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
24104 }
24105
24106 return NB_OK;
24107 }
24108
24109 /*
24110 * XPath:
24111 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/plist-import
24112 */
24113 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_import_modify(
24114 struct nb_cb_modify_args *args)
24115 {
24116 switch (args->event) {
24117 case NB_EV_VALIDATE:
24118 case NB_EV_PREPARE:
24119 case NB_EV_ABORT:
24120 break;
24121 case NB_EV_APPLY:
24122 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
24123 }
24124
24125 return NB_OK;
24126 }
24127
24128 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_import_destroy(
24129 struct nb_cb_destroy_args *args)
24130 {
24131 switch (args->event) {
24132 case NB_EV_VALIDATE:
24133 case NB_EV_PREPARE:
24134 case NB_EV_ABORT:
24135 break;
24136 case NB_EV_APPLY:
24137 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
24138 }
24139
24140 return NB_OK;
24141 }
24142
24143 /*
24144 * XPath:
24145 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/plist-export
24146 */
24147 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_export_modify(
24148 struct nb_cb_modify_args *args)
24149 {
24150 switch (args->event) {
24151 case NB_EV_VALIDATE:
24152 case NB_EV_PREPARE:
24153 case NB_EV_ABORT:
24154 return NB_OK;
24155 case NB_EV_APPLY:
24156 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
24157 }
24158
24159 return NB_OK;
24160 }
24161
24162 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_export_destroy(
24163 struct nb_cb_destroy_args *args)
24164 {
24165 switch (args->event) {
24166 case NB_EV_VALIDATE:
24167 case NB_EV_PREPARE:
24168 case NB_EV_ABORT:
24169 break;
24170 case NB_EV_APPLY:
24171 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
24172 }
24173
24174 return NB_OK;
24175 }
24176
24177 /*
24178 * XPath:
24179 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/access-list-import
24180 */
24181 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_import_modify(
24182 struct nb_cb_modify_args *args)
24183 {
24184 switch (args->event) {
24185 case NB_EV_VALIDATE:
24186 case NB_EV_PREPARE:
24187 case NB_EV_ABORT:
24188 case NB_EV_APPLY:
24189 /* TODO: implement me. */
24190 break;
24191 }
24192
24193 return NB_OK;
24194 }
24195
24196 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_import_destroy(
24197 struct nb_cb_destroy_args *args)
24198 {
24199 switch (args->event) {
24200 case NB_EV_VALIDATE:
24201 case NB_EV_PREPARE:
24202 case NB_EV_ABORT:
24203 case NB_EV_APPLY:
24204 /* TODO: implement me. */
24205 break;
24206 }
24207
24208 return NB_OK;
24209 }
24210
24211 /*
24212 * XPath:
24213 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/access-list-export
24214 */
24215 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_export_modify(
24216 struct nb_cb_modify_args *args)
24217 {
24218 switch (args->event) {
24219 case NB_EV_VALIDATE:
24220 case NB_EV_PREPARE:
24221 case NB_EV_ABORT:
24222 case NB_EV_APPLY:
24223 /* TODO: implement me. */
24224 break;
24225 }
24226
24227 return NB_OK;
24228 }
24229
24230 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_export_destroy(
24231 struct nb_cb_destroy_args *args)
24232 {
24233 switch (args->event) {
24234 case NB_EV_VALIDATE:
24235 case NB_EV_PREPARE:
24236 case NB_EV_ABORT:
24237 case NB_EV_APPLY:
24238 /* TODO: implement me. */
24239 break;
24240 }
24241
24242 return NB_OK;
24243 }
24244
24245 /*
24246 * XPath:
24247 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/as-path-filter-list-import
24248 */
24249 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_import_modify(
24250 struct nb_cb_modify_args *args)
24251 {
24252 switch (args->event) {
24253 case NB_EV_VALIDATE:
24254 case NB_EV_PREPARE:
24255 case NB_EV_ABORT:
24256 case NB_EV_APPLY:
24257 /* TODO: implement me. */
24258 break;
24259 }
24260
24261 return NB_OK;
24262 }
24263
24264 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_import_destroy(
24265 struct nb_cb_destroy_args *args)
24266 {
24267 switch (args->event) {
24268 case NB_EV_VALIDATE:
24269 case NB_EV_PREPARE:
24270 case NB_EV_ABORT:
24271 case NB_EV_APPLY:
24272 /* TODO: implement me. */
24273 break;
24274 }
24275
24276 return NB_OK;
24277 }
24278
24279 /*
24280 * XPath:
24281 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/as-path-filter-list-export
24282 */
24283 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_export_modify(
24284 struct nb_cb_modify_args *args)
24285 {
24286 switch (args->event) {
24287 case NB_EV_VALIDATE:
24288 case NB_EV_PREPARE:
24289 case NB_EV_ABORT:
24290 case NB_EV_APPLY:
24291 /* TODO: implement me. */
24292 break;
24293 }
24294
24295 return NB_OK;
24296 }
24297
24298 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_export_destroy(
24299 struct nb_cb_destroy_args *args)
24300 {
24301 switch (args->event) {
24302 case NB_EV_VALIDATE:
24303 case NB_EV_PREPARE:
24304 case NB_EV_ABORT:
24305 case NB_EV_APPLY:
24306 /* TODO: implement me. */
24307 break;
24308 }
24309
24310 return NB_OK;
24311 }
24312
24313 /*
24314 * XPath:
24315 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/unsuppress-map-import
24316 */
24317 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_import_modify(
24318 struct nb_cb_modify_args *args)
24319 {
24320 switch (args->event) {
24321 case NB_EV_VALIDATE:
24322 case NB_EV_PREPARE:
24323 case NB_EV_ABORT:
24324 case NB_EV_APPLY:
24325 /* TODO: implement me. */
24326 break;
24327 }
24328
24329 return NB_OK;
24330 }
24331
24332 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_import_destroy(
24333 struct nb_cb_destroy_args *args)
24334 {
24335 switch (args->event) {
24336 case NB_EV_VALIDATE:
24337 case NB_EV_PREPARE:
24338 case NB_EV_ABORT:
24339 case NB_EV_APPLY:
24340 /* TODO: implement me. */
24341 break;
24342 }
24343
24344 return NB_OK;
24345 }
24346
24347 /*
24348 * XPath:
24349 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/unsuppress-map-export
24350 */
24351 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_export_modify(
24352 struct nb_cb_modify_args *args)
24353 {
24354 switch (args->event) {
24355 case NB_EV_VALIDATE:
24356 case NB_EV_PREPARE:
24357 case NB_EV_ABORT:
24358 case NB_EV_APPLY:
24359 /* TODO: implement me. */
24360 break;
24361 }
24362
24363 return NB_OK;
24364 }
24365
24366 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_export_destroy(
24367 struct nb_cb_destroy_args *args)
24368 {
24369 switch (args->event) {
24370 case NB_EV_VALIDATE:
24371 case NB_EV_PREPARE:
24372 case NB_EV_ABORT:
24373 case NB_EV_APPLY:
24374 /* TODO: implement me. */
24375 break;
24376 }
24377
24378 return NB_OK;
24379 }
24380
24381 /*
24382 * XPath:
24383 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/as-path-options/allow-own-as
24384 */
24385 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_modify(
24386 struct nb_cb_modify_args *args)
24387 {
24388 switch (args->event) {
24389 case NB_EV_VALIDATE:
24390 case NB_EV_PREPARE:
24391 case NB_EV_ABORT:
24392 case NB_EV_APPLY:
24393 /* TODO: implement me. */
24394 break;
24395 }
24396
24397 return NB_OK;
24398 }
24399
24400 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_destroy(
24401 struct nb_cb_destroy_args *args)
24402 {
24403 switch (args->event) {
24404 case NB_EV_VALIDATE:
24405 case NB_EV_PREPARE:
24406 case NB_EV_ABORT:
24407 case NB_EV_APPLY:
24408 /* TODO: implement me. */
24409 break;
24410 }
24411
24412 return NB_OK;
24413 }
24414
24415 /*
24416 * XPath:
24417 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/as-path-options/allow-own-origin-as
24418 */
24419 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_modify(
24420 struct nb_cb_modify_args *args)
24421 {
24422 switch (args->event) {
24423 case NB_EV_VALIDATE:
24424 case NB_EV_PREPARE:
24425 case NB_EV_ABORT:
24426 case NB_EV_APPLY:
24427 /* TODO: implement me. */
24428 break;
24429 }
24430
24431 return NB_OK;
24432 }
24433
24434 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_destroy(
24435 struct nb_cb_destroy_args *args)
24436 {
24437 switch (args->event) {
24438 case NB_EV_VALIDATE:
24439 case NB_EV_PREPARE:
24440 case NB_EV_ABORT:
24441 case NB_EV_APPLY:
24442 /* TODO: implement me. */
24443 break;
24444 }
24445
24446 return NB_OK;
24447 }
24448
24449 /*
24450 * XPath:
24451 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/as-path-options/replace-peer-as
24452 */
24453 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_replace_peer_as_modify(
24454 struct nb_cb_modify_args *args)
24455 {
24456 switch (args->event) {
24457 case NB_EV_VALIDATE:
24458 case NB_EV_PREPARE:
24459 case NB_EV_ABORT:
24460 return NB_OK;
24461 case NB_EV_APPLY:
24462 return bgp_neighbor_afi_safi_flag_modify(
24463 args, PEER_FLAG_AS_OVERRIDE,
24464 yang_dnode_get_bool(args->dnode, NULL));
24465
24466 break;
24467 }
24468
24469 return NB_OK;
24470 }
24471
24472 /*
24473 * XPath:
24474 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/attr-unchanged/as-path-unchanged
24475 */
24476 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_as_path_unchanged_modify(
24477 struct nb_cb_modify_args *args)
24478 {
24479 switch (args->event) {
24480 case NB_EV_VALIDATE:
24481 case NB_EV_PREPARE:
24482 case NB_EV_ABORT:
24483 return NB_OK;
24484 case NB_EV_APPLY:
24485 return bgp_neighbor_afi_safi_flag_modify(
24486 args, PEER_FLAG_AS_PATH_UNCHANGED,
24487 yang_dnode_get_bool(args->dnode, NULL));
24488
24489 break;
24490 }
24491
24492 return NB_OK;
24493 }
24494
24495 /*
24496 * XPath:
24497 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/attr-unchanged/next-hop-unchanged
24498 */
24499 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_next_hop_unchanged_modify(
24500 struct nb_cb_modify_args *args)
24501 {
24502 switch (args->event) {
24503 case NB_EV_VALIDATE:
24504 case NB_EV_PREPARE:
24505 case NB_EV_ABORT:
24506 return NB_OK;
24507 case NB_EV_APPLY:
24508 return bgp_neighbor_afi_safi_flag_modify(
24509 args, PEER_FLAG_NEXTHOP_UNCHANGED,
24510 yang_dnode_get_bool(args->dnode, NULL));
24511
24512 break;
24513 }
24514
24515 return NB_OK;
24516 }
24517
24518 /*
24519 * XPath:
24520 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/attr-unchanged/med-unchanged
24521 */
24522 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_med_unchanged_modify(
24523 struct nb_cb_modify_args *args)
24524 {
24525 switch (args->event) {
24526 case NB_EV_VALIDATE:
24527 case NB_EV_PREPARE:
24528 case NB_EV_ABORT:
24529 return NB_OK;
24530 case NB_EV_APPLY:
24531 return bgp_neighbor_afi_safi_flag_modify(
24532 args, PEER_FLAG_MED_UNCHANGED,
24533 yang_dnode_get_bool(args->dnode, NULL));
24534
24535 break;
24536 }
24537
24538 return NB_OK;
24539 }
24540
24541 /*
24542 * XPath:
24543 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/nexthop-self/next-hop-self
24544 */
24545 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_modify(
24546 struct nb_cb_modify_args *args)
24547 {
24548 switch (args->event) {
24549 case NB_EV_VALIDATE:
24550 case NB_EV_PREPARE:
24551 case NB_EV_ABORT:
24552 return NB_OK;
24553 case NB_EV_APPLY:
24554 return bgp_neighbor_afi_safi_flag_modify(
24555 args, PEER_FLAG_NEXTHOP_SELF,
24556 yang_dnode_get_bool(args->dnode, NULL));
24557
24558 break;
24559 }
24560
24561 return NB_OK;
24562 }
24563
24564 /*
24565 * XPath:
24566 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/nexthop-self/next-hop-self-force
24567 */
24568 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_force_modify(
24569 struct nb_cb_modify_args *args)
24570 {
24571 switch (args->event) {
24572 case NB_EV_VALIDATE:
24573 case NB_EV_PREPARE:
24574 case NB_EV_ABORT:
24575 return NB_OK;
24576 case NB_EV_APPLY:
24577 return bgp_neighbor_afi_safi_flag_modify(
24578 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
24579 yang_dnode_get_bool(args->dnode, NULL));
24580
24581 break;
24582 }
24583
24584 return NB_OK;
24585 }
24586
24587 /*
24588 * XPath:
24589 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/route-reflector/route-reflector-client
24590 */
24591 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_route_reflector_route_reflector_client_modify(
24592 struct nb_cb_modify_args *args)
24593 {
24594 switch (args->event) {
24595 case NB_EV_VALIDATE:
24596 case NB_EV_PREPARE:
24597 case NB_EV_ABORT:
24598 return NB_OK;
24599 case NB_EV_APPLY:
24600 return bgp_neighbor_afi_safi_flag_modify(
24601 args, PEER_FLAG_REFLECTOR_CLIENT,
24602 yang_dnode_get_bool(args->dnode, NULL));
24603
24604 break;
24605 }
24606
24607 return NB_OK;
24608 }
24609
24610 /*
24611 * XPath:
24612 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/route-server/route-server-client
24613 */
24614 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_route_server_route_server_client_modify(
24615 struct nb_cb_modify_args *args)
24616 {
24617 switch (args->event) {
24618 case NB_EV_VALIDATE:
24619 case NB_EV_PREPARE:
24620 case NB_EV_ABORT:
24621 return NB_OK;
24622 case NB_EV_APPLY:
24623 return bgp_neighbor_afi_safi_flag_modify(
24624 args, PEER_FLAG_RSERVER_CLIENT,
24625 yang_dnode_get_bool(args->dnode, NULL));
24626
24627 break;
24628 }
24629
24630 return NB_OK;
24631 }
24632
24633 /*
24634 * XPath:
24635 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/soft-reconfiguration
24636 */
24637 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_soft_reconfiguration_modify(
24638 struct nb_cb_modify_args *args)
24639 {
24640 switch (args->event) {
24641 case NB_EV_VALIDATE:
24642 case NB_EV_PREPARE:
24643 case NB_EV_ABORT:
24644 return NB_OK;
24645 case NB_EV_APPLY:
24646 return bgp_neighbor_afi_safi_flag_modify(
24647 args, PEER_FLAG_SOFT_RECONFIG,
24648 yang_dnode_get_bool(args->dnode, NULL));
24649
24650 break;
24651 }
24652
24653 return NB_OK;
24654 }
24655
24656 /*
24657 * XPath:
24658 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/rmap-import
24659 */
24660 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_import_modify(
24661 struct nb_cb_modify_args *args)
24662 {
24663 switch (args->event) {
24664 case NB_EV_VALIDATE:
24665 case NB_EV_PREPARE:
24666 case NB_EV_ABORT:
24667 break;
24668 case NB_EV_APPLY:
24669 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
24670 }
24671
24672 return NB_OK;
24673 }
24674
24675 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_import_destroy(
24676 struct nb_cb_destroy_args *args)
24677 {
24678 switch (args->event) {
24679 case NB_EV_VALIDATE:
24680 case NB_EV_PREPARE:
24681 case NB_EV_ABORT:
24682 break;
24683 case NB_EV_APPLY:
24684 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
24685 }
24686
24687 return NB_OK;
24688 }
24689
24690 /*
24691 * XPath:
24692 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/rmap-export
24693 */
24694 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_export_modify(
24695 struct nb_cb_modify_args *args)
24696 {
24697 switch (args->event) {
24698 case NB_EV_VALIDATE:
24699 case NB_EV_PREPARE:
24700 case NB_EV_ABORT:
24701 break;
24702 case NB_EV_APPLY:
24703 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
24704 }
24705
24706 return NB_OK;
24707 }
24708
24709 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_export_destroy(
24710 struct nb_cb_destroy_args *args)
24711 {
24712 switch (args->event) {
24713 case NB_EV_VALIDATE:
24714 case NB_EV_PREPARE:
24715 case NB_EV_ABORT:
24716 break;
24717 case NB_EV_APPLY:
24718 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
24719 }
24720
24721 return NB_OK;
24722 }
24723
24724 /*
24725 * XPath:
24726 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/plist-import
24727 */
24728 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_plist_import_modify(
24729 struct nb_cb_modify_args *args)
24730 {
24731 switch (args->event) {
24732 case NB_EV_VALIDATE:
24733 case NB_EV_PREPARE:
24734 case NB_EV_ABORT:
24735 break;
24736 case NB_EV_APPLY:
24737 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
24738 }
24739
24740 return NB_OK;
24741 }
24742
24743 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_plist_import_destroy(
24744 struct nb_cb_destroy_args *args)
24745 {
24746 switch (args->event) {
24747 case NB_EV_VALIDATE:
24748 case NB_EV_PREPARE:
24749 case NB_EV_ABORT:
24750 break;
24751 case NB_EV_APPLY:
24752 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
24753 }
24754
24755 return NB_OK;
24756 }
24757
24758 /*
24759 * XPath:
24760 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/plist-export
24761 */
24762 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_plist_export_modify(
24763 struct nb_cb_modify_args *args)
24764 {
24765 switch (args->event) {
24766 case NB_EV_VALIDATE:
24767 case NB_EV_PREPARE:
24768 case NB_EV_ABORT:
24769 break;
24770 case NB_EV_APPLY:
24771 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
24772 }
24773
24774 return NB_OK;
24775 }
24776
24777 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_plist_export_destroy(
24778 struct nb_cb_destroy_args *args)
24779 {
24780 switch (args->event) {
24781 case NB_EV_VALIDATE:
24782 case NB_EV_PREPARE:
24783 case NB_EV_ABORT:
24784 break;
24785 case NB_EV_APPLY:
24786 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
24787 }
24788
24789 return NB_OK;
24790 }
24791
24792 /*
24793 * XPath:
24794 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/access-list-import
24795 */
24796 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_access_list_import_modify(
24797 struct nb_cb_modify_args *args)
24798 {
24799 switch (args->event) {
24800 case NB_EV_VALIDATE:
24801 case NB_EV_PREPARE:
24802 case NB_EV_ABORT:
24803 case NB_EV_APPLY:
24804 /* TODO: implement me. */
24805 break;
24806 }
24807
24808 return NB_OK;
24809 }
24810
24811 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_access_list_import_destroy(
24812 struct nb_cb_destroy_args *args)
24813 {
24814 switch (args->event) {
24815 case NB_EV_VALIDATE:
24816 case NB_EV_PREPARE:
24817 case NB_EV_ABORT:
24818 case NB_EV_APPLY:
24819 /* TODO: implement me. */
24820 break;
24821 }
24822
24823 return NB_OK;
24824 }
24825
24826 /*
24827 * XPath:
24828 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/access-list-export
24829 */
24830 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_access_list_export_modify(
24831 struct nb_cb_modify_args *args)
24832 {
24833 switch (args->event) {
24834 case NB_EV_VALIDATE:
24835 case NB_EV_PREPARE:
24836 case NB_EV_ABORT:
24837 case NB_EV_APPLY:
24838 /* TODO: implement me. */
24839 break;
24840 }
24841
24842 return NB_OK;
24843 }
24844
24845 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_access_list_export_destroy(
24846 struct nb_cb_destroy_args *args)
24847 {
24848 switch (args->event) {
24849 case NB_EV_VALIDATE:
24850 case NB_EV_PREPARE:
24851 case NB_EV_ABORT:
24852 case NB_EV_APPLY:
24853 /* TODO: implement me. */
24854 break;
24855 }
24856
24857 return NB_OK;
24858 }
24859
24860 /*
24861 * XPath:
24862 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/as-path-filter-list-import
24863 */
24864 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_as_path_filter_list_import_modify(
24865 struct nb_cb_modify_args *args)
24866 {
24867 switch (args->event) {
24868 case NB_EV_VALIDATE:
24869 case NB_EV_PREPARE:
24870 case NB_EV_ABORT:
24871 case NB_EV_APPLY:
24872 /* TODO: implement me. */
24873 break;
24874 }
24875
24876 return NB_OK;
24877 }
24878
24879 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_as_path_filter_list_import_destroy(
24880 struct nb_cb_destroy_args *args)
24881 {
24882 switch (args->event) {
24883 case NB_EV_VALIDATE:
24884 case NB_EV_PREPARE:
24885 case NB_EV_ABORT:
24886 case NB_EV_APPLY:
24887 /* TODO: implement me. */
24888 break;
24889 }
24890
24891 return NB_OK;
24892 }
24893
24894 /*
24895 * XPath:
24896 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/as-path-filter-list-export
24897 */
24898 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_as_path_filter_list_export_modify(
24899 struct nb_cb_modify_args *args)
24900 {
24901 switch (args->event) {
24902 case NB_EV_VALIDATE:
24903 case NB_EV_PREPARE:
24904 case NB_EV_ABORT:
24905 case NB_EV_APPLY:
24906 /* TODO: implement me. */
24907 break;
24908 }
24909
24910 return NB_OK;
24911 }
24912
24913 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_as_path_filter_list_export_destroy(
24914 struct nb_cb_destroy_args *args)
24915 {
24916 switch (args->event) {
24917 case NB_EV_VALIDATE:
24918 case NB_EV_PREPARE:
24919 case NB_EV_ABORT:
24920 case NB_EV_APPLY:
24921 /* TODO: implement me. */
24922 break;
24923 }
24924
24925 return NB_OK;
24926 }
24927
24928 /*
24929 * XPath:
24930 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/unsuppress-map-import
24931 */
24932 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_unsuppress_map_import_modify(
24933 struct nb_cb_modify_args *args)
24934 {
24935 switch (args->event) {
24936 case NB_EV_VALIDATE:
24937 case NB_EV_PREPARE:
24938 case NB_EV_ABORT:
24939 case NB_EV_APPLY:
24940 /* TODO: implement me. */
24941 break;
24942 }
24943
24944 return NB_OK;
24945 }
24946
24947 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_unsuppress_map_import_destroy(
24948 struct nb_cb_destroy_args *args)
24949 {
24950 switch (args->event) {
24951 case NB_EV_VALIDATE:
24952 case NB_EV_PREPARE:
24953 case NB_EV_ABORT:
24954 case NB_EV_APPLY:
24955 /* TODO: implement me. */
24956 break;
24957 }
24958
24959 return NB_OK;
24960 }
24961
24962 /*
24963 * XPath:
24964 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/unsuppress-map-export
24965 */
24966 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_unsuppress_map_export_modify(
24967 struct nb_cb_modify_args *args)
24968 {
24969 switch (args->event) {
24970 case NB_EV_VALIDATE:
24971 case NB_EV_PREPARE:
24972 case NB_EV_ABORT:
24973 case NB_EV_APPLY:
24974 /* TODO: implement me. */
24975 break;
24976 }
24977
24978 return NB_OK;
24979 }
24980
24981 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_unsuppress_map_export_destroy(
24982 struct nb_cb_destroy_args *args)
24983 {
24984 switch (args->event) {
24985 case NB_EV_VALIDATE:
24986 case NB_EV_PREPARE:
24987 case NB_EV_ABORT:
24988 case NB_EV_APPLY:
24989 /* TODO: implement me. */
24990 break;
24991 }
24992
24993 return NB_OK;
24994 }
24995
24996 /*
24997 * XPath:
24998 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/route-reflector/route-reflector-client
24999 */
25000 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_route_reflector_route_reflector_client_modify(
25001 struct nb_cb_modify_args *args)
25002 {
25003 switch (args->event) {
25004 case NB_EV_VALIDATE:
25005 case NB_EV_PREPARE:
25006 case NB_EV_ABORT:
25007 return NB_OK;
25008 case NB_EV_APPLY:
25009 return bgp_neighbor_afi_safi_flag_modify(
25010 args, PEER_FLAG_REFLECTOR_CLIENT,
25011 yang_dnode_get_bool(args->dnode, NULL));
25012
25013 break;
25014 }
25015
25016 return NB_OK;
25017 }
25018
25019 /*
25020 * XPath:
25021 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/route-server/route-server-client
25022 */
25023 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_route_server_route_server_client_modify(
25024 struct nb_cb_modify_args *args)
25025 {
25026 switch (args->event) {
25027 case NB_EV_VALIDATE:
25028 case NB_EV_PREPARE:
25029 case NB_EV_ABORT:
25030 return NB_OK;
25031 case NB_EV_APPLY:
25032 return bgp_neighbor_afi_safi_flag_modify(
25033 args, PEER_FLAG_RSERVER_CLIENT,
25034 yang_dnode_get_bool(args->dnode, NULL));
25035
25036 break;
25037 }
25038
25039 return NB_OK;
25040 }
25041
25042 /*
25043 * XPath:
25044 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/soft-reconfiguration
25045 */
25046 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_soft_reconfiguration_modify(
25047 struct nb_cb_modify_args *args)
25048 {
25049 switch (args->event) {
25050 case NB_EV_VALIDATE:
25051 case NB_EV_PREPARE:
25052 case NB_EV_ABORT:
25053 return NB_OK;
25054 case NB_EV_APPLY:
25055 return bgp_neighbor_afi_safi_flag_modify(
25056 args, PEER_FLAG_SOFT_RECONFIG,
25057 yang_dnode_get_bool(args->dnode, NULL));
25058
25059 break;
25060 }
25061
25062 return NB_OK;
25063 }
25064
25065 /*
25066 * XPath:
25067 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/rmap-import
25068 */
25069 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_modify(
25070 struct nb_cb_modify_args *args)
25071 {
25072 switch (args->event) {
25073 case NB_EV_VALIDATE:
25074 case NB_EV_PREPARE:
25075 case NB_EV_ABORT:
25076 break;
25077 case NB_EV_APPLY:
25078 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
25079 }
25080
25081 return NB_OK;
25082 }
25083
25084 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_destroy(
25085 struct nb_cb_destroy_args *args)
25086 {
25087 switch (args->event) {
25088 case NB_EV_VALIDATE:
25089 case NB_EV_PREPARE:
25090 case NB_EV_ABORT:
25091 break;
25092 case NB_EV_APPLY:
25093 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
25094 }
25095
25096 return NB_OK;
25097 }
25098
25099 /*
25100 * XPath:
25101 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/rmap-export
25102 */
25103 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_modify(
25104 struct nb_cb_modify_args *args)
25105 {
25106 switch (args->event) {
25107 case NB_EV_VALIDATE:
25108 case NB_EV_PREPARE:
25109 case NB_EV_ABORT:
25110 break;
25111 case NB_EV_APPLY:
25112 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
25113 }
25114
25115 return NB_OK;
25116 }
25117
25118 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_destroy(
25119 struct nb_cb_destroy_args *args)
25120 {
25121 switch (args->event) {
25122 case NB_EV_VALIDATE:
25123 case NB_EV_PREPARE:
25124 case NB_EV_ABORT:
25125 break;
25126 case NB_EV_APPLY:
25127 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
25128 }
25129
25130 return NB_OK;
25131 }
25132
25133 /*
25134 * XPath:
25135 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/plist-import
25136 */
25137 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_modify(
25138 struct nb_cb_modify_args *args)
25139 {
25140 switch (args->event) {
25141 case NB_EV_VALIDATE:
25142 case NB_EV_PREPARE:
25143 case NB_EV_ABORT:
25144 break;
25145 case NB_EV_APPLY:
25146 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
25147 }
25148
25149 return NB_OK;
25150 }
25151
25152 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_destroy(
25153 struct nb_cb_destroy_args *args)
25154 {
25155 switch (args->event) {
25156 case NB_EV_VALIDATE:
25157 case NB_EV_PREPARE:
25158 case NB_EV_ABORT:
25159 break;
25160 case NB_EV_APPLY:
25161 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
25162 }
25163
25164 return NB_OK;
25165 }
25166
25167 /*
25168 * XPath:
25169 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/plist-export
25170 */
25171 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_modify(
25172 struct nb_cb_modify_args *args)
25173 {
25174 switch (args->event) {
25175 case NB_EV_VALIDATE:
25176 case NB_EV_PREPARE:
25177 case NB_EV_ABORT:
25178 break;
25179 case NB_EV_APPLY:
25180 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
25181 }
25182
25183 return NB_OK;
25184 }
25185
25186 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_destroy(
25187 struct nb_cb_destroy_args *args)
25188 {
25189 switch (args->event) {
25190 case NB_EV_VALIDATE:
25191 case NB_EV_PREPARE:
25192 case NB_EV_ABORT:
25193 break;
25194 case NB_EV_APPLY:
25195 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
25196 }
25197
25198 return NB_OK;
25199 }
25200
25201 /*
25202 * XPath:
25203 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/access-list-import
25204 */
25205 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_modify(
25206 struct nb_cb_modify_args *args)
25207 {
25208 switch (args->event) {
25209 case NB_EV_VALIDATE:
25210 case NB_EV_PREPARE:
25211 case NB_EV_ABORT:
25212 case NB_EV_APPLY:
25213 /* TODO: implement me. */
25214 break;
25215 }
25216
25217 return NB_OK;
25218 }
25219
25220 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_destroy(
25221 struct nb_cb_destroy_args *args)
25222 {
25223 switch (args->event) {
25224 case NB_EV_VALIDATE:
25225 case NB_EV_PREPARE:
25226 case NB_EV_ABORT:
25227 case NB_EV_APPLY:
25228 /* TODO: implement me. */
25229 break;
25230 }
25231
25232 return NB_OK;
25233 }
25234
25235 /*
25236 * XPath:
25237 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/access-list-export
25238 */
25239 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_modify(
25240 struct nb_cb_modify_args *args)
25241 {
25242 switch (args->event) {
25243 case NB_EV_VALIDATE:
25244 case NB_EV_PREPARE:
25245 case NB_EV_ABORT:
25246 case NB_EV_APPLY:
25247 /* TODO: implement me. */
25248 break;
25249 }
25250
25251 return NB_OK;
25252 }
25253
25254 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_destroy(
25255 struct nb_cb_destroy_args *args)
25256 {
25257 switch (args->event) {
25258 case NB_EV_VALIDATE:
25259 case NB_EV_PREPARE:
25260 case NB_EV_ABORT:
25261 case NB_EV_APPLY:
25262 /* TODO: implement me. */
25263 break;
25264 }
25265
25266 return NB_OK;
25267 }
25268
25269 /*
25270 * XPath:
25271 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/as-path-filter-list-import
25272 */
25273 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_modify(
25274 struct nb_cb_modify_args *args)
25275 {
25276 switch (args->event) {
25277 case NB_EV_VALIDATE:
25278 case NB_EV_PREPARE:
25279 case NB_EV_ABORT:
25280 case NB_EV_APPLY:
25281 /* TODO: implement me. */
25282 break;
25283 }
25284
25285 return NB_OK;
25286 }
25287
25288 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_destroy(
25289 struct nb_cb_destroy_args *args)
25290 {
25291 switch (args->event) {
25292 case NB_EV_VALIDATE:
25293 case NB_EV_PREPARE:
25294 case NB_EV_ABORT:
25295 case NB_EV_APPLY:
25296 /* TODO: implement me. */
25297 break;
25298 }
25299
25300 return NB_OK;
25301 }
25302
25303 /*
25304 * XPath:
25305 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/as-path-filter-list-export
25306 */
25307 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_modify(
25308 struct nb_cb_modify_args *args)
25309 {
25310 switch (args->event) {
25311 case NB_EV_VALIDATE:
25312 case NB_EV_PREPARE:
25313 case NB_EV_ABORT:
25314 case NB_EV_APPLY:
25315 /* TODO: implement me. */
25316 break;
25317 }
25318
25319 return NB_OK;
25320 }
25321
25322 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_destroy(
25323 struct nb_cb_destroy_args *args)
25324 {
25325 switch (args->event) {
25326 case NB_EV_VALIDATE:
25327 case NB_EV_PREPARE:
25328 case NB_EV_ABORT:
25329 case NB_EV_APPLY:
25330 /* TODO: implement me. */
25331 break;
25332 }
25333
25334 return NB_OK;
25335 }
25336
25337 /*
25338 * XPath:
25339 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/unsuppress-map-import
25340 */
25341 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_modify(
25342 struct nb_cb_modify_args *args)
25343 {
25344 switch (args->event) {
25345 case NB_EV_VALIDATE:
25346 case NB_EV_PREPARE:
25347 case NB_EV_ABORT:
25348 case NB_EV_APPLY:
25349 /* TODO: implement me. */
25350 break;
25351 }
25352
25353 return NB_OK;
25354 }
25355
25356 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_destroy(
25357 struct nb_cb_destroy_args *args)
25358 {
25359 switch (args->event) {
25360 case NB_EV_VALIDATE:
25361 case NB_EV_PREPARE:
25362 case NB_EV_ABORT:
25363 case NB_EV_APPLY:
25364 /* TODO: implement me. */
25365 break;
25366 }
25367
25368 return NB_OK;
25369 }
25370
25371 /*
25372 * XPath:
25373 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/unsuppress-map-export
25374 */
25375 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_modify(
25376 struct nb_cb_modify_args *args)
25377 {
25378 switch (args->event) {
25379 case NB_EV_VALIDATE:
25380 case NB_EV_PREPARE:
25381 case NB_EV_ABORT:
25382 case NB_EV_APPLY:
25383 /* TODO: implement me. */
25384 break;
25385 }
25386
25387 return NB_OK;
25388 }
25389
25390 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_destroy(
25391 struct nb_cb_destroy_args *args)
25392 {
25393 switch (args->event) {
25394 case NB_EV_VALIDATE:
25395 case NB_EV_PREPARE:
25396 case NB_EV_ABORT:
25397 case NB_EV_APPLY:
25398 /* TODO: implement me. */
25399 break;
25400 }
25401
25402 return NB_OK;
25403 }
25404
25405 /*
25406 * XPath:
25407 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/route-reflector/route-reflector-client
25408 */
25409 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_route_reflector_route_reflector_client_modify(
25410 struct nb_cb_modify_args *args)
25411 {
25412 switch (args->event) {
25413 case NB_EV_VALIDATE:
25414 case NB_EV_PREPARE:
25415 case NB_EV_ABORT:
25416 return NB_OK;
25417 case NB_EV_APPLY:
25418 return bgp_neighbor_afi_safi_flag_modify(
25419 args, PEER_FLAG_REFLECTOR_CLIENT,
25420 yang_dnode_get_bool(args->dnode, NULL));
25421
25422 break;
25423 }
25424
25425 return NB_OK;
25426 }
25427
25428 /*
25429 * XPath:
25430 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/route-server/route-server-client
25431 */
25432 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_route_server_route_server_client_modify(
25433 struct nb_cb_modify_args *args)
25434 {
25435 switch (args->event) {
25436 case NB_EV_VALIDATE:
25437 case NB_EV_PREPARE:
25438 case NB_EV_ABORT:
25439 return NB_OK;
25440 case NB_EV_APPLY:
25441 return bgp_neighbor_afi_safi_flag_modify(
25442 args, PEER_FLAG_RSERVER_CLIENT,
25443 yang_dnode_get_bool(args->dnode, NULL));
25444
25445 break;
25446 }
25447
25448 return NB_OK;
25449 }
25450
25451 /*
25452 * XPath:
25453 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/soft-reconfiguration
25454 */
25455 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_soft_reconfiguration_modify(
25456 struct nb_cb_modify_args *args)
25457 {
25458 switch (args->event) {
25459 case NB_EV_VALIDATE:
25460 case NB_EV_PREPARE:
25461 case NB_EV_ABORT:
25462 return NB_OK;
25463 case NB_EV_APPLY:
25464 return bgp_neighbor_afi_safi_flag_modify(
25465 args, PEER_FLAG_SOFT_RECONFIG,
25466 yang_dnode_get_bool(args->dnode, NULL));
25467
25468 break;
25469 }
25470
25471 return NB_OK;
25472 }
25473
25474 /*
25475 * XPath:
25476 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/rmap-import
25477 */
25478 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_modify(
25479 struct nb_cb_modify_args *args)
25480 {
25481 switch (args->event) {
25482 case NB_EV_VALIDATE:
25483 case NB_EV_PREPARE:
25484 case NB_EV_ABORT:
25485 break;
25486 case NB_EV_APPLY:
25487 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
25488 }
25489
25490 return NB_OK;
25491 }
25492
25493 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_destroy(
25494 struct nb_cb_destroy_args *args)
25495 {
25496 switch (args->event) {
25497 case NB_EV_VALIDATE:
25498 case NB_EV_PREPARE:
25499 case NB_EV_ABORT:
25500 break;
25501 case NB_EV_APPLY:
25502 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
25503 }
25504
25505 return NB_OK;
25506 }
25507
25508 /*
25509 * XPath:
25510 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/rmap-export
25511 */
25512 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_modify(
25513 struct nb_cb_modify_args *args)
25514 {
25515 switch (args->event) {
25516 case NB_EV_VALIDATE:
25517 case NB_EV_PREPARE:
25518 case NB_EV_ABORT:
25519 break;
25520 case NB_EV_APPLY:
25521 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
25522 }
25523
25524 return NB_OK;
25525 }
25526
25527 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_destroy(
25528 struct nb_cb_destroy_args *args)
25529 {
25530 switch (args->event) {
25531 case NB_EV_VALIDATE:
25532 case NB_EV_PREPARE:
25533 case NB_EV_ABORT:
25534 break;
25535 case NB_EV_APPLY:
25536 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
25537 }
25538
25539 return NB_OK;
25540 }
25541
25542 /*
25543 * XPath:
25544 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/plist-import
25545 */
25546 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_modify(
25547 struct nb_cb_modify_args *args)
25548 {
25549 switch (args->event) {
25550 case NB_EV_VALIDATE:
25551 case NB_EV_PREPARE:
25552 case NB_EV_ABORT:
25553 break;
25554 case NB_EV_APPLY:
25555 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
25556 }
25557
25558 return NB_OK;
25559 }
25560
25561 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_destroy(
25562 struct nb_cb_destroy_args *args)
25563 {
25564 switch (args->event) {
25565 case NB_EV_VALIDATE:
25566 case NB_EV_PREPARE:
25567 case NB_EV_ABORT:
25568 break;
25569 case NB_EV_APPLY:
25570 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
25571 }
25572
25573 return NB_OK;
25574 }
25575
25576 /*
25577 * XPath:
25578 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/plist-export
25579 */
25580 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_modify(
25581 struct nb_cb_modify_args *args)
25582 {
25583 switch (args->event) {
25584 case NB_EV_VALIDATE:
25585 case NB_EV_PREPARE:
25586 case NB_EV_ABORT:
25587 break;
25588 case NB_EV_APPLY:
25589 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
25590 }
25591
25592 return NB_OK;
25593 }
25594
25595 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_destroy(
25596 struct nb_cb_destroy_args *args)
25597 {
25598 switch (args->event) {
25599 case NB_EV_VALIDATE:
25600 case NB_EV_PREPARE:
25601 case NB_EV_ABORT:
25602 break;
25603 case NB_EV_APPLY:
25604 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
25605 }
25606
25607 return NB_OK;
25608 }
25609
25610 /*
25611 * XPath:
25612 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/access-list-import
25613 */
25614 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_modify(
25615 struct nb_cb_modify_args *args)
25616 {
25617 switch (args->event) {
25618 case NB_EV_VALIDATE:
25619 case NB_EV_PREPARE:
25620 case NB_EV_ABORT:
25621 case NB_EV_APPLY:
25622 /* TODO: implement me. */
25623 break;
25624 }
25625
25626 return NB_OK;
25627 }
25628
25629 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_destroy(
25630 struct nb_cb_destroy_args *args)
25631 {
25632 switch (args->event) {
25633 case NB_EV_VALIDATE:
25634 case NB_EV_PREPARE:
25635 case NB_EV_ABORT:
25636 case NB_EV_APPLY:
25637 /* TODO: implement me. */
25638 break;
25639 }
25640
25641 return NB_OK;
25642 }
25643
25644 /*
25645 * XPath:
25646 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/access-list-export
25647 */
25648 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_modify(
25649 struct nb_cb_modify_args *args)
25650 {
25651 switch (args->event) {
25652 case NB_EV_VALIDATE:
25653 case NB_EV_PREPARE:
25654 case NB_EV_ABORT:
25655 case NB_EV_APPLY:
25656 /* TODO: implement me. */
25657 break;
25658 }
25659
25660 return NB_OK;
25661 }
25662
25663 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_destroy(
25664 struct nb_cb_destroy_args *args)
25665 {
25666 switch (args->event) {
25667 case NB_EV_VALIDATE:
25668 case NB_EV_PREPARE:
25669 case NB_EV_ABORT:
25670 case NB_EV_APPLY:
25671 /* TODO: implement me. */
25672 break;
25673 }
25674
25675 return NB_OK;
25676 }
25677
25678 /*
25679 * XPath:
25680 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/as-path-filter-list-import
25681 */
25682 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_modify(
25683 struct nb_cb_modify_args *args)
25684 {
25685 switch (args->event) {
25686 case NB_EV_VALIDATE:
25687 case NB_EV_PREPARE:
25688 case NB_EV_ABORT:
25689 case NB_EV_APPLY:
25690 /* TODO: implement me. */
25691 break;
25692 }
25693
25694 return NB_OK;
25695 }
25696
25697 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_destroy(
25698 struct nb_cb_destroy_args *args)
25699 {
25700 switch (args->event) {
25701 case NB_EV_VALIDATE:
25702 case NB_EV_PREPARE:
25703 case NB_EV_ABORT:
25704 case NB_EV_APPLY:
25705 /* TODO: implement me. */
25706 break;
25707 }
25708
25709 return NB_OK;
25710 }
25711
25712 /*
25713 * XPath:
25714 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/as-path-filter-list-export
25715 */
25716 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_modify(
25717 struct nb_cb_modify_args *args)
25718 {
25719 switch (args->event) {
25720 case NB_EV_VALIDATE:
25721 case NB_EV_PREPARE:
25722 case NB_EV_ABORT:
25723 case NB_EV_APPLY:
25724 /* TODO: implement me. */
25725 break;
25726 }
25727
25728 return NB_OK;
25729 }
25730
25731 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_destroy(
25732 struct nb_cb_destroy_args *args)
25733 {
25734 switch (args->event) {
25735 case NB_EV_VALIDATE:
25736 case NB_EV_PREPARE:
25737 case NB_EV_ABORT:
25738 case NB_EV_APPLY:
25739 /* TODO: implement me. */
25740 break;
25741 }
25742
25743 return NB_OK;
25744 }
25745
25746 /*
25747 * XPath:
25748 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/unsuppress-map-import
25749 */
25750 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_modify(
25751 struct nb_cb_modify_args *args)
25752 {
25753 switch (args->event) {
25754 case NB_EV_VALIDATE:
25755 case NB_EV_PREPARE:
25756 case NB_EV_ABORT:
25757 case NB_EV_APPLY:
25758 /* TODO: implement me. */
25759 break;
25760 }
25761
25762 return NB_OK;
25763 }
25764
25765 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_destroy(
25766 struct nb_cb_destroy_args *args)
25767 {
25768 switch (args->event) {
25769 case NB_EV_VALIDATE:
25770 case NB_EV_PREPARE:
25771 case NB_EV_ABORT:
25772 case NB_EV_APPLY:
25773 /* TODO: implement me. */
25774 break;
25775 }
25776
25777 return NB_OK;
25778 }
25779
25780 /*
25781 * XPath:
25782 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/unsuppress-map-export
25783 */
25784 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_modify(
25785 struct nb_cb_modify_args *args)
25786 {
25787 switch (args->event) {
25788 case NB_EV_VALIDATE:
25789 case NB_EV_PREPARE:
25790 case NB_EV_ABORT:
25791 case NB_EV_APPLY:
25792 /* TODO: implement me. */
25793 break;
25794 }
25795
25796 return NB_OK;
25797 }
25798
25799 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_destroy(
25800 struct nb_cb_destroy_args *args)
25801 {
25802 switch (args->event) {
25803 case NB_EV_VALIDATE:
25804 case NB_EV_PREPARE:
25805 case NB_EV_ABORT:
25806 case NB_EV_APPLY:
25807 /* TODO: implement me. */
25808 break;
25809 }
25810
25811 return NB_OK;
25812 }
25813
25814 static int
25815 bgp_unnumbered_neighbor_afi_safi_flag_modify(struct nb_cb_modify_args *args,
25816 uint32_t flags, bool set)
25817 {
25818 struct bgp *bgp;
25819 const char *peer_str;
25820 struct peer *peer;
25821 const struct lyd_node *nbr_dnode;
25822 const struct lyd_node *nbr_af_dnode;
25823 const char *af_name;
25824 afi_t afi;
25825 safi_t safi;
25826
25827 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
25828 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
25829 yang_afi_safi_identity2value(af_name, &afi, &safi);
25830
25831 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
25832 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
25833 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
25834 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
25835 args->errmsg_len);
25836
25837 if (peer_af_flag_modify_nb(peer, afi, safi, flags, set, args->errmsg,
25838 args->errmsg_len)
25839 < 0)
25840 return NB_ERR_INCONSISTENCY;
25841
25842 return NB_OK;
25843 }
25844
25845 /*
25846 * XPath:
25847 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/add-paths/path-type
25848 */
25849 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_add_paths_path_type_modify(
25850 struct nb_cb_modify_args *args)
25851 {
25852 switch (args->event) {
25853 case NB_EV_VALIDATE:
25854 case NB_EV_PREPARE:
25855 case NB_EV_ABORT:
25856 case NB_EV_APPLY:
25857 /* TODO: implement me. */
25858 break;
25859 }
25860
25861 return NB_OK;
25862 }
25863
25864 /*
25865 * XPath:
25866 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/as-path-options/allow-own-as
25867 */
25868 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_modify(
25869 struct nb_cb_modify_args *args)
25870 {
25871 switch (args->event) {
25872 case NB_EV_VALIDATE:
25873 case NB_EV_PREPARE:
25874 case NB_EV_ABORT:
25875 case NB_EV_APPLY:
25876 /* TODO: implement me. */
25877 break;
25878 }
25879
25880 return NB_OK;
25881 }
25882
25883 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_destroy(
25884 struct nb_cb_destroy_args *args)
25885 {
25886 switch (args->event) {
25887 case NB_EV_VALIDATE:
25888 case NB_EV_PREPARE:
25889 case NB_EV_ABORT:
25890 case NB_EV_APPLY:
25891 /* TODO: implement me. */
25892 break;
25893 }
25894
25895 return NB_OK;
25896 }
25897
25898 /*
25899 * XPath:
25900 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/as-path-options/allow-own-origin-as
25901 */
25902 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
25903 struct nb_cb_modify_args *args)
25904 {
25905 switch (args->event) {
25906 case NB_EV_VALIDATE:
25907 case NB_EV_PREPARE:
25908 case NB_EV_ABORT:
25909 case NB_EV_APPLY:
25910 /* TODO: implement me. */
25911 break;
25912 }
25913
25914 return NB_OK;
25915 }
25916
25917 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
25918 struct nb_cb_destroy_args *args)
25919 {
25920 switch (args->event) {
25921 case NB_EV_VALIDATE:
25922 case NB_EV_PREPARE:
25923 case NB_EV_ABORT:
25924 case NB_EV_APPLY:
25925 /* TODO: implement me. */
25926 break;
25927 }
25928
25929 return NB_OK;
25930 }
25931
25932 /*
25933 * XPath:
25934 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/as-path-options/replace-peer-as
25935 */
25936 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_replace_peer_as_modify(
25937 struct nb_cb_modify_args *args)
25938 {
25939 switch (args->event) {
25940 case NB_EV_VALIDATE:
25941 case NB_EV_PREPARE:
25942 case NB_EV_ABORT:
25943 return NB_OK;
25944 case NB_EV_APPLY:
25945 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
25946 args, PEER_FLAG_AS_OVERRIDE,
25947 yang_dnode_get_bool(args->dnode, NULL));
25948
25949 break;
25950 }
25951
25952 return NB_OK;
25953 }
25954
25955 /*
25956 * XPath:
25957 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate
25958 */
25959 void bgp_unnumbered_neighbor_afi_safi_default_originate_apply_finish(
25960 struct nb_cb_apply_finish_args *args)
25961 {
25962 struct bgp *bgp;
25963 const char *peer_str;
25964 struct peer *peer;
25965 const struct lyd_node *nbr_dnode;
25966 const struct lyd_node *nbr_af_dnode;
25967 const char *af_name;
25968 afi_t afi;
25969 safi_t safi;
25970
25971 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
25972 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
25973 yang_afi_safi_identity2value(af_name, &afi, &safi);
25974
25975 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
25976 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
25977 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
25978 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
25979 args->errmsg_len);
25980 if (!peer)
25981 return;
25982
25983 bgp_peer_afi_safi_default_originate_apply(args, peer, afi, safi);
25984 }
25985
25986 /*
25987 * XPath:
25988 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate/originate
25989 */
25990 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_originate_modify(
25991 struct nb_cb_modify_args *args)
25992 {
25993 switch (args->event) {
25994 case NB_EV_VALIDATE:
25995 case NB_EV_PREPARE:
25996 case NB_EV_ABORT:
25997 case NB_EV_APPLY:
25998 /* TODO: implement me. */
25999 break;
26000 }
26001
26002 return NB_OK;
26003 }
26004
26005 /*
26006 * XPath:
26007 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate/route-map
26008 */
26009 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_modify(
26010 struct nb_cb_modify_args *args)
26011 {
26012 switch (args->event) {
26013 case NB_EV_VALIDATE:
26014 case NB_EV_PREPARE:
26015 case NB_EV_ABORT:
26016 case NB_EV_APPLY:
26017 /* TODO: implement me. */
26018 break;
26019 }
26020
26021 return NB_OK;
26022 }
26023
26024 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_destroy(
26025 struct nb_cb_destroy_args *args)
26026 {
26027 switch (args->event) {
26028 case NB_EV_VALIDATE:
26029 case NB_EV_PREPARE:
26030 case NB_EV_ABORT:
26031 case NB_EV_APPLY:
26032 /* TODO: implement me. */
26033 break;
26034 }
26035
26036 return NB_OK;
26037 }
26038
26039 static int bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
26040 struct nb_cb_destroy_args *args)
26041 {
26042 struct bgp *bgp;
26043 const char *peer_str;
26044 struct peer *peer;
26045 const struct lyd_node *nbr_dnode;
26046 const struct lyd_node *nbr_af_dnode;
26047 const char *af_name;
26048 afi_t afi;
26049 safi_t safi;
26050 int direction;
26051
26052 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
26053 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
26054 yang_afi_safi_identity2value(af_name, &afi, &safi);
26055
26056 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
26057 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
26058 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
26059 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
26060 args->errmsg_len);
26061 if (!peer)
26062 return NB_ERR_INCONSISTENCY;
26063
26064 direction = yang_dnode_get_enum(args->dnode, "./direction");
26065
26066 switch (direction) {
26067 case 1:
26068 peer_maximum_prefix_unset(peer, afi, safi);
26069 break;
26070 case 2:
26071 UNSET_FLAG(peer->af_flags[afi][safi], PEER_FLAG_MAX_PREFIX_OUT);
26072 peer->pmax_out[afi][safi] = 0;
26073 break;
26074 }
26075
26076 return NB_OK;
26077 }
26078
26079 /*
26080 * XPath:
26081 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list
26082 */
26083 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_create(
26084 struct nb_cb_create_args *args)
26085 {
26086 switch (args->event) {
26087 case NB_EV_VALIDATE:
26088 case NB_EV_PREPARE:
26089 case NB_EV_ABORT:
26090 case NB_EV_APPLY:
26091 /* TODO: implement me. */
26092 break;
26093 }
26094
26095 return NB_OK;
26096 }
26097
26098 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_destroy(
26099 struct nb_cb_destroy_args *args)
26100 {
26101 switch (args->event) {
26102 case NB_EV_VALIDATE:
26103 case NB_EV_PREPARE:
26104 case NB_EV_ABORT:
26105 return NB_OK;
26106 case NB_EV_APPLY:
26107 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
26108 args);
26109 }
26110
26111 return NB_OK;
26112 }
26113
26114 void bgp_unnumbered_neighbor_afi_safi_prefix_limit_apply_finish(
26115 struct nb_cb_apply_finish_args *args)
26116 {
26117 struct bgp *bgp;
26118 const char *peer_str;
26119 struct peer *peer;
26120 const struct lyd_node *nbr_dnode;
26121 const struct lyd_node *nbr_af_dnode;
26122 const char *af_name;
26123 afi_t afi;
26124 safi_t safi;
26125
26126 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
26127 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
26128 yang_afi_safi_identity2value(af_name, &afi, &safi);
26129
26130 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
26131 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
26132 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
26133 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
26134 args->errmsg_len);
26135 if (!peer)
26136 return;
26137
26138 bgp_peer_afi_safi_maximum_prefix_set(args, peer, afi, safi);
26139 }
26140
26141 /*
26142 * XPath:
26143 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/max-prefixes
26144 */
26145 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
26146 struct nb_cb_modify_args *args)
26147 {
26148 switch (args->event) {
26149 case NB_EV_VALIDATE:
26150 case NB_EV_PREPARE:
26151 case NB_EV_ABORT:
26152 case NB_EV_APPLY:
26153 /* TODO: implement me. */
26154 break;
26155 }
26156
26157 return NB_OK;
26158 }
26159
26160 /*
26161 * XPath:
26162 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/force-check
26163 */
26164 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
26165 struct nb_cb_modify_args *args)
26166 {
26167 switch (args->event) {
26168 case NB_EV_VALIDATE:
26169 case NB_EV_PREPARE:
26170 case NB_EV_ABORT:
26171 case NB_EV_APPLY:
26172 /* TODO: implement me. */
26173 break;
26174 }
26175
26176 return NB_OK;
26177 }
26178
26179 /*
26180 * XPath:
26181 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/warning-only
26182 */
26183 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
26184 struct nb_cb_modify_args *args)
26185 {
26186 switch (args->event) {
26187 case NB_EV_VALIDATE:
26188 case NB_EV_PREPARE:
26189 case NB_EV_ABORT:
26190 case NB_EV_APPLY:
26191 /* TODO: implement me. */
26192 break;
26193 }
26194
26195 return NB_OK;
26196 }
26197
26198 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
26199 struct nb_cb_destroy_args *args)
26200 {
26201 switch (args->event) {
26202 case NB_EV_VALIDATE:
26203 case NB_EV_PREPARE:
26204 case NB_EV_ABORT:
26205 case NB_EV_APPLY:
26206 /* TODO: implement me. */
26207 break;
26208 }
26209
26210 return NB_OK;
26211 }
26212
26213 /*
26214 * XPath:
26215 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/restart-timer
26216 */
26217 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
26218 struct nb_cb_modify_args *args)
26219 {
26220 switch (args->event) {
26221 case NB_EV_VALIDATE:
26222 case NB_EV_PREPARE:
26223 case NB_EV_ABORT:
26224 case NB_EV_APPLY:
26225 /* TODO: implement me. */
26226 break;
26227 }
26228
26229 return NB_OK;
26230 }
26231
26232 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
26233 struct nb_cb_destroy_args *args)
26234 {
26235 switch (args->event) {
26236 case NB_EV_VALIDATE:
26237 case NB_EV_PREPARE:
26238 case NB_EV_ABORT:
26239 case NB_EV_APPLY:
26240 /* TODO: implement me. */
26241 break;
26242 }
26243
26244 return NB_OK;
26245 }
26246
26247 /*
26248 * XPath:
26249 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
26250 */
26251 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
26252 struct nb_cb_modify_args *args)
26253 {
26254 switch (args->event) {
26255 case NB_EV_VALIDATE:
26256 case NB_EV_PREPARE:
26257 case NB_EV_ABORT:
26258 case NB_EV_APPLY:
26259 /* TODO: implement me. */
26260 break;
26261 }
26262
26263 return NB_OK;
26264 }
26265
26266 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
26267 struct nb_cb_destroy_args *args)
26268 {
26269 switch (args->event) {
26270 case NB_EV_VALIDATE:
26271 case NB_EV_PREPARE:
26272 case NB_EV_ABORT:
26273 case NB_EV_APPLY:
26274 /* TODO: implement me. */
26275 break;
26276 }
26277
26278 return NB_OK;
26279 }
26280
26281 /*
26282 * XPath:
26283 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
26284 */
26285 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
26286 struct nb_cb_modify_args *args)
26287 {
26288 switch (args->event) {
26289 case NB_EV_VALIDATE:
26290 case NB_EV_PREPARE:
26291 case NB_EV_ABORT:
26292 case NB_EV_APPLY:
26293 /* TODO: implement me. */
26294 break;
26295 }
26296
26297 return NB_OK;
26298 }
26299
26300 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
26301 struct nb_cb_destroy_args *args)
26302 {
26303 switch (args->event) {
26304 case NB_EV_VALIDATE:
26305 case NB_EV_PREPARE:
26306 case NB_EV_ABORT:
26307 case NB_EV_APPLY:
26308 /* TODO: implement me. */
26309 break;
26310 }
26311
26312 return NB_OK;
26313 }
26314
26315 /*
26316 * XPath:
26317 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tr-restart-timer
26318 */
26319 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
26320 struct nb_cb_modify_args *args)
26321 {
26322 switch (args->event) {
26323 case NB_EV_VALIDATE:
26324 case NB_EV_PREPARE:
26325 case NB_EV_ABORT:
26326 case NB_EV_APPLY:
26327 /* TODO: implement me. */
26328 break;
26329 }
26330
26331 return NB_OK;
26332 }
26333
26334 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
26335 struct nb_cb_destroy_args *args)
26336 {
26337 switch (args->event) {
26338 case NB_EV_VALIDATE:
26339 case NB_EV_PREPARE:
26340 case NB_EV_ABORT:
26341 case NB_EV_APPLY:
26342 /* TODO: implement me. */
26343 break;
26344 }
26345
26346 return NB_OK;
26347 }
26348
26349 /*
26350 * XPath:
26351 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
26352 */
26353 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
26354 struct nb_cb_modify_args *args)
26355 {
26356 switch (args->event) {
26357 case NB_EV_VALIDATE:
26358 case NB_EV_PREPARE:
26359 case NB_EV_ABORT:
26360 case NB_EV_APPLY:
26361 /* TODO: implement me. */
26362 break;
26363 }
26364
26365 return NB_OK;
26366 }
26367
26368 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
26369 struct nb_cb_destroy_args *args)
26370 {
26371 switch (args->event) {
26372 case NB_EV_VALIDATE:
26373 case NB_EV_PREPARE:
26374 case NB_EV_ABORT:
26375 case NB_EV_APPLY:
26376 /* TODO: implement me. */
26377 break;
26378 }
26379
26380 return NB_OK;
26381 }
26382
26383 /*
26384 * XPath:
26385 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tw-warning-only
26386 */
26387 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
26388 struct nb_cb_modify_args *args)
26389 {
26390 switch (args->event) {
26391 case NB_EV_VALIDATE:
26392 case NB_EV_PREPARE:
26393 case NB_EV_ABORT:
26394 case NB_EV_APPLY:
26395 /* TODO: implement me. */
26396 break;
26397 }
26398
26399 return NB_OK;
26400 }
26401
26402 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
26403 struct nb_cb_destroy_args *args)
26404 {
26405 switch (args->event) {
26406 case NB_EV_VALIDATE:
26407 case NB_EV_PREPARE:
26408 case NB_EV_ABORT:
26409 case NB_EV_APPLY:
26410 /* TODO: implement me. */
26411 break;
26412 }
26413
26414 return NB_OK;
26415 }
26416
26417 /*
26418 * XPath:
26419 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/nexthop-self/next-hop-self
26420 */
26421 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_modify(
26422 struct nb_cb_modify_args *args)
26423 {
26424 switch (args->event) {
26425 case NB_EV_VALIDATE:
26426 case NB_EV_PREPARE:
26427 case NB_EV_ABORT:
26428 return NB_OK;
26429 case NB_EV_APPLY:
26430 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26431 args, PEER_FLAG_NEXTHOP_SELF,
26432 yang_dnode_get_bool(args->dnode, NULL));
26433
26434 break;
26435 }
26436
26437 return NB_OK;
26438 }
26439
26440 /*
26441 * XPath:
26442 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/nexthop-self/next-hop-self-force
26443 */
26444 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
26445 struct nb_cb_modify_args *args)
26446 {
26447 switch (args->event) {
26448 case NB_EV_VALIDATE:
26449 case NB_EV_PREPARE:
26450 case NB_EV_ABORT:
26451 return NB_OK;
26452 case NB_EV_APPLY:
26453 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26454 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
26455 yang_dnode_get_bool(args->dnode, NULL));
26456
26457 break;
26458 }
26459
26460 return NB_OK;
26461 }
26462
26463 /*
26464 * XPath:
26465 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as-all
26466 */
26467 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_modify(
26468 struct nb_cb_modify_args *args)
26469 {
26470 switch (args->event) {
26471 case NB_EV_VALIDATE:
26472 case NB_EV_PREPARE:
26473 case NB_EV_ABORT:
26474 return NB_OK;
26475 case NB_EV_APPLY:
26476 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26477 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
26478 yang_dnode_get_bool(args->dnode, NULL));
26479
26480 break;
26481 }
26482
26483 return NB_OK;
26484 }
26485
26486 /*
26487 * XPath:
26488 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as-all-replace
26489 */
26490 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
26491 struct nb_cb_modify_args *args)
26492 {
26493 switch (args->event) {
26494 case NB_EV_VALIDATE:
26495 case NB_EV_PREPARE:
26496 case NB_EV_ABORT:
26497 return NB_OK;
26498 case NB_EV_APPLY:
26499 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26500 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
26501 yang_dnode_get_bool(args->dnode, NULL));
26502
26503 break;
26504 }
26505
26506 return NB_OK;
26507 }
26508
26509 /*
26510 * XPath:
26511 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as
26512 */
26513 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_modify(
26514 struct nb_cb_modify_args *args)
26515 {
26516 switch (args->event) {
26517 case NB_EV_VALIDATE:
26518 case NB_EV_PREPARE:
26519 case NB_EV_ABORT:
26520 return NB_OK;
26521 case NB_EV_APPLY:
26522 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26523 args, PEER_FLAG_REMOVE_PRIVATE_AS,
26524 yang_dnode_get_bool(args->dnode, NULL));
26525
26526 break;
26527 }
26528
26529 return NB_OK;
26530 }
26531
26532 /*
26533 * XPath:
26534 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as-replace
26535 */
26536 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_replace_modify(
26537 struct nb_cb_modify_args *args)
26538 {
26539 switch (args->event) {
26540 case NB_EV_VALIDATE:
26541 case NB_EV_PREPARE:
26542 case NB_EV_ABORT:
26543 return NB_OK;
26544 case NB_EV_APPLY:
26545 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26546 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
26547 yang_dnode_get_bool(args->dnode, NULL));
26548
26549 break;
26550 }
26551
26552 return NB_OK;
26553 }
26554
26555 static int
26556 bgp_unnumbered_neighbor_afi_safi_weight_modify(struct nb_cb_modify_args *args)
26557 {
26558 struct bgp *bgp;
26559 const char *peer_str;
26560 struct peer *peer;
26561 const struct lyd_node *nbr_dnode;
26562 const char *af_name;
26563 uint16_t weight;
26564 afi_t afi;
26565 safi_t safi;
26566 const struct lyd_node *nbr_af_dnode;
26567 int ret;
26568
26569 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
26570 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
26571 yang_afi_safi_identity2value(af_name, &afi, &safi);
26572
26573 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
26574 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
26575 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
26576 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
26577 args->errmsg_len);
26578
26579 weight = yang_dnode_get_uint16(args->dnode, NULL);
26580
26581 ret = peer_weight_set(peer, afi, safi, weight);
26582 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
26583 return NB_ERR_INCONSISTENCY;
26584
26585 return NB_OK;
26586 }
26587
26588 static int
26589 bgp_unnumbered_neighbor_afi_safi_weight_destroy(struct nb_cb_destroy_args *args)
26590 {
26591 struct bgp *bgp;
26592 const char *peer_str;
26593 struct peer *peer;
26594 const struct lyd_node *nbr_dnode;
26595 const struct lyd_node *nbr_af_dnode;
26596 const char *af_name;
26597 afi_t afi;
26598 safi_t safi;
26599 int ret;
26600
26601 bgp = nb_running_get_entry(args->dnode, NULL, true);
26602 nbr_dnode = yang_dnode_get_parent(args->dnode, "unnumbered-neighbor");
26603 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
26604 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
26605 args->errmsg_len);
26606 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
26607 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
26608 yang_afi_safi_identity2value(af_name, &afi, &safi);
26609
26610 ret = peer_weight_unset(peer, afi, safi);
26611 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
26612 return NB_ERR_INCONSISTENCY;
26613
26614 return NB_OK;
26615 }
26616
26617 /*
26618 * XPath:
26619 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/weight/weight-attribute
26620 */
26621 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_modify(
26622 struct nb_cb_modify_args *args)
26623 {
26624 switch (args->event) {
26625 case NB_EV_VALIDATE:
26626 case NB_EV_PREPARE:
26627 case NB_EV_ABORT:
26628 return NB_OK;
26629 case NB_EV_APPLY:
26630 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
26631
26632 break;
26633 }
26634
26635 return NB_OK;
26636 }
26637
26638 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_destroy(
26639 struct nb_cb_destroy_args *args)
26640 {
26641 switch (args->event) {
26642 case NB_EV_VALIDATE:
26643 case NB_EV_PREPARE:
26644 case NB_EV_ABORT:
26645 return NB_OK;
26646 case NB_EV_APPLY:
26647 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
26648
26649 break;
26650 }
26651
26652 return NB_OK;
26653 }
26654
26655 /*
26656 * XPath:
26657 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/route-reflector/route-reflector-client
26658 */
26659 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_route_reflector_route_reflector_client_modify(
26660 struct nb_cb_modify_args *args)
26661 {
26662 switch (args->event) {
26663 case NB_EV_VALIDATE:
26664 case NB_EV_PREPARE:
26665 case NB_EV_ABORT:
26666 return NB_OK;
26667 case NB_EV_APPLY:
26668 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26669 args, PEER_FLAG_REFLECTOR_CLIENT,
26670 yang_dnode_get_bool(args->dnode, NULL));
26671
26672 break;
26673 }
26674
26675 return NB_OK;
26676 }
26677
26678 /*
26679 * XPath:
26680 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/route-server/route-server-client
26681 */
26682 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_route_server_route_server_client_modify(
26683 struct nb_cb_modify_args *args)
26684 {
26685 switch (args->event) {
26686 case NB_EV_VALIDATE:
26687 case NB_EV_PREPARE:
26688 case NB_EV_ABORT:
26689 return NB_OK;
26690 case NB_EV_APPLY:
26691 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26692 args, PEER_FLAG_RSERVER_CLIENT,
26693 yang_dnode_get_bool(args->dnode, NULL));
26694
26695 break;
26696 }
26697
26698 return NB_OK;
26699 }
26700
26701 /*
26702 * XPath:
26703 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/send-community/send-community
26704 */
26705 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_community_modify(
26706 struct nb_cb_modify_args *args)
26707 {
26708 switch (args->event) {
26709 case NB_EV_VALIDATE:
26710 case NB_EV_PREPARE:
26711 case NB_EV_ABORT:
26712 return NB_OK;
26713 case NB_EV_APPLY:
26714 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26715 args, PEER_FLAG_SEND_COMMUNITY,
26716 yang_dnode_get_bool(args->dnode, NULL));
26717
26718 break;
26719 }
26720
26721 return NB_OK;
26722 }
26723
26724 /*
26725 * XPath:
26726 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/send-community/send-ext-community
26727 */
26728 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_ext_community_modify(
26729 struct nb_cb_modify_args *args)
26730 {
26731 switch (args->event) {
26732 case NB_EV_VALIDATE:
26733 case NB_EV_PREPARE:
26734 case NB_EV_ABORT:
26735 return NB_OK;
26736 case NB_EV_APPLY:
26737 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26738 args, PEER_FLAG_SEND_EXT_COMMUNITY,
26739 yang_dnode_get_bool(args->dnode, NULL));
26740
26741 break;
26742 }
26743
26744 return NB_OK;
26745 }
26746
26747 /*
26748 * XPath:
26749 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/send-community/send-large-community
26750 */
26751 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_large_community_modify(
26752 struct nb_cb_modify_args *args)
26753 {
26754 switch (args->event) {
26755 case NB_EV_VALIDATE:
26756 case NB_EV_PREPARE:
26757 case NB_EV_ABORT:
26758 return NB_OK;
26759 case NB_EV_APPLY:
26760 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26761 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
26762 yang_dnode_get_bool(args->dnode, NULL));
26763
26764 break;
26765 }
26766
26767 return NB_OK;
26768 }
26769
26770 /*
26771 * XPath:
26772 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/soft-reconfiguration
26773 */
26774 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_soft_reconfiguration_modify(
26775 struct nb_cb_modify_args *args)
26776 {
26777 switch (args->event) {
26778 case NB_EV_VALIDATE:
26779 case NB_EV_PREPARE:
26780 case NB_EV_ABORT:
26781 return NB_OK;
26782 case NB_EV_APPLY:
26783 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26784 args, PEER_FLAG_SOFT_RECONFIG,
26785 yang_dnode_get_bool(args->dnode, NULL));
26786
26787 break;
26788 }
26789
26790 return NB_OK;
26791 }
26792
26793 /*
26794 * XPath:
26795 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/attr-unchanged/as-path-unchanged
26796 */
26797 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
26798 struct nb_cb_modify_args *args)
26799 {
26800 switch (args->event) {
26801 case NB_EV_VALIDATE:
26802 case NB_EV_PREPARE:
26803 case NB_EV_ABORT:
26804 return NB_OK;
26805 case NB_EV_APPLY:
26806 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26807 args, PEER_FLAG_AS_PATH_UNCHANGED,
26808 yang_dnode_get_bool(args->dnode, NULL));
26809
26810 break;
26811 }
26812
26813 return NB_OK;
26814 }
26815
26816 /*
26817 * XPath:
26818 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/attr-unchanged/next-hop-unchanged
26819 */
26820 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
26821 struct nb_cb_modify_args *args)
26822 {
26823 switch (args->event) {
26824 case NB_EV_VALIDATE:
26825 case NB_EV_PREPARE:
26826 case NB_EV_ABORT:
26827 return NB_OK;
26828 case NB_EV_APPLY:
26829 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26830 args, PEER_FLAG_NEXTHOP_UNCHANGED,
26831 yang_dnode_get_bool(args->dnode, NULL));
26832
26833 break;
26834 }
26835
26836 return NB_OK;
26837 }
26838
26839 /*
26840 * XPath:
26841 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/attr-unchanged/med-unchanged
26842 */
26843 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_med_unchanged_modify(
26844 struct nb_cb_modify_args *args)
26845 {
26846 switch (args->event) {
26847 case NB_EV_VALIDATE:
26848 case NB_EV_PREPARE:
26849 case NB_EV_ABORT:
26850 return NB_OK;
26851 case NB_EV_APPLY:
26852 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26853 args, PEER_FLAG_MED_UNCHANGED,
26854 yang_dnode_get_bool(args->dnode, NULL));
26855
26856 break;
26857 }
26858
26859 return NB_OK;
26860 }
26861
26862 /*
26863 * XPath:
26864 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-send
26865 */
26866 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_modify(
26867 struct nb_cb_modify_args *args)
26868 {
26869 switch (args->event) {
26870 case NB_EV_VALIDATE:
26871 case NB_EV_PREPARE:
26872 case NB_EV_ABORT:
26873 case NB_EV_APPLY:
26874 /* TODO: implement me. */
26875 break;
26876 }
26877
26878 return NB_OK;
26879 }
26880
26881 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_destroy(
26882 struct nb_cb_destroy_args *args)
26883 {
26884 switch (args->event) {
26885 case NB_EV_VALIDATE:
26886 case NB_EV_PREPARE:
26887 case NB_EV_ABORT:
26888 case NB_EV_APPLY:
26889 /* TODO: implement me. */
26890 break;
26891 }
26892
26893 return NB_OK;
26894 }
26895
26896 /*
26897 * XPath:
26898 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-receive
26899 */
26900 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_modify(
26901 struct nb_cb_modify_args *args)
26902 {
26903 switch (args->event) {
26904 case NB_EV_VALIDATE:
26905 case NB_EV_PREPARE:
26906 case NB_EV_ABORT:
26907 case NB_EV_APPLY:
26908 /* TODO: implement me. */
26909 break;
26910 }
26911
26912 return NB_OK;
26913 }
26914
26915 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_destroy(
26916 struct nb_cb_destroy_args *args)
26917 {
26918 switch (args->event) {
26919 case NB_EV_VALIDATE:
26920 case NB_EV_PREPARE:
26921 case NB_EV_ABORT:
26922 case NB_EV_APPLY:
26923 /* TODO: implement me. */
26924 break;
26925 }
26926
26927 return NB_OK;
26928 }
26929
26930 /*
26931 * XPath:
26932 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-both
26933 */
26934 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_modify(
26935 struct nb_cb_modify_args *args)
26936 {
26937 switch (args->event) {
26938 case NB_EV_VALIDATE:
26939 case NB_EV_PREPARE:
26940 case NB_EV_ABORT:
26941 case NB_EV_APPLY:
26942 /* TODO: implement me. */
26943 break;
26944 }
26945
26946 return NB_OK;
26947 }
26948
26949 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_destroy(
26950 struct nb_cb_destroy_args *args)
26951 {
26952 switch (args->event) {
26953 case NB_EV_VALIDATE:
26954 case NB_EV_PREPARE:
26955 case NB_EV_ABORT:
26956 case NB_EV_APPLY:
26957 /* TODO: implement me. */
26958 break;
26959 }
26960
26961 return NB_OK;
26962 }
26963
26964 static int
26965 bgp_unnumbered_neighbor_afi_safi_rmap_modify(struct nb_cb_modify_args *args,
26966 int direct)
26967 {
26968 struct bgp *bgp;
26969 const char *peer_str;
26970 struct peer *peer;
26971 const struct lyd_node *nbr_dnode;
26972 const struct lyd_node *nbr_af_dnode;
26973 const char *af_name;
26974 afi_t afi;
26975 safi_t safi;
26976 const char *name_str;
26977 struct route_map *route_map;
26978 int ret;
26979
26980 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
26981 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
26982 yang_afi_safi_identity2value(af_name, &afi, &safi);
26983
26984 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
26985 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
26986 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
26987 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
26988 args->errmsg_len);
26989
26990 name_str = yang_dnode_get_string(args->dnode, NULL);
26991 route_map = route_map_lookup_by_name(name_str);
26992 ret = peer_route_map_set(peer, afi, safi, direct, name_str, route_map);
26993
26994 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
26995 }
26996
26997 static int
26998 bgp_unnumbered_neighbor_afi_safi_rmap_destroy(struct nb_cb_destroy_args *args,
26999 int direct)
27000 {
27001 struct bgp *bgp;
27002 const char *peer_str;
27003 struct peer *peer;
27004 const struct lyd_node *nbr_dnode;
27005 const struct lyd_node *nbr_af_dnode;
27006 const char *af_name;
27007 afi_t afi;
27008 safi_t safi;
27009 int ret;
27010
27011 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
27012 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
27013 yang_afi_safi_identity2value(af_name, &afi, &safi);
27014
27015 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
27016 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
27017 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
27018 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
27019 args->errmsg_len);
27020
27021 ret = peer_route_map_unset(peer, afi, safi, direct);
27022
27023 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
27024 }
27025
27026 /*
27027 * XPath:
27028 * /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
27029 */
27030 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_modify(
27031 struct nb_cb_modify_args *args)
27032 {
27033 switch (args->event) {
27034 case NB_EV_VALIDATE:
27035 case NB_EV_PREPARE:
27036 case NB_EV_ABORT:
27037 break;
27038 case NB_EV_APPLY:
27039 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
27040 RMAP_IN);
27041 }
27042
27043 return NB_OK;
27044 }
27045
27046 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_destroy(
27047 struct nb_cb_destroy_args *args)
27048 {
27049 switch (args->event) {
27050 case NB_EV_VALIDATE:
27051 case NB_EV_PREPARE:
27052 case NB_EV_ABORT:
27053 break;
27054 case NB_EV_APPLY:
27055 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
27056 RMAP_IN);
27057 }
27058
27059 return NB_OK;
27060 }
27061
27062 /*
27063 * XPath:
27064 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/rmap-export
27065 */
27066 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_modify(
27067 struct nb_cb_modify_args *args)
27068 {
27069 switch (args->event) {
27070 case NB_EV_VALIDATE:
27071 case NB_EV_PREPARE:
27072 case NB_EV_ABORT:
27073 break;
27074 case NB_EV_APPLY:
27075 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
27076 RMAP_OUT);
27077 }
27078
27079 return NB_OK;
27080 }
27081
27082 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_destroy(
27083 struct nb_cb_destroy_args *args)
27084 {
27085 switch (args->event) {
27086 case NB_EV_VALIDATE:
27087 case NB_EV_PREPARE:
27088 case NB_EV_ABORT:
27089 break;
27090 case NB_EV_APPLY:
27091 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
27092 RMAP_OUT);
27093 }
27094
27095 return NB_OK;
27096 }
27097
27098 static int
27099 bgp_unnumbered_neighbor_afi_safi_plist_modify(struct nb_cb_modify_args *args,
27100 int direct)
27101 {
27102 struct bgp *bgp;
27103 const char *peer_str;
27104 struct peer *peer;
27105 const struct lyd_node *nbr_dnode;
27106 const struct lyd_node *nbr_af_dnode;
27107 const char *af_name;
27108 afi_t afi;
27109 safi_t safi;
27110 const char *name_str;
27111
27112 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
27113 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
27114 yang_afi_safi_identity2value(af_name, &afi, &safi);
27115
27116 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
27117 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
27118 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
27119 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
27120 args->errmsg_len);
27121
27122 name_str = yang_dnode_get_string(args->dnode, NULL);
27123 if (peer_prefix_list_set(peer, afi, safi, direct, name_str) < 0)
27124 return NB_ERR_INCONSISTENCY;
27125
27126 return NB_OK;
27127 }
27128
27129 static int
27130 bgp_unnumbered_neighbor_afi_safi_plist_destroy(struct nb_cb_destroy_args *args,
27131 int direct)
27132 {
27133 struct bgp *bgp;
27134 const char *peer_str;
27135 struct peer *peer;
27136 const struct lyd_node *nbr_dnode;
27137 const struct lyd_node *nbr_af_dnode;
27138 const char *af_name;
27139 afi_t afi;
27140 safi_t safi;
27141
27142 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
27143 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
27144 yang_afi_safi_identity2value(af_name, &afi, &safi);
27145
27146 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
27147 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
27148 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
27149 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
27150 args->errmsg_len);
27151
27152 if (peer_prefix_list_unset(peer, afi, safi, direct) < 0)
27153 return NB_ERR_INCONSISTENCY;
27154
27155 return NB_OK;
27156 }
27157 /*
27158 * XPath:
27159 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/plist-import
27160 */
27161 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_modify(
27162 struct nb_cb_modify_args *args)
27163 {
27164 switch (args->event) {
27165 case NB_EV_VALIDATE:
27166 case NB_EV_PREPARE:
27167 case NB_EV_ABORT:
27168 break;
27169 case NB_EV_APPLY:
27170 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
27171 FILTER_IN);
27172 }
27173
27174 return NB_OK;
27175 }
27176
27177 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_destroy(
27178 struct nb_cb_destroy_args *args)
27179 {
27180 switch (args->event) {
27181 case NB_EV_VALIDATE:
27182 case NB_EV_PREPARE:
27183 case NB_EV_ABORT:
27184 break;
27185 case NB_EV_APPLY:
27186 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
27187 args, FILTER_IN);
27188 }
27189
27190 return NB_OK;
27191 }
27192
27193 /*
27194 * XPath:
27195 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/plist-export
27196 */
27197 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_modify(
27198 struct nb_cb_modify_args *args)
27199 {
27200 switch (args->event) {
27201 case NB_EV_VALIDATE:
27202 case NB_EV_PREPARE:
27203 case NB_EV_ABORT:
27204 break;
27205 case NB_EV_APPLY:
27206 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
27207 args, FILTER_OUT);
27208 }
27209
27210 return NB_OK;
27211 }
27212
27213 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_destroy(
27214 struct nb_cb_destroy_args *args)
27215 {
27216 switch (args->event) {
27217 case NB_EV_VALIDATE:
27218 case NB_EV_PREPARE:
27219 case NB_EV_ABORT:
27220 break;
27221 case NB_EV_APPLY:
27222 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
27223 args, FILTER_OUT);
27224 }
27225
27226 return NB_OK;
27227 }
27228
27229 /*
27230 * XPath:
27231 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/access-list-import
27232 */
27233 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_modify(
27234 struct nb_cb_modify_args *args)
27235 {
27236 switch (args->event) {
27237 case NB_EV_VALIDATE:
27238 case NB_EV_PREPARE:
27239 case NB_EV_ABORT:
27240 case NB_EV_APPLY:
27241 /* TODO: implement me. */
27242 break;
27243 }
27244
27245 return NB_OK;
27246 }
27247
27248 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_destroy(
27249 struct nb_cb_destroy_args *args)
27250 {
27251 switch (args->event) {
27252 case NB_EV_VALIDATE:
27253 case NB_EV_PREPARE:
27254 case NB_EV_ABORT:
27255 case NB_EV_APPLY:
27256 /* TODO: implement me. */
27257 break;
27258 }
27259
27260 return NB_OK;
27261 }
27262
27263 /*
27264 * XPath:
27265 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/access-list-export
27266 */
27267 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_modify(
27268 struct nb_cb_modify_args *args)
27269 {
27270 switch (args->event) {
27271 case NB_EV_VALIDATE:
27272 case NB_EV_PREPARE:
27273 case NB_EV_ABORT:
27274 case NB_EV_APPLY:
27275 /* TODO: implement me. */
27276 break;
27277 }
27278
27279 return NB_OK;
27280 }
27281
27282 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_destroy(
27283 struct nb_cb_destroy_args *args)
27284 {
27285 switch (args->event) {
27286 case NB_EV_VALIDATE:
27287 case NB_EV_PREPARE:
27288 case NB_EV_ABORT:
27289 case NB_EV_APPLY:
27290 /* TODO: implement me. */
27291 break;
27292 }
27293
27294 return NB_OK;
27295 }
27296
27297 /*
27298 * XPath:
27299 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/as-path-filter-list-import
27300 */
27301 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_modify(
27302 struct nb_cb_modify_args *args)
27303 {
27304 switch (args->event) {
27305 case NB_EV_VALIDATE:
27306 case NB_EV_PREPARE:
27307 case NB_EV_ABORT:
27308 case NB_EV_APPLY:
27309 /* TODO: implement me. */
27310 break;
27311 }
27312
27313 return NB_OK;
27314 }
27315
27316 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_destroy(
27317 struct nb_cb_destroy_args *args)
27318 {
27319 switch (args->event) {
27320 case NB_EV_VALIDATE:
27321 case NB_EV_PREPARE:
27322 case NB_EV_ABORT:
27323 case NB_EV_APPLY:
27324 /* TODO: implement me. */
27325 break;
27326 }
27327
27328 return NB_OK;
27329 }
27330
27331 /*
27332 * XPath:
27333 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/as-path-filter-list-export
27334 */
27335 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_modify(
27336 struct nb_cb_modify_args *args)
27337 {
27338 switch (args->event) {
27339 case NB_EV_VALIDATE:
27340 case NB_EV_PREPARE:
27341 case NB_EV_ABORT:
27342 case NB_EV_APPLY:
27343 /* TODO: implement me. */
27344 break;
27345 }
27346
27347 return NB_OK;
27348 }
27349
27350 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_destroy(
27351 struct nb_cb_destroy_args *args)
27352 {
27353 switch (args->event) {
27354 case NB_EV_VALIDATE:
27355 case NB_EV_PREPARE:
27356 case NB_EV_ABORT:
27357 case NB_EV_APPLY:
27358 /* TODO: implement me. */
27359 break;
27360 }
27361
27362 return NB_OK;
27363 }
27364
27365 /*
27366 * XPath:
27367 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/unsuppress-map-import
27368 */
27369 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_modify(
27370 struct nb_cb_modify_args *args)
27371 {
27372 switch (args->event) {
27373 case NB_EV_VALIDATE:
27374 case NB_EV_PREPARE:
27375 case NB_EV_ABORT:
27376 case NB_EV_APPLY:
27377 /* TODO: implement me. */
27378 break;
27379 }
27380
27381 return NB_OK;
27382 }
27383
27384 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_destroy(
27385 struct nb_cb_destroy_args *args)
27386 {
27387 switch (args->event) {
27388 case NB_EV_VALIDATE:
27389 case NB_EV_PREPARE:
27390 case NB_EV_ABORT:
27391 case NB_EV_APPLY:
27392 /* TODO: implement me. */
27393 break;
27394 }
27395
27396 return NB_OK;
27397 }
27398
27399 /*
27400 * XPath:
27401 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/unsuppress-map-export
27402 */
27403 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_modify(
27404 struct nb_cb_modify_args *args)
27405 {
27406 switch (args->event) {
27407 case NB_EV_VALIDATE:
27408 case NB_EV_PREPARE:
27409 case NB_EV_ABORT:
27410 case NB_EV_APPLY:
27411 /* TODO: implement me. */
27412 break;
27413 }
27414
27415 return NB_OK;
27416 }
27417
27418 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_destroy(
27419 struct nb_cb_destroy_args *args)
27420 {
27421 switch (args->event) {
27422 case NB_EV_VALIDATE:
27423 case NB_EV_PREPARE:
27424 case NB_EV_ABORT:
27425 case NB_EV_APPLY:
27426 /* TODO: implement me. */
27427 break;
27428 }
27429
27430 return NB_OK;
27431 }
27432
27433 /*
27434 * XPath:
27435 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/nexthop-local-unchanged
27436 */
27437 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_local_unchanged_modify(
27438 struct nb_cb_modify_args *args)
27439 {
27440 switch (args->event) {
27441 case NB_EV_VALIDATE:
27442 case NB_EV_PREPARE:
27443 case NB_EV_ABORT:
27444 case NB_EV_APPLY:
27445 /* TODO: implement me. */
27446 break;
27447 }
27448
27449 return NB_OK;
27450 }
27451
27452 /*
27453 * XPath:
27454 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/add-paths/path-type
27455 */
27456 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_add_paths_path_type_modify(
27457 struct nb_cb_modify_args *args)
27458 {
27459 switch (args->event) {
27460 case NB_EV_VALIDATE:
27461 case NB_EV_PREPARE:
27462 case NB_EV_ABORT:
27463 case NB_EV_APPLY:
27464 /* TODO: implement me. */
27465 break;
27466 }
27467
27468 return NB_OK;
27469 }
27470
27471 /*
27472 * XPath:
27473 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/as-path-options/allow-own-as
27474 */
27475 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_modify(
27476 struct nb_cb_modify_args *args)
27477 {
27478 switch (args->event) {
27479 case NB_EV_VALIDATE:
27480 case NB_EV_PREPARE:
27481 case NB_EV_ABORT:
27482 case NB_EV_APPLY:
27483 /* TODO: implement me. */
27484 break;
27485 }
27486
27487 return NB_OK;
27488 }
27489
27490 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_destroy(
27491 struct nb_cb_destroy_args *args)
27492 {
27493 switch (args->event) {
27494 case NB_EV_VALIDATE:
27495 case NB_EV_PREPARE:
27496 case NB_EV_ABORT:
27497 case NB_EV_APPLY:
27498 /* TODO: implement me. */
27499 break;
27500 }
27501
27502 return NB_OK;
27503 }
27504
27505 /*
27506 * XPath:
27507 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/as-path-options/allow-own-origin-as
27508 */
27509 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
27510 struct nb_cb_modify_args *args)
27511 {
27512 switch (args->event) {
27513 case NB_EV_VALIDATE:
27514 case NB_EV_PREPARE:
27515 case NB_EV_ABORT:
27516 case NB_EV_APPLY:
27517 /* TODO: implement me. */
27518 break;
27519 }
27520
27521 return NB_OK;
27522 }
27523
27524 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
27525 struct nb_cb_destroy_args *args)
27526 {
27527 switch (args->event) {
27528 case NB_EV_VALIDATE:
27529 case NB_EV_PREPARE:
27530 case NB_EV_ABORT:
27531 case NB_EV_APPLY:
27532 /* TODO: implement me. */
27533 break;
27534 }
27535
27536 return NB_OK;
27537 }
27538
27539 /*
27540 * XPath:
27541 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/as-path-options/replace-peer-as
27542 */
27543 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_replace_peer_as_modify(
27544 struct nb_cb_modify_args *args)
27545 {
27546 switch (args->event) {
27547 case NB_EV_VALIDATE:
27548 case NB_EV_PREPARE:
27549 case NB_EV_ABORT:
27550 return NB_OK;
27551 case NB_EV_APPLY:
27552 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
27553 args, PEER_FLAG_AS_OVERRIDE,
27554 yang_dnode_get_bool(args->dnode, NULL));
27555
27556 break;
27557 }
27558
27559 return NB_OK;
27560 }
27561
27562 /*
27563 * XPath:
27564 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/default-originate/originate
27565 */
27566 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_originate_modify(
27567 struct nb_cb_modify_args *args)
27568 {
27569 switch (args->event) {
27570 case NB_EV_VALIDATE:
27571 case NB_EV_PREPARE:
27572 case NB_EV_ABORT:
27573 case NB_EV_APPLY:
27574 /* TODO: implement me. */
27575 break;
27576 }
27577
27578 return NB_OK;
27579 }
27580
27581 /*
27582 * XPath:
27583 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/default-originate/route-map
27584 */
27585 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_modify(
27586 struct nb_cb_modify_args *args)
27587 {
27588 switch (args->event) {
27589 case NB_EV_VALIDATE:
27590 case NB_EV_PREPARE:
27591 case NB_EV_ABORT:
27592 case NB_EV_APPLY:
27593 /* TODO: implement me. */
27594 break;
27595 }
27596
27597 return NB_OK;
27598 }
27599
27600 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_destroy(
27601 struct nb_cb_destroy_args *args)
27602 {
27603 switch (args->event) {
27604 case NB_EV_VALIDATE:
27605 case NB_EV_PREPARE:
27606 case NB_EV_ABORT:
27607 case NB_EV_APPLY:
27608 /* TODO: implement me. */
27609 break;
27610 }
27611
27612 return NB_OK;
27613 }
27614
27615 /*
27616 * XPath:
27617 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/attr-unchanged/as-path-unchanged
27618 */
27619 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
27620 struct nb_cb_modify_args *args)
27621 {
27622 switch (args->event) {
27623 case NB_EV_VALIDATE:
27624 case NB_EV_PREPARE:
27625 case NB_EV_ABORT:
27626 return NB_OK;
27627 case NB_EV_APPLY:
27628 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
27629 args, PEER_FLAG_AS_PATH_UNCHANGED,
27630 yang_dnode_get_bool(args->dnode, NULL));
27631
27632 break;
27633 }
27634
27635 return NB_OK;
27636 }
27637
27638 /*
27639 * XPath:
27640 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/attr-unchanged/next-hop-unchanged
27641 */
27642 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
27643 struct nb_cb_modify_args *args)
27644 {
27645 switch (args->event) {
27646 case NB_EV_VALIDATE:
27647 case NB_EV_PREPARE:
27648 case NB_EV_ABORT:
27649 return NB_OK;
27650 case NB_EV_APPLY:
27651 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
27652 args, PEER_FLAG_NEXTHOP_UNCHANGED,
27653 yang_dnode_get_bool(args->dnode, NULL));
27654
27655 break;
27656 }
27657
27658 return NB_OK;
27659 }
27660
27661 /*
27662 * XPath:
27663 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/attr-unchanged/med-unchanged
27664 */
27665 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_med_unchanged_modify(
27666 struct nb_cb_modify_args *args)
27667 {
27668 switch (args->event) {
27669 case NB_EV_VALIDATE:
27670 case NB_EV_PREPARE:
27671 case NB_EV_ABORT:
27672 return NB_OK;
27673 case NB_EV_APPLY:
27674 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
27675 args, PEER_FLAG_MED_UNCHANGED,
27676 yang_dnode_get_bool(args->dnode, NULL));
27677
27678 break;
27679 }
27680
27681 return NB_OK;
27682 }
27683
27684 /*
27685 * XPath:
27686 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-send
27687 */
27688 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_modify(
27689 struct nb_cb_modify_args *args)
27690 {
27691 switch (args->event) {
27692 case NB_EV_VALIDATE:
27693 case NB_EV_PREPARE:
27694 case NB_EV_ABORT:
27695 case NB_EV_APPLY:
27696 /* TODO: implement me. */
27697 break;
27698 }
27699
27700 return NB_OK;
27701 }
27702
27703 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_destroy(
27704 struct nb_cb_destroy_args *args)
27705 {
27706 switch (args->event) {
27707 case NB_EV_VALIDATE:
27708 case NB_EV_PREPARE:
27709 case NB_EV_ABORT:
27710 case NB_EV_APPLY:
27711 /* TODO: implement me. */
27712 break;
27713 }
27714
27715 return NB_OK;
27716 }
27717
27718 /*
27719 * XPath:
27720 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-receive
27721 */
27722 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_modify(
27723 struct nb_cb_modify_args *args)
27724 {
27725 switch (args->event) {
27726 case NB_EV_VALIDATE:
27727 case NB_EV_PREPARE:
27728 case NB_EV_ABORT:
27729 case NB_EV_APPLY:
27730 /* TODO: implement me. */
27731 break;
27732 }
27733
27734 return NB_OK;
27735 }
27736
27737 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_destroy(
27738 struct nb_cb_destroy_args *args)
27739 {
27740 switch (args->event) {
27741 case NB_EV_VALIDATE:
27742 case NB_EV_PREPARE:
27743 case NB_EV_ABORT:
27744 case NB_EV_APPLY:
27745 /* TODO: implement me. */
27746 break;
27747 }
27748
27749 return NB_OK;
27750 }
27751
27752 /*
27753 * XPath:
27754 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-both
27755 */
27756 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_modify(
27757 struct nb_cb_modify_args *args)
27758 {
27759 switch (args->event) {
27760 case NB_EV_VALIDATE:
27761 case NB_EV_PREPARE:
27762 case NB_EV_ABORT:
27763 case NB_EV_APPLY:
27764 /* TODO: implement me. */
27765 break;
27766 }
27767
27768 return NB_OK;
27769 }
27770
27771 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_destroy(
27772 struct nb_cb_destroy_args *args)
27773 {
27774 switch (args->event) {
27775 case NB_EV_VALIDATE:
27776 case NB_EV_PREPARE:
27777 case NB_EV_ABORT:
27778 case NB_EV_APPLY:
27779 /* TODO: implement me. */
27780 break;
27781 }
27782
27783 return NB_OK;
27784 }
27785
27786 /*
27787 * XPath:
27788 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list
27789 */
27790 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_create(
27791 struct nb_cb_create_args *args)
27792 {
27793 switch (args->event) {
27794 case NB_EV_VALIDATE:
27795 case NB_EV_PREPARE:
27796 case NB_EV_ABORT:
27797 case NB_EV_APPLY:
27798 /* TODO: implement me. */
27799 break;
27800 }
27801
27802 return NB_OK;
27803 }
27804
27805 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_destroy(
27806 struct nb_cb_destroy_args *args)
27807 {
27808 switch (args->event) {
27809 case NB_EV_VALIDATE:
27810 case NB_EV_PREPARE:
27811 case NB_EV_ABORT:
27812 return NB_OK;
27813 case NB_EV_APPLY:
27814 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
27815 args);
27816 }
27817
27818 return NB_OK;
27819 }
27820
27821 /*
27822 * XPath:
27823 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/max-prefixes
27824 */
27825 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
27826 struct nb_cb_modify_args *args)
27827 {
27828 switch (args->event) {
27829 case NB_EV_VALIDATE:
27830 case NB_EV_PREPARE:
27831 case NB_EV_ABORT:
27832 case NB_EV_APPLY:
27833 /* TODO: implement me. */
27834 break;
27835 }
27836
27837 return NB_OK;
27838 }
27839
27840 /*
27841 * XPath:
27842 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/force-check
27843 */
27844 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
27845 struct nb_cb_modify_args *args)
27846 {
27847 switch (args->event) {
27848 case NB_EV_VALIDATE:
27849 case NB_EV_PREPARE:
27850 case NB_EV_ABORT:
27851 case NB_EV_APPLY:
27852 /* TODO: implement me. */
27853 break;
27854 }
27855
27856 return NB_OK;
27857 }
27858
27859 /*
27860 * XPath:
27861 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/warning-only
27862 */
27863 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
27864 struct nb_cb_modify_args *args)
27865 {
27866 switch (args->event) {
27867 case NB_EV_VALIDATE:
27868 case NB_EV_PREPARE:
27869 case NB_EV_ABORT:
27870 case NB_EV_APPLY:
27871 /* TODO: implement me. */
27872 break;
27873 }
27874
27875 return NB_OK;
27876 }
27877
27878 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
27879 struct nb_cb_destroy_args *args)
27880 {
27881 switch (args->event) {
27882 case NB_EV_VALIDATE:
27883 case NB_EV_PREPARE:
27884 case NB_EV_ABORT:
27885 case NB_EV_APPLY:
27886 /* TODO: implement me. */
27887 break;
27888 }
27889
27890 return NB_OK;
27891 }
27892
27893 /*
27894 * XPath:
27895 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/restart-timer
27896 */
27897 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
27898 struct nb_cb_modify_args *args)
27899 {
27900 switch (args->event) {
27901 case NB_EV_VALIDATE:
27902 case NB_EV_PREPARE:
27903 case NB_EV_ABORT:
27904 case NB_EV_APPLY:
27905 /* TODO: implement me. */
27906 break;
27907 }
27908
27909 return NB_OK;
27910 }
27911
27912 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
27913 struct nb_cb_destroy_args *args)
27914 {
27915 switch (args->event) {
27916 case NB_EV_VALIDATE:
27917 case NB_EV_PREPARE:
27918 case NB_EV_ABORT:
27919 case NB_EV_APPLY:
27920 /* TODO: implement me. */
27921 break;
27922 }
27923
27924 return NB_OK;
27925 }
27926
27927 /*
27928 * XPath:
27929 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
27930 */
27931 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
27932 struct nb_cb_modify_args *args)
27933 {
27934 switch (args->event) {
27935 case NB_EV_VALIDATE:
27936 case NB_EV_PREPARE:
27937 case NB_EV_ABORT:
27938 case NB_EV_APPLY:
27939 /* TODO: implement me. */
27940 break;
27941 }
27942
27943 return NB_OK;
27944 }
27945
27946 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
27947 struct nb_cb_destroy_args *args)
27948 {
27949 switch (args->event) {
27950 case NB_EV_VALIDATE:
27951 case NB_EV_PREPARE:
27952 case NB_EV_ABORT:
27953 case NB_EV_APPLY:
27954 /* TODO: implement me. */
27955 break;
27956 }
27957
27958 return NB_OK;
27959 }
27960
27961 /*
27962 * XPath:
27963 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
27964 */
27965 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
27966 struct nb_cb_modify_args *args)
27967 {
27968 switch (args->event) {
27969 case NB_EV_VALIDATE:
27970 case NB_EV_PREPARE:
27971 case NB_EV_ABORT:
27972 case NB_EV_APPLY:
27973 /* TODO: implement me. */
27974 break;
27975 }
27976
27977 return NB_OK;
27978 }
27979
27980 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
27981 struct nb_cb_destroy_args *args)
27982 {
27983 switch (args->event) {
27984 case NB_EV_VALIDATE:
27985 case NB_EV_PREPARE:
27986 case NB_EV_ABORT:
27987 case NB_EV_APPLY:
27988 /* TODO: implement me. */
27989 break;
27990 }
27991
27992 return NB_OK;
27993 }
27994
27995 /*
27996 * XPath:
27997 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tr-restart-timer
27998 */
27999 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
28000 struct nb_cb_modify_args *args)
28001 {
28002 switch (args->event) {
28003 case NB_EV_VALIDATE:
28004 case NB_EV_PREPARE:
28005 case NB_EV_ABORT:
28006 case NB_EV_APPLY:
28007 /* TODO: implement me. */
28008 break;
28009 }
28010
28011 return NB_OK;
28012 }
28013
28014 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
28015 struct nb_cb_destroy_args *args)
28016 {
28017 switch (args->event) {
28018 case NB_EV_VALIDATE:
28019 case NB_EV_PREPARE:
28020 case NB_EV_ABORT:
28021 case NB_EV_APPLY:
28022 /* TODO: implement me. */
28023 break;
28024 }
28025
28026 return NB_OK;
28027 }
28028
28029 /*
28030 * XPath:
28031 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
28032 */
28033 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
28034 struct nb_cb_modify_args *args)
28035 {
28036 switch (args->event) {
28037 case NB_EV_VALIDATE:
28038 case NB_EV_PREPARE:
28039 case NB_EV_ABORT:
28040 case NB_EV_APPLY:
28041 /* TODO: implement me. */
28042 break;
28043 }
28044
28045 return NB_OK;
28046 }
28047
28048 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
28049 struct nb_cb_destroy_args *args)
28050 {
28051 switch (args->event) {
28052 case NB_EV_VALIDATE:
28053 case NB_EV_PREPARE:
28054 case NB_EV_ABORT:
28055 case NB_EV_APPLY:
28056 /* TODO: implement me. */
28057 break;
28058 }
28059
28060 return NB_OK;
28061 }
28062
28063 /*
28064 * XPath:
28065 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tw-warning-only
28066 */
28067 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
28068 struct nb_cb_modify_args *args)
28069 {
28070 switch (args->event) {
28071 case NB_EV_VALIDATE:
28072 case NB_EV_PREPARE:
28073 case NB_EV_ABORT:
28074 case NB_EV_APPLY:
28075 /* TODO: implement me. */
28076 break;
28077 }
28078
28079 return NB_OK;
28080 }
28081
28082 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
28083 struct nb_cb_destroy_args *args)
28084 {
28085 switch (args->event) {
28086 case NB_EV_VALIDATE:
28087 case NB_EV_PREPARE:
28088 case NB_EV_ABORT:
28089 case NB_EV_APPLY:
28090 /* TODO: implement me. */
28091 break;
28092 }
28093
28094 return NB_OK;
28095 }
28096
28097 /*
28098 * XPath:
28099 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/nexthop-self/next-hop-self
28100 */
28101 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_modify(
28102 struct nb_cb_modify_args *args)
28103 {
28104 switch (args->event) {
28105 case NB_EV_VALIDATE:
28106 case NB_EV_PREPARE:
28107 case NB_EV_ABORT:
28108 return NB_OK;
28109 case NB_EV_APPLY:
28110 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28111 args, PEER_FLAG_NEXTHOP_SELF,
28112 yang_dnode_get_bool(args->dnode, NULL));
28113
28114 break;
28115 }
28116
28117 return NB_OK;
28118 }
28119
28120 /*
28121 * XPath:
28122 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/nexthop-self/next-hop-self-force
28123 */
28124 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
28125 struct nb_cb_modify_args *args)
28126 {
28127 switch (args->event) {
28128 case NB_EV_VALIDATE:
28129 case NB_EV_PREPARE:
28130 case NB_EV_ABORT:
28131 return NB_OK;
28132 case NB_EV_APPLY:
28133 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28134 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
28135 yang_dnode_get_bool(args->dnode, NULL));
28136
28137 break;
28138 }
28139
28140 return NB_OK;
28141 }
28142
28143 /*
28144 * XPath:
28145 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as-all
28146 */
28147 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_modify(
28148 struct nb_cb_modify_args *args)
28149 {
28150 switch (args->event) {
28151 case NB_EV_VALIDATE:
28152 case NB_EV_PREPARE:
28153 case NB_EV_ABORT:
28154 return NB_OK;
28155 case NB_EV_APPLY:
28156 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28157 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
28158 yang_dnode_get_bool(args->dnode, NULL));
28159
28160 break;
28161 }
28162
28163 return NB_OK;
28164 }
28165
28166 /*
28167 * XPath:
28168 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as-all-replace
28169 */
28170 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
28171 struct nb_cb_modify_args *args)
28172 {
28173 switch (args->event) {
28174 case NB_EV_VALIDATE:
28175 case NB_EV_PREPARE:
28176 case NB_EV_ABORT:
28177 return NB_OK;
28178 case NB_EV_APPLY:
28179 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28180 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
28181 yang_dnode_get_bool(args->dnode, NULL));
28182
28183 break;
28184 }
28185
28186 return NB_OK;
28187 }
28188
28189 /*
28190 * XPath:
28191 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as
28192 */
28193 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_modify(
28194 struct nb_cb_modify_args *args)
28195 {
28196 switch (args->event) {
28197 case NB_EV_VALIDATE:
28198 case NB_EV_PREPARE:
28199 case NB_EV_ABORT:
28200 return NB_OK;
28201 case NB_EV_APPLY:
28202 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28203 args, PEER_FLAG_REMOVE_PRIVATE_AS,
28204 yang_dnode_get_bool(args->dnode, NULL));
28205
28206 break;
28207 }
28208
28209 return NB_OK;
28210 }
28211
28212 /*
28213 * XPath:
28214 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as-replace
28215 */
28216 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_replace_modify(
28217 struct nb_cb_modify_args *args)
28218 {
28219 switch (args->event) {
28220 case NB_EV_VALIDATE:
28221 case NB_EV_PREPARE:
28222 case NB_EV_ABORT:
28223 return NB_OK;
28224 case NB_EV_APPLY:
28225 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28226 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
28227 yang_dnode_get_bool(args->dnode, NULL));
28228
28229 break;
28230 }
28231
28232 return NB_OK;
28233 }
28234
28235 /*
28236 * XPath:
28237 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/route-reflector/route-reflector-client
28238 */
28239 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_route_reflector_route_reflector_client_modify(
28240 struct nb_cb_modify_args *args)
28241 {
28242 switch (args->event) {
28243 case NB_EV_VALIDATE:
28244 case NB_EV_PREPARE:
28245 case NB_EV_ABORT:
28246 return NB_OK;
28247 case NB_EV_APPLY:
28248 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28249 args, PEER_FLAG_REFLECTOR_CLIENT,
28250 yang_dnode_get_bool(args->dnode, NULL));
28251
28252 break;
28253 }
28254
28255 return NB_OK;
28256 }
28257
28258 /*
28259 * XPath:
28260 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/route-server/route-server-client
28261 */
28262 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_route_server_route_server_client_modify(
28263 struct nb_cb_modify_args *args)
28264 {
28265 switch (args->event) {
28266 case NB_EV_VALIDATE:
28267 case NB_EV_PREPARE:
28268 case NB_EV_ABORT:
28269 return NB_OK;
28270 case NB_EV_APPLY:
28271 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28272 args, PEER_FLAG_RSERVER_CLIENT,
28273 yang_dnode_get_bool(args->dnode, NULL));
28274
28275 break;
28276 }
28277
28278 return NB_OK;
28279 }
28280
28281 /*
28282 * XPath:
28283 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/send-community/send-community
28284 */
28285 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_community_modify(
28286 struct nb_cb_modify_args *args)
28287 {
28288 switch (args->event) {
28289 case NB_EV_VALIDATE:
28290 case NB_EV_PREPARE:
28291 case NB_EV_ABORT:
28292 return NB_OK;
28293 case NB_EV_APPLY:
28294 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28295 args, PEER_FLAG_SEND_COMMUNITY,
28296 yang_dnode_get_bool(args->dnode, NULL));
28297
28298 break;
28299 }
28300
28301 return NB_OK;
28302 }
28303
28304 /*
28305 * XPath:
28306 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/send-community/send-ext-community
28307 */
28308 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_ext_community_modify(
28309 struct nb_cb_modify_args *args)
28310 {
28311 switch (args->event) {
28312 case NB_EV_VALIDATE:
28313 case NB_EV_PREPARE:
28314 case NB_EV_ABORT:
28315 return NB_OK;
28316 case NB_EV_APPLY:
28317 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28318 args, PEER_FLAG_SEND_EXT_COMMUNITY,
28319 yang_dnode_get_bool(args->dnode, NULL));
28320
28321 break;
28322 }
28323
28324 return NB_OK;
28325 }
28326
28327 /*
28328 * XPath:
28329 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/send-community/send-large-community
28330 */
28331 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_large_community_modify(
28332 struct nb_cb_modify_args *args)
28333 {
28334 switch (args->event) {
28335 case NB_EV_VALIDATE:
28336 case NB_EV_PREPARE:
28337 case NB_EV_ABORT:
28338 return NB_OK;
28339 case NB_EV_APPLY:
28340 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28341 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
28342 yang_dnode_get_bool(args->dnode, NULL));
28343
28344 break;
28345 }
28346
28347 return NB_OK;
28348 }
28349
28350 /*
28351 * XPath:
28352 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/soft-reconfiguration
28353 */
28354 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_soft_reconfiguration_modify(
28355 struct nb_cb_modify_args *args)
28356 {
28357 switch (args->event) {
28358 case NB_EV_VALIDATE:
28359 case NB_EV_PREPARE:
28360 case NB_EV_ABORT:
28361 return NB_OK;
28362 case NB_EV_APPLY:
28363 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28364 args, PEER_FLAG_SOFT_RECONFIG,
28365 yang_dnode_get_bool(args->dnode, NULL));
28366
28367 break;
28368 }
28369
28370 return NB_OK;
28371 }
28372
28373 /*
28374 * XPath:
28375 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/weight/weight-attribute
28376 */
28377 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_modify(
28378 struct nb_cb_modify_args *args)
28379 {
28380 switch (args->event) {
28381 case NB_EV_VALIDATE:
28382 case NB_EV_PREPARE:
28383 case NB_EV_ABORT:
28384 return NB_OK;
28385 case NB_EV_APPLY:
28386 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
28387
28388 break;
28389 }
28390
28391 return NB_OK;
28392 }
28393
28394 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_destroy(
28395 struct nb_cb_destroy_args *args)
28396 {
28397 switch (args->event) {
28398 case NB_EV_VALIDATE:
28399 case NB_EV_PREPARE:
28400 case NB_EV_ABORT:
28401 return NB_OK;
28402 case NB_EV_APPLY:
28403 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
28404
28405 break;
28406 }
28407
28408 return NB_OK;
28409 }
28410
28411 /*
28412 * XPath:
28413 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/rmap-import
28414 */
28415 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_modify(
28416 struct nb_cb_modify_args *args)
28417 {
28418 switch (args->event) {
28419 case NB_EV_VALIDATE:
28420 case NB_EV_PREPARE:
28421 case NB_EV_ABORT:
28422 break;
28423 case NB_EV_APPLY:
28424 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
28425 RMAP_IN);
28426 }
28427
28428 return NB_OK;
28429 }
28430
28431 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_destroy(
28432 struct nb_cb_destroy_args *args)
28433 {
28434 switch (args->event) {
28435 case NB_EV_VALIDATE:
28436 case NB_EV_PREPARE:
28437 case NB_EV_ABORT:
28438 break;
28439 case NB_EV_APPLY:
28440 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
28441 RMAP_IN);
28442 }
28443
28444 return NB_OK;
28445 }
28446
28447 /*
28448 * XPath:
28449 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/rmap-export
28450 */
28451 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_modify(
28452 struct nb_cb_modify_args *args)
28453 {
28454 switch (args->event) {
28455 case NB_EV_VALIDATE:
28456 case NB_EV_PREPARE:
28457 case NB_EV_ABORT:
28458 break;
28459 case NB_EV_APPLY:
28460 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
28461 RMAP_OUT);
28462 }
28463
28464 return NB_OK;
28465 }
28466
28467 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_destroy(
28468 struct nb_cb_destroy_args *args)
28469 {
28470 switch (args->event) {
28471 case NB_EV_VALIDATE:
28472 case NB_EV_PREPARE:
28473 case NB_EV_ABORT:
28474 break;
28475 case NB_EV_APPLY:
28476 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
28477 RMAP_OUT);
28478 }
28479
28480 return NB_OK;
28481 }
28482
28483 /*
28484 * XPath:
28485 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/plist-import
28486 */
28487 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_modify(
28488 struct nb_cb_modify_args *args)
28489 {
28490 switch (args->event) {
28491 case NB_EV_VALIDATE:
28492 case NB_EV_PREPARE:
28493 case NB_EV_ABORT:
28494 break;
28495 case NB_EV_APPLY:
28496 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
28497 FILTER_IN);
28498 }
28499
28500 return NB_OK;
28501 }
28502
28503 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_destroy(
28504 struct nb_cb_destroy_args *args)
28505 {
28506 switch (args->event) {
28507 case NB_EV_VALIDATE:
28508 case NB_EV_PREPARE:
28509 case NB_EV_ABORT:
28510 break;
28511 case NB_EV_APPLY:
28512 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
28513 args, FILTER_IN);
28514 }
28515
28516 return NB_OK;
28517 }
28518
28519 /*
28520 * XPath:
28521 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/plist-export
28522 */
28523 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_modify(
28524 struct nb_cb_modify_args *args)
28525 {
28526 switch (args->event) {
28527 case NB_EV_VALIDATE:
28528 case NB_EV_PREPARE:
28529 case NB_EV_ABORT:
28530 break;
28531 case NB_EV_APPLY:
28532 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
28533 args, FILTER_OUT);
28534 }
28535
28536 return NB_OK;
28537 }
28538
28539 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_destroy(
28540 struct nb_cb_destroy_args *args)
28541 {
28542 switch (args->event) {
28543 case NB_EV_VALIDATE:
28544 case NB_EV_PREPARE:
28545 case NB_EV_ABORT:
28546 break;
28547 case NB_EV_APPLY:
28548 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
28549 args, FILTER_OUT);
28550 }
28551
28552 return NB_OK;
28553 }
28554
28555 /*
28556 * XPath:
28557 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/access-list-import
28558 */
28559 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_modify(
28560 struct nb_cb_modify_args *args)
28561 {
28562 switch (args->event) {
28563 case NB_EV_VALIDATE:
28564 case NB_EV_PREPARE:
28565 case NB_EV_ABORT:
28566 case NB_EV_APPLY:
28567 /* TODO: implement me. */
28568 break;
28569 }
28570
28571 return NB_OK;
28572 }
28573
28574 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_destroy(
28575 struct nb_cb_destroy_args *args)
28576 {
28577 switch (args->event) {
28578 case NB_EV_VALIDATE:
28579 case NB_EV_PREPARE:
28580 case NB_EV_ABORT:
28581 case NB_EV_APPLY:
28582 /* TODO: implement me. */
28583 break;
28584 }
28585
28586 return NB_OK;
28587 }
28588
28589 /*
28590 * XPath:
28591 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/access-list-export
28592 */
28593 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_modify(
28594 struct nb_cb_modify_args *args)
28595 {
28596 switch (args->event) {
28597 case NB_EV_VALIDATE:
28598 case NB_EV_PREPARE:
28599 case NB_EV_ABORT:
28600 case NB_EV_APPLY:
28601 /* TODO: implement me. */
28602 break;
28603 }
28604
28605 return NB_OK;
28606 }
28607
28608 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_destroy(
28609 struct nb_cb_destroy_args *args)
28610 {
28611 switch (args->event) {
28612 case NB_EV_VALIDATE:
28613 case NB_EV_PREPARE:
28614 case NB_EV_ABORT:
28615 case NB_EV_APPLY:
28616 /* TODO: implement me. */
28617 break;
28618 }
28619
28620 return NB_OK;
28621 }
28622
28623 /*
28624 * XPath:
28625 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/as-path-filter-list-import
28626 */
28627 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_modify(
28628 struct nb_cb_modify_args *args)
28629 {
28630 switch (args->event) {
28631 case NB_EV_VALIDATE:
28632 case NB_EV_PREPARE:
28633 case NB_EV_ABORT:
28634 case NB_EV_APPLY:
28635 /* TODO: implement me. */
28636 break;
28637 }
28638
28639 return NB_OK;
28640 }
28641
28642 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_destroy(
28643 struct nb_cb_destroy_args *args)
28644 {
28645 switch (args->event) {
28646 case NB_EV_VALIDATE:
28647 case NB_EV_PREPARE:
28648 case NB_EV_ABORT:
28649 case NB_EV_APPLY:
28650 /* TODO: implement me. */
28651 break;
28652 }
28653
28654 return NB_OK;
28655 }
28656
28657 /*
28658 * XPath:
28659 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/as-path-filter-list-export
28660 */
28661 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_modify(
28662 struct nb_cb_modify_args *args)
28663 {
28664 switch (args->event) {
28665 case NB_EV_VALIDATE:
28666 case NB_EV_PREPARE:
28667 case NB_EV_ABORT:
28668 case NB_EV_APPLY:
28669 /* TODO: implement me. */
28670 break;
28671 }
28672
28673 return NB_OK;
28674 }
28675
28676 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_destroy(
28677 struct nb_cb_destroy_args *args)
28678 {
28679 switch (args->event) {
28680 case NB_EV_VALIDATE:
28681 case NB_EV_PREPARE:
28682 case NB_EV_ABORT:
28683 case NB_EV_APPLY:
28684 /* TODO: implement me. */
28685 break;
28686 }
28687
28688 return NB_OK;
28689 }
28690
28691 /*
28692 * XPath:
28693 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/unsuppress-map-import
28694 */
28695 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_modify(
28696 struct nb_cb_modify_args *args)
28697 {
28698 switch (args->event) {
28699 case NB_EV_VALIDATE:
28700 case NB_EV_PREPARE:
28701 case NB_EV_ABORT:
28702 case NB_EV_APPLY:
28703 /* TODO: implement me. */
28704 break;
28705 }
28706
28707 return NB_OK;
28708 }
28709
28710 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_destroy(
28711 struct nb_cb_destroy_args *args)
28712 {
28713 switch (args->event) {
28714 case NB_EV_VALIDATE:
28715 case NB_EV_PREPARE:
28716 case NB_EV_ABORT:
28717 case NB_EV_APPLY:
28718 /* TODO: implement me. */
28719 break;
28720 }
28721
28722 return NB_OK;
28723 }
28724
28725 /*
28726 * XPath:
28727 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/unsuppress-map-export
28728 */
28729 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_modify(
28730 struct nb_cb_modify_args *args)
28731 {
28732 switch (args->event) {
28733 case NB_EV_VALIDATE:
28734 case NB_EV_PREPARE:
28735 case NB_EV_ABORT:
28736 case NB_EV_APPLY:
28737 /* TODO: implement me. */
28738 break;
28739 }
28740
28741 return NB_OK;
28742 }
28743
28744 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_destroy(
28745 struct nb_cb_destroy_args *args)
28746 {
28747 switch (args->event) {
28748 case NB_EV_VALIDATE:
28749 case NB_EV_PREPARE:
28750 case NB_EV_ABORT:
28751 case NB_EV_APPLY:
28752 /* TODO: implement me. */
28753 break;
28754 }
28755
28756 return NB_OK;
28757 }
28758
28759 /*
28760 * XPath:
28761 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/add-paths/path-type
28762 */
28763 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_add_paths_path_type_modify(
28764 struct nb_cb_modify_args *args)
28765 {
28766 switch (args->event) {
28767 case NB_EV_VALIDATE:
28768 case NB_EV_PREPARE:
28769 case NB_EV_ABORT:
28770 case NB_EV_APPLY:
28771 /* TODO: implement me. */
28772 break;
28773 }
28774
28775 return NB_OK;
28776 }
28777
28778 /*
28779 * XPath:
28780 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/as-path-options/allow-own-as
28781 */
28782 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_modify(
28783 struct nb_cb_modify_args *args)
28784 {
28785 switch (args->event) {
28786 case NB_EV_VALIDATE:
28787 case NB_EV_PREPARE:
28788 case NB_EV_ABORT:
28789 case NB_EV_APPLY:
28790 /* TODO: implement me. */
28791 break;
28792 }
28793
28794 return NB_OK;
28795 }
28796
28797 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_destroy(
28798 struct nb_cb_destroy_args *args)
28799 {
28800 switch (args->event) {
28801 case NB_EV_VALIDATE:
28802 case NB_EV_PREPARE:
28803 case NB_EV_ABORT:
28804 case NB_EV_APPLY:
28805 /* TODO: implement me. */
28806 break;
28807 }
28808
28809 return NB_OK;
28810 }
28811
28812 /*
28813 * XPath:
28814 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/as-path-options/allow-own-origin-as
28815 */
28816 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_modify(
28817 struct nb_cb_modify_args *args)
28818 {
28819 switch (args->event) {
28820 case NB_EV_VALIDATE:
28821 case NB_EV_PREPARE:
28822 case NB_EV_ABORT:
28823 case NB_EV_APPLY:
28824 /* TODO: implement me. */
28825 break;
28826 }
28827
28828 return NB_OK;
28829 }
28830
28831 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_destroy(
28832 struct nb_cb_destroy_args *args)
28833 {
28834 switch (args->event) {
28835 case NB_EV_VALIDATE:
28836 case NB_EV_PREPARE:
28837 case NB_EV_ABORT:
28838 case NB_EV_APPLY:
28839 /* TODO: implement me. */
28840 break;
28841 }
28842
28843 return NB_OK;
28844 }
28845
28846 /*
28847 * XPath:
28848 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/as-path-options/replace-peer-as
28849 */
28850 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_replace_peer_as_modify(
28851 struct nb_cb_modify_args *args)
28852 {
28853 switch (args->event) {
28854 case NB_EV_VALIDATE:
28855 case NB_EV_PREPARE:
28856 case NB_EV_ABORT:
28857 return NB_OK;
28858 case NB_EV_APPLY:
28859 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28860 args, PEER_FLAG_AS_OVERRIDE,
28861 yang_dnode_get_bool(args->dnode, NULL));
28862
28863 break;
28864 }
28865
28866 return NB_OK;
28867 }
28868
28869 /*
28870 * XPath:
28871 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/default-originate/originate
28872 */
28873 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_originate_modify(
28874 struct nb_cb_modify_args *args)
28875 {
28876 switch (args->event) {
28877 case NB_EV_VALIDATE:
28878 case NB_EV_PREPARE:
28879 case NB_EV_ABORT:
28880 case NB_EV_APPLY:
28881 /* TODO: implement me. */
28882 break;
28883 }
28884
28885 return NB_OK;
28886 }
28887
28888 /*
28889 * XPath:
28890 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/default-originate/route-map
28891 */
28892 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_modify(
28893 struct nb_cb_modify_args *args)
28894 {
28895 switch (args->event) {
28896 case NB_EV_VALIDATE:
28897 case NB_EV_PREPARE:
28898 case NB_EV_ABORT:
28899 case NB_EV_APPLY:
28900 /* TODO: implement me. */
28901 break;
28902 }
28903
28904 return NB_OK;
28905 }
28906
28907 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_destroy(
28908 struct nb_cb_destroy_args *args)
28909 {
28910 switch (args->event) {
28911 case NB_EV_VALIDATE:
28912 case NB_EV_PREPARE:
28913 case NB_EV_ABORT:
28914 case NB_EV_APPLY:
28915 /* TODO: implement me. */
28916 break;
28917 }
28918
28919 return NB_OK;
28920 }
28921
28922 /*
28923 * XPath:
28924 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/attr-unchanged/as-path-unchanged
28925 */
28926 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_as_path_unchanged_modify(
28927 struct nb_cb_modify_args *args)
28928 {
28929 switch (args->event) {
28930 case NB_EV_VALIDATE:
28931 case NB_EV_PREPARE:
28932 case NB_EV_ABORT:
28933 return NB_OK;
28934 case NB_EV_APPLY:
28935 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28936 args, PEER_FLAG_AS_PATH_UNCHANGED,
28937 yang_dnode_get_bool(args->dnode, NULL));
28938
28939 break;
28940 }
28941
28942 return NB_OK;
28943 }
28944
28945 /*
28946 * XPath:
28947 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/attr-unchanged/next-hop-unchanged
28948 */
28949 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_next_hop_unchanged_modify(
28950 struct nb_cb_modify_args *args)
28951 {
28952 switch (args->event) {
28953 case NB_EV_VALIDATE:
28954 case NB_EV_PREPARE:
28955 case NB_EV_ABORT:
28956 return NB_OK;
28957 case NB_EV_APPLY:
28958 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28959 args, PEER_FLAG_NEXTHOP_UNCHANGED,
28960 yang_dnode_get_bool(args->dnode, NULL));
28961
28962 break;
28963 }
28964
28965 return NB_OK;
28966 }
28967
28968 /*
28969 * XPath:
28970 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/attr-unchanged/med-unchanged
28971 */
28972 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_med_unchanged_modify(
28973 struct nb_cb_modify_args *args)
28974 {
28975 switch (args->event) {
28976 case NB_EV_VALIDATE:
28977 case NB_EV_PREPARE:
28978 case NB_EV_ABORT:
28979 return NB_OK;
28980 case NB_EV_APPLY:
28981 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28982 args, PEER_FLAG_MED_UNCHANGED,
28983 yang_dnode_get_bool(args->dnode, NULL));
28984
28985 break;
28986 }
28987
28988 return NB_OK;
28989 }
28990
28991 /*
28992 * XPath:
28993 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-send
28994 */
28995 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_modify(
28996 struct nb_cb_modify_args *args)
28997 {
28998 switch (args->event) {
28999 case NB_EV_VALIDATE:
29000 case NB_EV_PREPARE:
29001 case NB_EV_ABORT:
29002 case NB_EV_APPLY:
29003 /* TODO: implement me. */
29004 break;
29005 }
29006
29007 return NB_OK;
29008 }
29009
29010 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_destroy(
29011 struct nb_cb_destroy_args *args)
29012 {
29013 switch (args->event) {
29014 case NB_EV_VALIDATE:
29015 case NB_EV_PREPARE:
29016 case NB_EV_ABORT:
29017 case NB_EV_APPLY:
29018 /* TODO: implement me. */
29019 break;
29020 }
29021
29022 return NB_OK;
29023 }
29024
29025 /*
29026 * XPath:
29027 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-receive
29028 */
29029 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_modify(
29030 struct nb_cb_modify_args *args)
29031 {
29032 switch (args->event) {
29033 case NB_EV_VALIDATE:
29034 case NB_EV_PREPARE:
29035 case NB_EV_ABORT:
29036 case NB_EV_APPLY:
29037 /* TODO: implement me. */
29038 break;
29039 }
29040
29041 return NB_OK;
29042 }
29043
29044 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_destroy(
29045 struct nb_cb_destroy_args *args)
29046 {
29047 switch (args->event) {
29048 case NB_EV_VALIDATE:
29049 case NB_EV_PREPARE:
29050 case NB_EV_ABORT:
29051 case NB_EV_APPLY:
29052 /* TODO: implement me. */
29053 break;
29054 }
29055
29056 return NB_OK;
29057 }
29058
29059 /*
29060 * XPath:
29061 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-both
29062 */
29063 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_modify(
29064 struct nb_cb_modify_args *args)
29065 {
29066 switch (args->event) {
29067 case NB_EV_VALIDATE:
29068 case NB_EV_PREPARE:
29069 case NB_EV_ABORT:
29070 case NB_EV_APPLY:
29071 /* TODO: implement me. */
29072 break;
29073 }
29074
29075 return NB_OK;
29076 }
29077
29078 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_destroy(
29079 struct nb_cb_destroy_args *args)
29080 {
29081 switch (args->event) {
29082 case NB_EV_VALIDATE:
29083 case NB_EV_PREPARE:
29084 case NB_EV_ABORT:
29085 case NB_EV_APPLY:
29086 /* TODO: implement me. */
29087 break;
29088 }
29089
29090 return NB_OK;
29091 }
29092
29093 /*
29094 * XPath:
29095 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list
29096 */
29097 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_create(
29098 struct nb_cb_create_args *args)
29099 {
29100 switch (args->event) {
29101 case NB_EV_VALIDATE:
29102 case NB_EV_PREPARE:
29103 case NB_EV_ABORT:
29104 case NB_EV_APPLY:
29105 /* TODO: implement me. */
29106 break;
29107 }
29108
29109 return NB_OK;
29110 }
29111
29112 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_destroy(
29113 struct nb_cb_destroy_args *args)
29114 {
29115 switch (args->event) {
29116 case NB_EV_VALIDATE:
29117 case NB_EV_PREPARE:
29118 case NB_EV_ABORT:
29119 return NB_OK;
29120 case NB_EV_APPLY:
29121 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
29122 args);
29123 }
29124
29125 return NB_OK;
29126 }
29127
29128 /*
29129 * XPath:
29130 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/max-prefixes
29131 */
29132 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_max_prefixes_modify(
29133 struct nb_cb_modify_args *args)
29134 {
29135 switch (args->event) {
29136 case NB_EV_VALIDATE:
29137 case NB_EV_PREPARE:
29138 case NB_EV_ABORT:
29139 case NB_EV_APPLY:
29140 /* TODO: implement me. */
29141 break;
29142 }
29143
29144 return NB_OK;
29145 }
29146
29147 /*
29148 * XPath:
29149 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/force-check
29150 */
29151 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_force_check_modify(
29152 struct nb_cb_modify_args *args)
29153 {
29154 switch (args->event) {
29155 case NB_EV_VALIDATE:
29156 case NB_EV_PREPARE:
29157 case NB_EV_ABORT:
29158 case NB_EV_APPLY:
29159 /* TODO: implement me. */
29160 break;
29161 }
29162
29163 return NB_OK;
29164 }
29165
29166 /*
29167 * XPath:
29168 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/warning-only
29169 */
29170 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_modify(
29171 struct nb_cb_modify_args *args)
29172 {
29173 switch (args->event) {
29174 case NB_EV_VALIDATE:
29175 case NB_EV_PREPARE:
29176 case NB_EV_ABORT:
29177 case NB_EV_APPLY:
29178 /* TODO: implement me. */
29179 break;
29180 }
29181
29182 return NB_OK;
29183 }
29184
29185 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_destroy(
29186 struct nb_cb_destroy_args *args)
29187 {
29188 switch (args->event) {
29189 case NB_EV_VALIDATE:
29190 case NB_EV_PREPARE:
29191 case NB_EV_ABORT:
29192 case NB_EV_APPLY:
29193 /* TODO: implement me. */
29194 break;
29195 }
29196
29197 return NB_OK;
29198 }
29199
29200 /*
29201 * XPath:
29202 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/restart-timer
29203 */
29204 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_modify(
29205 struct nb_cb_modify_args *args)
29206 {
29207 switch (args->event) {
29208 case NB_EV_VALIDATE:
29209 case NB_EV_PREPARE:
29210 case NB_EV_ABORT:
29211 case NB_EV_APPLY:
29212 /* TODO: implement me. */
29213 break;
29214 }
29215
29216 return NB_OK;
29217 }
29218
29219 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
29220 struct nb_cb_destroy_args *args)
29221 {
29222 switch (args->event) {
29223 case NB_EV_VALIDATE:
29224 case NB_EV_PREPARE:
29225 case NB_EV_ABORT:
29226 case NB_EV_APPLY:
29227 /* TODO: implement me. */
29228 break;
29229 }
29230
29231 return NB_OK;
29232 }
29233
29234 /*
29235 * XPath:
29236 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/shutdown-threshold-pct
29237 */
29238 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
29239 struct nb_cb_modify_args *args)
29240 {
29241 switch (args->event) {
29242 case NB_EV_VALIDATE:
29243 case NB_EV_PREPARE:
29244 case NB_EV_ABORT:
29245 case NB_EV_APPLY:
29246 /* TODO: implement me. */
29247 break;
29248 }
29249
29250 return NB_OK;
29251 }
29252
29253 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
29254 struct nb_cb_destroy_args *args)
29255 {
29256 switch (args->event) {
29257 case NB_EV_VALIDATE:
29258 case NB_EV_PREPARE:
29259 case NB_EV_ABORT:
29260 case NB_EV_APPLY:
29261 /* TODO: implement me. */
29262 break;
29263 }
29264
29265 return NB_OK;
29266 }
29267
29268 /*
29269 * XPath:
29270 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
29271 */
29272 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
29273 struct nb_cb_modify_args *args)
29274 {
29275 switch (args->event) {
29276 case NB_EV_VALIDATE:
29277 case NB_EV_PREPARE:
29278 case NB_EV_ABORT:
29279 case NB_EV_APPLY:
29280 /* TODO: implement me. */
29281 break;
29282 }
29283
29284 return NB_OK;
29285 }
29286
29287 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
29288 struct nb_cb_destroy_args *args)
29289 {
29290 switch (args->event) {
29291 case NB_EV_VALIDATE:
29292 case NB_EV_PREPARE:
29293 case NB_EV_ABORT:
29294 case NB_EV_APPLY:
29295 /* TODO: implement me. */
29296 break;
29297 }
29298
29299 return NB_OK;
29300 }
29301
29302 /*
29303 * XPath:
29304 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tr-restart-timer
29305 */
29306 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
29307 struct nb_cb_modify_args *args)
29308 {
29309 switch (args->event) {
29310 case NB_EV_VALIDATE:
29311 case NB_EV_PREPARE:
29312 case NB_EV_ABORT:
29313 case NB_EV_APPLY:
29314 /* TODO: implement me. */
29315 break;
29316 }
29317
29318 return NB_OK;
29319 }
29320
29321 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
29322 struct nb_cb_destroy_args *args)
29323 {
29324 switch (args->event) {
29325 case NB_EV_VALIDATE:
29326 case NB_EV_PREPARE:
29327 case NB_EV_ABORT:
29328 case NB_EV_APPLY:
29329 /* TODO: implement me. */
29330 break;
29331 }
29332
29333 return NB_OK;
29334 }
29335
29336 /*
29337 * XPath:
29338 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
29339 */
29340 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
29341 struct nb_cb_modify_args *args)
29342 {
29343 switch (args->event) {
29344 case NB_EV_VALIDATE:
29345 case NB_EV_PREPARE:
29346 case NB_EV_ABORT:
29347 case NB_EV_APPLY:
29348 /* TODO: implement me. */
29349 break;
29350 }
29351
29352 return NB_OK;
29353 }
29354
29355 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
29356 struct nb_cb_destroy_args *args)
29357 {
29358 switch (args->event) {
29359 case NB_EV_VALIDATE:
29360 case NB_EV_PREPARE:
29361 case NB_EV_ABORT:
29362 case NB_EV_APPLY:
29363 /* TODO: implement me. */
29364 break;
29365 }
29366
29367 return NB_OK;
29368 }
29369
29370 /*
29371 * XPath:
29372 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tw-warning-only
29373 */
29374 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
29375 struct nb_cb_modify_args *args)
29376 {
29377 switch (args->event) {
29378 case NB_EV_VALIDATE:
29379 case NB_EV_PREPARE:
29380 case NB_EV_ABORT:
29381 case NB_EV_APPLY:
29382 /* TODO: implement me. */
29383 break;
29384 }
29385
29386 return NB_OK;
29387 }
29388
29389 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
29390 struct nb_cb_destroy_args *args)
29391 {
29392 switch (args->event) {
29393 case NB_EV_VALIDATE:
29394 case NB_EV_PREPARE:
29395 case NB_EV_ABORT:
29396 case NB_EV_APPLY:
29397 /* TODO: implement me. */
29398 break;
29399 }
29400
29401 return NB_OK;
29402 }
29403
29404 /*
29405 * XPath:
29406 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/nexthop-self/next-hop-self
29407 */
29408 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_modify(
29409 struct nb_cb_modify_args *args)
29410 {
29411 switch (args->event) {
29412 case NB_EV_VALIDATE:
29413 case NB_EV_PREPARE:
29414 case NB_EV_ABORT:
29415 return NB_OK;
29416 case NB_EV_APPLY:
29417 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29418 args, PEER_FLAG_NEXTHOP_SELF,
29419 yang_dnode_get_bool(args->dnode, NULL));
29420
29421 break;
29422 }
29423
29424 return NB_OK;
29425 }
29426
29427 /*
29428 * XPath:
29429 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/nexthop-self/next-hop-self-force
29430 */
29431 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_force_modify(
29432 struct nb_cb_modify_args *args)
29433 {
29434 switch (args->event) {
29435 case NB_EV_VALIDATE:
29436 case NB_EV_PREPARE:
29437 case NB_EV_ABORT:
29438 return NB_OK;
29439 case NB_EV_APPLY:
29440 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29441 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
29442 yang_dnode_get_bool(args->dnode, NULL));
29443
29444 break;
29445 }
29446
29447 return NB_OK;
29448 }
29449
29450 /*
29451 * XPath:
29452 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as-all
29453 */
29454 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_modify(
29455 struct nb_cb_modify_args *args)
29456 {
29457 switch (args->event) {
29458 case NB_EV_VALIDATE:
29459 case NB_EV_PREPARE:
29460 case NB_EV_ABORT:
29461 return NB_OK;
29462 case NB_EV_APPLY:
29463 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29464 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
29465 yang_dnode_get_bool(args->dnode, NULL));
29466
29467 break;
29468 }
29469
29470 return NB_OK;
29471 }
29472
29473 /*
29474 * XPath:
29475 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as-all-replace
29476 */
29477 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_replace_modify(
29478 struct nb_cb_modify_args *args)
29479 {
29480 switch (args->event) {
29481 case NB_EV_VALIDATE:
29482 case NB_EV_PREPARE:
29483 case NB_EV_ABORT:
29484 return NB_OK;
29485 case NB_EV_APPLY:
29486 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29487 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
29488 yang_dnode_get_bool(args->dnode, NULL));
29489
29490 break;
29491 }
29492
29493 return NB_OK;
29494 }
29495
29496 /*
29497 * XPath:
29498 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as
29499 */
29500 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_modify(
29501 struct nb_cb_modify_args *args)
29502 {
29503 switch (args->event) {
29504 case NB_EV_VALIDATE:
29505 case NB_EV_PREPARE:
29506 case NB_EV_ABORT:
29507 return NB_OK;
29508 case NB_EV_APPLY:
29509 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29510 args, PEER_FLAG_REMOVE_PRIVATE_AS,
29511 yang_dnode_get_bool(args->dnode, NULL));
29512
29513 break;
29514 }
29515
29516 return NB_OK;
29517 }
29518
29519 /*
29520 * XPath:
29521 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as-replace
29522 */
29523 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_replace_modify(
29524 struct nb_cb_modify_args *args)
29525 {
29526 switch (args->event) {
29527 case NB_EV_VALIDATE:
29528 case NB_EV_PREPARE:
29529 case NB_EV_ABORT:
29530 return NB_OK;
29531 case NB_EV_APPLY:
29532 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29533 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
29534 yang_dnode_get_bool(args->dnode, NULL));
29535
29536 break;
29537 }
29538
29539 return NB_OK;
29540 }
29541
29542 /*
29543 * XPath:
29544 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/route-reflector/route-reflector-client
29545 */
29546 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_route_reflector_route_reflector_client_modify(
29547 struct nb_cb_modify_args *args)
29548 {
29549 switch (args->event) {
29550 case NB_EV_VALIDATE:
29551 case NB_EV_PREPARE:
29552 case NB_EV_ABORT:
29553 return NB_OK;
29554 case NB_EV_APPLY:
29555 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29556 args, PEER_FLAG_REFLECTOR_CLIENT,
29557 yang_dnode_get_bool(args->dnode, NULL));
29558
29559 break;
29560 }
29561
29562 return NB_OK;
29563 }
29564
29565 /*
29566 * XPath:
29567 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/route-server/route-server-client
29568 */
29569 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_route_server_route_server_client_modify(
29570 struct nb_cb_modify_args *args)
29571 {
29572 switch (args->event) {
29573 case NB_EV_VALIDATE:
29574 case NB_EV_PREPARE:
29575 case NB_EV_ABORT:
29576 return NB_OK;
29577 case NB_EV_APPLY:
29578 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29579 args, PEER_FLAG_RSERVER_CLIENT,
29580 yang_dnode_get_bool(args->dnode, NULL));
29581
29582 break;
29583 }
29584
29585 return NB_OK;
29586 }
29587
29588 /*
29589 * XPath:
29590 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/send-community/send-community
29591 */
29592 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_community_modify(
29593 struct nb_cb_modify_args *args)
29594 {
29595 switch (args->event) {
29596 case NB_EV_VALIDATE:
29597 case NB_EV_PREPARE:
29598 case NB_EV_ABORT:
29599 return NB_OK;
29600 case NB_EV_APPLY:
29601 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29602 args, PEER_FLAG_SEND_COMMUNITY,
29603 yang_dnode_get_bool(args->dnode, NULL));
29604
29605 break;
29606 }
29607
29608 return NB_OK;
29609 }
29610
29611 /*
29612 * XPath:
29613 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/send-community/send-ext-community
29614 */
29615 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_ext_community_modify(
29616 struct nb_cb_modify_args *args)
29617 {
29618 switch (args->event) {
29619 case NB_EV_VALIDATE:
29620 case NB_EV_PREPARE:
29621 case NB_EV_ABORT:
29622 return NB_OK;
29623 case NB_EV_APPLY:
29624 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29625 args, PEER_FLAG_SEND_EXT_COMMUNITY,
29626 yang_dnode_get_bool(args->dnode, NULL));
29627
29628 break;
29629 }
29630
29631 return NB_OK;
29632 }
29633
29634 /*
29635 * XPath:
29636 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/send-community/send-large-community
29637 */
29638 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_large_community_modify(
29639 struct nb_cb_modify_args *args)
29640 {
29641 switch (args->event) {
29642 case NB_EV_VALIDATE:
29643 case NB_EV_PREPARE:
29644 case NB_EV_ABORT:
29645 return NB_OK;
29646 case NB_EV_APPLY:
29647 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29648 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
29649 yang_dnode_get_bool(args->dnode, NULL));
29650
29651 break;
29652 }
29653
29654 return NB_OK;
29655 }
29656
29657 /*
29658 * XPath:
29659 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/soft-reconfiguration
29660 */
29661 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_soft_reconfiguration_modify(
29662 struct nb_cb_modify_args *args)
29663 {
29664 switch (args->event) {
29665 case NB_EV_VALIDATE:
29666 case NB_EV_PREPARE:
29667 case NB_EV_ABORT:
29668 return NB_OK;
29669 case NB_EV_APPLY:
29670 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29671 args, PEER_FLAG_SOFT_RECONFIG,
29672 yang_dnode_get_bool(args->dnode, NULL));
29673
29674 break;
29675 }
29676
29677 return NB_OK;
29678 }
29679
29680 /*
29681 * XPath:
29682 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/weight/weight-attribute
29683 */
29684 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_modify(
29685 struct nb_cb_modify_args *args)
29686 {
29687 switch (args->event) {
29688 case NB_EV_VALIDATE:
29689 case NB_EV_PREPARE:
29690 case NB_EV_ABORT:
29691 return NB_OK;
29692 case NB_EV_APPLY:
29693 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
29694
29695 break;
29696 }
29697
29698 return NB_OK;
29699 }
29700
29701 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_destroy(
29702 struct nb_cb_destroy_args *args)
29703 {
29704 switch (args->event) {
29705 case NB_EV_VALIDATE:
29706 case NB_EV_PREPARE:
29707 case NB_EV_ABORT:
29708 return NB_OK;
29709 case NB_EV_APPLY:
29710 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
29711
29712 break;
29713 }
29714
29715 return NB_OK;
29716 }
29717
29718 /*
29719 * XPath:
29720 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/rmap-import
29721 */
29722 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_modify(
29723 struct nb_cb_modify_args *args)
29724 {
29725 switch (args->event) {
29726 case NB_EV_VALIDATE:
29727 case NB_EV_PREPARE:
29728 case NB_EV_ABORT:
29729 break;
29730 case NB_EV_APPLY:
29731 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
29732 RMAP_IN);
29733 }
29734
29735 return NB_OK;
29736 }
29737
29738 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_destroy(
29739 struct nb_cb_destroy_args *args)
29740 {
29741 switch (args->event) {
29742 case NB_EV_VALIDATE:
29743 case NB_EV_PREPARE:
29744 case NB_EV_ABORT:
29745 break;
29746 case NB_EV_APPLY:
29747 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
29748 RMAP_IN);
29749 }
29750
29751 return NB_OK;
29752 }
29753
29754 /*
29755 * XPath:
29756 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/rmap-export
29757 */
29758 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_modify(
29759 struct nb_cb_modify_args *args)
29760 {
29761 switch (args->event) {
29762 case NB_EV_VALIDATE:
29763 case NB_EV_PREPARE:
29764 case NB_EV_ABORT:
29765 break;
29766 case NB_EV_APPLY:
29767 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
29768 RMAP_OUT);
29769 }
29770
29771 return NB_OK;
29772 }
29773
29774 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_destroy(
29775 struct nb_cb_destroy_args *args)
29776 {
29777 switch (args->event) {
29778 case NB_EV_VALIDATE:
29779 case NB_EV_PREPARE:
29780 case NB_EV_ABORT:
29781 break;
29782 case NB_EV_APPLY:
29783 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
29784 RMAP_OUT);
29785 }
29786
29787 return NB_OK;
29788 }
29789
29790 /*
29791 * XPath:
29792 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/plist-import
29793 */
29794 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_modify(
29795 struct nb_cb_modify_args *args)
29796 {
29797 switch (args->event) {
29798 case NB_EV_VALIDATE:
29799 case NB_EV_PREPARE:
29800 case NB_EV_ABORT:
29801 break;
29802 case NB_EV_APPLY:
29803 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
29804 FILTER_IN);
29805 }
29806
29807 return NB_OK;
29808 }
29809
29810 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_destroy(
29811 struct nb_cb_destroy_args *args)
29812 {
29813 switch (args->event) {
29814 case NB_EV_VALIDATE:
29815 case NB_EV_PREPARE:
29816 case NB_EV_ABORT:
29817 break;
29818 case NB_EV_APPLY:
29819 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
29820 args, FILTER_IN);
29821 }
29822
29823 return NB_OK;
29824 }
29825
29826 /*
29827 * XPath:
29828 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/plist-export
29829 */
29830 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_modify(
29831 struct nb_cb_modify_args *args)
29832 {
29833 switch (args->event) {
29834 case NB_EV_VALIDATE:
29835 case NB_EV_PREPARE:
29836 case NB_EV_ABORT:
29837 break;
29838 case NB_EV_APPLY:
29839 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
29840 args, FILTER_OUT);
29841 }
29842
29843 return NB_OK;
29844 }
29845
29846 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_destroy(
29847 struct nb_cb_destroy_args *args)
29848 {
29849 switch (args->event) {
29850 case NB_EV_VALIDATE:
29851 case NB_EV_PREPARE:
29852 case NB_EV_ABORT:
29853 break;
29854 case NB_EV_APPLY:
29855 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
29856 args, FILTER_OUT);
29857 }
29858
29859 return NB_OK;
29860 }
29861
29862 /*
29863 * XPath:
29864 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/access-list-import
29865 */
29866 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_modify(
29867 struct nb_cb_modify_args *args)
29868 {
29869 switch (args->event) {
29870 case NB_EV_VALIDATE:
29871 case NB_EV_PREPARE:
29872 case NB_EV_ABORT:
29873 case NB_EV_APPLY:
29874 /* TODO: implement me. */
29875 break;
29876 }
29877
29878 return NB_OK;
29879 }
29880
29881 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_destroy(
29882 struct nb_cb_destroy_args *args)
29883 {
29884 switch (args->event) {
29885 case NB_EV_VALIDATE:
29886 case NB_EV_PREPARE:
29887 case NB_EV_ABORT:
29888 case NB_EV_APPLY:
29889 /* TODO: implement me. */
29890 break;
29891 }
29892
29893 return NB_OK;
29894 }
29895
29896 /*
29897 * XPath:
29898 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/access-list-export
29899 */
29900 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_modify(
29901 struct nb_cb_modify_args *args)
29902 {
29903 switch (args->event) {
29904 case NB_EV_VALIDATE:
29905 case NB_EV_PREPARE:
29906 case NB_EV_ABORT:
29907 case NB_EV_APPLY:
29908 /* TODO: implement me. */
29909 break;
29910 }
29911
29912 return NB_OK;
29913 }
29914
29915 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_destroy(
29916 struct nb_cb_destroy_args *args)
29917 {
29918 switch (args->event) {
29919 case NB_EV_VALIDATE:
29920 case NB_EV_PREPARE:
29921 case NB_EV_ABORT:
29922 case NB_EV_APPLY:
29923 /* TODO: implement me. */
29924 break;
29925 }
29926
29927 return NB_OK;
29928 }
29929
29930 /*
29931 * XPath:
29932 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/as-path-filter-list-import
29933 */
29934 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_modify(
29935 struct nb_cb_modify_args *args)
29936 {
29937 switch (args->event) {
29938 case NB_EV_VALIDATE:
29939 case NB_EV_PREPARE:
29940 case NB_EV_ABORT:
29941 case NB_EV_APPLY:
29942 /* TODO: implement me. */
29943 break;
29944 }
29945
29946 return NB_OK;
29947 }
29948
29949 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_destroy(
29950 struct nb_cb_destroy_args *args)
29951 {
29952 switch (args->event) {
29953 case NB_EV_VALIDATE:
29954 case NB_EV_PREPARE:
29955 case NB_EV_ABORT:
29956 case NB_EV_APPLY:
29957 /* TODO: implement me. */
29958 break;
29959 }
29960
29961 return NB_OK;
29962 }
29963
29964 /*
29965 * XPath:
29966 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/as-path-filter-list-export
29967 */
29968 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_modify(
29969 struct nb_cb_modify_args *args)
29970 {
29971 switch (args->event) {
29972 case NB_EV_VALIDATE:
29973 case NB_EV_PREPARE:
29974 case NB_EV_ABORT:
29975 case NB_EV_APPLY:
29976 /* TODO: implement me. */
29977 break;
29978 }
29979
29980 return NB_OK;
29981 }
29982
29983 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_destroy(
29984 struct nb_cb_destroy_args *args)
29985 {
29986 switch (args->event) {
29987 case NB_EV_VALIDATE:
29988 case NB_EV_PREPARE:
29989 case NB_EV_ABORT:
29990 case NB_EV_APPLY:
29991 /* TODO: implement me. */
29992 break;
29993 }
29994
29995 return NB_OK;
29996 }
29997
29998 /*
29999 * XPath:
30000 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/unsuppress-map-import
30001 */
30002 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_modify(
30003 struct nb_cb_modify_args *args)
30004 {
30005 switch (args->event) {
30006 case NB_EV_VALIDATE:
30007 case NB_EV_PREPARE:
30008 case NB_EV_ABORT:
30009 case NB_EV_APPLY:
30010 /* TODO: implement me. */
30011 break;
30012 }
30013
30014 return NB_OK;
30015 }
30016
30017 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_destroy(
30018 struct nb_cb_destroy_args *args)
30019 {
30020 switch (args->event) {
30021 case NB_EV_VALIDATE:
30022 case NB_EV_PREPARE:
30023 case NB_EV_ABORT:
30024 case NB_EV_APPLY:
30025 /* TODO: implement me. */
30026 break;
30027 }
30028
30029 return NB_OK;
30030 }
30031
30032 /*
30033 * XPath:
30034 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/unsuppress-map-export
30035 */
30036 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_modify(
30037 struct nb_cb_modify_args *args)
30038 {
30039 switch (args->event) {
30040 case NB_EV_VALIDATE:
30041 case NB_EV_PREPARE:
30042 case NB_EV_ABORT:
30043 case NB_EV_APPLY:
30044 /* TODO: implement me. */
30045 break;
30046 }
30047
30048 return NB_OK;
30049 }
30050
30051 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_destroy(
30052 struct nb_cb_destroy_args *args)
30053 {
30054 switch (args->event) {
30055 case NB_EV_VALIDATE:
30056 case NB_EV_PREPARE:
30057 case NB_EV_ABORT:
30058 case NB_EV_APPLY:
30059 /* TODO: implement me. */
30060 break;
30061 }
30062
30063 return NB_OK;
30064 }
30065
30066 /*
30067 * XPath:
30068 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/add-paths/path-type
30069 */
30070 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_add_paths_path_type_modify(
30071 struct nb_cb_modify_args *args)
30072 {
30073 switch (args->event) {
30074 case NB_EV_VALIDATE:
30075 case NB_EV_PREPARE:
30076 case NB_EV_ABORT:
30077 case NB_EV_APPLY:
30078 /* TODO: implement me. */
30079 break;
30080 }
30081
30082 return NB_OK;
30083 }
30084
30085 /*
30086 * XPath:
30087 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/as-path-options/allow-own-as
30088 */
30089 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_modify(
30090 struct nb_cb_modify_args *args)
30091 {
30092 switch (args->event) {
30093 case NB_EV_VALIDATE:
30094 case NB_EV_PREPARE:
30095 case NB_EV_ABORT:
30096 case NB_EV_APPLY:
30097 /* TODO: implement me. */
30098 break;
30099 }
30100
30101 return NB_OK;
30102 }
30103
30104 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_destroy(
30105 struct nb_cb_destroy_args *args)
30106 {
30107 switch (args->event) {
30108 case NB_EV_VALIDATE:
30109 case NB_EV_PREPARE:
30110 case NB_EV_ABORT:
30111 case NB_EV_APPLY:
30112 /* TODO: implement me. */
30113 break;
30114 }
30115
30116 return NB_OK;
30117 }
30118
30119 /*
30120 * XPath:
30121 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/as-path-options/allow-own-origin-as
30122 */
30123 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_modify(
30124 struct nb_cb_modify_args *args)
30125 {
30126 switch (args->event) {
30127 case NB_EV_VALIDATE:
30128 case NB_EV_PREPARE:
30129 case NB_EV_ABORT:
30130 case NB_EV_APPLY:
30131 /* TODO: implement me. */
30132 break;
30133 }
30134
30135 return NB_OK;
30136 }
30137
30138 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_destroy(
30139 struct nb_cb_destroy_args *args)
30140 {
30141 switch (args->event) {
30142 case NB_EV_VALIDATE:
30143 case NB_EV_PREPARE:
30144 case NB_EV_ABORT:
30145 case NB_EV_APPLY:
30146 /* TODO: implement me. */
30147 break;
30148 }
30149
30150 return NB_OK;
30151 }
30152
30153 /*
30154 * XPath:
30155 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/as-path-options/replace-peer-as
30156 */
30157 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_replace_peer_as_modify(
30158 struct nb_cb_modify_args *args)
30159 {
30160 switch (args->event) {
30161 case NB_EV_VALIDATE:
30162 case NB_EV_PREPARE:
30163 case NB_EV_ABORT:
30164 return NB_OK;
30165 case NB_EV_APPLY:
30166 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30167 args, PEER_FLAG_AS_OVERRIDE,
30168 yang_dnode_get_bool(args->dnode, NULL));
30169
30170 break;
30171 }
30172
30173 return NB_OK;
30174 }
30175
30176 /*
30177 * XPath:
30178 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/default-originate/originate
30179 */
30180 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_originate_modify(
30181 struct nb_cb_modify_args *args)
30182 {
30183 switch (args->event) {
30184 case NB_EV_VALIDATE:
30185 case NB_EV_PREPARE:
30186 case NB_EV_ABORT:
30187 case NB_EV_APPLY:
30188 /* TODO: implement me. */
30189 break;
30190 }
30191
30192 return NB_OK;
30193 }
30194
30195 /*
30196 * XPath:
30197 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/default-originate/route-map
30198 */
30199 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_modify(
30200 struct nb_cb_modify_args *args)
30201 {
30202 switch (args->event) {
30203 case NB_EV_VALIDATE:
30204 case NB_EV_PREPARE:
30205 case NB_EV_ABORT:
30206 case NB_EV_APPLY:
30207 /* TODO: implement me. */
30208 break;
30209 }
30210
30211 return NB_OK;
30212 }
30213
30214 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_destroy(
30215 struct nb_cb_destroy_args *args)
30216 {
30217 switch (args->event) {
30218 case NB_EV_VALIDATE:
30219 case NB_EV_PREPARE:
30220 case NB_EV_ABORT:
30221 case NB_EV_APPLY:
30222 /* TODO: implement me. */
30223 break;
30224 }
30225
30226 return NB_OK;
30227 }
30228
30229 /*
30230 * XPath:
30231 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/attr-unchanged/as-path-unchanged
30232 */
30233 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_as_path_unchanged_modify(
30234 struct nb_cb_modify_args *args)
30235 {
30236 switch (args->event) {
30237 case NB_EV_VALIDATE:
30238 case NB_EV_PREPARE:
30239 case NB_EV_ABORT:
30240 return NB_OK;
30241 case NB_EV_APPLY:
30242 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30243 args, PEER_FLAG_AS_PATH_UNCHANGED,
30244 yang_dnode_get_bool(args->dnode, NULL));
30245
30246 break;
30247 }
30248
30249 return NB_OK;
30250 }
30251
30252 /*
30253 * XPath:
30254 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/attr-unchanged/next-hop-unchanged
30255 */
30256 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_next_hop_unchanged_modify(
30257 struct nb_cb_modify_args *args)
30258 {
30259 switch (args->event) {
30260 case NB_EV_VALIDATE:
30261 case NB_EV_PREPARE:
30262 case NB_EV_ABORT:
30263 return NB_OK;
30264 case NB_EV_APPLY:
30265 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30266 args, PEER_FLAG_NEXTHOP_UNCHANGED,
30267 yang_dnode_get_bool(args->dnode, NULL));
30268
30269 break;
30270 }
30271
30272 return NB_OK;
30273 }
30274
30275 /*
30276 * XPath:
30277 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/attr-unchanged/med-unchanged
30278 */
30279 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_med_unchanged_modify(
30280 struct nb_cb_modify_args *args)
30281 {
30282 switch (args->event) {
30283 case NB_EV_VALIDATE:
30284 case NB_EV_PREPARE:
30285 case NB_EV_ABORT:
30286 return NB_OK;
30287 case NB_EV_APPLY:
30288 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30289 args, PEER_FLAG_MED_UNCHANGED,
30290 yang_dnode_get_bool(args->dnode, NULL));
30291
30292 break;
30293 }
30294
30295 return NB_OK;
30296 }
30297
30298 /*
30299 * XPath:
30300 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-send
30301 */
30302 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_modify(
30303 struct nb_cb_modify_args *args)
30304 {
30305 switch (args->event) {
30306 case NB_EV_VALIDATE:
30307 case NB_EV_PREPARE:
30308 case NB_EV_ABORT:
30309 case NB_EV_APPLY:
30310 /* TODO: implement me. */
30311 break;
30312 }
30313
30314 return NB_OK;
30315 }
30316
30317 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_destroy(
30318 struct nb_cb_destroy_args *args)
30319 {
30320 switch (args->event) {
30321 case NB_EV_VALIDATE:
30322 case NB_EV_PREPARE:
30323 case NB_EV_ABORT:
30324 case NB_EV_APPLY:
30325 /* TODO: implement me. */
30326 break;
30327 }
30328
30329 return NB_OK;
30330 }
30331
30332 /*
30333 * XPath:
30334 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-receive
30335 */
30336 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_modify(
30337 struct nb_cb_modify_args *args)
30338 {
30339 switch (args->event) {
30340 case NB_EV_VALIDATE:
30341 case NB_EV_PREPARE:
30342 case NB_EV_ABORT:
30343 case NB_EV_APPLY:
30344 /* TODO: implement me. */
30345 break;
30346 }
30347
30348 return NB_OK;
30349 }
30350
30351 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_destroy(
30352 struct nb_cb_destroy_args *args)
30353 {
30354 switch (args->event) {
30355 case NB_EV_VALIDATE:
30356 case NB_EV_PREPARE:
30357 case NB_EV_ABORT:
30358 case NB_EV_APPLY:
30359 /* TODO: implement me. */
30360 break;
30361 }
30362
30363 return NB_OK;
30364 }
30365
30366 /*
30367 * XPath:
30368 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-both
30369 */
30370 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_modify(
30371 struct nb_cb_modify_args *args)
30372 {
30373 switch (args->event) {
30374 case NB_EV_VALIDATE:
30375 case NB_EV_PREPARE:
30376 case NB_EV_ABORT:
30377 case NB_EV_APPLY:
30378 /* TODO: implement me. */
30379 break;
30380 }
30381
30382 return NB_OK;
30383 }
30384
30385 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_destroy(
30386 struct nb_cb_destroy_args *args)
30387 {
30388 switch (args->event) {
30389 case NB_EV_VALIDATE:
30390 case NB_EV_PREPARE:
30391 case NB_EV_ABORT:
30392 case NB_EV_APPLY:
30393 /* TODO: implement me. */
30394 break;
30395 }
30396
30397 return NB_OK;
30398 }
30399
30400 /*
30401 * XPath:
30402 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list
30403 */
30404 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_create(
30405 struct nb_cb_create_args *args)
30406 {
30407 switch (args->event) {
30408 case NB_EV_VALIDATE:
30409 case NB_EV_PREPARE:
30410 case NB_EV_ABORT:
30411 case NB_EV_APPLY:
30412 /* TODO: implement me. */
30413 break;
30414 }
30415
30416 return NB_OK;
30417 }
30418
30419 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_destroy(
30420 struct nb_cb_destroy_args *args)
30421 {
30422 switch (args->event) {
30423 case NB_EV_VALIDATE:
30424 case NB_EV_PREPARE:
30425 case NB_EV_ABORT:
30426 return NB_OK;
30427 case NB_EV_APPLY:
30428 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
30429 args);
30430 }
30431
30432 return NB_OK;
30433 }
30434
30435 /*
30436 * XPath:
30437 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/max-prefixes
30438 */
30439 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_max_prefixes_modify(
30440 struct nb_cb_modify_args *args)
30441 {
30442 switch (args->event) {
30443 case NB_EV_VALIDATE:
30444 case NB_EV_PREPARE:
30445 case NB_EV_ABORT:
30446 case NB_EV_APPLY:
30447 /* TODO: implement me. */
30448 break;
30449 }
30450
30451 return NB_OK;
30452 }
30453
30454 /*
30455 * XPath:
30456 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/force-check
30457 */
30458 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_force_check_modify(
30459 struct nb_cb_modify_args *args)
30460 {
30461 switch (args->event) {
30462 case NB_EV_VALIDATE:
30463 case NB_EV_PREPARE:
30464 case NB_EV_ABORT:
30465 case NB_EV_APPLY:
30466 /* TODO: implement me. */
30467 break;
30468 }
30469
30470 return NB_OK;
30471 }
30472
30473 /*
30474 * XPath:
30475 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/warning-only
30476 */
30477 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_modify(
30478 struct nb_cb_modify_args *args)
30479 {
30480 switch (args->event) {
30481 case NB_EV_VALIDATE:
30482 case NB_EV_PREPARE:
30483 case NB_EV_ABORT:
30484 case NB_EV_APPLY:
30485 /* TODO: implement me. */
30486 break;
30487 }
30488
30489 return NB_OK;
30490 }
30491
30492 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_destroy(
30493 struct nb_cb_destroy_args *args)
30494 {
30495 switch (args->event) {
30496 case NB_EV_VALIDATE:
30497 case NB_EV_PREPARE:
30498 case NB_EV_ABORT:
30499 case NB_EV_APPLY:
30500 /* TODO: implement me. */
30501 break;
30502 }
30503
30504 return NB_OK;
30505 }
30506
30507 /*
30508 * XPath:
30509 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/restart-timer
30510 */
30511 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_modify(
30512 struct nb_cb_modify_args *args)
30513 {
30514 switch (args->event) {
30515 case NB_EV_VALIDATE:
30516 case NB_EV_PREPARE:
30517 case NB_EV_ABORT:
30518 case NB_EV_APPLY:
30519 /* TODO: implement me. */
30520 break;
30521 }
30522
30523 return NB_OK;
30524 }
30525
30526 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
30527 struct nb_cb_destroy_args *args)
30528 {
30529 switch (args->event) {
30530 case NB_EV_VALIDATE:
30531 case NB_EV_PREPARE:
30532 case NB_EV_ABORT:
30533 case NB_EV_APPLY:
30534 /* TODO: implement me. */
30535 break;
30536 }
30537
30538 return NB_OK;
30539 }
30540
30541 /*
30542 * XPath:
30543 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/shutdown-threshold-pct
30544 */
30545 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
30546 struct nb_cb_modify_args *args)
30547 {
30548 switch (args->event) {
30549 case NB_EV_VALIDATE:
30550 case NB_EV_PREPARE:
30551 case NB_EV_ABORT:
30552 case NB_EV_APPLY:
30553 /* TODO: implement me. */
30554 break;
30555 }
30556
30557 return NB_OK;
30558 }
30559
30560 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
30561 struct nb_cb_destroy_args *args)
30562 {
30563 switch (args->event) {
30564 case NB_EV_VALIDATE:
30565 case NB_EV_PREPARE:
30566 case NB_EV_ABORT:
30567 case NB_EV_APPLY:
30568 /* TODO: implement me. */
30569 break;
30570 }
30571
30572 return NB_OK;
30573 }
30574
30575 /*
30576 * XPath:
30577 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
30578 */
30579 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
30580 struct nb_cb_modify_args *args)
30581 {
30582 switch (args->event) {
30583 case NB_EV_VALIDATE:
30584 case NB_EV_PREPARE:
30585 case NB_EV_ABORT:
30586 case NB_EV_APPLY:
30587 /* TODO: implement me. */
30588 break;
30589 }
30590
30591 return NB_OK;
30592 }
30593
30594 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
30595 struct nb_cb_destroy_args *args)
30596 {
30597 switch (args->event) {
30598 case NB_EV_VALIDATE:
30599 case NB_EV_PREPARE:
30600 case NB_EV_ABORT:
30601 case NB_EV_APPLY:
30602 /* TODO: implement me. */
30603 break;
30604 }
30605
30606 return NB_OK;
30607 }
30608
30609 /*
30610 * XPath:
30611 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tr-restart-timer
30612 */
30613 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
30614 struct nb_cb_modify_args *args)
30615 {
30616 switch (args->event) {
30617 case NB_EV_VALIDATE:
30618 case NB_EV_PREPARE:
30619 case NB_EV_ABORT:
30620 case NB_EV_APPLY:
30621 /* TODO: implement me. */
30622 break;
30623 }
30624
30625 return NB_OK;
30626 }
30627
30628 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
30629 struct nb_cb_destroy_args *args)
30630 {
30631 switch (args->event) {
30632 case NB_EV_VALIDATE:
30633 case NB_EV_PREPARE:
30634 case NB_EV_ABORT:
30635 case NB_EV_APPLY:
30636 /* TODO: implement me. */
30637 break;
30638 }
30639
30640 return NB_OK;
30641 }
30642
30643 /*
30644 * XPath:
30645 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
30646 */
30647 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
30648 struct nb_cb_modify_args *args)
30649 {
30650 switch (args->event) {
30651 case NB_EV_VALIDATE:
30652 case NB_EV_PREPARE:
30653 case NB_EV_ABORT:
30654 case NB_EV_APPLY:
30655 /* TODO: implement me. */
30656 break;
30657 }
30658
30659 return NB_OK;
30660 }
30661
30662 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
30663 struct nb_cb_destroy_args *args)
30664 {
30665 switch (args->event) {
30666 case NB_EV_VALIDATE:
30667 case NB_EV_PREPARE:
30668 case NB_EV_ABORT:
30669 case NB_EV_APPLY:
30670 /* TODO: implement me. */
30671 break;
30672 }
30673
30674 return NB_OK;
30675 }
30676
30677 /*
30678 * XPath:
30679 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tw-warning-only
30680 */
30681 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
30682 struct nb_cb_modify_args *args)
30683 {
30684 switch (args->event) {
30685 case NB_EV_VALIDATE:
30686 case NB_EV_PREPARE:
30687 case NB_EV_ABORT:
30688 case NB_EV_APPLY:
30689 /* TODO: implement me. */
30690 break;
30691 }
30692
30693 return NB_OK;
30694 }
30695
30696 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
30697 struct nb_cb_destroy_args *args)
30698 {
30699 switch (args->event) {
30700 case NB_EV_VALIDATE:
30701 case NB_EV_PREPARE:
30702 case NB_EV_ABORT:
30703 case NB_EV_APPLY:
30704 /* TODO: implement me. */
30705 break;
30706 }
30707
30708 return NB_OK;
30709 }
30710
30711 /*
30712 * XPath:
30713 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/nexthop-self/next-hop-self
30714 */
30715 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_modify(
30716 struct nb_cb_modify_args *args)
30717 {
30718 switch (args->event) {
30719 case NB_EV_VALIDATE:
30720 case NB_EV_PREPARE:
30721 case NB_EV_ABORT:
30722 return NB_OK;
30723 case NB_EV_APPLY:
30724 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30725 args, PEER_FLAG_NEXTHOP_SELF,
30726 yang_dnode_get_bool(args->dnode, NULL));
30727
30728 break;
30729 }
30730
30731 return NB_OK;
30732 }
30733
30734 /*
30735 * XPath:
30736 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/nexthop-self/next-hop-self-force
30737 */
30738 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_force_modify(
30739 struct nb_cb_modify_args *args)
30740 {
30741 switch (args->event) {
30742 case NB_EV_VALIDATE:
30743 case NB_EV_PREPARE:
30744 case NB_EV_ABORT:
30745 return NB_OK;
30746 case NB_EV_APPLY:
30747 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30748 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
30749 yang_dnode_get_bool(args->dnode, NULL));
30750
30751 break;
30752 }
30753
30754 return NB_OK;
30755 }
30756
30757 /*
30758 * XPath:
30759 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as-all
30760 */
30761 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_modify(
30762 struct nb_cb_modify_args *args)
30763 {
30764 switch (args->event) {
30765 case NB_EV_VALIDATE:
30766 case NB_EV_PREPARE:
30767 case NB_EV_ABORT:
30768 return NB_OK;
30769 case NB_EV_APPLY:
30770 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30771 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
30772 yang_dnode_get_bool(args->dnode, NULL));
30773
30774 break;
30775 }
30776
30777 return NB_OK;
30778 }
30779
30780 /*
30781 * XPath:
30782 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as-all-replace
30783 */
30784 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_replace_modify(
30785 struct nb_cb_modify_args *args)
30786 {
30787 switch (args->event) {
30788 case NB_EV_VALIDATE:
30789 case NB_EV_PREPARE:
30790 case NB_EV_ABORT:
30791 return NB_OK;
30792 case NB_EV_APPLY:
30793 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30794 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
30795 yang_dnode_get_bool(args->dnode, NULL));
30796
30797 break;
30798 }
30799
30800 return NB_OK;
30801 }
30802
30803 /*
30804 * XPath:
30805 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as
30806 */
30807 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_modify(
30808 struct nb_cb_modify_args *args)
30809 {
30810 switch (args->event) {
30811 case NB_EV_VALIDATE:
30812 case NB_EV_PREPARE:
30813 case NB_EV_ABORT:
30814 return NB_OK;
30815 case NB_EV_APPLY:
30816 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30817 args, PEER_FLAG_REMOVE_PRIVATE_AS,
30818 yang_dnode_get_bool(args->dnode, NULL));
30819
30820 break;
30821 }
30822
30823 return NB_OK;
30824 }
30825
30826 /*
30827 * XPath:
30828 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as-replace
30829 */
30830 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_replace_modify(
30831 struct nb_cb_modify_args *args)
30832 {
30833 switch (args->event) {
30834 case NB_EV_VALIDATE:
30835 case NB_EV_PREPARE:
30836 case NB_EV_ABORT:
30837 return NB_OK;
30838 case NB_EV_APPLY:
30839 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30840 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
30841 yang_dnode_get_bool(args->dnode, NULL));
30842
30843 break;
30844 }
30845
30846 return NB_OK;
30847 }
30848
30849 /*
30850 * XPath:
30851 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/route-reflector/route-reflector-client
30852 */
30853 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_route_reflector_route_reflector_client_modify(
30854 struct nb_cb_modify_args *args)
30855 {
30856 switch (args->event) {
30857 case NB_EV_VALIDATE:
30858 case NB_EV_PREPARE:
30859 case NB_EV_ABORT:
30860 return NB_OK;
30861 case NB_EV_APPLY:
30862 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30863 args, PEER_FLAG_REFLECTOR_CLIENT,
30864 yang_dnode_get_bool(args->dnode, NULL));
30865
30866 break;
30867 }
30868
30869 return NB_OK;
30870 }
30871
30872 /*
30873 * XPath:
30874 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/route-server/route-server-client
30875 */
30876 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_route_server_route_server_client_modify(
30877 struct nb_cb_modify_args *args)
30878 {
30879 switch (args->event) {
30880 case NB_EV_VALIDATE:
30881 case NB_EV_PREPARE:
30882 case NB_EV_ABORT:
30883 return NB_OK;
30884 case NB_EV_APPLY:
30885 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30886 args, PEER_FLAG_RSERVER_CLIENT,
30887 yang_dnode_get_bool(args->dnode, NULL));
30888
30889 break;
30890 }
30891
30892 return NB_OK;
30893 }
30894
30895 /*
30896 * XPath:
30897 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/send-community/send-community
30898 */
30899 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_community_modify(
30900 struct nb_cb_modify_args *args)
30901 {
30902 switch (args->event) {
30903 case NB_EV_VALIDATE:
30904 case NB_EV_PREPARE:
30905 case NB_EV_ABORT:
30906 return NB_OK;
30907 case NB_EV_APPLY:
30908 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30909 args, PEER_FLAG_SEND_COMMUNITY,
30910 yang_dnode_get_bool(args->dnode, NULL));
30911
30912 break;
30913 }
30914
30915 return NB_OK;
30916 }
30917
30918 /*
30919 * XPath:
30920 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/send-community/send-ext-community
30921 */
30922 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_ext_community_modify(
30923 struct nb_cb_modify_args *args)
30924 {
30925 switch (args->event) {
30926 case NB_EV_VALIDATE:
30927 case NB_EV_PREPARE:
30928 case NB_EV_ABORT:
30929 return NB_OK;
30930 case NB_EV_APPLY:
30931 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30932 args, PEER_FLAG_SEND_EXT_COMMUNITY,
30933 yang_dnode_get_bool(args->dnode, NULL));
30934
30935 break;
30936 }
30937
30938 return NB_OK;
30939 }
30940
30941 /*
30942 * XPath:
30943 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/send-community/send-large-community
30944 */
30945 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_large_community_modify(
30946 struct nb_cb_modify_args *args)
30947 {
30948 switch (args->event) {
30949 case NB_EV_VALIDATE:
30950 case NB_EV_PREPARE:
30951 case NB_EV_ABORT:
30952 return NB_OK;
30953 case NB_EV_APPLY:
30954 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30955 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
30956 yang_dnode_get_bool(args->dnode, NULL));
30957
30958 break;
30959 }
30960
30961 return NB_OK;
30962 }
30963
30964 /*
30965 * XPath:
30966 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/soft-reconfiguration
30967 */
30968 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_soft_reconfiguration_modify(
30969 struct nb_cb_modify_args *args)
30970 {
30971 switch (args->event) {
30972 case NB_EV_VALIDATE:
30973 case NB_EV_PREPARE:
30974 case NB_EV_ABORT:
30975 return NB_OK;
30976 case NB_EV_APPLY:
30977 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30978 args, PEER_FLAG_SOFT_RECONFIG,
30979 yang_dnode_get_bool(args->dnode, NULL));
30980
30981 break;
30982 }
30983
30984 return NB_OK;
30985 }
30986
30987 /*
30988 * XPath:
30989 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/weight/weight-attribute
30990 */
30991 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_modify(
30992 struct nb_cb_modify_args *args)
30993 {
30994 switch (args->event) {
30995 case NB_EV_VALIDATE:
30996 case NB_EV_PREPARE:
30997 case NB_EV_ABORT:
30998 return NB_OK;
30999 case NB_EV_APPLY:
31000 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
31001
31002 break;
31003 }
31004
31005 return NB_OK;
31006 }
31007
31008 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_destroy(
31009 struct nb_cb_destroy_args *args)
31010 {
31011 switch (args->event) {
31012 case NB_EV_VALIDATE:
31013 case NB_EV_PREPARE:
31014 case NB_EV_ABORT:
31015 return NB_OK;
31016 case NB_EV_APPLY:
31017 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
31018
31019 break;
31020 }
31021
31022 return NB_OK;
31023 }
31024
31025 /*
31026 * XPath:
31027 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/rmap-import
31028 */
31029 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_modify(
31030 struct nb_cb_modify_args *args)
31031 {
31032 switch (args->event) {
31033 case NB_EV_VALIDATE:
31034 case NB_EV_PREPARE:
31035 case NB_EV_ABORT:
31036 break;
31037 case NB_EV_APPLY:
31038 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
31039 RMAP_IN);
31040 }
31041
31042 return NB_OK;
31043 }
31044
31045 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_destroy(
31046 struct nb_cb_destroy_args *args)
31047 {
31048 switch (args->event) {
31049 case NB_EV_VALIDATE:
31050 case NB_EV_PREPARE:
31051 case NB_EV_ABORT:
31052 break;
31053 case NB_EV_APPLY:
31054 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
31055 RMAP_IN);
31056 }
31057
31058 return NB_OK;
31059 }
31060
31061 /*
31062 * XPath:
31063 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/rmap-export
31064 */
31065 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_modify(
31066 struct nb_cb_modify_args *args)
31067 {
31068 switch (args->event) {
31069 case NB_EV_VALIDATE:
31070 case NB_EV_PREPARE:
31071 case NB_EV_ABORT:
31072 break;
31073 case NB_EV_APPLY:
31074 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
31075 RMAP_OUT);
31076 }
31077
31078 return NB_OK;
31079 }
31080
31081 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_destroy(
31082 struct nb_cb_destroy_args *args)
31083 {
31084 switch (args->event) {
31085 case NB_EV_VALIDATE:
31086 case NB_EV_PREPARE:
31087 case NB_EV_ABORT:
31088 break;
31089 case NB_EV_APPLY:
31090 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
31091 RMAP_OUT);
31092 }
31093
31094 return NB_OK;
31095 }
31096
31097 /*
31098 * XPath:
31099 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/plist-import
31100 */
31101 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_modify(
31102 struct nb_cb_modify_args *args)
31103 {
31104 switch (args->event) {
31105 case NB_EV_VALIDATE:
31106 case NB_EV_PREPARE:
31107 case NB_EV_ABORT:
31108 break;
31109 case NB_EV_APPLY:
31110 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
31111 FILTER_IN);
31112 }
31113
31114 return NB_OK;
31115 }
31116
31117 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_destroy(
31118 struct nb_cb_destroy_args *args)
31119 {
31120 switch (args->event) {
31121 case NB_EV_VALIDATE:
31122 case NB_EV_PREPARE:
31123 case NB_EV_ABORT:
31124 break;
31125 case NB_EV_APPLY:
31126 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
31127 args, FILTER_IN);
31128 }
31129
31130 return NB_OK;
31131 }
31132
31133 /*
31134 * XPath:
31135 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/plist-export
31136 */
31137 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_modify(
31138 struct nb_cb_modify_args *args)
31139 {
31140 switch (args->event) {
31141 case NB_EV_VALIDATE:
31142 case NB_EV_PREPARE:
31143 case NB_EV_ABORT:
31144 break;
31145 case NB_EV_APPLY:
31146 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
31147 args, FILTER_OUT);
31148 }
31149
31150 return NB_OK;
31151 }
31152
31153 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_destroy(
31154 struct nb_cb_destroy_args *args)
31155 {
31156 switch (args->event) {
31157 case NB_EV_VALIDATE:
31158 case NB_EV_PREPARE:
31159 case NB_EV_ABORT:
31160 break;
31161 case NB_EV_APPLY:
31162 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
31163 args, FILTER_OUT);
31164 }
31165
31166 return NB_OK;
31167 }
31168
31169 /*
31170 * XPath:
31171 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/access-list-import
31172 */
31173 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_modify(
31174 struct nb_cb_modify_args *args)
31175 {
31176 switch (args->event) {
31177 case NB_EV_VALIDATE:
31178 case NB_EV_PREPARE:
31179 case NB_EV_ABORT:
31180 case NB_EV_APPLY:
31181 /* TODO: implement me. */
31182 break;
31183 }
31184
31185 return NB_OK;
31186 }
31187
31188 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_destroy(
31189 struct nb_cb_destroy_args *args)
31190 {
31191 switch (args->event) {
31192 case NB_EV_VALIDATE:
31193 case NB_EV_PREPARE:
31194 case NB_EV_ABORT:
31195 case NB_EV_APPLY:
31196 /* TODO: implement me. */
31197 break;
31198 }
31199
31200 return NB_OK;
31201 }
31202
31203 /*
31204 * XPath:
31205 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/access-list-export
31206 */
31207 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_modify(
31208 struct nb_cb_modify_args *args)
31209 {
31210 switch (args->event) {
31211 case NB_EV_VALIDATE:
31212 case NB_EV_PREPARE:
31213 case NB_EV_ABORT:
31214 case NB_EV_APPLY:
31215 /* TODO: implement me. */
31216 break;
31217 }
31218
31219 return NB_OK;
31220 }
31221
31222 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_destroy(
31223 struct nb_cb_destroy_args *args)
31224 {
31225 switch (args->event) {
31226 case NB_EV_VALIDATE:
31227 case NB_EV_PREPARE:
31228 case NB_EV_ABORT:
31229 case NB_EV_APPLY:
31230 /* TODO: implement me. */
31231 break;
31232 }
31233
31234 return NB_OK;
31235 }
31236
31237 /*
31238 * XPath:
31239 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/as-path-filter-list-import
31240 */
31241 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_modify(
31242 struct nb_cb_modify_args *args)
31243 {
31244 switch (args->event) {
31245 case NB_EV_VALIDATE:
31246 case NB_EV_PREPARE:
31247 case NB_EV_ABORT:
31248 case NB_EV_APPLY:
31249 /* TODO: implement me. */
31250 break;
31251 }
31252
31253 return NB_OK;
31254 }
31255
31256 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_destroy(
31257 struct nb_cb_destroy_args *args)
31258 {
31259 switch (args->event) {
31260 case NB_EV_VALIDATE:
31261 case NB_EV_PREPARE:
31262 case NB_EV_ABORT:
31263 case NB_EV_APPLY:
31264 /* TODO: implement me. */
31265 break;
31266 }
31267
31268 return NB_OK;
31269 }
31270
31271 /*
31272 * XPath:
31273 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/as-path-filter-list-export
31274 */
31275 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_modify(
31276 struct nb_cb_modify_args *args)
31277 {
31278 switch (args->event) {
31279 case NB_EV_VALIDATE:
31280 case NB_EV_PREPARE:
31281 case NB_EV_ABORT:
31282 case NB_EV_APPLY:
31283 /* TODO: implement me. */
31284 break;
31285 }
31286
31287 return NB_OK;
31288 }
31289
31290 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_destroy(
31291 struct nb_cb_destroy_args *args)
31292 {
31293 switch (args->event) {
31294 case NB_EV_VALIDATE:
31295 case NB_EV_PREPARE:
31296 case NB_EV_ABORT:
31297 case NB_EV_APPLY:
31298 /* TODO: implement me. */
31299 break;
31300 }
31301
31302 return NB_OK;
31303 }
31304
31305 /*
31306 * XPath:
31307 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/unsuppress-map-import
31308 */
31309 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_modify(
31310 struct nb_cb_modify_args *args)
31311 {
31312 switch (args->event) {
31313 case NB_EV_VALIDATE:
31314 case NB_EV_PREPARE:
31315 case NB_EV_ABORT:
31316 case NB_EV_APPLY:
31317 /* TODO: implement me. */
31318 break;
31319 }
31320
31321 return NB_OK;
31322 }
31323
31324 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_destroy(
31325 struct nb_cb_destroy_args *args)
31326 {
31327 switch (args->event) {
31328 case NB_EV_VALIDATE:
31329 case NB_EV_PREPARE:
31330 case NB_EV_ABORT:
31331 case NB_EV_APPLY:
31332 /* TODO: implement me. */
31333 break;
31334 }
31335
31336 return NB_OK;
31337 }
31338
31339 /*
31340 * XPath:
31341 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/unsuppress-map-export
31342 */
31343 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_modify(
31344 struct nb_cb_modify_args *args)
31345 {
31346 switch (args->event) {
31347 case NB_EV_VALIDATE:
31348 case NB_EV_PREPARE:
31349 case NB_EV_ABORT:
31350 case NB_EV_APPLY:
31351 /* TODO: implement me. */
31352 break;
31353 }
31354
31355 return NB_OK;
31356 }
31357
31358 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_destroy(
31359 struct nb_cb_destroy_args *args)
31360 {
31361 switch (args->event) {
31362 case NB_EV_VALIDATE:
31363 case NB_EV_PREPARE:
31364 case NB_EV_ABORT:
31365 case NB_EV_APPLY:
31366 /* TODO: implement me. */
31367 break;
31368 }
31369
31370 return NB_OK;
31371 }
31372
31373
31374 /*
31375 * XPath:
31376 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/add-paths/path-type
31377 */
31378 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_add_paths_path_type_modify(
31379 struct nb_cb_modify_args *args)
31380 {
31381 switch (args->event) {
31382 case NB_EV_VALIDATE:
31383 case NB_EV_PREPARE:
31384 case NB_EV_ABORT:
31385 case NB_EV_APPLY:
31386 /* TODO: implement me. */
31387 break;
31388 }
31389
31390 return NB_OK;
31391 }
31392
31393 /*
31394 * XPath:
31395 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/as-path-options/allow-own-as
31396 */
31397 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_modify(
31398 struct nb_cb_modify_args *args)
31399 {
31400 switch (args->event) {
31401 case NB_EV_VALIDATE:
31402 case NB_EV_PREPARE:
31403 case NB_EV_ABORT:
31404 case NB_EV_APPLY:
31405 /* TODO: implement me. */
31406 break;
31407 }
31408
31409 return NB_OK;
31410 }
31411
31412 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_destroy(
31413 struct nb_cb_destroy_args *args)
31414 {
31415 switch (args->event) {
31416 case NB_EV_VALIDATE:
31417 case NB_EV_PREPARE:
31418 case NB_EV_ABORT:
31419 case NB_EV_APPLY:
31420 /* TODO: implement me. */
31421 break;
31422 }
31423
31424 return NB_OK;
31425 }
31426
31427 /*
31428 * XPath:
31429 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/as-path-options/allow-own-origin-as
31430 */
31431 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_modify(
31432 struct nb_cb_modify_args *args)
31433 {
31434 switch (args->event) {
31435 case NB_EV_VALIDATE:
31436 case NB_EV_PREPARE:
31437 case NB_EV_ABORT:
31438 case NB_EV_APPLY:
31439 /* TODO: implement me. */
31440 break;
31441 }
31442
31443 return NB_OK;
31444 }
31445
31446 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
31447 struct nb_cb_destroy_args *args)
31448 {
31449 switch (args->event) {
31450 case NB_EV_VALIDATE:
31451 case NB_EV_PREPARE:
31452 case NB_EV_ABORT:
31453 case NB_EV_APPLY:
31454 /* TODO: implement me. */
31455 break;
31456 }
31457
31458 return NB_OK;
31459 }
31460
31461 /*
31462 * XPath:
31463 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/as-path-options/replace-peer-as
31464 */
31465 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_replace_peer_as_modify(
31466 struct nb_cb_modify_args *args)
31467 {
31468 switch (args->event) {
31469 case NB_EV_VALIDATE:
31470 case NB_EV_PREPARE:
31471 case NB_EV_ABORT:
31472 return NB_OK;
31473 case NB_EV_APPLY:
31474 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
31475 args, PEER_FLAG_AS_OVERRIDE,
31476 yang_dnode_get_bool(args->dnode, NULL));
31477
31478 break;
31479 }
31480
31481 return NB_OK;
31482 }
31483
31484 /*
31485 * XPath:
31486 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/default-originate/originate
31487 */
31488 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_originate_modify(
31489 struct nb_cb_modify_args *args)
31490 {
31491 switch (args->event) {
31492 case NB_EV_VALIDATE:
31493 case NB_EV_PREPARE:
31494 case NB_EV_ABORT:
31495 case NB_EV_APPLY:
31496 /* TODO: implement me. */
31497 break;
31498 }
31499
31500 return NB_OK;
31501 }
31502
31503 /*
31504 * XPath:
31505 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/default-originate/route-map
31506 */
31507 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_modify(
31508 struct nb_cb_modify_args *args)
31509 {
31510 switch (args->event) {
31511 case NB_EV_VALIDATE:
31512 case NB_EV_PREPARE:
31513 case NB_EV_ABORT:
31514 case NB_EV_APPLY:
31515 /* TODO: implement me. */
31516 break;
31517 }
31518
31519 return NB_OK;
31520 }
31521
31522 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_destroy(
31523 struct nb_cb_destroy_args *args)
31524 {
31525 switch (args->event) {
31526 case NB_EV_VALIDATE:
31527 case NB_EV_PREPARE:
31528 case NB_EV_ABORT:
31529 case NB_EV_APPLY:
31530 /* TODO: implement me. */
31531 break;
31532 }
31533
31534 return NB_OK;
31535 }
31536
31537 /*
31538 * XPath:
31539 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/attr-unchanged/as-path-unchanged
31540 */
31541 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
31542 struct nb_cb_modify_args *args)
31543 {
31544 switch (args->event) {
31545 case NB_EV_VALIDATE:
31546 case NB_EV_PREPARE:
31547 case NB_EV_ABORT:
31548 return NB_OK;
31549 case NB_EV_APPLY:
31550 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
31551 args, PEER_FLAG_AS_PATH_UNCHANGED,
31552 yang_dnode_get_bool(args->dnode, NULL));
31553
31554 break;
31555 }
31556
31557 return NB_OK;
31558 }
31559
31560 /*
31561 * XPath:
31562 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/attr-unchanged/next-hop-unchanged
31563 */
31564 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
31565 struct nb_cb_modify_args *args)
31566 {
31567 switch (args->event) {
31568 case NB_EV_VALIDATE:
31569 case NB_EV_PREPARE:
31570 case NB_EV_ABORT:
31571 return NB_OK;
31572 case NB_EV_APPLY:
31573 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
31574 args, PEER_FLAG_NEXTHOP_UNCHANGED,
31575 yang_dnode_get_bool(args->dnode, NULL));
31576
31577 break;
31578 }
31579
31580 return NB_OK;
31581 }
31582
31583 /*
31584 * XPath:
31585 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/attr-unchanged/med-unchanged
31586 */
31587 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_med_unchanged_modify(
31588 struct nb_cb_modify_args *args)
31589 {
31590 switch (args->event) {
31591 case NB_EV_VALIDATE:
31592 case NB_EV_PREPARE:
31593 case NB_EV_ABORT:
31594 return NB_OK;
31595 case NB_EV_APPLY:
31596 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
31597 args, PEER_FLAG_MED_UNCHANGED,
31598 yang_dnode_get_bool(args->dnode, NULL));
31599
31600 break;
31601 }
31602
31603 return NB_OK;
31604 }
31605
31606 /*
31607 * XPath:
31608 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/orf-capability/orf-send
31609 */
31610 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_modify(
31611 struct nb_cb_modify_args *args)
31612 {
31613 switch (args->event) {
31614 case NB_EV_VALIDATE:
31615 case NB_EV_PREPARE:
31616 case NB_EV_ABORT:
31617 case NB_EV_APPLY:
31618 /* TODO: implement me. */
31619 break;
31620 }
31621
31622 return NB_OK;
31623 }
31624
31625 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_destroy(
31626 struct nb_cb_destroy_args *args)
31627 {
31628 switch (args->event) {
31629 case NB_EV_VALIDATE:
31630 case NB_EV_PREPARE:
31631 case NB_EV_ABORT:
31632 case NB_EV_APPLY:
31633 /* TODO: implement me. */
31634 break;
31635 }
31636
31637 return NB_OK;
31638 }
31639
31640 /*
31641 * XPath:
31642 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/orf-capability/orf-receive
31643 */
31644 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_modify(
31645 struct nb_cb_modify_args *args)
31646 {
31647 switch (args->event) {
31648 case NB_EV_VALIDATE:
31649 case NB_EV_PREPARE:
31650 case NB_EV_ABORT:
31651 case NB_EV_APPLY:
31652 /* TODO: implement me. */
31653 break;
31654 }
31655
31656 return NB_OK;
31657 }
31658
31659 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_destroy(
31660 struct nb_cb_destroy_args *args)
31661 {
31662 switch (args->event) {
31663 case NB_EV_VALIDATE:
31664 case NB_EV_PREPARE:
31665 case NB_EV_ABORT:
31666 case NB_EV_APPLY:
31667 /* TODO: implement me. */
31668 break;
31669 }
31670
31671 return NB_OK;
31672 }
31673
31674 /*
31675 * XPath:
31676 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/orf-capability/orf-both
31677 */
31678 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_modify(
31679 struct nb_cb_modify_args *args)
31680 {
31681 switch (args->event) {
31682 case NB_EV_VALIDATE:
31683 case NB_EV_PREPARE:
31684 case NB_EV_ABORT:
31685 case NB_EV_APPLY:
31686 /* TODO: implement me. */
31687 break;
31688 }
31689
31690 return NB_OK;
31691 }
31692
31693 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_destroy(
31694 struct nb_cb_destroy_args *args)
31695 {
31696 switch (args->event) {
31697 case NB_EV_VALIDATE:
31698 case NB_EV_PREPARE:
31699 case NB_EV_ABORT:
31700 case NB_EV_APPLY:
31701 /* TODO: implement me. */
31702 break;
31703 }
31704
31705 return NB_OK;
31706 }
31707
31708 /*
31709 * XPath:
31710 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list
31711 */
31712 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_create(
31713 struct nb_cb_create_args *args)
31714 {
31715 switch (args->event) {
31716 case NB_EV_VALIDATE:
31717 case NB_EV_PREPARE:
31718 case NB_EV_ABORT:
31719 case NB_EV_APPLY:
31720 /* TODO: implement me. */
31721 break;
31722 }
31723
31724 return NB_OK;
31725 }
31726
31727 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_destroy(
31728 struct nb_cb_destroy_args *args)
31729 {
31730 switch (args->event) {
31731 case NB_EV_VALIDATE:
31732 case NB_EV_PREPARE:
31733 case NB_EV_ABORT:
31734 return NB_OK;
31735 case NB_EV_APPLY:
31736 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
31737 args);
31738 }
31739
31740 return NB_OK;
31741 }
31742
31743 /*
31744 * XPath:
31745 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/max-prefixes
31746 */
31747 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
31748 struct nb_cb_modify_args *args)
31749 {
31750 switch (args->event) {
31751 case NB_EV_VALIDATE:
31752 case NB_EV_PREPARE:
31753 case NB_EV_ABORT:
31754 case NB_EV_APPLY:
31755 /* TODO: implement me. */
31756 break;
31757 }
31758
31759 return NB_OK;
31760 }
31761
31762 /*
31763 * XPath:
31764 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/force-check
31765 */
31766 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_force_check_modify(
31767 struct nb_cb_modify_args *args)
31768 {
31769 switch (args->event) {
31770 case NB_EV_VALIDATE:
31771 case NB_EV_PREPARE:
31772 case NB_EV_ABORT:
31773 case NB_EV_APPLY:
31774 /* TODO: implement me. */
31775 break;
31776 }
31777
31778 return NB_OK;
31779 }
31780
31781 /*
31782 * XPath:
31783 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/warning-only
31784 */
31785 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
31786 struct nb_cb_modify_args *args)
31787 {
31788 switch (args->event) {
31789 case NB_EV_VALIDATE:
31790 case NB_EV_PREPARE:
31791 case NB_EV_ABORT:
31792 case NB_EV_APPLY:
31793 /* TODO: implement me. */
31794 break;
31795 }
31796
31797 return NB_OK;
31798 }
31799
31800 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
31801 struct nb_cb_destroy_args *args)
31802 {
31803 switch (args->event) {
31804 case NB_EV_VALIDATE:
31805 case NB_EV_PREPARE:
31806 case NB_EV_ABORT:
31807 case NB_EV_APPLY:
31808 /* TODO: implement me. */
31809 break;
31810 }
31811
31812 return NB_OK;
31813 }
31814
31815 /*
31816 * XPath:
31817 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/restart-timer
31818 */
31819 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
31820 struct nb_cb_modify_args *args)
31821 {
31822 switch (args->event) {
31823 case NB_EV_VALIDATE:
31824 case NB_EV_PREPARE:
31825 case NB_EV_ABORT:
31826 case NB_EV_APPLY:
31827 /* TODO: implement me. */
31828 break;
31829 }
31830
31831 return NB_OK;
31832 }
31833
31834 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
31835 struct nb_cb_destroy_args *args)
31836 {
31837 switch (args->event) {
31838 case NB_EV_VALIDATE:
31839 case NB_EV_PREPARE:
31840 case NB_EV_ABORT:
31841 case NB_EV_APPLY:
31842 /* TODO: implement me. */
31843 break;
31844 }
31845
31846 return NB_OK;
31847 }
31848
31849 /*
31850 * XPath:
31851 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
31852 */
31853 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
31854 struct nb_cb_modify_args *args)
31855 {
31856 switch (args->event) {
31857 case NB_EV_VALIDATE:
31858 case NB_EV_PREPARE:
31859 case NB_EV_ABORT:
31860 case NB_EV_APPLY:
31861 /* TODO: implement me. */
31862 break;
31863 }
31864
31865 return NB_OK;
31866 }
31867
31868 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
31869 struct nb_cb_destroy_args *args)
31870 {
31871 switch (args->event) {
31872 case NB_EV_VALIDATE:
31873 case NB_EV_PREPARE:
31874 case NB_EV_ABORT:
31875 case NB_EV_APPLY:
31876 /* TODO: implement me. */
31877 break;
31878 }
31879
31880 return NB_OK;
31881 }
31882
31883 /*
31884 * XPath:
31885 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
31886 */
31887 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
31888 struct nb_cb_modify_args *args)
31889 {
31890 switch (args->event) {
31891 case NB_EV_VALIDATE:
31892 case NB_EV_PREPARE:
31893 case NB_EV_ABORT:
31894 case NB_EV_APPLY:
31895 /* TODO: implement me. */
31896 break;
31897 }
31898
31899 return NB_OK;
31900 }
31901
31902 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
31903 struct nb_cb_destroy_args *args)
31904 {
31905 switch (args->event) {
31906 case NB_EV_VALIDATE:
31907 case NB_EV_PREPARE:
31908 case NB_EV_ABORT:
31909 case NB_EV_APPLY:
31910 /* TODO: implement me. */
31911 break;
31912 }
31913
31914 return NB_OK;
31915 }
31916
31917 /*
31918 * XPath:
31919 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tr-restart-timer
31920 */
31921 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
31922 struct nb_cb_modify_args *args)
31923 {
31924 switch (args->event) {
31925 case NB_EV_VALIDATE:
31926 case NB_EV_PREPARE:
31927 case NB_EV_ABORT:
31928 case NB_EV_APPLY:
31929 /* TODO: implement me. */
31930 break;
31931 }
31932
31933 return NB_OK;
31934 }
31935
31936 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
31937 struct nb_cb_destroy_args *args)
31938 {
31939 switch (args->event) {
31940 case NB_EV_VALIDATE:
31941 case NB_EV_PREPARE:
31942 case NB_EV_ABORT:
31943 case NB_EV_APPLY:
31944 /* TODO: implement me. */
31945 break;
31946 }
31947
31948 return NB_OK;
31949 }
31950
31951 /*
31952 * XPath:
31953 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
31954 */
31955 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
31956 struct nb_cb_modify_args *args)
31957 {
31958 switch (args->event) {
31959 case NB_EV_VALIDATE:
31960 case NB_EV_PREPARE:
31961 case NB_EV_ABORT:
31962 case NB_EV_APPLY:
31963 /* TODO: implement me. */
31964 break;
31965 }
31966
31967 return NB_OK;
31968 }
31969
31970 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
31971 struct nb_cb_destroy_args *args)
31972 {
31973 switch (args->event) {
31974 case NB_EV_VALIDATE:
31975 case NB_EV_PREPARE:
31976 case NB_EV_ABORT:
31977 case NB_EV_APPLY:
31978 /* TODO: implement me. */
31979 break;
31980 }
31981
31982 return NB_OK;
31983 }
31984
31985 /*
31986 * XPath:
31987 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tw-warning-only
31988 */
31989 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
31990 struct nb_cb_modify_args *args)
31991 {
31992 switch (args->event) {
31993 case NB_EV_VALIDATE:
31994 case NB_EV_PREPARE:
31995 case NB_EV_ABORT:
31996 case NB_EV_APPLY:
31997 /* TODO: implement me. */
31998 break;
31999 }
32000
32001 return NB_OK;
32002 }
32003
32004 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
32005 struct nb_cb_destroy_args *args)
32006 {
32007 switch (args->event) {
32008 case NB_EV_VALIDATE:
32009 case NB_EV_PREPARE:
32010 case NB_EV_ABORT:
32011 case NB_EV_APPLY:
32012 /* TODO: implement me. */
32013 break;
32014 }
32015
32016 return NB_OK;
32017 }
32018
32019 /*
32020 * XPath:
32021 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/nexthop-self/next-hop-self
32022 */
32023 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_modify(
32024 struct nb_cb_modify_args *args)
32025 {
32026 switch (args->event) {
32027 case NB_EV_VALIDATE:
32028 case NB_EV_PREPARE:
32029 case NB_EV_ABORT:
32030 return NB_OK;
32031 case NB_EV_APPLY:
32032 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32033 args, PEER_FLAG_NEXTHOP_SELF,
32034 yang_dnode_get_bool(args->dnode, NULL));
32035
32036 break;
32037 }
32038
32039 return NB_OK;
32040 }
32041
32042 /*
32043 * XPath:
32044 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/nexthop-self/next-hop-self-force
32045 */
32046 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_force_modify(
32047 struct nb_cb_modify_args *args)
32048 {
32049 switch (args->event) {
32050 case NB_EV_VALIDATE:
32051 case NB_EV_PREPARE:
32052 case NB_EV_ABORT:
32053 return NB_OK;
32054 case NB_EV_APPLY:
32055 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32056 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
32057 yang_dnode_get_bool(args->dnode, NULL));
32058
32059 break;
32060 }
32061
32062 return NB_OK;
32063 }
32064
32065 /*
32066 * XPath:
32067 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as-all
32068 */
32069 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_modify(
32070 struct nb_cb_modify_args *args)
32071 {
32072 switch (args->event) {
32073 case NB_EV_VALIDATE:
32074 case NB_EV_PREPARE:
32075 case NB_EV_ABORT:
32076 return NB_OK;
32077 case NB_EV_APPLY:
32078 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32079 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
32080 yang_dnode_get_bool(args->dnode, NULL));
32081
32082 break;
32083 }
32084
32085 return NB_OK;
32086 }
32087
32088 /*
32089 * XPath:
32090 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as-all-replace
32091 */
32092 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_replace_modify(
32093 struct nb_cb_modify_args *args)
32094 {
32095 switch (args->event) {
32096 case NB_EV_VALIDATE:
32097 case NB_EV_PREPARE:
32098 case NB_EV_ABORT:
32099 return NB_OK;
32100 case NB_EV_APPLY:
32101 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32102 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
32103 yang_dnode_get_bool(args->dnode, NULL));
32104
32105 break;
32106 }
32107
32108 return NB_OK;
32109 }
32110
32111 /*
32112 * XPath:
32113 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as
32114 */
32115 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_modify(
32116 struct nb_cb_modify_args *args)
32117 {
32118 switch (args->event) {
32119 case NB_EV_VALIDATE:
32120 case NB_EV_PREPARE:
32121 case NB_EV_ABORT:
32122 return NB_OK;
32123 case NB_EV_APPLY:
32124 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32125 args, PEER_FLAG_REMOVE_PRIVATE_AS,
32126 yang_dnode_get_bool(args->dnode, NULL));
32127
32128 break;
32129 }
32130
32131 return NB_OK;
32132 }
32133
32134 /*
32135 * XPath:
32136 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as-replace
32137 */
32138 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_replace_modify(
32139 struct nb_cb_modify_args *args)
32140 {
32141 switch (args->event) {
32142 case NB_EV_VALIDATE:
32143 case NB_EV_PREPARE:
32144 case NB_EV_ABORT:
32145 return NB_OK;
32146 case NB_EV_APPLY:
32147 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32148 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
32149 yang_dnode_get_bool(args->dnode, NULL));
32150
32151 break;
32152 }
32153
32154 return NB_OK;
32155 }
32156
32157 /*
32158 * XPath:
32159 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/route-reflector/route-reflector-client
32160 */
32161 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_route_reflector_route_reflector_client_modify(
32162 struct nb_cb_modify_args *args)
32163 {
32164 switch (args->event) {
32165 case NB_EV_VALIDATE:
32166 case NB_EV_PREPARE:
32167 case NB_EV_ABORT:
32168 return NB_OK;
32169 case NB_EV_APPLY:
32170 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32171 args, PEER_FLAG_REFLECTOR_CLIENT,
32172 yang_dnode_get_bool(args->dnode, NULL));
32173
32174 break;
32175 }
32176
32177 return NB_OK;
32178 }
32179
32180 /*
32181 * XPath:
32182 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/route-server/route-server-client
32183 */
32184 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_route_server_route_server_client_modify(
32185 struct nb_cb_modify_args *args)
32186 {
32187 switch (args->event) {
32188 case NB_EV_VALIDATE:
32189 case NB_EV_PREPARE:
32190 case NB_EV_ABORT:
32191 return NB_OK;
32192 case NB_EV_APPLY:
32193 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32194 args, PEER_FLAG_RSERVER_CLIENT,
32195 yang_dnode_get_bool(args->dnode, NULL));
32196
32197 break;
32198 }
32199
32200 return NB_OK;
32201 }
32202
32203 /*
32204 * XPath:
32205 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/send-community/send-community
32206 */
32207 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_community_modify(
32208 struct nb_cb_modify_args *args)
32209 {
32210 switch (args->event) {
32211 case NB_EV_VALIDATE:
32212 case NB_EV_PREPARE:
32213 case NB_EV_ABORT:
32214 return NB_OK;
32215 case NB_EV_APPLY:
32216 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32217 args, PEER_FLAG_SEND_COMMUNITY,
32218 yang_dnode_get_bool(args->dnode, NULL));
32219
32220 break;
32221 }
32222
32223 return NB_OK;
32224 }
32225
32226 /*
32227 * XPath:
32228 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/send-community/send-ext-community
32229 */
32230 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_ext_community_modify(
32231 struct nb_cb_modify_args *args)
32232 {
32233 switch (args->event) {
32234 case NB_EV_VALIDATE:
32235 case NB_EV_PREPARE:
32236 case NB_EV_ABORT:
32237 return NB_OK;
32238 case NB_EV_APPLY:
32239 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32240 args, PEER_FLAG_SEND_EXT_COMMUNITY,
32241 yang_dnode_get_bool(args->dnode, NULL));
32242
32243 break;
32244 }
32245
32246 return NB_OK;
32247 }
32248
32249 /*
32250 * XPath:
32251 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/send-community/send-large-community
32252 */
32253 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_large_community_modify(
32254 struct nb_cb_modify_args *args)
32255 {
32256 switch (args->event) {
32257 case NB_EV_VALIDATE:
32258 case NB_EV_PREPARE:
32259 case NB_EV_ABORT:
32260 return NB_OK;
32261 case NB_EV_APPLY:
32262 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32263 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
32264 yang_dnode_get_bool(args->dnode, NULL));
32265
32266 break;
32267 }
32268
32269 return NB_OK;
32270 }
32271
32272 /*
32273 * XPath:
32274 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/soft-reconfiguration
32275 */
32276 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_soft_reconfiguration_modify(
32277 struct nb_cb_modify_args *args)
32278 {
32279 switch (args->event) {
32280 case NB_EV_VALIDATE:
32281 case NB_EV_PREPARE:
32282 case NB_EV_ABORT:
32283 return NB_OK;
32284 case NB_EV_APPLY:
32285 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32286 args, PEER_FLAG_SOFT_RECONFIG,
32287 yang_dnode_get_bool(args->dnode, NULL));
32288
32289 break;
32290 }
32291
32292 return NB_OK;
32293 }
32294
32295 /*
32296 * XPath:
32297 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/weight/weight-attribute
32298 */
32299 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_modify(
32300 struct nb_cb_modify_args *args)
32301 {
32302 switch (args->event) {
32303 case NB_EV_VALIDATE:
32304 case NB_EV_PREPARE:
32305 case NB_EV_ABORT:
32306 return NB_OK;
32307 case NB_EV_APPLY:
32308 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
32309
32310 break;
32311 }
32312
32313 return NB_OK;
32314 }
32315
32316 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_destroy(
32317 struct nb_cb_destroy_args *args)
32318 {
32319 switch (args->event) {
32320 case NB_EV_VALIDATE:
32321 case NB_EV_PREPARE:
32322 case NB_EV_ABORT:
32323 return NB_OK;
32324 case NB_EV_APPLY:
32325 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
32326
32327 break;
32328 }
32329
32330 return NB_OK;
32331 }
32332
32333 /*
32334 * XPath:
32335 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/rmap-import
32336 */
32337 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_modify(
32338 struct nb_cb_modify_args *args)
32339 {
32340 switch (args->event) {
32341 case NB_EV_VALIDATE:
32342 case NB_EV_PREPARE:
32343 case NB_EV_ABORT:
32344 break;
32345 case NB_EV_APPLY:
32346 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
32347 RMAP_IN);
32348 }
32349
32350 return NB_OK;
32351 }
32352
32353 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_destroy(
32354 struct nb_cb_destroy_args *args)
32355 {
32356 switch (args->event) {
32357 case NB_EV_VALIDATE:
32358 case NB_EV_PREPARE:
32359 case NB_EV_ABORT:
32360 break;
32361 case NB_EV_APPLY:
32362 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
32363 RMAP_IN);
32364 }
32365
32366 return NB_OK;
32367 }
32368
32369 /*
32370 * XPath:
32371 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/rmap-export
32372 */
32373 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_modify(
32374 struct nb_cb_modify_args *args)
32375 {
32376 switch (args->event) {
32377 case NB_EV_VALIDATE:
32378 case NB_EV_PREPARE:
32379 case NB_EV_ABORT:
32380 break;
32381 case NB_EV_APPLY:
32382 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
32383 RMAP_OUT);
32384 }
32385
32386 return NB_OK;
32387 }
32388
32389 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_destroy(
32390 struct nb_cb_destroy_args *args)
32391 {
32392 switch (args->event) {
32393 case NB_EV_VALIDATE:
32394 case NB_EV_PREPARE:
32395 case NB_EV_ABORT:
32396 break;
32397 case NB_EV_APPLY:
32398 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
32399 RMAP_OUT);
32400 }
32401
32402 return NB_OK;
32403 }
32404
32405 /*
32406 * XPath:
32407 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/plist-import
32408 */
32409 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_modify(
32410 struct nb_cb_modify_args *args)
32411 {
32412 switch (args->event) {
32413 case NB_EV_VALIDATE:
32414 case NB_EV_PREPARE:
32415 case NB_EV_ABORT:
32416 break;
32417 case NB_EV_APPLY:
32418 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
32419 FILTER_IN);
32420 }
32421
32422 return NB_OK;
32423 }
32424
32425 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_destroy(
32426 struct nb_cb_destroy_args *args)
32427 {
32428 switch (args->event) {
32429 case NB_EV_VALIDATE:
32430 case NB_EV_PREPARE:
32431 case NB_EV_ABORT:
32432 break;
32433 case NB_EV_APPLY:
32434 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
32435 args, FILTER_IN);
32436 }
32437
32438 return NB_OK;
32439 }
32440
32441 /*
32442 * XPath:
32443 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/plist-export
32444 */
32445 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_modify(
32446 struct nb_cb_modify_args *args)
32447 {
32448 switch (args->event) {
32449 case NB_EV_VALIDATE:
32450 case NB_EV_PREPARE:
32451 case NB_EV_ABORT:
32452 break;
32453 case NB_EV_APPLY:
32454 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
32455 args, FILTER_OUT);
32456 }
32457
32458 return NB_OK;
32459 }
32460
32461 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_destroy(
32462 struct nb_cb_destroy_args *args)
32463 {
32464 switch (args->event) {
32465 case NB_EV_VALIDATE:
32466 case NB_EV_PREPARE:
32467 case NB_EV_ABORT:
32468 break;
32469 case NB_EV_APPLY:
32470 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
32471 args, FILTER_OUT);
32472 }
32473
32474 return NB_OK;
32475 }
32476
32477 /*
32478 * XPath:
32479 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/access-list-import
32480 */
32481 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_modify(
32482 struct nb_cb_modify_args *args)
32483 {
32484 switch (args->event) {
32485 case NB_EV_VALIDATE:
32486 case NB_EV_PREPARE:
32487 case NB_EV_ABORT:
32488 case NB_EV_APPLY:
32489 /* TODO: implement me. */
32490 break;
32491 }
32492
32493 return NB_OK;
32494 }
32495
32496 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_destroy(
32497 struct nb_cb_destroy_args *args)
32498 {
32499 switch (args->event) {
32500 case NB_EV_VALIDATE:
32501 case NB_EV_PREPARE:
32502 case NB_EV_ABORT:
32503 case NB_EV_APPLY:
32504 /* TODO: implement me. */
32505 break;
32506 }
32507
32508 return NB_OK;
32509 }
32510
32511 /*
32512 * XPath:
32513 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/access-list-export
32514 */
32515 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_modify(
32516 struct nb_cb_modify_args *args)
32517 {
32518 switch (args->event) {
32519 case NB_EV_VALIDATE:
32520 case NB_EV_PREPARE:
32521 case NB_EV_ABORT:
32522 case NB_EV_APPLY:
32523 /* TODO: implement me. */
32524 break;
32525 }
32526
32527 return NB_OK;
32528 }
32529
32530 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_destroy(
32531 struct nb_cb_destroy_args *args)
32532 {
32533 switch (args->event) {
32534 case NB_EV_VALIDATE:
32535 case NB_EV_PREPARE:
32536 case NB_EV_ABORT:
32537 case NB_EV_APPLY:
32538 /* TODO: implement me. */
32539 break;
32540 }
32541
32542 return NB_OK;
32543 }
32544
32545 /*
32546 * XPath:
32547 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/as-path-filter-list-import
32548 */
32549 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_modify(
32550 struct nb_cb_modify_args *args)
32551 {
32552 switch (args->event) {
32553 case NB_EV_VALIDATE:
32554 case NB_EV_PREPARE:
32555 case NB_EV_ABORT:
32556 case NB_EV_APPLY:
32557 /* TODO: implement me. */
32558 break;
32559 }
32560
32561 return NB_OK;
32562 }
32563
32564 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_destroy(
32565 struct nb_cb_destroy_args *args)
32566 {
32567 switch (args->event) {
32568 case NB_EV_VALIDATE:
32569 case NB_EV_PREPARE:
32570 case NB_EV_ABORT:
32571 case NB_EV_APPLY:
32572 /* TODO: implement me. */
32573 break;
32574 }
32575
32576 return NB_OK;
32577 }
32578
32579 /*
32580 * XPath:
32581 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/as-path-filter-list-export
32582 */
32583 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_modify(
32584 struct nb_cb_modify_args *args)
32585 {
32586 switch (args->event) {
32587 case NB_EV_VALIDATE:
32588 case NB_EV_PREPARE:
32589 case NB_EV_ABORT:
32590 case NB_EV_APPLY:
32591 /* TODO: implement me. */
32592 break;
32593 }
32594
32595 return NB_OK;
32596 }
32597
32598 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_destroy(
32599 struct nb_cb_destroy_args *args)
32600 {
32601 switch (args->event) {
32602 case NB_EV_VALIDATE:
32603 case NB_EV_PREPARE:
32604 case NB_EV_ABORT:
32605 case NB_EV_APPLY:
32606 /* TODO: implement me. */
32607 break;
32608 }
32609
32610 return NB_OK;
32611 }
32612
32613 /*
32614 * XPath:
32615 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/unsuppress-map-import
32616 */
32617 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_modify(
32618 struct nb_cb_modify_args *args)
32619 {
32620 switch (args->event) {
32621 case NB_EV_VALIDATE:
32622 case NB_EV_PREPARE:
32623 case NB_EV_ABORT:
32624 case NB_EV_APPLY:
32625 /* TODO: implement me. */
32626 break;
32627 }
32628
32629 return NB_OK;
32630 }
32631
32632 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_destroy(
32633 struct nb_cb_destroy_args *args)
32634 {
32635 switch (args->event) {
32636 case NB_EV_VALIDATE:
32637 case NB_EV_PREPARE:
32638 case NB_EV_ABORT:
32639 case NB_EV_APPLY:
32640 /* TODO: implement me. */
32641 break;
32642 }
32643
32644 return NB_OK;
32645 }
32646
32647 /*
32648 * XPath:
32649 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/unsuppress-map-export
32650 */
32651 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_modify(
32652 struct nb_cb_modify_args *args)
32653 {
32654 switch (args->event) {
32655 case NB_EV_VALIDATE:
32656 case NB_EV_PREPARE:
32657 case NB_EV_ABORT:
32658 case NB_EV_APPLY:
32659 /* TODO: implement me. */
32660 break;
32661 }
32662
32663 return NB_OK;
32664 }
32665
32666 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_destroy(
32667 struct nb_cb_destroy_args *args)
32668 {
32669 switch (args->event) {
32670 case NB_EV_VALIDATE:
32671 case NB_EV_PREPARE:
32672 case NB_EV_ABORT:
32673 case NB_EV_APPLY:
32674 /* TODO: implement me. */
32675 break;
32676 }
32677
32678 return NB_OK;
32679 }
32680
32681 /*
32682 * XPath:
32683 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/add-paths/path-type
32684 */
32685 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_add_paths_path_type_modify(
32686 struct nb_cb_modify_args *args)
32687 {
32688 switch (args->event) {
32689 case NB_EV_VALIDATE:
32690 case NB_EV_PREPARE:
32691 case NB_EV_ABORT:
32692 case NB_EV_APPLY:
32693 /* TODO: implement me. */
32694 break;
32695 }
32696
32697 return NB_OK;
32698 }
32699
32700 /*
32701 * XPath:
32702 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/as-path-options/allow-own-as
32703 */
32704 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_modify(
32705 struct nb_cb_modify_args *args)
32706 {
32707 switch (args->event) {
32708 case NB_EV_VALIDATE:
32709 case NB_EV_PREPARE:
32710 case NB_EV_ABORT:
32711 case NB_EV_APPLY:
32712 /* TODO: implement me. */
32713 break;
32714 }
32715
32716 return NB_OK;
32717 }
32718
32719 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_destroy(
32720 struct nb_cb_destroy_args *args)
32721 {
32722 switch (args->event) {
32723 case NB_EV_VALIDATE:
32724 case NB_EV_PREPARE:
32725 case NB_EV_ABORT:
32726 case NB_EV_APPLY:
32727 /* TODO: implement me. */
32728 break;
32729 }
32730
32731 return NB_OK;
32732 }
32733
32734 /*
32735 * XPath:
32736 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/as-path-options/allow-own-origin-as
32737 */
32738 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_modify(
32739 struct nb_cb_modify_args *args)
32740 {
32741 switch (args->event) {
32742 case NB_EV_VALIDATE:
32743 case NB_EV_PREPARE:
32744 case NB_EV_ABORT:
32745 case NB_EV_APPLY:
32746 /* TODO: implement me. */
32747 break;
32748 }
32749
32750 return NB_OK;
32751 }
32752
32753 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
32754 struct nb_cb_destroy_args *args)
32755 {
32756 switch (args->event) {
32757 case NB_EV_VALIDATE:
32758 case NB_EV_PREPARE:
32759 case NB_EV_ABORT:
32760 case NB_EV_APPLY:
32761 /* TODO: implement me. */
32762 break;
32763 }
32764
32765 return NB_OK;
32766 }
32767
32768 /*
32769 * XPath:
32770 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/as-path-options/replace-peer-as
32771 */
32772 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_replace_peer_as_modify(
32773 struct nb_cb_modify_args *args)
32774 {
32775 switch (args->event) {
32776 case NB_EV_VALIDATE:
32777 case NB_EV_PREPARE:
32778 case NB_EV_ABORT:
32779 return NB_OK;
32780 case NB_EV_APPLY:
32781 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32782 args, PEER_FLAG_AS_OVERRIDE,
32783 yang_dnode_get_bool(args->dnode, NULL));
32784
32785 break;
32786 }
32787
32788 return NB_OK;
32789 }
32790
32791 /*
32792 * XPath:
32793 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/default-originate/originate
32794 */
32795 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_originate_modify(
32796 struct nb_cb_modify_args *args)
32797 {
32798 switch (args->event) {
32799 case NB_EV_VALIDATE:
32800 case NB_EV_PREPARE:
32801 case NB_EV_ABORT:
32802 case NB_EV_APPLY:
32803 /* TODO: implement me. */
32804 break;
32805 }
32806
32807 return NB_OK;
32808 }
32809
32810 /*
32811 * XPath:
32812 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/default-originate/route-map
32813 */
32814 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_modify(
32815 struct nb_cb_modify_args *args)
32816 {
32817 switch (args->event) {
32818 case NB_EV_VALIDATE:
32819 case NB_EV_PREPARE:
32820 case NB_EV_ABORT:
32821 case NB_EV_APPLY:
32822 /* TODO: implement me. */
32823 break;
32824 }
32825
32826 return NB_OK;
32827 }
32828
32829 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_destroy(
32830 struct nb_cb_destroy_args *args)
32831 {
32832 switch (args->event) {
32833 case NB_EV_VALIDATE:
32834 case NB_EV_PREPARE:
32835 case NB_EV_ABORT:
32836 case NB_EV_APPLY:
32837 /* TODO: implement me. */
32838 break;
32839 }
32840
32841 return NB_OK;
32842 }
32843
32844 /*
32845 * XPath:
32846 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/attr-unchanged/as-path-unchanged
32847 */
32848 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
32849 struct nb_cb_modify_args *args)
32850 {
32851 switch (args->event) {
32852 case NB_EV_VALIDATE:
32853 case NB_EV_PREPARE:
32854 case NB_EV_ABORT:
32855 return NB_OK;
32856 case NB_EV_APPLY:
32857 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32858 args, PEER_FLAG_AS_PATH_UNCHANGED,
32859 yang_dnode_get_bool(args->dnode, NULL));
32860
32861 break;
32862 }
32863
32864 return NB_OK;
32865 }
32866
32867 /*
32868 * XPath:
32869 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/attr-unchanged/next-hop-unchanged
32870 */
32871 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
32872 struct nb_cb_modify_args *args)
32873 {
32874 switch (args->event) {
32875 case NB_EV_VALIDATE:
32876 case NB_EV_PREPARE:
32877 case NB_EV_ABORT:
32878 return NB_OK;
32879 case NB_EV_APPLY:
32880 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32881 args, PEER_FLAG_NEXTHOP_UNCHANGED,
32882 yang_dnode_get_bool(args->dnode, NULL));
32883
32884 break;
32885 }
32886
32887 return NB_OK;
32888 }
32889
32890 /*
32891 * XPath:
32892 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/attr-unchanged/med-unchanged
32893 */
32894 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_med_unchanged_modify(
32895 struct nb_cb_modify_args *args)
32896 {
32897 switch (args->event) {
32898 case NB_EV_VALIDATE:
32899 case NB_EV_PREPARE:
32900 case NB_EV_ABORT:
32901 return NB_OK;
32902 case NB_EV_APPLY:
32903 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32904 args, PEER_FLAG_MED_UNCHANGED,
32905 yang_dnode_get_bool(args->dnode, NULL));
32906
32907 break;
32908 }
32909
32910 return NB_OK;
32911 }
32912
32913 /*
32914 * XPath:
32915 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/orf-capability/orf-send
32916 */
32917 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_modify(
32918 struct nb_cb_modify_args *args)
32919 {
32920 switch (args->event) {
32921 case NB_EV_VALIDATE:
32922 case NB_EV_PREPARE:
32923 case NB_EV_ABORT:
32924 case NB_EV_APPLY:
32925 /* TODO: implement me. */
32926 break;
32927 }
32928
32929 return NB_OK;
32930 }
32931
32932 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_destroy(
32933 struct nb_cb_destroy_args *args)
32934 {
32935 switch (args->event) {
32936 case NB_EV_VALIDATE:
32937 case NB_EV_PREPARE:
32938 case NB_EV_ABORT:
32939 case NB_EV_APPLY:
32940 /* TODO: implement me. */
32941 break;
32942 }
32943
32944 return NB_OK;
32945 }
32946
32947 /*
32948 * XPath:
32949 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/orf-capability/orf-receive
32950 */
32951 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_modify(
32952 struct nb_cb_modify_args *args)
32953 {
32954 switch (args->event) {
32955 case NB_EV_VALIDATE:
32956 case NB_EV_PREPARE:
32957 case NB_EV_ABORT:
32958 case NB_EV_APPLY:
32959 /* TODO: implement me. */
32960 break;
32961 }
32962
32963 return NB_OK;
32964 }
32965
32966 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_destroy(
32967 struct nb_cb_destroy_args *args)
32968 {
32969 switch (args->event) {
32970 case NB_EV_VALIDATE:
32971 case NB_EV_PREPARE:
32972 case NB_EV_ABORT:
32973 case NB_EV_APPLY:
32974 /* TODO: implement me. */
32975 break;
32976 }
32977
32978 return NB_OK;
32979 }
32980
32981 /*
32982 * XPath:
32983 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/orf-capability/orf-both
32984 */
32985 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_modify(
32986 struct nb_cb_modify_args *args)
32987 {
32988 switch (args->event) {
32989 case NB_EV_VALIDATE:
32990 case NB_EV_PREPARE:
32991 case NB_EV_ABORT:
32992 case NB_EV_APPLY:
32993 /* TODO: implement me. */
32994 break;
32995 }
32996
32997 return NB_OK;
32998 }
32999
33000 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_destroy(
33001 struct nb_cb_destroy_args *args)
33002 {
33003 switch (args->event) {
33004 case NB_EV_VALIDATE:
33005 case NB_EV_PREPARE:
33006 case NB_EV_ABORT:
33007 case NB_EV_APPLY:
33008 /* TODO: implement me. */
33009 break;
33010 }
33011
33012 return NB_OK;
33013 }
33014
33015 /*
33016 * XPath:
33017 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list
33018 */
33019 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_create(
33020 struct nb_cb_create_args *args)
33021 {
33022 switch (args->event) {
33023 case NB_EV_VALIDATE:
33024 case NB_EV_PREPARE:
33025 case NB_EV_ABORT:
33026 case NB_EV_APPLY:
33027 /* TODO: implement me. */
33028 break;
33029 }
33030
33031 return NB_OK;
33032 }
33033
33034 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_destroy(
33035 struct nb_cb_destroy_args *args)
33036 {
33037 switch (args->event) {
33038 case NB_EV_VALIDATE:
33039 case NB_EV_PREPARE:
33040 case NB_EV_ABORT:
33041 return NB_OK;
33042 case NB_EV_APPLY:
33043 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
33044 args);
33045 }
33046
33047 return NB_OK;
33048 }
33049
33050 /*
33051 * XPath:
33052 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/max-prefixes
33053 */
33054 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
33055 struct nb_cb_modify_args *args)
33056 {
33057 switch (args->event) {
33058 case NB_EV_VALIDATE:
33059 case NB_EV_PREPARE:
33060 case NB_EV_ABORT:
33061 case NB_EV_APPLY:
33062 /* TODO: implement me. */
33063 break;
33064 }
33065
33066 return NB_OK;
33067 }
33068
33069 /*
33070 * XPath:
33071 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/force-check
33072 */
33073 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_force_check_modify(
33074 struct nb_cb_modify_args *args)
33075 {
33076 switch (args->event) {
33077 case NB_EV_VALIDATE:
33078 case NB_EV_PREPARE:
33079 case NB_EV_ABORT:
33080 case NB_EV_APPLY:
33081 /* TODO: implement me. */
33082 break;
33083 }
33084
33085 return NB_OK;
33086 }
33087
33088 /*
33089 * XPath:
33090 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/warning-only
33091 */
33092 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
33093 struct nb_cb_modify_args *args)
33094 {
33095 switch (args->event) {
33096 case NB_EV_VALIDATE:
33097 case NB_EV_PREPARE:
33098 case NB_EV_ABORT:
33099 case NB_EV_APPLY:
33100 /* TODO: implement me. */
33101 break;
33102 }
33103
33104 return NB_OK;
33105 }
33106
33107 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
33108 struct nb_cb_destroy_args *args)
33109 {
33110 switch (args->event) {
33111 case NB_EV_VALIDATE:
33112 case NB_EV_PREPARE:
33113 case NB_EV_ABORT:
33114 case NB_EV_APPLY:
33115 /* TODO: implement me. */
33116 break;
33117 }
33118
33119 return NB_OK;
33120 }
33121
33122 /*
33123 * XPath:
33124 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/restart-timer
33125 */
33126 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
33127 struct nb_cb_modify_args *args)
33128 {
33129 switch (args->event) {
33130 case NB_EV_VALIDATE:
33131 case NB_EV_PREPARE:
33132 case NB_EV_ABORT:
33133 case NB_EV_APPLY:
33134 /* TODO: implement me. */
33135 break;
33136 }
33137
33138 return NB_OK;
33139 }
33140
33141 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
33142 struct nb_cb_destroy_args *args)
33143 {
33144 switch (args->event) {
33145 case NB_EV_VALIDATE:
33146 case NB_EV_PREPARE:
33147 case NB_EV_ABORT:
33148 case NB_EV_APPLY:
33149 /* TODO: implement me. */
33150 break;
33151 }
33152
33153 return NB_OK;
33154 }
33155
33156 /*
33157 * XPath:
33158 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
33159 */
33160 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
33161 struct nb_cb_modify_args *args)
33162 {
33163 switch (args->event) {
33164 case NB_EV_VALIDATE:
33165 case NB_EV_PREPARE:
33166 case NB_EV_ABORT:
33167 case NB_EV_APPLY:
33168 /* TODO: implement me. */
33169 break;
33170 }
33171
33172 return NB_OK;
33173 }
33174
33175 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
33176 struct nb_cb_destroy_args *args)
33177 {
33178 switch (args->event) {
33179 case NB_EV_VALIDATE:
33180 case NB_EV_PREPARE:
33181 case NB_EV_ABORT:
33182 case NB_EV_APPLY:
33183 /* TODO: implement me. */
33184 break;
33185 }
33186
33187 return NB_OK;
33188 }
33189
33190 /*
33191 * XPath:
33192 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
33193 */
33194 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
33195 struct nb_cb_modify_args *args)
33196 {
33197 switch (args->event) {
33198 case NB_EV_VALIDATE:
33199 case NB_EV_PREPARE:
33200 case NB_EV_ABORT:
33201 case NB_EV_APPLY:
33202 /* TODO: implement me. */
33203 break;
33204 }
33205
33206 return NB_OK;
33207 }
33208
33209 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
33210 struct nb_cb_destroy_args *args)
33211 {
33212 switch (args->event) {
33213 case NB_EV_VALIDATE:
33214 case NB_EV_PREPARE:
33215 case NB_EV_ABORT:
33216 case NB_EV_APPLY:
33217 /* TODO: implement me. */
33218 break;
33219 }
33220
33221 return NB_OK;
33222 }
33223
33224 /*
33225 * XPath:
33226 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tr-restart-timer
33227 */
33228 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
33229 struct nb_cb_modify_args *args)
33230 {
33231 switch (args->event) {
33232 case NB_EV_VALIDATE:
33233 case NB_EV_PREPARE:
33234 case NB_EV_ABORT:
33235 case NB_EV_APPLY:
33236 /* TODO: implement me. */
33237 break;
33238 }
33239
33240 return NB_OK;
33241 }
33242
33243 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
33244 struct nb_cb_destroy_args *args)
33245 {
33246 switch (args->event) {
33247 case NB_EV_VALIDATE:
33248 case NB_EV_PREPARE:
33249 case NB_EV_ABORT:
33250 case NB_EV_APPLY:
33251 /* TODO: implement me. */
33252 break;
33253 }
33254
33255 return NB_OK;
33256 }
33257
33258 /*
33259 * XPath:
33260 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
33261 */
33262 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
33263 struct nb_cb_modify_args *args)
33264 {
33265 switch (args->event) {
33266 case NB_EV_VALIDATE:
33267 case NB_EV_PREPARE:
33268 case NB_EV_ABORT:
33269 case NB_EV_APPLY:
33270 /* TODO: implement me. */
33271 break;
33272 }
33273
33274 return NB_OK;
33275 }
33276
33277 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
33278 struct nb_cb_destroy_args *args)
33279 {
33280 switch (args->event) {
33281 case NB_EV_VALIDATE:
33282 case NB_EV_PREPARE:
33283 case NB_EV_ABORT:
33284 case NB_EV_APPLY:
33285 /* TODO: implement me. */
33286 break;
33287 }
33288
33289 return NB_OK;
33290 }
33291
33292 /*
33293 * XPath:
33294 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tw-warning-only
33295 */
33296 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
33297 struct nb_cb_modify_args *args)
33298 {
33299 switch (args->event) {
33300 case NB_EV_VALIDATE:
33301 case NB_EV_PREPARE:
33302 case NB_EV_ABORT:
33303 case NB_EV_APPLY:
33304 /* TODO: implement me. */
33305 break;
33306 }
33307
33308 return NB_OK;
33309 }
33310
33311 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
33312 struct nb_cb_destroy_args *args)
33313 {
33314 switch (args->event) {
33315 case NB_EV_VALIDATE:
33316 case NB_EV_PREPARE:
33317 case NB_EV_ABORT:
33318 case NB_EV_APPLY:
33319 /* TODO: implement me. */
33320 break;
33321 }
33322
33323 return NB_OK;
33324 }
33325
33326 /*
33327 * XPath:
33328 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/nexthop-self/next-hop-self
33329 */
33330 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_modify(
33331 struct nb_cb_modify_args *args)
33332 {
33333 switch (args->event) {
33334 case NB_EV_VALIDATE:
33335 case NB_EV_PREPARE:
33336 case NB_EV_ABORT:
33337 return NB_OK;
33338 case NB_EV_APPLY:
33339 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33340 args, PEER_FLAG_NEXTHOP_SELF,
33341 yang_dnode_get_bool(args->dnode, NULL));
33342
33343 break;
33344 }
33345
33346 return NB_OK;
33347 }
33348
33349 /*
33350 * XPath:
33351 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/nexthop-self/next-hop-self-force
33352 */
33353 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_force_modify(
33354 struct nb_cb_modify_args *args)
33355 {
33356 switch (args->event) {
33357 case NB_EV_VALIDATE:
33358 case NB_EV_PREPARE:
33359 case NB_EV_ABORT:
33360 return NB_OK;
33361 case NB_EV_APPLY:
33362 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33363 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
33364 yang_dnode_get_bool(args->dnode, NULL));
33365
33366 break;
33367 }
33368
33369 return NB_OK;
33370 }
33371
33372 /*
33373 * XPath:
33374 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as-all
33375 */
33376 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_modify(
33377 struct nb_cb_modify_args *args)
33378 {
33379 switch (args->event) {
33380 case NB_EV_VALIDATE:
33381 case NB_EV_PREPARE:
33382 case NB_EV_ABORT:
33383 return NB_OK;
33384 case NB_EV_APPLY:
33385 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33386 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
33387 yang_dnode_get_bool(args->dnode, NULL));
33388
33389 break;
33390 }
33391
33392 return NB_OK;
33393 }
33394
33395 /*
33396 * XPath:
33397 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as-all-replace
33398 */
33399 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_replace_modify(
33400 struct nb_cb_modify_args *args)
33401 {
33402 switch (args->event) {
33403 case NB_EV_VALIDATE:
33404 case NB_EV_PREPARE:
33405 case NB_EV_ABORT:
33406 return NB_OK;
33407 case NB_EV_APPLY:
33408 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33409 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
33410 yang_dnode_get_bool(args->dnode, NULL));
33411
33412 break;
33413 }
33414
33415 return NB_OK;
33416 }
33417
33418 /*
33419 * XPath:
33420 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as
33421 */
33422 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_modify(
33423 struct nb_cb_modify_args *args)
33424 {
33425 switch (args->event) {
33426 case NB_EV_VALIDATE:
33427 case NB_EV_PREPARE:
33428 case NB_EV_ABORT:
33429 return NB_OK;
33430 case NB_EV_APPLY:
33431 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33432 args, PEER_FLAG_REMOVE_PRIVATE_AS,
33433 yang_dnode_get_bool(args->dnode, NULL));
33434
33435 break;
33436 }
33437
33438 return NB_OK;
33439 }
33440
33441 /*
33442 * XPath:
33443 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as-replace
33444 */
33445 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_replace_modify(
33446 struct nb_cb_modify_args *args)
33447 {
33448 switch (args->event) {
33449 case NB_EV_VALIDATE:
33450 case NB_EV_PREPARE:
33451 case NB_EV_ABORT:
33452 return NB_OK;
33453 case NB_EV_APPLY:
33454 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33455 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
33456 yang_dnode_get_bool(args->dnode, NULL));
33457
33458 break;
33459 }
33460
33461 return NB_OK;
33462 }
33463
33464 /*
33465 * XPath:
33466 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/route-reflector/route-reflector-client
33467 */
33468 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_route_reflector_route_reflector_client_modify(
33469 struct nb_cb_modify_args *args)
33470 {
33471 switch (args->event) {
33472 case NB_EV_VALIDATE:
33473 case NB_EV_PREPARE:
33474 case NB_EV_ABORT:
33475 return NB_OK;
33476 case NB_EV_APPLY:
33477 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33478 args, PEER_FLAG_REFLECTOR_CLIENT,
33479 yang_dnode_get_bool(args->dnode, NULL));
33480
33481 break;
33482 }
33483
33484 return NB_OK;
33485 }
33486
33487 /*
33488 * XPath:
33489 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/route-server/route-server-client
33490 */
33491 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_route_server_route_server_client_modify(
33492 struct nb_cb_modify_args *args)
33493 {
33494 switch (args->event) {
33495 case NB_EV_VALIDATE:
33496 case NB_EV_PREPARE:
33497 case NB_EV_ABORT:
33498 return NB_OK;
33499 case NB_EV_APPLY:
33500 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33501 args, PEER_FLAG_RSERVER_CLIENT,
33502 yang_dnode_get_bool(args->dnode, NULL));
33503
33504 break;
33505 }
33506
33507 return NB_OK;
33508 }
33509
33510 /*
33511 * XPath:
33512 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/send-community/send-community
33513 */
33514 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_community_modify(
33515 struct nb_cb_modify_args *args)
33516 {
33517 switch (args->event) {
33518 case NB_EV_VALIDATE:
33519 case NB_EV_PREPARE:
33520 case NB_EV_ABORT:
33521 return NB_OK;
33522 case NB_EV_APPLY:
33523 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33524 args, PEER_FLAG_SEND_COMMUNITY,
33525 yang_dnode_get_bool(args->dnode, NULL));
33526
33527 break;
33528 }
33529
33530 return NB_OK;
33531 }
33532
33533 /*
33534 * XPath:
33535 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/send-community/send-ext-community
33536 */
33537 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_ext_community_modify(
33538 struct nb_cb_modify_args *args)
33539 {
33540 switch (args->event) {
33541 case NB_EV_VALIDATE:
33542 case NB_EV_PREPARE:
33543 case NB_EV_ABORT:
33544 return NB_OK;
33545 case NB_EV_APPLY:
33546 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33547 args, PEER_FLAG_SEND_EXT_COMMUNITY,
33548 yang_dnode_get_bool(args->dnode, NULL));
33549
33550 break;
33551 }
33552
33553 return NB_OK;
33554 }
33555
33556 /*
33557 * XPath:
33558 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/send-community/send-large-community
33559 */
33560 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_large_community_modify(
33561 struct nb_cb_modify_args *args)
33562 {
33563 switch (args->event) {
33564 case NB_EV_VALIDATE:
33565 case NB_EV_PREPARE:
33566 case NB_EV_ABORT:
33567 return NB_OK;
33568 case NB_EV_APPLY:
33569 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33570 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
33571 yang_dnode_get_bool(args->dnode, NULL));
33572
33573 break;
33574 }
33575
33576 return NB_OK;
33577 }
33578
33579 /*
33580 * XPath:
33581 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/soft-reconfiguration
33582 */
33583 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_soft_reconfiguration_modify(
33584 struct nb_cb_modify_args *args)
33585 {
33586 switch (args->event) {
33587 case NB_EV_VALIDATE:
33588 case NB_EV_PREPARE:
33589 case NB_EV_ABORT:
33590 return NB_OK;
33591 case NB_EV_APPLY:
33592 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33593 args, PEER_FLAG_SOFT_RECONFIG,
33594 yang_dnode_get_bool(args->dnode, NULL));
33595
33596 break;
33597 }
33598
33599 return NB_OK;
33600 }
33601
33602 /*
33603 * XPath:
33604 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/weight/weight-attribute
33605 */
33606 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_modify(
33607 struct nb_cb_modify_args *args)
33608 {
33609 switch (args->event) {
33610 case NB_EV_VALIDATE:
33611 case NB_EV_PREPARE:
33612 case NB_EV_ABORT:
33613 return NB_OK;
33614 case NB_EV_APPLY:
33615 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
33616
33617 break;
33618 }
33619
33620 return NB_OK;
33621 }
33622
33623 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_destroy(
33624 struct nb_cb_destroy_args *args)
33625 {
33626 switch (args->event) {
33627 case NB_EV_VALIDATE:
33628 case NB_EV_PREPARE:
33629 case NB_EV_ABORT:
33630 return NB_OK;
33631 case NB_EV_APPLY:
33632 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
33633
33634 break;
33635 }
33636
33637 return NB_OK;
33638 }
33639
33640 /*
33641 * XPath:
33642 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/add-paths/path-type
33643 */
33644 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_add_paths_path_type_modify(
33645 struct nb_cb_modify_args *args)
33646 {
33647 switch (args->event) {
33648 case NB_EV_VALIDATE:
33649 case NB_EV_PREPARE:
33650 case NB_EV_ABORT:
33651 case NB_EV_APPLY:
33652 /* TODO: implement me. */
33653 break;
33654 }
33655
33656 return NB_OK;
33657 }
33658
33659 /*
33660 * XPath:
33661 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/as-path-options/allow-own-as
33662 */
33663 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_modify(
33664 struct nb_cb_modify_args *args)
33665 {
33666 switch (args->event) {
33667 case NB_EV_VALIDATE:
33668 case NB_EV_PREPARE:
33669 case NB_EV_ABORT:
33670 case NB_EV_APPLY:
33671 /* TODO: implement me. */
33672 break;
33673 }
33674
33675 return NB_OK;
33676 }
33677
33678 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_destroy(
33679 struct nb_cb_destroy_args *args)
33680 {
33681 switch (args->event) {
33682 case NB_EV_VALIDATE:
33683 case NB_EV_PREPARE:
33684 case NB_EV_ABORT:
33685 case NB_EV_APPLY:
33686 /* TODO: implement me. */
33687 break;
33688 }
33689
33690 return NB_OK;
33691 }
33692
33693 /*
33694 * XPath:
33695 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/as-path-options/allow-own-origin-as
33696 */
33697 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
33698 struct nb_cb_modify_args *args)
33699 {
33700 switch (args->event) {
33701 case NB_EV_VALIDATE:
33702 case NB_EV_PREPARE:
33703 case NB_EV_ABORT:
33704 case NB_EV_APPLY:
33705 /* TODO: implement me. */
33706 break;
33707 }
33708
33709 return NB_OK;
33710 }
33711
33712 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
33713 struct nb_cb_destroy_args *args)
33714 {
33715 switch (args->event) {
33716 case NB_EV_VALIDATE:
33717 case NB_EV_PREPARE:
33718 case NB_EV_ABORT:
33719 case NB_EV_APPLY:
33720 /* TODO: implement me. */
33721 break;
33722 }
33723
33724 return NB_OK;
33725 }
33726
33727 /*
33728 * XPath:
33729 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/as-path-options/replace-peer-as
33730 */
33731 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_replace_peer_as_modify(
33732 struct nb_cb_modify_args *args)
33733 {
33734 switch (args->event) {
33735 case NB_EV_VALIDATE:
33736 case NB_EV_PREPARE:
33737 case NB_EV_ABORT:
33738 return NB_OK;
33739 case NB_EV_APPLY:
33740 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33741 args, PEER_FLAG_AS_OVERRIDE,
33742 yang_dnode_get_bool(args->dnode, NULL));
33743
33744 break;
33745 }
33746
33747 return NB_OK;
33748 }
33749
33750 /*
33751 * XPath:
33752 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/attr-unchanged/as-path-unchanged
33753 */
33754 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
33755 struct nb_cb_modify_args *args)
33756 {
33757 switch (args->event) {
33758 case NB_EV_VALIDATE:
33759 case NB_EV_PREPARE:
33760 case NB_EV_ABORT:
33761 return NB_OK;
33762 case NB_EV_APPLY:
33763 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33764 args, PEER_FLAG_AS_PATH_UNCHANGED,
33765 yang_dnode_get_bool(args->dnode, NULL));
33766
33767 break;
33768 }
33769
33770 return NB_OK;
33771 }
33772
33773 /*
33774 * XPath:
33775 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/attr-unchanged/next-hop-unchanged
33776 */
33777 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
33778 struct nb_cb_modify_args *args)
33779 {
33780 switch (args->event) {
33781 case NB_EV_VALIDATE:
33782 case NB_EV_PREPARE:
33783 case NB_EV_ABORT:
33784 return NB_OK;
33785 case NB_EV_APPLY:
33786 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33787 args, PEER_FLAG_NEXTHOP_UNCHANGED,
33788 yang_dnode_get_bool(args->dnode, NULL));
33789
33790 break;
33791 }
33792
33793 return NB_OK;
33794 }
33795
33796 /*
33797 * XPath:
33798 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/attr-unchanged/med-unchanged
33799 */
33800 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_med_unchanged_modify(
33801 struct nb_cb_modify_args *args)
33802 {
33803 switch (args->event) {
33804 case NB_EV_VALIDATE:
33805 case NB_EV_PREPARE:
33806 case NB_EV_ABORT:
33807 return NB_OK;
33808 case NB_EV_APPLY:
33809 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33810 args, PEER_FLAG_MED_UNCHANGED,
33811 yang_dnode_get_bool(args->dnode, NULL));
33812
33813 break;
33814 }
33815
33816 return NB_OK;
33817 }
33818
33819 /*
33820 * XPath:
33821 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list
33822 */
33823 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_create(
33824 struct nb_cb_create_args *args)
33825 {
33826 switch (args->event) {
33827 case NB_EV_VALIDATE:
33828 case NB_EV_PREPARE:
33829 case NB_EV_ABORT:
33830 case NB_EV_APPLY:
33831 /* TODO: implement me. */
33832 break;
33833 }
33834
33835 return NB_OK;
33836 }
33837
33838 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_destroy(
33839 struct nb_cb_destroy_args *args)
33840 {
33841 switch (args->event) {
33842 case NB_EV_VALIDATE:
33843 case NB_EV_PREPARE:
33844 case NB_EV_ABORT:
33845 return NB_OK;
33846 case NB_EV_APPLY:
33847 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
33848 args);
33849 }
33850
33851 return NB_OK;
33852 }
33853
33854 /*
33855 * XPath:
33856 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/max-prefixes
33857 */
33858 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
33859 struct nb_cb_modify_args *args)
33860 {
33861 switch (args->event) {
33862 case NB_EV_VALIDATE:
33863 case NB_EV_PREPARE:
33864 case NB_EV_ABORT:
33865 case NB_EV_APPLY:
33866 /* TODO: implement me. */
33867 break;
33868 }
33869
33870 return NB_OK;
33871 }
33872
33873 /*
33874 * XPath:
33875 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/force-check
33876 */
33877 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
33878 struct nb_cb_modify_args *args)
33879 {
33880 switch (args->event) {
33881 case NB_EV_VALIDATE:
33882 case NB_EV_PREPARE:
33883 case NB_EV_ABORT:
33884 case NB_EV_APPLY:
33885 /* TODO: implement me. */
33886 break;
33887 }
33888
33889 return NB_OK;
33890 }
33891
33892 /*
33893 * XPath:
33894 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/warning-only
33895 */
33896 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
33897 struct nb_cb_modify_args *args)
33898 {
33899 switch (args->event) {
33900 case NB_EV_VALIDATE:
33901 case NB_EV_PREPARE:
33902 case NB_EV_ABORT:
33903 case NB_EV_APPLY:
33904 /* TODO: implement me. */
33905 break;
33906 }
33907
33908 return NB_OK;
33909 }
33910
33911 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
33912 struct nb_cb_destroy_args *args)
33913 {
33914 switch (args->event) {
33915 case NB_EV_VALIDATE:
33916 case NB_EV_PREPARE:
33917 case NB_EV_ABORT:
33918 case NB_EV_APPLY:
33919 /* TODO: implement me. */
33920 break;
33921 }
33922
33923 return NB_OK;
33924 }
33925
33926 /*
33927 * XPath:
33928 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/restart-timer
33929 */
33930 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
33931 struct nb_cb_modify_args *args)
33932 {
33933 switch (args->event) {
33934 case NB_EV_VALIDATE:
33935 case NB_EV_PREPARE:
33936 case NB_EV_ABORT:
33937 case NB_EV_APPLY:
33938 /* TODO: implement me. */
33939 break;
33940 }
33941
33942 return NB_OK;
33943 }
33944
33945 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
33946 struct nb_cb_destroy_args *args)
33947 {
33948 switch (args->event) {
33949 case NB_EV_VALIDATE:
33950 case NB_EV_PREPARE:
33951 case NB_EV_ABORT:
33952 case NB_EV_APPLY:
33953 /* TODO: implement me. */
33954 break;
33955 }
33956
33957 return NB_OK;
33958 }
33959
33960 /*
33961 * XPath:
33962 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
33963 */
33964 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
33965 struct nb_cb_modify_args *args)
33966 {
33967 switch (args->event) {
33968 case NB_EV_VALIDATE:
33969 case NB_EV_PREPARE:
33970 case NB_EV_ABORT:
33971 case NB_EV_APPLY:
33972 /* TODO: implement me. */
33973 break;
33974 }
33975
33976 return NB_OK;
33977 }
33978
33979 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
33980 struct nb_cb_destroy_args *args)
33981 {
33982 switch (args->event) {
33983 case NB_EV_VALIDATE:
33984 case NB_EV_PREPARE:
33985 case NB_EV_ABORT:
33986 case NB_EV_APPLY:
33987 /* TODO: implement me. */
33988 break;
33989 }
33990
33991 return NB_OK;
33992 }
33993
33994 /*
33995 * XPath:
33996 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
33997 */
33998 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
33999 struct nb_cb_modify_args *args)
34000 {
34001 switch (args->event) {
34002 case NB_EV_VALIDATE:
34003 case NB_EV_PREPARE:
34004 case NB_EV_ABORT:
34005 case NB_EV_APPLY:
34006 /* TODO: implement me. */
34007 break;
34008 }
34009
34010 return NB_OK;
34011 }
34012
34013 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
34014 struct nb_cb_destroy_args *args)
34015 {
34016 switch (args->event) {
34017 case NB_EV_VALIDATE:
34018 case NB_EV_PREPARE:
34019 case NB_EV_ABORT:
34020 case NB_EV_APPLY:
34021 /* TODO: implement me. */
34022 break;
34023 }
34024
34025 return NB_OK;
34026 }
34027
34028 /*
34029 * XPath:
34030 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tr-restart-timer
34031 */
34032 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
34033 struct nb_cb_modify_args *args)
34034 {
34035 switch (args->event) {
34036 case NB_EV_VALIDATE:
34037 case NB_EV_PREPARE:
34038 case NB_EV_ABORT:
34039 case NB_EV_APPLY:
34040 /* TODO: implement me. */
34041 break;
34042 }
34043
34044 return NB_OK;
34045 }
34046
34047 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
34048 struct nb_cb_destroy_args *args)
34049 {
34050 switch (args->event) {
34051 case NB_EV_VALIDATE:
34052 case NB_EV_PREPARE:
34053 case NB_EV_ABORT:
34054 case NB_EV_APPLY:
34055 /* TODO: implement me. */
34056 break;
34057 }
34058
34059 return NB_OK;
34060 }
34061
34062 /*
34063 * XPath:
34064 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
34065 */
34066 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
34067 struct nb_cb_modify_args *args)
34068 {
34069 switch (args->event) {
34070 case NB_EV_VALIDATE:
34071 case NB_EV_PREPARE:
34072 case NB_EV_ABORT:
34073 case NB_EV_APPLY:
34074 /* TODO: implement me. */
34075 break;
34076 }
34077
34078 return NB_OK;
34079 }
34080
34081 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
34082 struct nb_cb_destroy_args *args)
34083 {
34084 switch (args->event) {
34085 case NB_EV_VALIDATE:
34086 case NB_EV_PREPARE:
34087 case NB_EV_ABORT:
34088 case NB_EV_APPLY:
34089 /* TODO: implement me. */
34090 break;
34091 }
34092
34093 return NB_OK;
34094 }
34095
34096 /*
34097 * XPath:
34098 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tw-warning-only
34099 */
34100 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
34101 struct nb_cb_modify_args *args)
34102 {
34103 switch (args->event) {
34104 case NB_EV_VALIDATE:
34105 case NB_EV_PREPARE:
34106 case NB_EV_ABORT:
34107 case NB_EV_APPLY:
34108 /* TODO: implement me. */
34109 break;
34110 }
34111
34112 return NB_OK;
34113 }
34114
34115 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
34116 struct nb_cb_destroy_args *args)
34117 {
34118 switch (args->event) {
34119 case NB_EV_VALIDATE:
34120 case NB_EV_PREPARE:
34121 case NB_EV_ABORT:
34122 case NB_EV_APPLY:
34123 /* TODO: implement me. */
34124 break;
34125 }
34126
34127 return NB_OK;
34128 }
34129
34130 /*
34131 * XPath:
34132 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/nexthop-self/next-hop-self
34133 */
34134 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_modify(
34135 struct nb_cb_modify_args *args)
34136 {
34137 switch (args->event) {
34138 case NB_EV_VALIDATE:
34139 case NB_EV_PREPARE:
34140 case NB_EV_ABORT:
34141 return NB_OK;
34142 case NB_EV_APPLY:
34143 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34144 args, PEER_FLAG_NEXTHOP_SELF,
34145 yang_dnode_get_bool(args->dnode, NULL));
34146
34147 break;
34148 }
34149
34150 return NB_OK;
34151 }
34152
34153 /*
34154 * XPath:
34155 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/nexthop-self/next-hop-self-force
34156 */
34157 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
34158 struct nb_cb_modify_args *args)
34159 {
34160 switch (args->event) {
34161 case NB_EV_VALIDATE:
34162 case NB_EV_PREPARE:
34163 case NB_EV_ABORT:
34164 return NB_OK;
34165 case NB_EV_APPLY:
34166 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34167 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
34168 yang_dnode_get_bool(args->dnode, NULL));
34169
34170 break;
34171 }
34172
34173 return NB_OK;
34174 }
34175
34176 /*
34177 * XPath:
34178 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as-all
34179 */
34180 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_modify(
34181 struct nb_cb_modify_args *args)
34182 {
34183 switch (args->event) {
34184 case NB_EV_VALIDATE:
34185 case NB_EV_PREPARE:
34186 case NB_EV_ABORT:
34187 return NB_OK;
34188 case NB_EV_APPLY:
34189 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34190 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
34191 yang_dnode_get_bool(args->dnode, NULL));
34192
34193 break;
34194 }
34195
34196 return NB_OK;
34197 }
34198
34199 /*
34200 * XPath:
34201 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as-all-replace
34202 */
34203 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
34204 struct nb_cb_modify_args *args)
34205 {
34206 switch (args->event) {
34207 case NB_EV_VALIDATE:
34208 case NB_EV_PREPARE:
34209 case NB_EV_ABORT:
34210 return NB_OK;
34211 case NB_EV_APPLY:
34212 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34213 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
34214 yang_dnode_get_bool(args->dnode, NULL));
34215
34216 break;
34217 }
34218
34219 return NB_OK;
34220 }
34221
34222 /*
34223 * XPath:
34224 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as
34225 */
34226 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_modify(
34227 struct nb_cb_modify_args *args)
34228 {
34229 switch (args->event) {
34230 case NB_EV_VALIDATE:
34231 case NB_EV_PREPARE:
34232 case NB_EV_ABORT:
34233 return NB_OK;
34234 case NB_EV_APPLY:
34235 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34236 args, PEER_FLAG_REMOVE_PRIVATE_AS,
34237 yang_dnode_get_bool(args->dnode, NULL));
34238
34239 break;
34240 }
34241
34242 return NB_OK;
34243 }
34244
34245 /*
34246 * XPath:
34247 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as-replace
34248 */
34249 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_replace_modify(
34250 struct nb_cb_modify_args *args)
34251 {
34252 switch (args->event) {
34253 case NB_EV_VALIDATE:
34254 case NB_EV_PREPARE:
34255 case NB_EV_ABORT:
34256 return NB_OK;
34257 case NB_EV_APPLY:
34258 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34259 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
34260 yang_dnode_get_bool(args->dnode, NULL));
34261
34262 break;
34263 }
34264
34265 return NB_OK;
34266 }
34267
34268 /*
34269 * XPath:
34270 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/route-reflector/route-reflector-client
34271 */
34272 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_reflector_route_reflector_client_modify(
34273 struct nb_cb_modify_args *args)
34274 {
34275 switch (args->event) {
34276 case NB_EV_VALIDATE:
34277 case NB_EV_PREPARE:
34278 case NB_EV_ABORT:
34279 return NB_OK;
34280 case NB_EV_APPLY:
34281 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34282 args, PEER_FLAG_REFLECTOR_CLIENT,
34283 yang_dnode_get_bool(args->dnode, NULL));
34284
34285 break;
34286 }
34287
34288 return NB_OK;
34289 }
34290
34291 /*
34292 * XPath:
34293 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/route-server/route-server-client
34294 */
34295 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_server_route_server_client_modify(
34296 struct nb_cb_modify_args *args)
34297 {
34298 switch (args->event) {
34299 case NB_EV_VALIDATE:
34300 case NB_EV_PREPARE:
34301 case NB_EV_ABORT:
34302 return NB_OK;
34303 case NB_EV_APPLY:
34304 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34305 args, PEER_FLAG_RSERVER_CLIENT,
34306 yang_dnode_get_bool(args->dnode, NULL));
34307
34308 break;
34309 }
34310
34311 return NB_OK;
34312 }
34313
34314 /*
34315 * XPath:
34316 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/send-community/send-community
34317 */
34318 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_community_modify(
34319 struct nb_cb_modify_args *args)
34320 {
34321 switch (args->event) {
34322 case NB_EV_VALIDATE:
34323 case NB_EV_PREPARE:
34324 case NB_EV_ABORT:
34325 return NB_OK;
34326 case NB_EV_APPLY:
34327 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34328 args, PEER_FLAG_SEND_COMMUNITY,
34329 yang_dnode_get_bool(args->dnode, NULL));
34330
34331 break;
34332 }
34333
34334 return NB_OK;
34335 }
34336
34337 /*
34338 * XPath:
34339 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/send-community/send-ext-community
34340 */
34341 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_ext_community_modify(
34342 struct nb_cb_modify_args *args)
34343 {
34344 switch (args->event) {
34345 case NB_EV_VALIDATE:
34346 case NB_EV_PREPARE:
34347 case NB_EV_ABORT:
34348 return NB_OK;
34349 case NB_EV_APPLY:
34350 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34351 args, PEER_FLAG_SEND_EXT_COMMUNITY,
34352 yang_dnode_get_bool(args->dnode, NULL));
34353
34354 break;
34355 }
34356
34357 return NB_OK;
34358 }
34359
34360 /*
34361 * XPath:
34362 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/send-community/send-large-community
34363 */
34364 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_large_community_modify(
34365 struct nb_cb_modify_args *args)
34366 {
34367 switch (args->event) {
34368 case NB_EV_VALIDATE:
34369 case NB_EV_PREPARE:
34370 case NB_EV_ABORT:
34371 return NB_OK;
34372 case NB_EV_APPLY:
34373 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34374 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
34375 yang_dnode_get_bool(args->dnode, NULL));
34376
34377 break;
34378 }
34379
34380 return NB_OK;
34381 }
34382
34383 /*
34384 * XPath:
34385 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/soft-reconfiguration
34386 */
34387 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_soft_reconfiguration_modify(
34388 struct nb_cb_modify_args *args)
34389 {
34390 switch (args->event) {
34391 case NB_EV_VALIDATE:
34392 case NB_EV_PREPARE:
34393 case NB_EV_ABORT:
34394 return NB_OK;
34395 case NB_EV_APPLY:
34396 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34397 args, PEER_FLAG_SOFT_RECONFIG,
34398 yang_dnode_get_bool(args->dnode, NULL));
34399
34400 break;
34401 }
34402
34403 return NB_OK;
34404 }
34405
34406 /*
34407 * XPath:
34408 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/weight/weight-attribute
34409 */
34410 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_modify(
34411 struct nb_cb_modify_args *args)
34412 {
34413 switch (args->event) {
34414 case NB_EV_VALIDATE:
34415 case NB_EV_PREPARE:
34416 case NB_EV_ABORT:
34417 return NB_OK;
34418 case NB_EV_APPLY:
34419 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
34420
34421 break;
34422 }
34423
34424 return NB_OK;
34425 }
34426
34427 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_destroy(
34428 struct nb_cb_destroy_args *args)
34429 {
34430 switch (args->event) {
34431 case NB_EV_VALIDATE:
34432 case NB_EV_PREPARE:
34433 case NB_EV_ABORT:
34434 return NB_OK;
34435 case NB_EV_APPLY:
34436 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
34437
34438 break;
34439 }
34440
34441 return NB_OK;
34442 }
34443
34444 /*
34445 * XPath:
34446 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/add-paths/path-type
34447 */
34448 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_add_paths_path_type_modify(
34449 struct nb_cb_modify_args *args)
34450 {
34451 switch (args->event) {
34452 case NB_EV_VALIDATE:
34453 case NB_EV_PREPARE:
34454 case NB_EV_ABORT:
34455 case NB_EV_APPLY:
34456 /* TODO: implement me. */
34457 break;
34458 }
34459
34460 return NB_OK;
34461 }
34462
34463 /*
34464 * XPath:
34465 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/as-path-options/allow-own-as
34466 */
34467 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_modify(
34468 struct nb_cb_modify_args *args)
34469 {
34470 switch (args->event) {
34471 case NB_EV_VALIDATE:
34472 case NB_EV_PREPARE:
34473 case NB_EV_ABORT:
34474 case NB_EV_APPLY:
34475 /* TODO: implement me. */
34476 break;
34477 }
34478
34479 return NB_OK;
34480 }
34481
34482 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_destroy(
34483 struct nb_cb_destroy_args *args)
34484 {
34485 switch (args->event) {
34486 case NB_EV_VALIDATE:
34487 case NB_EV_PREPARE:
34488 case NB_EV_ABORT:
34489 case NB_EV_APPLY:
34490 /* TODO: implement me. */
34491 break;
34492 }
34493
34494 return NB_OK;
34495 }
34496
34497 /*
34498 * XPath:
34499 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/as-path-options/allow-own-origin-as
34500 */
34501 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
34502 struct nb_cb_modify_args *args)
34503 {
34504 switch (args->event) {
34505 case NB_EV_VALIDATE:
34506 case NB_EV_PREPARE:
34507 case NB_EV_ABORT:
34508 case NB_EV_APPLY:
34509 /* TODO: implement me. */
34510 break;
34511 }
34512
34513 return NB_OK;
34514 }
34515
34516 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
34517 struct nb_cb_destroy_args *args)
34518 {
34519 switch (args->event) {
34520 case NB_EV_VALIDATE:
34521 case NB_EV_PREPARE:
34522 case NB_EV_ABORT:
34523 case NB_EV_APPLY:
34524 /* TODO: implement me. */
34525 break;
34526 }
34527
34528 return NB_OK;
34529 }
34530
34531 /*
34532 * XPath:
34533 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/as-path-options/replace-peer-as
34534 */
34535 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_replace_peer_as_modify(
34536 struct nb_cb_modify_args *args)
34537 {
34538 switch (args->event) {
34539 case NB_EV_VALIDATE:
34540 case NB_EV_PREPARE:
34541 case NB_EV_ABORT:
34542 return NB_OK;
34543 case NB_EV_APPLY:
34544 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34545 args, PEER_FLAG_AS_OVERRIDE,
34546 yang_dnode_get_bool(args->dnode, NULL));
34547
34548 break;
34549 }
34550
34551 return NB_OK;
34552 }
34553
34554 /*
34555 * XPath:
34556 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/attr-unchanged/as-path-unchanged
34557 */
34558 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
34559 struct nb_cb_modify_args *args)
34560 {
34561 switch (args->event) {
34562 case NB_EV_VALIDATE:
34563 case NB_EV_PREPARE:
34564 case NB_EV_ABORT:
34565 return NB_OK;
34566 case NB_EV_APPLY:
34567 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34568 args, PEER_FLAG_AS_PATH_UNCHANGED,
34569 yang_dnode_get_bool(args->dnode, NULL));
34570
34571 break;
34572 }
34573
34574 return NB_OK;
34575 }
34576
34577 /*
34578 * XPath:
34579 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/attr-unchanged/next-hop-unchanged
34580 */
34581 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
34582 struct nb_cb_modify_args *args)
34583 {
34584 switch (args->event) {
34585 case NB_EV_VALIDATE:
34586 case NB_EV_PREPARE:
34587 case NB_EV_ABORT:
34588 return NB_OK;
34589 case NB_EV_APPLY:
34590 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34591 args, PEER_FLAG_NEXTHOP_UNCHANGED,
34592 yang_dnode_get_bool(args->dnode, NULL));
34593
34594 break;
34595 }
34596
34597 return NB_OK;
34598 }
34599
34600 /*
34601 * XPath:
34602 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/attr-unchanged/med-unchanged
34603 */
34604 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_med_unchanged_modify(
34605 struct nb_cb_modify_args *args)
34606 {
34607 switch (args->event) {
34608 case NB_EV_VALIDATE:
34609 case NB_EV_PREPARE:
34610 case NB_EV_ABORT:
34611 return NB_OK;
34612 case NB_EV_APPLY:
34613 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34614 args, PEER_FLAG_MED_UNCHANGED,
34615 yang_dnode_get_bool(args->dnode, NULL));
34616
34617 break;
34618 }
34619
34620 return NB_OK;
34621 }
34622
34623 /*
34624 * XPath:
34625 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list
34626 */
34627 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_create(
34628 struct nb_cb_create_args *args)
34629 {
34630 switch (args->event) {
34631 case NB_EV_VALIDATE:
34632 case NB_EV_PREPARE:
34633 case NB_EV_ABORT:
34634 case NB_EV_APPLY:
34635 /* TODO: implement me. */
34636 break;
34637 }
34638
34639 return NB_OK;
34640 }
34641
34642 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_destroy(
34643 struct nb_cb_destroy_args *args)
34644 {
34645 switch (args->event) {
34646 case NB_EV_VALIDATE:
34647 case NB_EV_PREPARE:
34648 case NB_EV_ABORT:
34649 return NB_OK;
34650 case NB_EV_APPLY:
34651 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
34652 args);
34653 }
34654
34655 return NB_OK;
34656 }
34657
34658 /*
34659 * XPath:
34660 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/max-prefixes
34661 */
34662 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
34663 struct nb_cb_modify_args *args)
34664 {
34665 switch (args->event) {
34666 case NB_EV_VALIDATE:
34667 case NB_EV_PREPARE:
34668 case NB_EV_ABORT:
34669 case NB_EV_APPLY:
34670 /* TODO: implement me. */
34671 break;
34672 }
34673
34674 return NB_OK;
34675 }
34676
34677 /*
34678 * XPath:
34679 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/force-check
34680 */
34681 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
34682 struct nb_cb_modify_args *args)
34683 {
34684 switch (args->event) {
34685 case NB_EV_VALIDATE:
34686 case NB_EV_PREPARE:
34687 case NB_EV_ABORT:
34688 case NB_EV_APPLY:
34689 /* TODO: implement me. */
34690 break;
34691 }
34692
34693 return NB_OK;
34694 }
34695
34696 /*
34697 * XPath:
34698 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/warning-only
34699 */
34700 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
34701 struct nb_cb_modify_args *args)
34702 {
34703 switch (args->event) {
34704 case NB_EV_VALIDATE:
34705 case NB_EV_PREPARE:
34706 case NB_EV_ABORT:
34707 case NB_EV_APPLY:
34708 /* TODO: implement me. */
34709 break;
34710 }
34711
34712 return NB_OK;
34713 }
34714
34715 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
34716 struct nb_cb_destroy_args *args)
34717 {
34718 switch (args->event) {
34719 case NB_EV_VALIDATE:
34720 case NB_EV_PREPARE:
34721 case NB_EV_ABORT:
34722 case NB_EV_APPLY:
34723 /* TODO: implement me. */
34724 break;
34725 }
34726
34727 return NB_OK;
34728 }
34729
34730 /*
34731 * XPath:
34732 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/restart-timer
34733 */
34734 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
34735 struct nb_cb_modify_args *args)
34736 {
34737 switch (args->event) {
34738 case NB_EV_VALIDATE:
34739 case NB_EV_PREPARE:
34740 case NB_EV_ABORT:
34741 case NB_EV_APPLY:
34742 /* TODO: implement me. */
34743 break;
34744 }
34745
34746 return NB_OK;
34747 }
34748
34749 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
34750 struct nb_cb_destroy_args *args)
34751 {
34752 switch (args->event) {
34753 case NB_EV_VALIDATE:
34754 case NB_EV_PREPARE:
34755 case NB_EV_ABORT:
34756 case NB_EV_APPLY:
34757 /* TODO: implement me. */
34758 break;
34759 }
34760
34761 return NB_OK;
34762 }
34763
34764 /*
34765 * XPath:
34766 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
34767 */
34768 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
34769 struct nb_cb_modify_args *args)
34770 {
34771 switch (args->event) {
34772 case NB_EV_VALIDATE:
34773 case NB_EV_PREPARE:
34774 case NB_EV_ABORT:
34775 case NB_EV_APPLY:
34776 /* TODO: implement me. */
34777 break;
34778 }
34779
34780 return NB_OK;
34781 }
34782
34783 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
34784 struct nb_cb_destroy_args *args)
34785 {
34786 switch (args->event) {
34787 case NB_EV_VALIDATE:
34788 case NB_EV_PREPARE:
34789 case NB_EV_ABORT:
34790 case NB_EV_APPLY:
34791 /* TODO: implement me. */
34792 break;
34793 }
34794
34795 return NB_OK;
34796 }
34797
34798 /*
34799 * XPath:
34800 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
34801 */
34802 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
34803 struct nb_cb_modify_args *args)
34804 {
34805 switch (args->event) {
34806 case NB_EV_VALIDATE:
34807 case NB_EV_PREPARE:
34808 case NB_EV_ABORT:
34809 case NB_EV_APPLY:
34810 /* TODO: implement me. */
34811 break;
34812 }
34813
34814 return NB_OK;
34815 }
34816
34817 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
34818 struct nb_cb_destroy_args *args)
34819 {
34820 switch (args->event) {
34821 case NB_EV_VALIDATE:
34822 case NB_EV_PREPARE:
34823 case NB_EV_ABORT:
34824 case NB_EV_APPLY:
34825 /* TODO: implement me. */
34826 break;
34827 }
34828
34829 return NB_OK;
34830 }
34831
34832 /*
34833 * XPath:
34834 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tr-restart-timer
34835 */
34836 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
34837 struct nb_cb_modify_args *args)
34838 {
34839 switch (args->event) {
34840 case NB_EV_VALIDATE:
34841 case NB_EV_PREPARE:
34842 case NB_EV_ABORT:
34843 case NB_EV_APPLY:
34844 /* TODO: implement me. */
34845 break;
34846 }
34847
34848 return NB_OK;
34849 }
34850
34851 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
34852 struct nb_cb_destroy_args *args)
34853 {
34854 switch (args->event) {
34855 case NB_EV_VALIDATE:
34856 case NB_EV_PREPARE:
34857 case NB_EV_ABORT:
34858 case NB_EV_APPLY:
34859 /* TODO: implement me. */
34860 break;
34861 }
34862
34863 return NB_OK;
34864 }
34865
34866 /*
34867 * XPath:
34868 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
34869 */
34870 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
34871 struct nb_cb_modify_args *args)
34872 {
34873 switch (args->event) {
34874 case NB_EV_VALIDATE:
34875 case NB_EV_PREPARE:
34876 case NB_EV_ABORT:
34877 case NB_EV_APPLY:
34878 /* TODO: implement me. */
34879 break;
34880 }
34881
34882 return NB_OK;
34883 }
34884
34885 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
34886 struct nb_cb_destroy_args *args)
34887 {
34888 switch (args->event) {
34889 case NB_EV_VALIDATE:
34890 case NB_EV_PREPARE:
34891 case NB_EV_ABORT:
34892 case NB_EV_APPLY:
34893 /* TODO: implement me. */
34894 break;
34895 }
34896
34897 return NB_OK;
34898 }
34899
34900 /*
34901 * XPath:
34902 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tw-warning-only
34903 */
34904 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
34905 struct nb_cb_modify_args *args)
34906 {
34907 switch (args->event) {
34908 case NB_EV_VALIDATE:
34909 case NB_EV_PREPARE:
34910 case NB_EV_ABORT:
34911 case NB_EV_APPLY:
34912 /* TODO: implement me. */
34913 break;
34914 }
34915
34916 return NB_OK;
34917 }
34918
34919 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
34920 struct nb_cb_destroy_args *args)
34921 {
34922 switch (args->event) {
34923 case NB_EV_VALIDATE:
34924 case NB_EV_PREPARE:
34925 case NB_EV_ABORT:
34926 case NB_EV_APPLY:
34927 /* TODO: implement me. */
34928 break;
34929 }
34930
34931 return NB_OK;
34932 }
34933
34934 /*
34935 * XPath:
34936 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/nexthop-self/next-hop-self
34937 */
34938 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_modify(
34939 struct nb_cb_modify_args *args)
34940 {
34941 switch (args->event) {
34942 case NB_EV_VALIDATE:
34943 case NB_EV_PREPARE:
34944 case NB_EV_ABORT:
34945 return NB_OK;
34946 case NB_EV_APPLY:
34947 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34948 args, PEER_FLAG_NEXTHOP_SELF,
34949 yang_dnode_get_bool(args->dnode, NULL));
34950
34951 break;
34952 }
34953
34954 return NB_OK;
34955 }
34956
34957 /*
34958 * XPath:
34959 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/nexthop-self/next-hop-self-force
34960 */
34961 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
34962 struct nb_cb_modify_args *args)
34963 {
34964 switch (args->event) {
34965 case NB_EV_VALIDATE:
34966 case NB_EV_PREPARE:
34967 case NB_EV_ABORT:
34968 return NB_OK;
34969 case NB_EV_APPLY:
34970 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34971 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
34972 yang_dnode_get_bool(args->dnode, NULL));
34973
34974 break;
34975 }
34976
34977 return NB_OK;
34978 }
34979
34980 /*
34981 * XPath:
34982 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as-all
34983 */
34984 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_modify(
34985 struct nb_cb_modify_args *args)
34986 {
34987 switch (args->event) {
34988 case NB_EV_VALIDATE:
34989 case NB_EV_PREPARE:
34990 case NB_EV_ABORT:
34991 return NB_OK;
34992 case NB_EV_APPLY:
34993 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34994 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
34995 yang_dnode_get_bool(args->dnode, NULL));
34996
34997 break;
34998 }
34999
35000 return NB_OK;
35001 }
35002
35003 /*
35004 * XPath:
35005 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as-all-replace
35006 */
35007 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
35008 struct nb_cb_modify_args *args)
35009 {
35010 switch (args->event) {
35011 case NB_EV_VALIDATE:
35012 case NB_EV_PREPARE:
35013 case NB_EV_ABORT:
35014 return NB_OK;
35015 case NB_EV_APPLY:
35016 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35017 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
35018 yang_dnode_get_bool(args->dnode, NULL));
35019
35020 break;
35021 }
35022
35023 return NB_OK;
35024 }
35025
35026 /*
35027 * XPath:
35028 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as
35029 */
35030 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_modify(
35031 struct nb_cb_modify_args *args)
35032 {
35033 switch (args->event) {
35034 case NB_EV_VALIDATE:
35035 case NB_EV_PREPARE:
35036 case NB_EV_ABORT:
35037 return NB_OK;
35038 case NB_EV_APPLY:
35039 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35040 args, PEER_FLAG_REMOVE_PRIVATE_AS,
35041 yang_dnode_get_bool(args->dnode, NULL));
35042
35043 break;
35044 }
35045
35046 return NB_OK;
35047 }
35048
35049 /*
35050 * XPath:
35051 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as-replace
35052 */
35053 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_replace_modify(
35054 struct nb_cb_modify_args *args)
35055 {
35056 switch (args->event) {
35057 case NB_EV_VALIDATE:
35058 case NB_EV_PREPARE:
35059 case NB_EV_ABORT:
35060 return NB_OK;
35061 case NB_EV_APPLY:
35062 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35063 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
35064 yang_dnode_get_bool(args->dnode, NULL));
35065
35066 break;
35067 }
35068
35069 return NB_OK;
35070 }
35071
35072 /*
35073 * XPath:
35074 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/route-reflector/route-reflector-client
35075 */
35076 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_reflector_route_reflector_client_modify(
35077 struct nb_cb_modify_args *args)
35078 {
35079 switch (args->event) {
35080 case NB_EV_VALIDATE:
35081 case NB_EV_PREPARE:
35082 case NB_EV_ABORT:
35083 return NB_OK;
35084 case NB_EV_APPLY:
35085 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35086 args, PEER_FLAG_REFLECTOR_CLIENT,
35087 yang_dnode_get_bool(args->dnode, NULL));
35088
35089 break;
35090 }
35091
35092 return NB_OK;
35093 }
35094
35095 /*
35096 * XPath:
35097 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/route-server/route-server-client
35098 */
35099 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_server_route_server_client_modify(
35100 struct nb_cb_modify_args *args)
35101 {
35102 switch (args->event) {
35103 case NB_EV_VALIDATE:
35104 case NB_EV_PREPARE:
35105 case NB_EV_ABORT:
35106 return NB_OK;
35107 case NB_EV_APPLY:
35108 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35109 args, PEER_FLAG_RSERVER_CLIENT,
35110 yang_dnode_get_bool(args->dnode, NULL));
35111
35112 break;
35113 }
35114
35115 return NB_OK;
35116 }
35117
35118 /*
35119 * XPath:
35120 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/send-community/send-community
35121 */
35122 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_community_modify(
35123 struct nb_cb_modify_args *args)
35124 {
35125 switch (args->event) {
35126 case NB_EV_VALIDATE:
35127 case NB_EV_PREPARE:
35128 case NB_EV_ABORT:
35129 return NB_OK;
35130 case NB_EV_APPLY:
35131 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35132 args, PEER_FLAG_SEND_COMMUNITY,
35133 yang_dnode_get_bool(args->dnode, NULL));
35134
35135 break;
35136 }
35137
35138 return NB_OK;
35139 }
35140
35141 /*
35142 * XPath:
35143 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/send-community/send-ext-community
35144 */
35145 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_ext_community_modify(
35146 struct nb_cb_modify_args *args)
35147 {
35148 switch (args->event) {
35149 case NB_EV_VALIDATE:
35150 case NB_EV_PREPARE:
35151 case NB_EV_ABORT:
35152 return NB_OK;
35153 case NB_EV_APPLY:
35154 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35155 args, PEER_FLAG_SEND_EXT_COMMUNITY,
35156 yang_dnode_get_bool(args->dnode, NULL));
35157
35158 break;
35159 }
35160
35161 return NB_OK;
35162 }
35163
35164 /*
35165 * XPath:
35166 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/send-community/send-large-community
35167 */
35168 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_large_community_modify(
35169 struct nb_cb_modify_args *args)
35170 {
35171 switch (args->event) {
35172 case NB_EV_VALIDATE:
35173 case NB_EV_PREPARE:
35174 case NB_EV_ABORT:
35175 return NB_OK;
35176 case NB_EV_APPLY:
35177 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35178 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
35179 yang_dnode_get_bool(args->dnode, NULL));
35180
35181 break;
35182 }
35183
35184 return NB_OK;
35185 }
35186
35187 /*
35188 * XPath:
35189 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/soft-reconfiguration
35190 */
35191 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_soft_reconfiguration_modify(
35192 struct nb_cb_modify_args *args)
35193 {
35194 switch (args->event) {
35195 case NB_EV_VALIDATE:
35196 case NB_EV_PREPARE:
35197 case NB_EV_ABORT:
35198 return NB_OK;
35199 case NB_EV_APPLY:
35200 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35201 args, PEER_FLAG_SOFT_RECONFIG,
35202 yang_dnode_get_bool(args->dnode, NULL));
35203
35204 break;
35205 }
35206
35207 return NB_OK;
35208 }
35209
35210 /*
35211 * XPath:
35212 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/weight/weight-attribute
35213 */
35214 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_modify(
35215 struct nb_cb_modify_args *args)
35216 {
35217 switch (args->event) {
35218 case NB_EV_VALIDATE:
35219 case NB_EV_PREPARE:
35220 case NB_EV_ABORT:
35221 return NB_OK;
35222 case NB_EV_APPLY:
35223 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
35224
35225 break;
35226 }
35227
35228 return NB_OK;
35229 }
35230
35231 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_destroy(
35232 struct nb_cb_destroy_args *args)
35233 {
35234 switch (args->event) {
35235 case NB_EV_VALIDATE:
35236 case NB_EV_PREPARE:
35237 case NB_EV_ABORT:
35238 return NB_OK;
35239 case NB_EV_APPLY:
35240 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
35241
35242 break;
35243 }
35244
35245 return NB_OK;
35246 }
35247
35248 /*
35249 * XPath:
35250 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/as-path-options/allow-own-as
35251 */
35252 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_modify(
35253 struct nb_cb_modify_args *args)
35254 {
35255 switch (args->event) {
35256 case NB_EV_VALIDATE:
35257 case NB_EV_PREPARE:
35258 case NB_EV_ABORT:
35259 case NB_EV_APPLY:
35260 /* TODO: implement me. */
35261 break;
35262 }
35263
35264 return NB_OK;
35265 }
35266
35267 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_destroy(
35268 struct nb_cb_destroy_args *args)
35269 {
35270 switch (args->event) {
35271 case NB_EV_VALIDATE:
35272 case NB_EV_PREPARE:
35273 case NB_EV_ABORT:
35274 case NB_EV_APPLY:
35275 /* TODO: implement me. */
35276 break;
35277 }
35278
35279 return NB_OK;
35280 }
35281
35282 /*
35283 * XPath:
35284 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/as-path-options/allow-own-origin-as
35285 */
35286 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_modify(
35287 struct nb_cb_modify_args *args)
35288 {
35289 switch (args->event) {
35290 case NB_EV_VALIDATE:
35291 case NB_EV_PREPARE:
35292 case NB_EV_ABORT:
35293 case NB_EV_APPLY:
35294 /* TODO: implement me. */
35295 break;
35296 }
35297
35298 return NB_OK;
35299 }
35300
35301 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_destroy(
35302 struct nb_cb_destroy_args *args)
35303 {
35304 switch (args->event) {
35305 case NB_EV_VALIDATE:
35306 case NB_EV_PREPARE:
35307 case NB_EV_ABORT:
35308 case NB_EV_APPLY:
35309 /* TODO: implement me. */
35310 break;
35311 }
35312
35313 return NB_OK;
35314 }
35315
35316 /*
35317 * XPath:
35318 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/as-path-options/replace-peer-as
35319 */
35320 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_replace_peer_as_modify(
35321 struct nb_cb_modify_args *args)
35322 {
35323 switch (args->event) {
35324 case NB_EV_VALIDATE:
35325 case NB_EV_PREPARE:
35326 case NB_EV_ABORT:
35327 return NB_OK;
35328 case NB_EV_APPLY:
35329 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35330 args, PEER_FLAG_AS_OVERRIDE,
35331 yang_dnode_get_bool(args->dnode, NULL));
35332
35333 break;
35334 }
35335
35336 return NB_OK;
35337 }
35338
35339 /*
35340 * XPath:
35341 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/attr-unchanged/as-path-unchanged
35342 */
35343 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_as_path_unchanged_modify(
35344 struct nb_cb_modify_args *args)
35345 {
35346 switch (args->event) {
35347 case NB_EV_VALIDATE:
35348 case NB_EV_PREPARE:
35349 case NB_EV_ABORT:
35350 return NB_OK;
35351 case NB_EV_APPLY:
35352 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35353 args, PEER_FLAG_AS_PATH_UNCHANGED,
35354 yang_dnode_get_bool(args->dnode, NULL));
35355
35356 break;
35357 }
35358
35359 return NB_OK;
35360 }
35361
35362 /*
35363 * XPath:
35364 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/attr-unchanged/next-hop-unchanged
35365 */
35366 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_next_hop_unchanged_modify(
35367 struct nb_cb_modify_args *args)
35368 {
35369 switch (args->event) {
35370 case NB_EV_VALIDATE:
35371 case NB_EV_PREPARE:
35372 case NB_EV_ABORT:
35373 return NB_OK;
35374 case NB_EV_APPLY:
35375 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35376 args, PEER_FLAG_NEXTHOP_UNCHANGED,
35377 yang_dnode_get_bool(args->dnode, NULL));
35378
35379 break;
35380 }
35381
35382 return NB_OK;
35383 }
35384
35385 /*
35386 * XPath:
35387 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/attr-unchanged/med-unchanged
35388 */
35389 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_med_unchanged_modify(
35390 struct nb_cb_modify_args *args)
35391 {
35392 switch (args->event) {
35393 case NB_EV_VALIDATE:
35394 case NB_EV_PREPARE:
35395 case NB_EV_ABORT:
35396 return NB_OK;
35397 case NB_EV_APPLY:
35398 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35399 args, PEER_FLAG_MED_UNCHANGED,
35400 yang_dnode_get_bool(args->dnode, NULL));
35401
35402 break;
35403 }
35404
35405 return NB_OK;
35406 }
35407
35408 /*
35409 * XPath:
35410 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/nexthop-self/next-hop-self
35411 */
35412 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_modify(
35413 struct nb_cb_modify_args *args)
35414 {
35415 switch (args->event) {
35416 case NB_EV_VALIDATE:
35417 case NB_EV_PREPARE:
35418 case NB_EV_ABORT:
35419 return NB_OK;
35420 case NB_EV_APPLY:
35421 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35422 args, PEER_FLAG_NEXTHOP_SELF,
35423 yang_dnode_get_bool(args->dnode, NULL));
35424
35425 break;
35426 }
35427
35428 return NB_OK;
35429 }
35430
35431 /*
35432 * XPath:
35433 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/nexthop-self/next-hop-self-force
35434 */
35435 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_force_modify(
35436 struct nb_cb_modify_args *args)
35437 {
35438 switch (args->event) {
35439 case NB_EV_VALIDATE:
35440 case NB_EV_PREPARE:
35441 case NB_EV_ABORT:
35442 return NB_OK;
35443 case NB_EV_APPLY:
35444 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35445 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
35446 yang_dnode_get_bool(args->dnode, NULL));
35447
35448 break;
35449 }
35450
35451 return NB_OK;
35452 }
35453
35454 /*
35455 * XPath:
35456 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/route-reflector/route-reflector-client
35457 */
35458 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_route_reflector_route_reflector_client_modify(
35459 struct nb_cb_modify_args *args)
35460 {
35461 switch (args->event) {
35462 case NB_EV_VALIDATE:
35463 case NB_EV_PREPARE:
35464 case NB_EV_ABORT:
35465 return NB_OK;
35466 case NB_EV_APPLY:
35467 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35468 args, PEER_FLAG_REFLECTOR_CLIENT,
35469 yang_dnode_get_bool(args->dnode, NULL));
35470
35471 break;
35472 }
35473
35474 return NB_OK;
35475 }
35476
35477 /*
35478 * XPath:
35479 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/route-server/route-server-client
35480 */
35481 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_route_server_route_server_client_modify(
35482 struct nb_cb_modify_args *args)
35483 {
35484 switch (args->event) {
35485 case NB_EV_VALIDATE:
35486 case NB_EV_PREPARE:
35487 case NB_EV_ABORT:
35488 return NB_OK;
35489 case NB_EV_APPLY:
35490 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35491 args, PEER_FLAG_RSERVER_CLIENT,
35492 yang_dnode_get_bool(args->dnode, NULL));
35493
35494 break;
35495 }
35496
35497 return NB_OK;
35498 }
35499
35500 /*
35501 * XPath:
35502 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/soft-reconfiguration
35503 */
35504 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_soft_reconfiguration_modify(
35505 struct nb_cb_modify_args *args)
35506 {
35507 switch (args->event) {
35508 case NB_EV_VALIDATE:
35509 case NB_EV_PREPARE:
35510 case NB_EV_ABORT:
35511 return NB_OK;
35512 case NB_EV_APPLY:
35513 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35514 args, PEER_FLAG_SOFT_RECONFIG,
35515 yang_dnode_get_bool(args->dnode, NULL));
35516
35517 break;
35518 }
35519
35520 return NB_OK;
35521 }
35522
35523 /*
35524 * XPath:
35525 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/route-reflector/route-reflector-client
35526 */
35527 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_route_reflector_route_reflector_client_modify(
35528 struct nb_cb_modify_args *args)
35529 {
35530 switch (args->event) {
35531 case NB_EV_VALIDATE:
35532 case NB_EV_PREPARE:
35533 case NB_EV_ABORT:
35534 return NB_OK;
35535 case NB_EV_APPLY:
35536 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35537 args, PEER_FLAG_REFLECTOR_CLIENT,
35538 yang_dnode_get_bool(args->dnode, NULL));
35539
35540 break;
35541 }
35542
35543 return NB_OK;
35544 }
35545
35546 /*
35547 * XPath:
35548 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/route-server/route-server-client
35549 */
35550 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_route_server_route_server_client_modify(
35551 struct nb_cb_modify_args *args)
35552 {
35553 switch (args->event) {
35554 case NB_EV_VALIDATE:
35555 case NB_EV_PREPARE:
35556 case NB_EV_ABORT:
35557 return NB_OK;
35558 case NB_EV_APPLY:
35559 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35560 args, PEER_FLAG_RSERVER_CLIENT,
35561 yang_dnode_get_bool(args->dnode, NULL));
35562
35563 break;
35564 }
35565
35566 return NB_OK;
35567 }
35568
35569 /*
35570 * XPath:
35571 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/soft-reconfiguration
35572 */
35573 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_soft_reconfiguration_modify(
35574 struct nb_cb_modify_args *args)
35575 {
35576 switch (args->event) {
35577 case NB_EV_VALIDATE:
35578 case NB_EV_PREPARE:
35579 case NB_EV_ABORT:
35580 return NB_OK;
35581 case NB_EV_APPLY:
35582 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35583 args, PEER_FLAG_SOFT_RECONFIG,
35584 yang_dnode_get_bool(args->dnode, NULL));
35585
35586 break;
35587 }
35588
35589 return NB_OK;
35590 }
35591
35592 /*
35593 * XPath:
35594 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/rmap-import
35595 */
35596 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_modify(
35597 struct nb_cb_modify_args *args)
35598 {
35599 switch (args->event) {
35600 case NB_EV_VALIDATE:
35601 case NB_EV_PREPARE:
35602 case NB_EV_ABORT:
35603 break;
35604 case NB_EV_APPLY:
35605 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
35606 RMAP_IN);
35607 }
35608
35609 return NB_OK;
35610 }
35611
35612 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_destroy(
35613 struct nb_cb_destroy_args *args)
35614 {
35615 switch (args->event) {
35616 case NB_EV_VALIDATE:
35617 case NB_EV_PREPARE:
35618 case NB_EV_ABORT:
35619 break;
35620 case NB_EV_APPLY:
35621 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
35622 RMAP_IN);
35623 }
35624
35625 return NB_OK;
35626 }
35627
35628 /*
35629 * XPath:
35630 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/rmap-export
35631 */
35632 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_modify(
35633 struct nb_cb_modify_args *args)
35634 {
35635 switch (args->event) {
35636 case NB_EV_VALIDATE:
35637 case NB_EV_PREPARE:
35638 case NB_EV_ABORT:
35639 break;
35640 case NB_EV_APPLY:
35641 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
35642 RMAP_OUT);
35643 }
35644
35645 return NB_OK;
35646 }
35647
35648 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_destroy(
35649 struct nb_cb_destroy_args *args)
35650 {
35651 switch (args->event) {
35652 case NB_EV_VALIDATE:
35653 case NB_EV_PREPARE:
35654 case NB_EV_ABORT:
35655 break;
35656 case NB_EV_APPLY:
35657 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
35658 RMAP_OUT);
35659 }
35660
35661 return NB_OK;
35662 }
35663
35664 /*
35665 * XPath:
35666 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/plist-import
35667 */
35668 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_modify(
35669 struct nb_cb_modify_args *args)
35670 {
35671 switch (args->event) {
35672 case NB_EV_VALIDATE:
35673 case NB_EV_PREPARE:
35674 case NB_EV_ABORT:
35675 break;
35676 case NB_EV_APPLY:
35677 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
35678 FILTER_IN);
35679 }
35680
35681 return NB_OK;
35682 }
35683
35684 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_destroy(
35685 struct nb_cb_destroy_args *args)
35686 {
35687 switch (args->event) {
35688 case NB_EV_VALIDATE:
35689 case NB_EV_PREPARE:
35690 case NB_EV_ABORT:
35691 break;
35692 case NB_EV_APPLY:
35693 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
35694 args, FILTER_IN);
35695 }
35696
35697 return NB_OK;
35698 }
35699
35700 /*
35701 * XPath:
35702 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/plist-export
35703 */
35704 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_modify(
35705 struct nb_cb_modify_args *args)
35706 {
35707 switch (args->event) {
35708 case NB_EV_VALIDATE:
35709 case NB_EV_PREPARE:
35710 case NB_EV_ABORT:
35711 break;
35712 case NB_EV_APPLY:
35713 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
35714 args, FILTER_OUT);
35715 }
35716
35717 return NB_OK;
35718 }
35719
35720 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_destroy(
35721 struct nb_cb_destroy_args *args)
35722 {
35723 switch (args->event) {
35724 case NB_EV_VALIDATE:
35725 case NB_EV_PREPARE:
35726 case NB_EV_ABORT:
35727 break;
35728 case NB_EV_APPLY:
35729 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
35730 args, FILTER_OUT);
35731 }
35732
35733 return NB_OK;
35734 }
35735
35736 /*
35737 * XPath:
35738 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/access-list-import
35739 */
35740 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_modify(
35741 struct nb_cb_modify_args *args)
35742 {
35743 switch (args->event) {
35744 case NB_EV_VALIDATE:
35745 case NB_EV_PREPARE:
35746 case NB_EV_ABORT:
35747 case NB_EV_APPLY:
35748 /* TODO: implement me. */
35749 break;
35750 }
35751
35752 return NB_OK;
35753 }
35754
35755 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_destroy(
35756 struct nb_cb_destroy_args *args)
35757 {
35758 switch (args->event) {
35759 case NB_EV_VALIDATE:
35760 case NB_EV_PREPARE:
35761 case NB_EV_ABORT:
35762 case NB_EV_APPLY:
35763 /* TODO: implement me. */
35764 break;
35765 }
35766
35767 return NB_OK;
35768 }
35769
35770 /*
35771 * XPath:
35772 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/access-list-export
35773 */
35774 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_modify(
35775 struct nb_cb_modify_args *args)
35776 {
35777 switch (args->event) {
35778 case NB_EV_VALIDATE:
35779 case NB_EV_PREPARE:
35780 case NB_EV_ABORT:
35781 case NB_EV_APPLY:
35782 /* TODO: implement me. */
35783 break;
35784 }
35785
35786 return NB_OK;
35787 }
35788
35789 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_destroy(
35790 struct nb_cb_destroy_args *args)
35791 {
35792 switch (args->event) {
35793 case NB_EV_VALIDATE:
35794 case NB_EV_PREPARE:
35795 case NB_EV_ABORT:
35796 case NB_EV_APPLY:
35797 /* TODO: implement me. */
35798 break;
35799 }
35800
35801 return NB_OK;
35802 }
35803
35804 /*
35805 * XPath:
35806 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/as-path-filter-list-import
35807 */
35808 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_modify(
35809 struct nb_cb_modify_args *args)
35810 {
35811 switch (args->event) {
35812 case NB_EV_VALIDATE:
35813 case NB_EV_PREPARE:
35814 case NB_EV_ABORT:
35815 case NB_EV_APPLY:
35816 /* TODO: implement me. */
35817 break;
35818 }
35819
35820 return NB_OK;
35821 }
35822
35823 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_destroy(
35824 struct nb_cb_destroy_args *args)
35825 {
35826 switch (args->event) {
35827 case NB_EV_VALIDATE:
35828 case NB_EV_PREPARE:
35829 case NB_EV_ABORT:
35830 case NB_EV_APPLY:
35831 /* TODO: implement me. */
35832 break;
35833 }
35834
35835 return NB_OK;
35836 }
35837
35838 /*
35839 * XPath:
35840 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/as-path-filter-list-export
35841 */
35842 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_modify(
35843 struct nb_cb_modify_args *args)
35844 {
35845 switch (args->event) {
35846 case NB_EV_VALIDATE:
35847 case NB_EV_PREPARE:
35848 case NB_EV_ABORT:
35849 case NB_EV_APPLY:
35850 /* TODO: implement me. */
35851 break;
35852 }
35853
35854 return NB_OK;
35855 }
35856
35857 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_destroy(
35858 struct nb_cb_destroy_args *args)
35859 {
35860 switch (args->event) {
35861 case NB_EV_VALIDATE:
35862 case NB_EV_PREPARE:
35863 case NB_EV_ABORT:
35864 case NB_EV_APPLY:
35865 /* TODO: implement me. */
35866 break;
35867 }
35868
35869 return NB_OK;
35870 }
35871
35872 /*
35873 * XPath:
35874 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/unsuppress-map-import
35875 */
35876 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_modify(
35877 struct nb_cb_modify_args *args)
35878 {
35879 switch (args->event) {
35880 case NB_EV_VALIDATE:
35881 case NB_EV_PREPARE:
35882 case NB_EV_ABORT:
35883 case NB_EV_APPLY:
35884 /* TODO: implement me. */
35885 break;
35886 }
35887
35888 return NB_OK;
35889 }
35890
35891 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_destroy(
35892 struct nb_cb_destroy_args *args)
35893 {
35894 switch (args->event) {
35895 case NB_EV_VALIDATE:
35896 case NB_EV_PREPARE:
35897 case NB_EV_ABORT:
35898 case NB_EV_APPLY:
35899 /* TODO: implement me. */
35900 break;
35901 }
35902
35903 return NB_OK;
35904 }
35905
35906 /*
35907 * XPath:
35908 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/unsuppress-map-export
35909 */
35910 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_modify(
35911 struct nb_cb_modify_args *args)
35912 {
35913 switch (args->event) {
35914 case NB_EV_VALIDATE:
35915 case NB_EV_PREPARE:
35916 case NB_EV_ABORT:
35917 case NB_EV_APPLY:
35918 /* TODO: implement me. */
35919 break;
35920 }
35921
35922 return NB_OK;
35923 }
35924
35925 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_destroy(
35926 struct nb_cb_destroy_args *args)
35927 {
35928 switch (args->event) {
35929 case NB_EV_VALIDATE:
35930 case NB_EV_PREPARE:
35931 case NB_EV_ABORT:
35932 case NB_EV_APPLY:
35933 /* TODO: implement me. */
35934 break;
35935 }
35936
35937 return NB_OK;
35938 }
35939
35940 /*
35941 * XPath:
35942 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/route-reflector/route-reflector-client
35943 */
35944 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_route_reflector_route_reflector_client_modify(
35945 struct nb_cb_modify_args *args)
35946 {
35947 switch (args->event) {
35948 case NB_EV_VALIDATE:
35949 case NB_EV_PREPARE:
35950 case NB_EV_ABORT:
35951 return NB_OK;
35952 case NB_EV_APPLY:
35953 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35954 args, PEER_FLAG_REFLECTOR_CLIENT,
35955 yang_dnode_get_bool(args->dnode, NULL));
35956
35957 break;
35958 }
35959
35960 return NB_OK;
35961 }
35962
35963 /*
35964 * XPath:
35965 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/route-server/route-server-client
35966 */
35967 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_route_server_route_server_client_modify(
35968 struct nb_cb_modify_args *args)
35969 {
35970 switch (args->event) {
35971 case NB_EV_VALIDATE:
35972 case NB_EV_PREPARE:
35973 case NB_EV_ABORT:
35974 return NB_OK;
35975 case NB_EV_APPLY:
35976 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35977 args, PEER_FLAG_RSERVER_CLIENT,
35978 yang_dnode_get_bool(args->dnode, NULL));
35979
35980 break;
35981 }
35982
35983 return NB_OK;
35984 }
35985
35986 /*
35987 * XPath:
35988 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/soft-reconfiguration
35989 */
35990 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_soft_reconfiguration_modify(
35991 struct nb_cb_modify_args *args)
35992 {
35993 switch (args->event) {
35994 case NB_EV_VALIDATE:
35995 case NB_EV_PREPARE:
35996 case NB_EV_ABORT:
35997 return NB_OK;
35998 case NB_EV_APPLY:
35999 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
36000 args, PEER_FLAG_SOFT_RECONFIG,
36001 yang_dnode_get_bool(args->dnode, NULL));
36002
36003 break;
36004 }
36005
36006 return NB_OK;
36007 }
36008
36009 /*
36010 * XPath:
36011 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/rmap-import
36012 */
36013 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_modify(
36014 struct nb_cb_modify_args *args)
36015 {
36016 switch (args->event) {
36017 case NB_EV_VALIDATE:
36018 case NB_EV_PREPARE:
36019 case NB_EV_ABORT:
36020 break;
36021 case NB_EV_APPLY:
36022 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
36023 RMAP_IN);
36024 }
36025
36026 return NB_OK;
36027 }
36028
36029 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_destroy(
36030 struct nb_cb_destroy_args *args)
36031 {
36032 switch (args->event) {
36033 case NB_EV_VALIDATE:
36034 case NB_EV_PREPARE:
36035 case NB_EV_ABORT:
36036 break;
36037 case NB_EV_APPLY:
36038 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
36039 RMAP_IN);
36040 }
36041
36042 return NB_OK;
36043 }
36044
36045 /*
36046 * XPath:
36047 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/rmap-export
36048 */
36049 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_modify(
36050 struct nb_cb_modify_args *args)
36051 {
36052 switch (args->event) {
36053 case NB_EV_VALIDATE:
36054 case NB_EV_PREPARE:
36055 case NB_EV_ABORT:
36056 break;
36057 case NB_EV_APPLY:
36058 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
36059 RMAP_OUT);
36060 }
36061
36062 return NB_OK;
36063 }
36064
36065 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_destroy(
36066 struct nb_cb_destroy_args *args)
36067 {
36068 switch (args->event) {
36069 case NB_EV_VALIDATE:
36070 case NB_EV_PREPARE:
36071 case NB_EV_ABORT:
36072 break;
36073 case NB_EV_APPLY:
36074 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
36075 RMAP_OUT);
36076 }
36077
36078 return NB_OK;
36079 }
36080
36081 /*
36082 * XPath:
36083 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/plist-import
36084 */
36085 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_modify(
36086 struct nb_cb_modify_args *args)
36087 {
36088 switch (args->event) {
36089 case NB_EV_VALIDATE:
36090 case NB_EV_PREPARE:
36091 case NB_EV_ABORT:
36092 break;
36093 case NB_EV_APPLY:
36094 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
36095 FILTER_IN);
36096 }
36097
36098 return NB_OK;
36099 }
36100
36101 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_destroy(
36102 struct nb_cb_destroy_args *args)
36103 {
36104 switch (args->event) {
36105 case NB_EV_VALIDATE:
36106 case NB_EV_PREPARE:
36107 case NB_EV_ABORT:
36108 break;
36109 case NB_EV_APPLY:
36110 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
36111 args, FILTER_IN);
36112 }
36113
36114 return NB_OK;
36115 }
36116
36117 /*
36118 * XPath:
36119 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/plist-export
36120 */
36121 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_modify(
36122 struct nb_cb_modify_args *args)
36123 {
36124 switch (args->event) {
36125 case NB_EV_VALIDATE:
36126 case NB_EV_PREPARE:
36127 case NB_EV_ABORT:
36128 break;
36129 case NB_EV_APPLY:
36130 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
36131 args, FILTER_OUT);
36132 }
36133
36134 return NB_OK;
36135 }
36136
36137 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_destroy(
36138 struct nb_cb_destroy_args *args)
36139 {
36140 switch (args->event) {
36141 case NB_EV_VALIDATE:
36142 case NB_EV_PREPARE:
36143 case NB_EV_ABORT:
36144 break;
36145 case NB_EV_APPLY:
36146 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
36147 args, FILTER_OUT);
36148 }
36149
36150 return NB_OK;
36151 }
36152
36153 /*
36154 * XPath:
36155 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/access-list-import
36156 */
36157 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_modify(
36158 struct nb_cb_modify_args *args)
36159 {
36160 switch (args->event) {
36161 case NB_EV_VALIDATE:
36162 case NB_EV_PREPARE:
36163 case NB_EV_ABORT:
36164 case NB_EV_APPLY:
36165 /* TODO: implement me. */
36166 break;
36167 }
36168
36169 return NB_OK;
36170 }
36171
36172 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_destroy(
36173 struct nb_cb_destroy_args *args)
36174 {
36175 switch (args->event) {
36176 case NB_EV_VALIDATE:
36177 case NB_EV_PREPARE:
36178 case NB_EV_ABORT:
36179 case NB_EV_APPLY:
36180 /* TODO: implement me. */
36181 break;
36182 }
36183
36184 return NB_OK;
36185 }
36186
36187 /*
36188 * XPath:
36189 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/access-list-export
36190 */
36191 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_modify(
36192 struct nb_cb_modify_args *args)
36193 {
36194 switch (args->event) {
36195 case NB_EV_VALIDATE:
36196 case NB_EV_PREPARE:
36197 case NB_EV_ABORT:
36198 case NB_EV_APPLY:
36199 /* TODO: implement me. */
36200 break;
36201 }
36202
36203 return NB_OK;
36204 }
36205
36206 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_destroy(
36207 struct nb_cb_destroy_args *args)
36208 {
36209 switch (args->event) {
36210 case NB_EV_VALIDATE:
36211 case NB_EV_PREPARE:
36212 case NB_EV_ABORT:
36213 case NB_EV_APPLY:
36214 /* TODO: implement me. */
36215 break;
36216 }
36217
36218 return NB_OK;
36219 }
36220
36221 /*
36222 * XPath:
36223 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/as-path-filter-list-import
36224 */
36225 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_modify(
36226 struct nb_cb_modify_args *args)
36227 {
36228 switch (args->event) {
36229 case NB_EV_VALIDATE:
36230 case NB_EV_PREPARE:
36231 case NB_EV_ABORT:
36232 case NB_EV_APPLY:
36233 /* TODO: implement me. */
36234 break;
36235 }
36236
36237 return NB_OK;
36238 }
36239
36240 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_destroy(
36241 struct nb_cb_destroy_args *args)
36242 {
36243 switch (args->event) {
36244 case NB_EV_VALIDATE:
36245 case NB_EV_PREPARE:
36246 case NB_EV_ABORT:
36247 case NB_EV_APPLY:
36248 /* TODO: implement me. */
36249 break;
36250 }
36251
36252 return NB_OK;
36253 }
36254
36255 /*
36256 * XPath:
36257 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/as-path-filter-list-export
36258 */
36259 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_modify(
36260 struct nb_cb_modify_args *args)
36261 {
36262 switch (args->event) {
36263 case NB_EV_VALIDATE:
36264 case NB_EV_PREPARE:
36265 case NB_EV_ABORT:
36266 case NB_EV_APPLY:
36267 /* TODO: implement me. */
36268 break;
36269 }
36270
36271 return NB_OK;
36272 }
36273
36274 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_destroy(
36275 struct nb_cb_destroy_args *args)
36276 {
36277 switch (args->event) {
36278 case NB_EV_VALIDATE:
36279 case NB_EV_PREPARE:
36280 case NB_EV_ABORT:
36281 case NB_EV_APPLY:
36282 /* TODO: implement me. */
36283 break;
36284 }
36285
36286 return NB_OK;
36287 }
36288
36289 /*
36290 * XPath:
36291 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/unsuppress-map-import
36292 */
36293 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_modify(
36294 struct nb_cb_modify_args *args)
36295 {
36296 switch (args->event) {
36297 case NB_EV_VALIDATE:
36298 case NB_EV_PREPARE:
36299 case NB_EV_ABORT:
36300 case NB_EV_APPLY:
36301 /* TODO: implement me. */
36302 break;
36303 }
36304
36305 return NB_OK;
36306 }
36307
36308 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_destroy(
36309 struct nb_cb_destroy_args *args)
36310 {
36311 switch (args->event) {
36312 case NB_EV_VALIDATE:
36313 case NB_EV_PREPARE:
36314 case NB_EV_ABORT:
36315 case NB_EV_APPLY:
36316 /* TODO: implement me. */
36317 break;
36318 }
36319
36320 return NB_OK;
36321 }
36322
36323 /*
36324 * XPath:
36325 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/unsuppress-map-export
36326 */
36327 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_modify(
36328 struct nb_cb_modify_args *args)
36329 {
36330 switch (args->event) {
36331 case NB_EV_VALIDATE:
36332 case NB_EV_PREPARE:
36333 case NB_EV_ABORT:
36334 case NB_EV_APPLY:
36335 /* TODO: implement me. */
36336 break;
36337 }
36338
36339 return NB_OK;
36340 }
36341
36342 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_destroy(
36343 struct nb_cb_destroy_args *args)
36344 {
36345 switch (args->event) {
36346 case NB_EV_VALIDATE:
36347 case NB_EV_PREPARE:
36348 case NB_EV_ABORT:
36349 case NB_EV_APPLY:
36350 /* TODO: implement me. */
36351 break;
36352 }
36353
36354 return NB_OK;
36355 }
36356
36357 static int bgp_peer_group_afi_safi_flag_modify(struct nb_cb_modify_args *args,
36358 uint32_t flags, bool set)
36359 {
36360 struct bgp *bgp;
36361 const char *peer_str;
36362 struct peer *peer;
36363 const struct lyd_node *nbr_dnode;
36364 const struct lyd_node *nbr_af_dnode;
36365 const char *af_name;
36366 afi_t afi;
36367 safi_t safi;
36368
36369 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
36370 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
36371 yang_afi_safi_identity2value(af_name, &afi, &safi);
36372 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
36373 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
36374 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
36375 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
36376
36377 if (peer_af_flag_modify_nb(peer, afi, safi, flags, set, args->errmsg,
36378 args->errmsg_len)
36379 < 0)
36380 return NB_ERR_INCONSISTENCY;
36381
36382 return NB_OK;
36383 }
36384
36385 /*
36386 * XPath:
36387 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/add-paths/path-type
36388 */
36389 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_add_paths_path_type_modify(
36390 struct nb_cb_modify_args *args)
36391 {
36392 switch (args->event) {
36393 case NB_EV_VALIDATE:
36394 case NB_EV_PREPARE:
36395 case NB_EV_ABORT:
36396 case NB_EV_APPLY:
36397 /* TODO: implement me. */
36398 break;
36399 }
36400
36401 return NB_OK;
36402 }
36403
36404 /*
36405 * XPath:
36406 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/as-path-options/allow-own-as
36407 */
36408 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_modify(
36409 struct nb_cb_modify_args *args)
36410 {
36411 switch (args->event) {
36412 case NB_EV_VALIDATE:
36413 case NB_EV_PREPARE:
36414 case NB_EV_ABORT:
36415 case NB_EV_APPLY:
36416 /* TODO: implement me. */
36417 break;
36418 }
36419
36420 return NB_OK;
36421 }
36422
36423 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_destroy(
36424 struct nb_cb_destroy_args *args)
36425 {
36426 switch (args->event) {
36427 case NB_EV_VALIDATE:
36428 case NB_EV_PREPARE:
36429 case NB_EV_ABORT:
36430 case NB_EV_APPLY:
36431 /* TODO: implement me. */
36432 break;
36433 }
36434
36435 return NB_OK;
36436 }
36437
36438 /*
36439 * XPath:
36440 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/as-path-options/allow-own-origin-as
36441 */
36442 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
36443 struct nb_cb_modify_args *args)
36444 {
36445 switch (args->event) {
36446 case NB_EV_VALIDATE:
36447 case NB_EV_PREPARE:
36448 case NB_EV_ABORT:
36449 case NB_EV_APPLY:
36450 /* TODO: implement me. */
36451 break;
36452 }
36453
36454 return NB_OK;
36455 }
36456
36457 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
36458 struct nb_cb_destroy_args *args)
36459 {
36460 switch (args->event) {
36461 case NB_EV_VALIDATE:
36462 case NB_EV_PREPARE:
36463 case NB_EV_ABORT:
36464 case NB_EV_APPLY:
36465 /* TODO: implement me. */
36466 break;
36467 }
36468
36469 return NB_OK;
36470 }
36471
36472 /*
36473 * XPath:
36474 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/as-path-options/replace-peer-as
36475 */
36476 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_as_path_options_replace_peer_as_modify(
36477 struct nb_cb_modify_args *args)
36478 {
36479 switch (args->event) {
36480 case NB_EV_VALIDATE:
36481 case NB_EV_PREPARE:
36482 case NB_EV_ABORT:
36483 return NB_OK;
36484 case NB_EV_APPLY:
36485 return bgp_peer_group_afi_safi_flag_modify(
36486 args, PEER_FLAG_AS_OVERRIDE,
36487 yang_dnode_get_bool(args->dnode, NULL));
36488
36489 break;
36490 }
36491
36492 return NB_OK;
36493 }
36494
36495 /*
36496 * XPath:
36497 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate
36498 */
36499 void bgp_peer_group_afi_safi_default_originate_apply_finish(
36500 struct nb_cb_apply_finish_args *args)
36501 {
36502 struct bgp *bgp;
36503 const char *peer_str;
36504 struct peer *peer;
36505 const struct lyd_node *nbr_dnode;
36506 const struct lyd_node *nbr_af_dnode;
36507 const char *af_name;
36508 afi_t afi;
36509 safi_t safi;
36510
36511 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
36512 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
36513 yang_afi_safi_identity2value(af_name, &afi, &safi);
36514
36515 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
36516 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
36517 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
36518 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
36519 if (!peer)
36520 return;
36521
36522 bgp_peer_afi_safi_default_originate_apply(args, peer, afi, safi);
36523 }
36524
36525 /*
36526 * XPath:
36527 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/default-originate/originate
36528 */
36529 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_default_originate_originate_modify(
36530 struct nb_cb_modify_args *args)
36531 {
36532 switch (args->event) {
36533 case NB_EV_VALIDATE:
36534 case NB_EV_PREPARE:
36535 case NB_EV_ABORT:
36536 case NB_EV_APPLY:
36537 /* TODO: implement me. */
36538 break;
36539 }
36540
36541 return NB_OK;
36542 }
36543
36544 /*
36545 * XPath:
36546 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/default-originate/route-map
36547 */
36548 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_modify(
36549 struct nb_cb_modify_args *args)
36550 {
36551 switch (args->event) {
36552 case NB_EV_VALIDATE:
36553 case NB_EV_PREPARE:
36554 case NB_EV_ABORT:
36555 case NB_EV_APPLY:
36556 /* TODO: implement me. */
36557 break;
36558 }
36559
36560 return NB_OK;
36561 }
36562
36563 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_destroy(
36564 struct nb_cb_destroy_args *args)
36565 {
36566 switch (args->event) {
36567 case NB_EV_VALIDATE:
36568 case NB_EV_PREPARE:
36569 case NB_EV_ABORT:
36570 case NB_EV_APPLY:
36571 /* TODO: implement me. */
36572 break;
36573 }
36574
36575 return NB_OK;
36576 }
36577
36578 static int bgp_peer_group_afi_safi_prefix_limit_list_destroy(
36579 struct nb_cb_destroy_args *args)
36580 {
36581 struct bgp *bgp;
36582 const char *peer_str;
36583 struct peer *peer;
36584 const struct lyd_node *nbr_dnode;
36585 const struct lyd_node *nbr_af_dnode;
36586 const char *af_name;
36587 afi_t afi;
36588 safi_t safi;
36589 int direction;
36590
36591 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
36592 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
36593 yang_afi_safi_identity2value(af_name, &afi, &safi);
36594
36595 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
36596 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
36597 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
36598 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
36599 if (!peer)
36600 return NB_ERR_INCONSISTENCY;
36601
36602 direction = yang_dnode_get_enum(args->dnode, "./direction");
36603
36604 switch (direction) {
36605 case 1:
36606 peer_maximum_prefix_unset(peer, afi, safi);
36607 break;
36608 case 2:
36609 UNSET_FLAG(peer->af_flags[afi][safi], PEER_FLAG_MAX_PREFIX_OUT);
36610 peer->pmax_out[afi][safi] = 0;
36611 break;
36612 }
36613
36614 return NB_OK;
36615 }
36616 /*
36617 * XPath:
36618 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list
36619 */
36620 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_create(
36621 struct nb_cb_create_args *args)
36622 {
36623 switch (args->event) {
36624 case NB_EV_VALIDATE:
36625 case NB_EV_PREPARE:
36626 case NB_EV_ABORT:
36627 case NB_EV_APPLY:
36628 /* TODO: implement me. */
36629 break;
36630 }
36631
36632 return NB_OK;
36633 }
36634
36635 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_destroy(
36636 struct nb_cb_destroy_args *args)
36637 {
36638 switch (args->event) {
36639 case NB_EV_VALIDATE:
36640 case NB_EV_PREPARE:
36641 case NB_EV_ABORT:
36642 return NB_OK;
36643 case NB_EV_APPLY:
36644 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
36645 }
36646
36647 return NB_OK;
36648 }
36649
36650 void bgp_peer_group_afi_safi_prefix_limit_apply_finish(
36651 struct nb_cb_apply_finish_args *args)
36652 {
36653 struct bgp *bgp;
36654 const char *peer_str;
36655 struct peer *peer;
36656 const struct lyd_node *nbr_dnode;
36657 const struct lyd_node *nbr_af_dnode;
36658 const char *af_name;
36659 afi_t afi;
36660 safi_t safi;
36661
36662 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
36663 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
36664 yang_afi_safi_identity2value(af_name, &afi, &safi);
36665
36666 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
36667 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
36668 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
36669 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
36670 if (!peer)
36671 return;
36672
36673 bgp_peer_afi_safi_maximum_prefix_set(args, peer, afi, safi);
36674 }
36675 /*
36676 * XPath:
36677 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/max-prefixes
36678 */
36679 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
36680 struct nb_cb_modify_args *args)
36681 {
36682 switch (args->event) {
36683 case NB_EV_VALIDATE:
36684 case NB_EV_PREPARE:
36685 case NB_EV_ABORT:
36686 case NB_EV_APPLY:
36687 /* TODO: implement me. */
36688 break;
36689 }
36690
36691 return NB_OK;
36692 }
36693
36694 /*
36695 * XPath:
36696 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/force-check
36697 */
36698 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
36699 struct nb_cb_modify_args *args)
36700 {
36701 switch (args->event) {
36702 case NB_EV_VALIDATE:
36703 case NB_EV_PREPARE:
36704 case NB_EV_ABORT:
36705 case NB_EV_APPLY:
36706 /* TODO: implement me. */
36707 break;
36708 }
36709
36710 return NB_OK;
36711 }
36712
36713 /*
36714 * XPath:
36715 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/warning-only
36716 */
36717 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
36718 struct nb_cb_modify_args *args)
36719 {
36720 switch (args->event) {
36721 case NB_EV_VALIDATE:
36722 case NB_EV_PREPARE:
36723 case NB_EV_ABORT:
36724 case NB_EV_APPLY:
36725 /* TODO: implement me. */
36726 break;
36727 }
36728
36729 return NB_OK;
36730 }
36731
36732 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
36733 struct nb_cb_destroy_args *args)
36734 {
36735 switch (args->event) {
36736 case NB_EV_VALIDATE:
36737 case NB_EV_PREPARE:
36738 case NB_EV_ABORT:
36739 case NB_EV_APPLY:
36740 /* TODO: implement me. */
36741 break;
36742 }
36743
36744 return NB_OK;
36745 }
36746
36747 /*
36748 * XPath:
36749 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/restart-timer
36750 */
36751 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
36752 struct nb_cb_modify_args *args)
36753 {
36754 switch (args->event) {
36755 case NB_EV_VALIDATE:
36756 case NB_EV_PREPARE:
36757 case NB_EV_ABORT:
36758 case NB_EV_APPLY:
36759 /* TODO: implement me. */
36760 break;
36761 }
36762
36763 return NB_OK;
36764 }
36765
36766 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
36767 struct nb_cb_destroy_args *args)
36768 {
36769 switch (args->event) {
36770 case NB_EV_VALIDATE:
36771 case NB_EV_PREPARE:
36772 case NB_EV_ABORT:
36773 case NB_EV_APPLY:
36774 /* TODO: implement me. */
36775 break;
36776 }
36777
36778 return NB_OK;
36779 }
36780
36781 /*
36782 * XPath:
36783 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
36784 */
36785 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
36786 struct nb_cb_modify_args *args)
36787 {
36788 switch (args->event) {
36789 case NB_EV_VALIDATE:
36790 case NB_EV_PREPARE:
36791 case NB_EV_ABORT:
36792 case NB_EV_APPLY:
36793 /* TODO: implement me. */
36794 break;
36795 }
36796
36797 return NB_OK;
36798 }
36799
36800 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
36801 struct nb_cb_destroy_args *args)
36802 {
36803 switch (args->event) {
36804 case NB_EV_VALIDATE:
36805 case NB_EV_PREPARE:
36806 case NB_EV_ABORT:
36807 case NB_EV_APPLY:
36808 /* TODO: implement me. */
36809 break;
36810 }
36811
36812 return NB_OK;
36813 }
36814
36815 /*
36816 * XPath:
36817 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
36818 */
36819 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
36820 struct nb_cb_modify_args *args)
36821 {
36822 switch (args->event) {
36823 case NB_EV_VALIDATE:
36824 case NB_EV_PREPARE:
36825 case NB_EV_ABORT:
36826 case NB_EV_APPLY:
36827 /* TODO: implement me. */
36828 break;
36829 }
36830
36831 return NB_OK;
36832 }
36833
36834 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
36835 struct nb_cb_destroy_args *args)
36836 {
36837 switch (args->event) {
36838 case NB_EV_VALIDATE:
36839 case NB_EV_PREPARE:
36840 case NB_EV_ABORT:
36841 case NB_EV_APPLY:
36842 /* TODO: implement me. */
36843 break;
36844 }
36845
36846 return NB_OK;
36847 }
36848
36849 /*
36850 * XPath:
36851 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tr-restart-timer
36852 */
36853 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
36854 struct nb_cb_modify_args *args)
36855 {
36856 switch (args->event) {
36857 case NB_EV_VALIDATE:
36858 case NB_EV_PREPARE:
36859 case NB_EV_ABORT:
36860 case NB_EV_APPLY:
36861 /* TODO: implement me. */
36862 break;
36863 }
36864
36865 return NB_OK;
36866 }
36867
36868 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
36869 struct nb_cb_destroy_args *args)
36870 {
36871 switch (args->event) {
36872 case NB_EV_VALIDATE:
36873 case NB_EV_PREPARE:
36874 case NB_EV_ABORT:
36875 case NB_EV_APPLY:
36876 /* TODO: implement me. */
36877 break;
36878 }
36879
36880 return NB_OK;
36881 }
36882
36883 /*
36884 * XPath:
36885 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
36886 */
36887 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
36888 struct nb_cb_modify_args *args)
36889 {
36890 switch (args->event) {
36891 case NB_EV_VALIDATE:
36892 case NB_EV_PREPARE:
36893 case NB_EV_ABORT:
36894 case NB_EV_APPLY:
36895 /* TODO: implement me. */
36896 break;
36897 }
36898
36899 return NB_OK;
36900 }
36901
36902 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
36903 struct nb_cb_destroy_args *args)
36904 {
36905 switch (args->event) {
36906 case NB_EV_VALIDATE:
36907 case NB_EV_PREPARE:
36908 case NB_EV_ABORT:
36909 case NB_EV_APPLY:
36910 /* TODO: implement me. */
36911 break;
36912 }
36913
36914 return NB_OK;
36915 }
36916
36917 /*
36918 * XPath:
36919 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list/options/tw-warning-only
36920 */
36921 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
36922 struct nb_cb_modify_args *args)
36923 {
36924 switch (args->event) {
36925 case NB_EV_VALIDATE:
36926 case NB_EV_PREPARE:
36927 case NB_EV_ABORT:
36928 case NB_EV_APPLY:
36929 /* TODO: implement me. */
36930 break;
36931 }
36932
36933 return NB_OK;
36934 }
36935
36936 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
36937 struct nb_cb_destroy_args *args)
36938 {
36939 switch (args->event) {
36940 case NB_EV_VALIDATE:
36941 case NB_EV_PREPARE:
36942 case NB_EV_ABORT:
36943 case NB_EV_APPLY:
36944 /* TODO: implement me. */
36945 break;
36946 }
36947
36948 return NB_OK;
36949 }
36950
36951 /*
36952 * XPath:
36953 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/nexthop-self/next-hop-self
36954 */
36955 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_modify(
36956 struct nb_cb_modify_args *args)
36957 {
36958 switch (args->event) {
36959 case NB_EV_VALIDATE:
36960 case NB_EV_PREPARE:
36961 case NB_EV_ABORT:
36962 return NB_OK;
36963 case NB_EV_APPLY:
36964 return bgp_peer_group_afi_safi_flag_modify(
36965 args, PEER_FLAG_NEXTHOP_SELF,
36966 yang_dnode_get_bool(args->dnode, NULL));
36967
36968 break;
36969 }
36970
36971 return NB_OK;
36972 }
36973
36974 /*
36975 * XPath:
36976 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/nexthop-self/next-hop-self-force
36977 */
36978 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
36979 struct nb_cb_modify_args *args)
36980 {
36981 switch (args->event) {
36982 case NB_EV_VALIDATE:
36983 case NB_EV_PREPARE:
36984 case NB_EV_ABORT:
36985 return NB_OK;
36986 case NB_EV_APPLY:
36987 return bgp_peer_group_afi_safi_flag_modify(
36988 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
36989 yang_dnode_get_bool(args->dnode, NULL));
36990
36991 break;
36992 }
36993
36994 return NB_OK;
36995 }
36996
36997 /*
36998 * XPath:
36999 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as-all
37000 */
37001 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_modify(
37002 struct nb_cb_modify_args *args)
37003 {
37004 switch (args->event) {
37005 case NB_EV_VALIDATE:
37006 case NB_EV_PREPARE:
37007 case NB_EV_ABORT:
37008 return NB_OK;
37009 case NB_EV_APPLY:
37010 return bgp_peer_group_afi_safi_flag_modify(
37011 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
37012 yang_dnode_get_bool(args->dnode, NULL));
37013
37014 break;
37015 }
37016
37017 return NB_OK;
37018 }
37019
37020 /*
37021 * XPath:
37022 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as-all-replace
37023 */
37024 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
37025 struct nb_cb_modify_args *args)
37026 {
37027 switch (args->event) {
37028 case NB_EV_VALIDATE:
37029 case NB_EV_PREPARE:
37030 case NB_EV_ABORT:
37031 return NB_OK;
37032 case NB_EV_APPLY:
37033 return bgp_peer_group_afi_safi_flag_modify(
37034 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
37035 yang_dnode_get_bool(args->dnode, NULL));
37036
37037 break;
37038 }
37039
37040 return NB_OK;
37041 }
37042
37043 /*
37044 * XPath:
37045 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as
37046 */
37047 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_modify(
37048 struct nb_cb_modify_args *args)
37049 {
37050 switch (args->event) {
37051 case NB_EV_VALIDATE:
37052 case NB_EV_PREPARE:
37053 case NB_EV_ABORT:
37054 return NB_OK;
37055 case NB_EV_APPLY:
37056 return bgp_peer_group_afi_safi_flag_modify(
37057 args, PEER_FLAG_REMOVE_PRIVATE_AS,
37058 yang_dnode_get_bool(args->dnode, NULL));
37059
37060 break;
37061 }
37062
37063 return NB_OK;
37064 }
37065
37066 /*
37067 * XPath:
37068 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/private-as/remove-private-as-replace
37069 */
37070 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_replace_modify(
37071 struct nb_cb_modify_args *args)
37072 {
37073 switch (args->event) {
37074 case NB_EV_VALIDATE:
37075 case NB_EV_PREPARE:
37076 case NB_EV_ABORT:
37077 return NB_OK;
37078 case NB_EV_APPLY:
37079 return bgp_peer_group_afi_safi_flag_modify(
37080 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
37081 yang_dnode_get_bool(args->dnode, NULL));
37082
37083 break;
37084 }
37085
37086 return NB_OK;
37087 }
37088
37089 static int bgp_peer_group_afi_safi_weight_modify(struct nb_cb_modify_args *args)
37090 {
37091 struct bgp *bgp;
37092 const char *peer_str;
37093 struct peer *peer;
37094 const struct lyd_node *nbr_dnode;
37095 const struct lyd_node *nbr_af_dnode;
37096 const char *af_name;
37097 uint16_t weight;
37098 afi_t afi;
37099 safi_t safi;
37100 int ret;
37101
37102 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37103 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37104 yang_afi_safi_identity2value(af_name, &afi, &safi);
37105
37106 nbr_dnode = yang_dnode_get_parent(args->dnode, "peer-group");
37107 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37108 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37109 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37110
37111 weight = yang_dnode_get_uint16(args->dnode, NULL);
37112
37113 ret = peer_weight_set(peer, afi, safi, weight);
37114 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
37115 return NB_ERR_INCONSISTENCY;
37116
37117 return NB_OK;
37118 }
37119
37120 static int
37121 bgp_peer_group_afi_safi_weight_destroy(struct nb_cb_destroy_args *args)
37122 {
37123 struct bgp *bgp;
37124 const char *peer_str;
37125 struct peer *peer;
37126 const struct lyd_node *nbr_dnode;
37127 const struct lyd_node *nbr_af_dnode;
37128 const char *af_name;
37129 afi_t afi;
37130 safi_t safi;
37131 int ret;
37132
37133 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37134 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37135 yang_afi_safi_identity2value(af_name, &afi, &safi);
37136 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
37137 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37138 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37139 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37140
37141 ret = peer_weight_unset(peer, afi, safi);
37142 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
37143 return NB_ERR_INCONSISTENCY;
37144
37145 return NB_OK;
37146 }
37147
37148 /*
37149 * XPath:
37150 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/weight/weight-attribute
37151 */
37152 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_modify(
37153 struct nb_cb_modify_args *args)
37154 {
37155 switch (args->event) {
37156 case NB_EV_VALIDATE:
37157 case NB_EV_PREPARE:
37158 case NB_EV_ABORT:
37159 return NB_OK;
37160 case NB_EV_APPLY:
37161 return bgp_peer_group_afi_safi_weight_modify(args);
37162
37163 break;
37164 }
37165
37166 return NB_OK;
37167 }
37168
37169 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_destroy(
37170 struct nb_cb_destroy_args *args)
37171 {
37172 switch (args->event) {
37173 case NB_EV_VALIDATE:
37174 case NB_EV_PREPARE:
37175 case NB_EV_ABORT:
37176 return NB_OK;
37177 case NB_EV_APPLY:
37178 return bgp_peer_group_afi_safi_weight_destroy(args);
37179
37180 break;
37181 }
37182
37183 return NB_OK;
37184 }
37185
37186 /*
37187 * XPath:
37188 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/route-reflector/route-reflector-client
37189 */
37190 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_route_reflector_route_reflector_client_modify(
37191 struct nb_cb_modify_args *args)
37192 {
37193 switch (args->event) {
37194 case NB_EV_VALIDATE:
37195 case NB_EV_PREPARE:
37196 case NB_EV_ABORT:
37197 return NB_OK;
37198 case NB_EV_APPLY:
37199 return bgp_peer_group_afi_safi_flag_modify(
37200 args, PEER_FLAG_REFLECTOR_CLIENT,
37201 yang_dnode_get_bool(args->dnode, NULL));
37202
37203 break;
37204 }
37205
37206 return NB_OK;
37207 }
37208
37209 /*
37210 * XPath:
37211 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/route-server/route-server-client
37212 */
37213 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_route_server_route_server_client_modify(
37214 struct nb_cb_modify_args *args)
37215 {
37216 switch (args->event) {
37217 case NB_EV_VALIDATE:
37218 case NB_EV_PREPARE:
37219 case NB_EV_ABORT:
37220 return NB_OK;
37221 case NB_EV_APPLY:
37222 return bgp_peer_group_afi_safi_flag_modify(
37223 args, PEER_FLAG_RSERVER_CLIENT,
37224 yang_dnode_get_bool(args->dnode, NULL));
37225
37226 break;
37227 }
37228
37229 return NB_OK;
37230 }
37231
37232 /*
37233 * XPath:
37234 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/send-community/send-community
37235 */
37236 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_send_community_send_community_modify(
37237 struct nb_cb_modify_args *args)
37238 {
37239 switch (args->event) {
37240 case NB_EV_VALIDATE:
37241 case NB_EV_PREPARE:
37242 case NB_EV_ABORT:
37243 return NB_OK;
37244 case NB_EV_APPLY:
37245 return bgp_peer_group_afi_safi_flag_modify(
37246 args, PEER_FLAG_SEND_COMMUNITY,
37247 yang_dnode_get_bool(args->dnode, NULL));
37248
37249 break;
37250 }
37251
37252 return NB_OK;
37253 }
37254
37255 /*
37256 * XPath:
37257 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/send-community/send-ext-community
37258 */
37259 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_send_community_send_ext_community_modify(
37260 struct nb_cb_modify_args *args)
37261 {
37262 switch (args->event) {
37263 case NB_EV_VALIDATE:
37264 case NB_EV_PREPARE:
37265 case NB_EV_ABORT:
37266 return NB_OK;
37267 case NB_EV_APPLY:
37268 return bgp_peer_group_afi_safi_flag_modify(
37269 args, PEER_FLAG_SEND_EXT_COMMUNITY,
37270 yang_dnode_get_bool(args->dnode, NULL));
37271
37272 break;
37273 }
37274
37275 return NB_OK;
37276 }
37277
37278 /*
37279 * XPath:
37280 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/send-community/send-large-community
37281 */
37282 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_send_community_send_large_community_modify(
37283 struct nb_cb_modify_args *args)
37284 {
37285 switch (args->event) {
37286 case NB_EV_VALIDATE:
37287 case NB_EV_PREPARE:
37288 case NB_EV_ABORT:
37289 return NB_OK;
37290 case NB_EV_APPLY:
37291 return bgp_peer_group_afi_safi_flag_modify(
37292 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
37293 yang_dnode_get_bool(args->dnode, NULL));
37294
37295 break;
37296 }
37297
37298 return NB_OK;
37299 }
37300
37301 /*
37302 * XPath:
37303 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/soft-reconfiguration
37304 */
37305 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_soft_reconfiguration_modify(
37306 struct nb_cb_modify_args *args)
37307 {
37308 switch (args->event) {
37309 case NB_EV_VALIDATE:
37310 case NB_EV_PREPARE:
37311 case NB_EV_ABORT:
37312 return NB_OK;
37313 case NB_EV_APPLY:
37314 return bgp_peer_group_afi_safi_flag_modify(
37315 args, PEER_FLAG_SOFT_RECONFIG,
37316 yang_dnode_get_bool(args->dnode, NULL));
37317
37318 break;
37319 }
37320
37321 return NB_OK;
37322 }
37323
37324 /*
37325 * XPath:
37326 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/attr-unchanged/as-path-unchanged
37327 */
37328 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
37329 struct nb_cb_modify_args *args)
37330 {
37331 switch (args->event) {
37332 case NB_EV_VALIDATE:
37333 case NB_EV_PREPARE:
37334 case NB_EV_ABORT:
37335 return NB_OK;
37336 case NB_EV_APPLY:
37337 return bgp_peer_group_afi_safi_flag_modify(
37338 args, PEER_FLAG_AS_PATH_UNCHANGED,
37339 yang_dnode_get_bool(args->dnode, NULL));
37340
37341 break;
37342 }
37343
37344 return NB_OK;
37345 }
37346
37347 /*
37348 * XPath:
37349 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/attr-unchanged/next-hop-unchanged
37350 */
37351 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
37352 struct nb_cb_modify_args *args)
37353 {
37354 switch (args->event) {
37355 case NB_EV_VALIDATE:
37356 case NB_EV_PREPARE:
37357 case NB_EV_ABORT:
37358 return NB_OK;
37359 case NB_EV_APPLY:
37360 return bgp_peer_group_afi_safi_flag_modify(
37361 args, PEER_FLAG_NEXTHOP_UNCHANGED,
37362 yang_dnode_get_bool(args->dnode, NULL));
37363
37364 break;
37365 }
37366
37367 return NB_OK;
37368 }
37369
37370 /*
37371 * XPath:
37372 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/attr-unchanged/med-unchanged
37373 */
37374 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_med_unchanged_modify(
37375 struct nb_cb_modify_args *args)
37376 {
37377 switch (args->event) {
37378 case NB_EV_VALIDATE:
37379 case NB_EV_PREPARE:
37380 case NB_EV_ABORT:
37381 return NB_OK;
37382 case NB_EV_APPLY:
37383 return bgp_peer_group_afi_safi_flag_modify(
37384 args, PEER_FLAG_MED_UNCHANGED,
37385 yang_dnode_get_bool(args->dnode, NULL));
37386
37387 break;
37388 }
37389
37390 return NB_OK;
37391 }
37392
37393 /*
37394 * XPath:
37395 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-send
37396 */
37397 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_modify(
37398 struct nb_cb_modify_args *args)
37399 {
37400 switch (args->event) {
37401 case NB_EV_VALIDATE:
37402 case NB_EV_PREPARE:
37403 case NB_EV_ABORT:
37404 case NB_EV_APPLY:
37405 /* TODO: implement me. */
37406 break;
37407 }
37408
37409 return NB_OK;
37410 }
37411
37412 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_destroy(
37413 struct nb_cb_destroy_args *args)
37414 {
37415 switch (args->event) {
37416 case NB_EV_VALIDATE:
37417 case NB_EV_PREPARE:
37418 case NB_EV_ABORT:
37419 case NB_EV_APPLY:
37420 /* TODO: implement me. */
37421 break;
37422 }
37423
37424 return NB_OK;
37425 }
37426
37427 /*
37428 * XPath:
37429 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-receive
37430 */
37431 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_modify(
37432 struct nb_cb_modify_args *args)
37433 {
37434 switch (args->event) {
37435 case NB_EV_VALIDATE:
37436 case NB_EV_PREPARE:
37437 case NB_EV_ABORT:
37438 case NB_EV_APPLY:
37439 /* TODO: implement me. */
37440 break;
37441 }
37442
37443 return NB_OK;
37444 }
37445
37446 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_destroy(
37447 struct nb_cb_destroy_args *args)
37448 {
37449 switch (args->event) {
37450 case NB_EV_VALIDATE:
37451 case NB_EV_PREPARE:
37452 case NB_EV_ABORT:
37453 case NB_EV_APPLY:
37454 /* TODO: implement me. */
37455 break;
37456 }
37457
37458 return NB_OK;
37459 }
37460
37461 /*
37462 * XPath:
37463 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-both
37464 */
37465 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_modify(
37466 struct nb_cb_modify_args *args)
37467 {
37468 switch (args->event) {
37469 case NB_EV_VALIDATE:
37470 case NB_EV_PREPARE:
37471 case NB_EV_ABORT:
37472 case NB_EV_APPLY:
37473 /* TODO: implement me. */
37474 break;
37475 }
37476
37477 return NB_OK;
37478 }
37479
37480 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_destroy(
37481 struct nb_cb_destroy_args *args)
37482 {
37483 switch (args->event) {
37484 case NB_EV_VALIDATE:
37485 case NB_EV_PREPARE:
37486 case NB_EV_ABORT:
37487 case NB_EV_APPLY:
37488 /* TODO: implement me. */
37489 break;
37490 }
37491
37492 return NB_OK;
37493 }
37494
37495 static int bgp_peer_group_afi_safi_rmap_modify(struct nb_cb_modify_args *args,
37496 int direct)
37497 {
37498 struct bgp *bgp;
37499 const char *peer_str;
37500 struct peer *peer;
37501 const struct lyd_node *nbr_dnode;
37502 const struct lyd_node *nbr_af_dnode;
37503 const char *af_name;
37504 afi_t afi;
37505 safi_t safi;
37506 const char *name_str;
37507 struct route_map *route_map;
37508 int ret;
37509
37510 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37511 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37512 yang_afi_safi_identity2value(af_name, &afi, &safi);
37513 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
37514 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37515 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37516 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37517
37518 name_str = yang_dnode_get_string(args->dnode, NULL);
37519 route_map = route_map_lookup_by_name(name_str);
37520 ret = peer_route_map_set(peer, afi, safi, direct, name_str, route_map);
37521
37522 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
37523 }
37524
37525 static int bgp_peer_group_afi_safi_rmap_destroy(struct nb_cb_destroy_args *args,
37526 int direct)
37527 {
37528 struct bgp *bgp;
37529 const char *peer_str;
37530 struct peer *peer;
37531 const struct lyd_node *nbr_dnode;
37532 const struct lyd_node *nbr_af_dnode;
37533 const char *af_name;
37534 afi_t afi;
37535 safi_t safi;
37536 int ret;
37537
37538 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37539 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37540 yang_afi_safi_identity2value(af_name, &afi, &safi);
37541 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
37542 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37543 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37544 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37545
37546 ret = peer_route_map_unset(peer, afi, safi, direct);
37547
37548 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
37549 }
37550
37551 /*
37552 * XPath:
37553 * /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
37554 */
37555 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_modify(
37556 struct nb_cb_modify_args *args)
37557 {
37558 switch (args->event) {
37559 case NB_EV_VALIDATE:
37560 case NB_EV_PREPARE:
37561 case NB_EV_ABORT:
37562 break;
37563 case NB_EV_APPLY:
37564 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
37565 }
37566
37567 return NB_OK;
37568 }
37569
37570 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_destroy(
37571 struct nb_cb_destroy_args *args)
37572 {
37573 switch (args->event) {
37574 case NB_EV_VALIDATE:
37575 case NB_EV_PREPARE:
37576 case NB_EV_ABORT:
37577 break;
37578 case NB_EV_APPLY:
37579 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
37580 }
37581
37582 return NB_OK;
37583 }
37584
37585 /*
37586 * XPath:
37587 * /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-export
37588 */
37589 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_modify(
37590 struct nb_cb_modify_args *args)
37591 {
37592 switch (args->event) {
37593 case NB_EV_VALIDATE:
37594 case NB_EV_PREPARE:
37595 case NB_EV_ABORT:
37596 break;
37597 case NB_EV_APPLY:
37598 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
37599 }
37600
37601 return NB_OK;
37602 }
37603
37604 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_destroy(
37605 struct nb_cb_destroy_args *args)
37606 {
37607 switch (args->event) {
37608 case NB_EV_VALIDATE:
37609 case NB_EV_PREPARE:
37610 case NB_EV_ABORT:
37611 break;
37612 case NB_EV_APPLY:
37613 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
37614 }
37615
37616 return NB_OK;
37617 }
37618
37619 static int bgp_peer_group_afi_safi_plist_modify(struct nb_cb_modify_args *args,
37620 int direct)
37621 {
37622 struct bgp *bgp;
37623 const char *peer_str;
37624 struct peer *peer;
37625 const struct lyd_node *nbr_dnode;
37626 const struct lyd_node *nbr_af_dnode;
37627 const char *af_name;
37628 afi_t afi;
37629 safi_t safi;
37630 const char *name_str;
37631
37632 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37633 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37634 yang_afi_safi_identity2value(af_name, &afi, &safi);
37635 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
37636 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37637 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37638 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37639
37640 name_str = yang_dnode_get_string(args->dnode, NULL);
37641 if (peer_prefix_list_set(peer, afi, safi, direct, name_str) < 0)
37642 return NB_ERR_INCONSISTENCY;
37643
37644 return NB_OK;
37645 }
37646
37647 static int
37648 bgp_peer_group_afi_safi_plist_destroy(struct nb_cb_destroy_args *args,
37649 int direct)
37650 {
37651 struct bgp *bgp;
37652 const char *peer_str;
37653 struct peer *peer;
37654 const struct lyd_node *nbr_dnode;
37655 const struct lyd_node *nbr_af_dnode;
37656 const char *af_name;
37657 afi_t afi;
37658 safi_t safi;
37659
37660 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37661 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37662 yang_afi_safi_identity2value(af_name, &afi, &safi);
37663 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
37664 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37665 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37666 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37667
37668 if (peer_prefix_list_unset(peer, afi, safi, direct) < 0)
37669 return NB_ERR_INCONSISTENCY;
37670
37671 return NB_OK;
37672 }
37673
37674 /*
37675 * XPath:
37676 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/filter-config/plist-import
37677 */
37678 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_modify(
37679 struct nb_cb_modify_args *args)
37680 {
37681 switch (args->event) {
37682 case NB_EV_VALIDATE:
37683 case NB_EV_PREPARE:
37684 case NB_EV_ABORT:
37685 break;
37686 case NB_EV_APPLY:
37687 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
37688 }
37689
37690 return NB_OK;
37691 }
37692
37693 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_destroy(
37694 struct nb_cb_destroy_args *args)
37695 {
37696 switch (args->event) {
37697 case NB_EV_VALIDATE:
37698 case NB_EV_PREPARE:
37699 case NB_EV_ABORT:
37700 break;
37701 case NB_EV_APPLY:
37702 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
37703 }
37704
37705 return NB_OK;
37706 }
37707
37708 /*
37709 * XPath:
37710 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/filter-config/plist-export
37711 */
37712 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_modify(
37713 struct nb_cb_modify_args *args)
37714 {
37715 switch (args->event) {
37716 case NB_EV_VALIDATE:
37717 case NB_EV_PREPARE:
37718 case NB_EV_ABORT:
37719 break;
37720 case NB_EV_APPLY:
37721 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
37722 }
37723
37724 return NB_OK;
37725 }
37726
37727 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_destroy(
37728 struct nb_cb_destroy_args *args)
37729 {
37730 switch (args->event) {
37731 case NB_EV_VALIDATE:
37732 case NB_EV_PREPARE:
37733 case NB_EV_ABORT:
37734 break;
37735 case NB_EV_APPLY:
37736 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
37737 }
37738
37739 return NB_OK;
37740 }
37741
37742 /*
37743 * XPath:
37744 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/filter-config/access-list-import
37745 */
37746 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_modify(
37747 struct nb_cb_modify_args *args)
37748 {
37749 switch (args->event) {
37750 case NB_EV_VALIDATE:
37751 case NB_EV_PREPARE:
37752 case NB_EV_ABORT:
37753 case NB_EV_APPLY:
37754 /* TODO: implement me. */
37755 break;
37756 }
37757
37758 return NB_OK;
37759 }
37760
37761 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_destroy(
37762 struct nb_cb_destroy_args *args)
37763 {
37764 switch (args->event) {
37765 case NB_EV_VALIDATE:
37766 case NB_EV_PREPARE:
37767 case NB_EV_ABORT:
37768 case NB_EV_APPLY:
37769 /* TODO: implement me. */
37770 break;
37771 }
37772
37773 return NB_OK;
37774 }
37775
37776 /*
37777 * XPath:
37778 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/filter-config/access-list-export
37779 */
37780 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_modify(
37781 struct nb_cb_modify_args *args)
37782 {
37783 switch (args->event) {
37784 case NB_EV_VALIDATE:
37785 case NB_EV_PREPARE:
37786 case NB_EV_ABORT:
37787 case NB_EV_APPLY:
37788 /* TODO: implement me. */
37789 break;
37790 }
37791
37792 return NB_OK;
37793 }
37794
37795 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_destroy(
37796 struct nb_cb_destroy_args *args)
37797 {
37798 switch (args->event) {
37799 case NB_EV_VALIDATE:
37800 case NB_EV_PREPARE:
37801 case NB_EV_ABORT:
37802 case NB_EV_APPLY:
37803 /* TODO: implement me. */
37804 break;
37805 }
37806
37807 return NB_OK;
37808 }
37809
37810 /*
37811 * XPath:
37812 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/filter-config/as-path-filter-list-import
37813 */
37814 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_modify(
37815 struct nb_cb_modify_args *args)
37816 {
37817 switch (args->event) {
37818 case NB_EV_VALIDATE:
37819 case NB_EV_PREPARE:
37820 case NB_EV_ABORT:
37821 case NB_EV_APPLY:
37822 /* TODO: implement me. */
37823 break;
37824 }
37825
37826 return NB_OK;
37827 }
37828
37829 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_destroy(
37830 struct nb_cb_destroy_args *args)
37831 {
37832 switch (args->event) {
37833 case NB_EV_VALIDATE:
37834 case NB_EV_PREPARE:
37835 case NB_EV_ABORT:
37836 case NB_EV_APPLY:
37837 /* TODO: implement me. */
37838 break;
37839 }
37840
37841 return NB_OK;
37842 }
37843
37844 /*
37845 * XPath:
37846 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/filter-config/as-path-filter-list-export
37847 */
37848 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_modify(
37849 struct nb_cb_modify_args *args)
37850 {
37851 switch (args->event) {
37852 case NB_EV_VALIDATE:
37853 case NB_EV_PREPARE:
37854 case NB_EV_ABORT:
37855 case NB_EV_APPLY:
37856 /* TODO: implement me. */
37857 break;
37858 }
37859
37860 return NB_OK;
37861 }
37862
37863 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_destroy(
37864 struct nb_cb_destroy_args *args)
37865 {
37866 switch (args->event) {
37867 case NB_EV_VALIDATE:
37868 case NB_EV_PREPARE:
37869 case NB_EV_ABORT:
37870 case NB_EV_APPLY:
37871 /* TODO: implement me. */
37872 break;
37873 }
37874
37875 return NB_OK;
37876 }
37877
37878 /*
37879 * XPath:
37880 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/filter-config/unsuppress-map-import
37881 */
37882 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_modify(
37883 struct nb_cb_modify_args *args)
37884 {
37885 switch (args->event) {
37886 case NB_EV_VALIDATE:
37887 case NB_EV_PREPARE:
37888 case NB_EV_ABORT:
37889 case NB_EV_APPLY:
37890 /* TODO: implement me. */
37891 break;
37892 }
37893
37894 return NB_OK;
37895 }
37896
37897 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_destroy(
37898 struct nb_cb_destroy_args *args)
37899 {
37900 switch (args->event) {
37901 case NB_EV_VALIDATE:
37902 case NB_EV_PREPARE:
37903 case NB_EV_ABORT:
37904 case NB_EV_APPLY:
37905 /* TODO: implement me. */
37906 break;
37907 }
37908
37909 return NB_OK;
37910 }
37911
37912 /*
37913 * XPath:
37914 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/filter-config/unsuppress-map-export
37915 */
37916 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_modify(
37917 struct nb_cb_modify_args *args)
37918 {
37919 switch (args->event) {
37920 case NB_EV_VALIDATE:
37921 case NB_EV_PREPARE:
37922 case NB_EV_ABORT:
37923 case NB_EV_APPLY:
37924 /* TODO: implement me. */
37925 break;
37926 }
37927
37928 return NB_OK;
37929 }
37930
37931 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_destroy(
37932 struct nb_cb_destroy_args *args)
37933 {
37934 switch (args->event) {
37935 case NB_EV_VALIDATE:
37936 case NB_EV_PREPARE:
37937 case NB_EV_ABORT:
37938 case NB_EV_APPLY:
37939 /* TODO: implement me. */
37940 break;
37941 }
37942
37943 return NB_OK;
37944 }
37945
37946 /*
37947 * XPath:
37948 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/nexthop-local-unchanged
37949 */
37950 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_nexthop_local_unchanged_modify(
37951 struct nb_cb_modify_args *args)
37952 {
37953 switch (args->event) {
37954 case NB_EV_VALIDATE:
37955 case NB_EV_PREPARE:
37956 case NB_EV_ABORT:
37957 case NB_EV_APPLY:
37958 /* TODO: implement me. */
37959 break;
37960 }
37961
37962 return NB_OK;
37963 }
37964
37965 /*
37966 * XPath:
37967 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/add-paths/path-type
37968 */
37969 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_add_paths_path_type_modify(
37970 struct nb_cb_modify_args *args)
37971 {
37972 switch (args->event) {
37973 case NB_EV_VALIDATE:
37974 case NB_EV_PREPARE:
37975 case NB_EV_ABORT:
37976 case NB_EV_APPLY:
37977 /* TODO: implement me. */
37978 break;
37979 }
37980
37981 return NB_OK;
37982 }
37983
37984 /*
37985 * XPath:
37986 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/as-path-options/allow-own-as
37987 */
37988 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_modify(
37989 struct nb_cb_modify_args *args)
37990 {
37991 switch (args->event) {
37992 case NB_EV_VALIDATE:
37993 case NB_EV_PREPARE:
37994 case NB_EV_ABORT:
37995 case NB_EV_APPLY:
37996 /* TODO: implement me. */
37997 break;
37998 }
37999
38000 return NB_OK;
38001 }
38002
38003 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_destroy(
38004 struct nb_cb_destroy_args *args)
38005 {
38006 switch (args->event) {
38007 case NB_EV_VALIDATE:
38008 case NB_EV_PREPARE:
38009 case NB_EV_ABORT:
38010 case NB_EV_APPLY:
38011 /* TODO: implement me. */
38012 break;
38013 }
38014
38015 return NB_OK;
38016 }
38017
38018 /*
38019 * XPath:
38020 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/as-path-options/allow-own-origin-as
38021 */
38022 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
38023 struct nb_cb_modify_args *args)
38024 {
38025 switch (args->event) {
38026 case NB_EV_VALIDATE:
38027 case NB_EV_PREPARE:
38028 case NB_EV_ABORT:
38029 case NB_EV_APPLY:
38030 /* TODO: implement me. */
38031 break;
38032 }
38033
38034 return NB_OK;
38035 }
38036
38037 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
38038 struct nb_cb_destroy_args *args)
38039 {
38040 switch (args->event) {
38041 case NB_EV_VALIDATE:
38042 case NB_EV_PREPARE:
38043 case NB_EV_ABORT:
38044 case NB_EV_APPLY:
38045 /* TODO: implement me. */
38046 break;
38047 }
38048
38049 return NB_OK;
38050 }
38051
38052 /*
38053 * XPath:
38054 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/as-path-options/replace-peer-as
38055 */
38056 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_as_path_options_replace_peer_as_modify(
38057 struct nb_cb_modify_args *args)
38058 {
38059 switch (args->event) {
38060 case NB_EV_VALIDATE:
38061 case NB_EV_PREPARE:
38062 case NB_EV_ABORT:
38063 return NB_OK;
38064 case NB_EV_APPLY:
38065 return bgp_peer_group_afi_safi_flag_modify(
38066 args, PEER_FLAG_AS_OVERRIDE,
38067 yang_dnode_get_bool(args->dnode, NULL));
38068
38069 break;
38070 }
38071
38072 return NB_OK;
38073 }
38074
38075 /*
38076 * XPath:
38077 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/default-originate/originate
38078 */
38079 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_default_originate_originate_modify(
38080 struct nb_cb_modify_args *args)
38081 {
38082 switch (args->event) {
38083 case NB_EV_VALIDATE:
38084 case NB_EV_PREPARE:
38085 case NB_EV_ABORT:
38086 case NB_EV_APPLY:
38087 /* TODO: implement me. */
38088 break;
38089 }
38090
38091 return NB_OK;
38092 }
38093
38094 /*
38095 * XPath:
38096 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/default-originate/route-map
38097 */
38098 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_modify(
38099 struct nb_cb_modify_args *args)
38100 {
38101 switch (args->event) {
38102 case NB_EV_VALIDATE:
38103 case NB_EV_PREPARE:
38104 case NB_EV_ABORT:
38105 case NB_EV_APPLY:
38106 /* TODO: implement me. */
38107 break;
38108 }
38109
38110 return NB_OK;
38111 }
38112
38113 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_destroy(
38114 struct nb_cb_destroy_args *args)
38115 {
38116 switch (args->event) {
38117 case NB_EV_VALIDATE:
38118 case NB_EV_PREPARE:
38119 case NB_EV_ABORT:
38120 case NB_EV_APPLY:
38121 /* TODO: implement me. */
38122 break;
38123 }
38124
38125 return NB_OK;
38126 }
38127
38128 /*
38129 * XPath:
38130 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/attr-unchanged/as-path-unchanged
38131 */
38132 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
38133 struct nb_cb_modify_args *args)
38134 {
38135 switch (args->event) {
38136 case NB_EV_VALIDATE:
38137 case NB_EV_PREPARE:
38138 case NB_EV_ABORT:
38139 return NB_OK;
38140 case NB_EV_APPLY:
38141 return bgp_peer_group_afi_safi_flag_modify(
38142 args, PEER_FLAG_AS_PATH_UNCHANGED,
38143 yang_dnode_get_bool(args->dnode, NULL));
38144
38145 break;
38146 }
38147
38148 return NB_OK;
38149 }
38150
38151 /*
38152 * XPath:
38153 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/attr-unchanged/next-hop-unchanged
38154 */
38155 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
38156 struct nb_cb_modify_args *args)
38157 {
38158 switch (args->event) {
38159 case NB_EV_VALIDATE:
38160 case NB_EV_PREPARE:
38161 case NB_EV_ABORT:
38162 return NB_OK;
38163 case NB_EV_APPLY:
38164 return bgp_peer_group_afi_safi_flag_modify(
38165 args, PEER_FLAG_NEXTHOP_UNCHANGED,
38166 yang_dnode_get_bool(args->dnode, NULL));
38167
38168 break;
38169 }
38170
38171 return NB_OK;
38172 }
38173
38174 /*
38175 * XPath:
38176 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/attr-unchanged/med-unchanged
38177 */
38178 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_med_unchanged_modify(
38179 struct nb_cb_modify_args *args)
38180 {
38181 switch (args->event) {
38182 case NB_EV_VALIDATE:
38183 case NB_EV_PREPARE:
38184 case NB_EV_ABORT:
38185 return NB_OK;
38186 case NB_EV_APPLY:
38187 return bgp_peer_group_afi_safi_flag_modify(
38188 args, PEER_FLAG_MED_UNCHANGED,
38189 yang_dnode_get_bool(args->dnode, NULL));
38190
38191 break;
38192 }
38193
38194 return NB_OK;
38195 }
38196
38197 /*
38198 * XPath:
38199 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-send
38200 */
38201 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_modify(
38202 struct nb_cb_modify_args *args)
38203 {
38204 switch (args->event) {
38205 case NB_EV_VALIDATE:
38206 case NB_EV_PREPARE:
38207 case NB_EV_ABORT:
38208 case NB_EV_APPLY:
38209 /* TODO: implement me. */
38210 break;
38211 }
38212
38213 return NB_OK;
38214 }
38215
38216 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_destroy(
38217 struct nb_cb_destroy_args *args)
38218 {
38219 switch (args->event) {
38220 case NB_EV_VALIDATE:
38221 case NB_EV_PREPARE:
38222 case NB_EV_ABORT:
38223 case NB_EV_APPLY:
38224 /* TODO: implement me. */
38225 break;
38226 }
38227
38228 return NB_OK;
38229 }
38230
38231 /*
38232 * XPath:
38233 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-receive
38234 */
38235 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_modify(
38236 struct nb_cb_modify_args *args)
38237 {
38238 switch (args->event) {
38239 case NB_EV_VALIDATE:
38240 case NB_EV_PREPARE:
38241 case NB_EV_ABORT:
38242 case NB_EV_APPLY:
38243 /* TODO: implement me. */
38244 break;
38245 }
38246
38247 return NB_OK;
38248 }
38249
38250 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_destroy(
38251 struct nb_cb_destroy_args *args)
38252 {
38253 switch (args->event) {
38254 case NB_EV_VALIDATE:
38255 case NB_EV_PREPARE:
38256 case NB_EV_ABORT:
38257 case NB_EV_APPLY:
38258 /* TODO: implement me. */
38259 break;
38260 }
38261
38262 return NB_OK;
38263 }
38264
38265 /*
38266 * XPath:
38267 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-both
38268 */
38269 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_modify(
38270 struct nb_cb_modify_args *args)
38271 {
38272 switch (args->event) {
38273 case NB_EV_VALIDATE:
38274 case NB_EV_PREPARE:
38275 case NB_EV_ABORT:
38276 case NB_EV_APPLY:
38277 /* TODO: implement me. */
38278 break;
38279 }
38280
38281 return NB_OK;
38282 }
38283
38284 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_destroy(
38285 struct nb_cb_destroy_args *args)
38286 {
38287 switch (args->event) {
38288 case NB_EV_VALIDATE:
38289 case NB_EV_PREPARE:
38290 case NB_EV_ABORT:
38291 case NB_EV_APPLY:
38292 /* TODO: implement me. */
38293 break;
38294 }
38295
38296 return NB_OK;
38297 }
38298
38299 /*
38300 * XPath:
38301 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list
38302 */
38303 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_create(
38304 struct nb_cb_create_args *args)
38305 {
38306 switch (args->event) {
38307 case NB_EV_VALIDATE:
38308 case NB_EV_PREPARE:
38309 case NB_EV_ABORT:
38310 case NB_EV_APPLY:
38311 /* TODO: implement me. */
38312 break;
38313 }
38314
38315 return NB_OK;
38316 }
38317
38318 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_destroy(
38319 struct nb_cb_destroy_args *args)
38320 {
38321 switch (args->event) {
38322 case NB_EV_VALIDATE:
38323 case NB_EV_PREPARE:
38324 case NB_EV_ABORT:
38325 return NB_OK;
38326 case NB_EV_APPLY:
38327 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
38328 }
38329
38330 return NB_OK;
38331 }
38332
38333 /*
38334 * XPath:
38335 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/max-prefixes
38336 */
38337 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
38338 struct nb_cb_modify_args *args)
38339 {
38340 switch (args->event) {
38341 case NB_EV_VALIDATE:
38342 case NB_EV_PREPARE:
38343 case NB_EV_ABORT:
38344 case NB_EV_APPLY:
38345 /* TODO: implement me. */
38346 break;
38347 }
38348
38349 return NB_OK;
38350 }
38351
38352 /*
38353 * XPath:
38354 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/force-check
38355 */
38356 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
38357 struct nb_cb_modify_args *args)
38358 {
38359 switch (args->event) {
38360 case NB_EV_VALIDATE:
38361 case NB_EV_PREPARE:
38362 case NB_EV_ABORT:
38363 case NB_EV_APPLY:
38364 /* TODO: implement me. */
38365 break;
38366 }
38367
38368 return NB_OK;
38369 }
38370
38371 /*
38372 * XPath:
38373 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/warning-only
38374 */
38375 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
38376 struct nb_cb_modify_args *args)
38377 {
38378 switch (args->event) {
38379 case NB_EV_VALIDATE:
38380 case NB_EV_PREPARE:
38381 case NB_EV_ABORT:
38382 case NB_EV_APPLY:
38383 /* TODO: implement me. */
38384 break;
38385 }
38386
38387 return NB_OK;
38388 }
38389
38390 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
38391 struct nb_cb_destroy_args *args)
38392 {
38393 switch (args->event) {
38394 case NB_EV_VALIDATE:
38395 case NB_EV_PREPARE:
38396 case NB_EV_ABORT:
38397 case NB_EV_APPLY:
38398 /* TODO: implement me. */
38399 break;
38400 }
38401
38402 return NB_OK;
38403 }
38404
38405 /*
38406 * XPath:
38407 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/restart-timer
38408 */
38409 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
38410 struct nb_cb_modify_args *args)
38411 {
38412 switch (args->event) {
38413 case NB_EV_VALIDATE:
38414 case NB_EV_PREPARE:
38415 case NB_EV_ABORT:
38416 case NB_EV_APPLY:
38417 /* TODO: implement me. */
38418 break;
38419 }
38420
38421 return NB_OK;
38422 }
38423
38424 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
38425 struct nb_cb_destroy_args *args)
38426 {
38427 switch (args->event) {
38428 case NB_EV_VALIDATE:
38429 case NB_EV_PREPARE:
38430 case NB_EV_ABORT:
38431 case NB_EV_APPLY:
38432 /* TODO: implement me. */
38433 break;
38434 }
38435
38436 return NB_OK;
38437 }
38438
38439 /*
38440 * XPath:
38441 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
38442 */
38443 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
38444 struct nb_cb_modify_args *args)
38445 {
38446 switch (args->event) {
38447 case NB_EV_VALIDATE:
38448 case NB_EV_PREPARE:
38449 case NB_EV_ABORT:
38450 case NB_EV_APPLY:
38451 /* TODO: implement me. */
38452 break;
38453 }
38454
38455 return NB_OK;
38456 }
38457
38458 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
38459 struct nb_cb_destroy_args *args)
38460 {
38461 switch (args->event) {
38462 case NB_EV_VALIDATE:
38463 case NB_EV_PREPARE:
38464 case NB_EV_ABORT:
38465 case NB_EV_APPLY:
38466 /* TODO: implement me. */
38467 break;
38468 }
38469
38470 return NB_OK;
38471 }
38472
38473 /*
38474 * XPath:
38475 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
38476 */
38477 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
38478 struct nb_cb_modify_args *args)
38479 {
38480 switch (args->event) {
38481 case NB_EV_VALIDATE:
38482 case NB_EV_PREPARE:
38483 case NB_EV_ABORT:
38484 case NB_EV_APPLY:
38485 /* TODO: implement me. */
38486 break;
38487 }
38488
38489 return NB_OK;
38490 }
38491
38492 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
38493 struct nb_cb_destroy_args *args)
38494 {
38495 switch (args->event) {
38496 case NB_EV_VALIDATE:
38497 case NB_EV_PREPARE:
38498 case NB_EV_ABORT:
38499 case NB_EV_APPLY:
38500 /* TODO: implement me. */
38501 break;
38502 }
38503
38504 return NB_OK;
38505 }
38506
38507 /*
38508 * XPath:
38509 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tr-restart-timer
38510 */
38511 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
38512 struct nb_cb_modify_args *args)
38513 {
38514 switch (args->event) {
38515 case NB_EV_VALIDATE:
38516 case NB_EV_PREPARE:
38517 case NB_EV_ABORT:
38518 case NB_EV_APPLY:
38519 /* TODO: implement me. */
38520 break;
38521 }
38522
38523 return NB_OK;
38524 }
38525
38526 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
38527 struct nb_cb_destroy_args *args)
38528 {
38529 switch (args->event) {
38530 case NB_EV_VALIDATE:
38531 case NB_EV_PREPARE:
38532 case NB_EV_ABORT:
38533 case NB_EV_APPLY:
38534 /* TODO: implement me. */
38535 break;
38536 }
38537
38538 return NB_OK;
38539 }
38540
38541 /*
38542 * XPath:
38543 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
38544 */
38545 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
38546 struct nb_cb_modify_args *args)
38547 {
38548 switch (args->event) {
38549 case NB_EV_VALIDATE:
38550 case NB_EV_PREPARE:
38551 case NB_EV_ABORT:
38552 case NB_EV_APPLY:
38553 /* TODO: implement me. */
38554 break;
38555 }
38556
38557 return NB_OK;
38558 }
38559
38560 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
38561 struct nb_cb_destroy_args *args)
38562 {
38563 switch (args->event) {
38564 case NB_EV_VALIDATE:
38565 case NB_EV_PREPARE:
38566 case NB_EV_ABORT:
38567 case NB_EV_APPLY:
38568 /* TODO: implement me. */
38569 break;
38570 }
38571
38572 return NB_OK;
38573 }
38574
38575 /*
38576 * XPath:
38577 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list/options/tw-warning-only
38578 */
38579 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
38580 struct nb_cb_modify_args *args)
38581 {
38582 switch (args->event) {
38583 case NB_EV_VALIDATE:
38584 case NB_EV_PREPARE:
38585 case NB_EV_ABORT:
38586 case NB_EV_APPLY:
38587 /* TODO: implement me. */
38588 break;
38589 }
38590
38591 return NB_OK;
38592 }
38593
38594 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
38595 struct nb_cb_destroy_args *args)
38596 {
38597 switch (args->event) {
38598 case NB_EV_VALIDATE:
38599 case NB_EV_PREPARE:
38600 case NB_EV_ABORT:
38601 case NB_EV_APPLY:
38602 /* TODO: implement me. */
38603 break;
38604 }
38605
38606 return NB_OK;
38607 }
38608
38609 /*
38610 * XPath:
38611 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/nexthop-self/next-hop-self
38612 */
38613 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_modify(
38614 struct nb_cb_modify_args *args)
38615 {
38616 switch (args->event) {
38617 case NB_EV_VALIDATE:
38618 case NB_EV_PREPARE:
38619 case NB_EV_ABORT:
38620 return NB_OK;
38621 case NB_EV_APPLY:
38622 return bgp_peer_group_afi_safi_flag_modify(
38623 args, PEER_FLAG_NEXTHOP_SELF,
38624 yang_dnode_get_bool(args->dnode, NULL));
38625
38626 break;
38627 }
38628
38629 return NB_OK;
38630 }
38631
38632 /*
38633 * XPath:
38634 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/nexthop-self/next-hop-self-force
38635 */
38636 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
38637 struct nb_cb_modify_args *args)
38638 {
38639 switch (args->event) {
38640 case NB_EV_VALIDATE:
38641 case NB_EV_PREPARE:
38642 case NB_EV_ABORT:
38643 return NB_OK;
38644 case NB_EV_APPLY:
38645 return bgp_peer_group_afi_safi_flag_modify(
38646 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
38647 yang_dnode_get_bool(args->dnode, NULL));
38648
38649 break;
38650 }
38651
38652 return NB_OK;
38653 }
38654
38655 /*
38656 * XPath:
38657 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as-all
38658 */
38659 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_modify(
38660 struct nb_cb_modify_args *args)
38661 {
38662 switch (args->event) {
38663 case NB_EV_VALIDATE:
38664 case NB_EV_PREPARE:
38665 case NB_EV_ABORT:
38666 return NB_OK;
38667 case NB_EV_APPLY:
38668 return bgp_peer_group_afi_safi_flag_modify(
38669 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
38670 yang_dnode_get_bool(args->dnode, NULL));
38671
38672 break;
38673 }
38674
38675 return NB_OK;
38676 }
38677
38678 /*
38679 * XPath:
38680 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as-all-replace
38681 */
38682 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
38683 struct nb_cb_modify_args *args)
38684 {
38685 switch (args->event) {
38686 case NB_EV_VALIDATE:
38687 case NB_EV_PREPARE:
38688 case NB_EV_ABORT:
38689 return NB_OK;
38690 case NB_EV_APPLY:
38691 return bgp_peer_group_afi_safi_flag_modify(
38692 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
38693 yang_dnode_get_bool(args->dnode, NULL));
38694
38695 break;
38696 }
38697
38698 return NB_OK;
38699 }
38700
38701 /*
38702 * XPath:
38703 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as
38704 */
38705 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_modify(
38706 struct nb_cb_modify_args *args)
38707 {
38708 switch (args->event) {
38709 case NB_EV_VALIDATE:
38710 case NB_EV_PREPARE:
38711 case NB_EV_ABORT:
38712 return NB_OK;
38713 case NB_EV_APPLY:
38714 return bgp_peer_group_afi_safi_flag_modify(
38715 args, PEER_FLAG_REMOVE_PRIVATE_AS,
38716 yang_dnode_get_bool(args->dnode, NULL));
38717
38718 break;
38719 }
38720
38721 return NB_OK;
38722 }
38723
38724 /*
38725 * XPath:
38726 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/private-as/remove-private-as-replace
38727 */
38728 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_replace_modify(
38729 struct nb_cb_modify_args *args)
38730 {
38731 switch (args->event) {
38732 case NB_EV_VALIDATE:
38733 case NB_EV_PREPARE:
38734 case NB_EV_ABORT:
38735 return NB_OK;
38736 case NB_EV_APPLY:
38737 return bgp_peer_group_afi_safi_flag_modify(
38738 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
38739 yang_dnode_get_bool(args->dnode, NULL));
38740
38741 break;
38742 }
38743
38744 return NB_OK;
38745 }
38746
38747 /*
38748 * XPath:
38749 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/route-reflector/route-reflector-client
38750 */
38751 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_route_reflector_route_reflector_client_modify(
38752 struct nb_cb_modify_args *args)
38753 {
38754 switch (args->event) {
38755 case NB_EV_VALIDATE:
38756 case NB_EV_PREPARE:
38757 case NB_EV_ABORT:
38758 return NB_OK;
38759 case NB_EV_APPLY:
38760 return bgp_peer_group_afi_safi_flag_modify(
38761 args, PEER_FLAG_REFLECTOR_CLIENT,
38762 yang_dnode_get_bool(args->dnode, NULL));
38763
38764 break;
38765 }
38766
38767 return NB_OK;
38768 }
38769
38770 /*
38771 * XPath:
38772 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/route-server/route-server-client
38773 */
38774 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_route_server_route_server_client_modify(
38775 struct nb_cb_modify_args *args)
38776 {
38777 switch (args->event) {
38778 case NB_EV_VALIDATE:
38779 case NB_EV_PREPARE:
38780 case NB_EV_ABORT:
38781 return NB_OK;
38782 case NB_EV_APPLY:
38783 return bgp_peer_group_afi_safi_flag_modify(
38784 args, PEER_FLAG_RSERVER_CLIENT,
38785 yang_dnode_get_bool(args->dnode, NULL));
38786
38787 break;
38788 }
38789
38790 return NB_OK;
38791 }
38792
38793 /*
38794 * XPath:
38795 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/send-community/send-community
38796 */
38797 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_send_community_send_community_modify(
38798 struct nb_cb_modify_args *args)
38799 {
38800 switch (args->event) {
38801 case NB_EV_VALIDATE:
38802 case NB_EV_PREPARE:
38803 case NB_EV_ABORT:
38804 return NB_OK;
38805 case NB_EV_APPLY:
38806 return bgp_peer_group_afi_safi_flag_modify(
38807 args, PEER_FLAG_SEND_COMMUNITY,
38808 yang_dnode_get_bool(args->dnode, NULL));
38809
38810 break;
38811 }
38812
38813 return NB_OK;
38814 }
38815
38816 /*
38817 * XPath:
38818 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/send-community/send-ext-community
38819 */
38820 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_send_community_send_ext_community_modify(
38821 struct nb_cb_modify_args *args)
38822 {
38823 switch (args->event) {
38824 case NB_EV_VALIDATE:
38825 case NB_EV_PREPARE:
38826 case NB_EV_ABORT:
38827 return NB_OK;
38828 case NB_EV_APPLY:
38829 return bgp_peer_group_afi_safi_flag_modify(
38830 args, PEER_FLAG_SEND_EXT_COMMUNITY,
38831 yang_dnode_get_bool(args->dnode, NULL));
38832
38833 break;
38834 }
38835
38836 return NB_OK;
38837 }
38838
38839 /*
38840 * XPath:
38841 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/send-community/send-large-community
38842 */
38843 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_send_community_send_large_community_modify(
38844 struct nb_cb_modify_args *args)
38845 {
38846 switch (args->event) {
38847 case NB_EV_VALIDATE:
38848 case NB_EV_PREPARE:
38849 case NB_EV_ABORT:
38850 return NB_OK;
38851 case NB_EV_APPLY:
38852 return bgp_peer_group_afi_safi_flag_modify(
38853 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
38854 yang_dnode_get_bool(args->dnode, NULL));
38855
38856 break;
38857 }
38858
38859 return NB_OK;
38860 }
38861
38862 /*
38863 * XPath:
38864 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/soft-reconfiguration
38865 */
38866 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_soft_reconfiguration_modify(
38867 struct nb_cb_modify_args *args)
38868 {
38869 switch (args->event) {
38870 case NB_EV_VALIDATE:
38871 case NB_EV_PREPARE:
38872 case NB_EV_ABORT:
38873 return NB_OK;
38874 case NB_EV_APPLY:
38875 return bgp_peer_group_afi_safi_flag_modify(
38876 args, PEER_FLAG_SOFT_RECONFIG,
38877 yang_dnode_get_bool(args->dnode, NULL));
38878
38879 break;
38880 }
38881
38882 return NB_OK;
38883 }
38884
38885 /*
38886 * XPath:
38887 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/weight/weight-attribute
38888 */
38889 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_modify(
38890 struct nb_cb_modify_args *args)
38891 {
38892 switch (args->event) {
38893 case NB_EV_VALIDATE:
38894 case NB_EV_PREPARE:
38895 case NB_EV_ABORT:
38896 return NB_OK;
38897 case NB_EV_APPLY:
38898 return bgp_peer_group_afi_safi_weight_modify(args);
38899
38900 break;
38901 }
38902
38903 return NB_OK;
38904 }
38905
38906 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_destroy(
38907 struct nb_cb_destroy_args *args)
38908 {
38909 switch (args->event) {
38910 case NB_EV_VALIDATE:
38911 case NB_EV_PREPARE:
38912 case NB_EV_ABORT:
38913 return NB_OK;
38914 case NB_EV_APPLY:
38915 return bgp_peer_group_afi_safi_weight_destroy(args);
38916
38917 break;
38918 }
38919
38920 return NB_OK;
38921 }
38922
38923 /*
38924 * XPath:
38925 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/filter-config/rmap-import
38926 */
38927 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_modify(
38928 struct nb_cb_modify_args *args)
38929 {
38930 switch (args->event) {
38931 case NB_EV_VALIDATE:
38932 case NB_EV_PREPARE:
38933 case NB_EV_ABORT:
38934 break;
38935 case NB_EV_APPLY:
38936 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
38937 }
38938
38939 return NB_OK;
38940 }
38941
38942 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_destroy(
38943 struct nb_cb_destroy_args *args)
38944 {
38945 switch (args->event) {
38946 case NB_EV_VALIDATE:
38947 case NB_EV_PREPARE:
38948 case NB_EV_ABORT:
38949 break;
38950 case NB_EV_APPLY:
38951 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
38952 }
38953
38954 return NB_OK;
38955 }
38956
38957 /*
38958 * XPath:
38959 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/filter-config/rmap-export
38960 */
38961 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_modify(
38962 struct nb_cb_modify_args *args)
38963 {
38964 switch (args->event) {
38965 case NB_EV_VALIDATE:
38966 case NB_EV_PREPARE:
38967 case NB_EV_ABORT:
38968 break;
38969 case NB_EV_APPLY:
38970 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
38971 }
38972
38973 return NB_OK;
38974 }
38975
38976 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_destroy(
38977 struct nb_cb_destroy_args *args)
38978 {
38979 switch (args->event) {
38980 case NB_EV_VALIDATE:
38981 case NB_EV_PREPARE:
38982 case NB_EV_ABORT:
38983 break;
38984 case NB_EV_APPLY:
38985 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
38986 }
38987
38988 return NB_OK;
38989 }
38990
38991 /*
38992 * XPath:
38993 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/filter-config/plist-import
38994 */
38995 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_modify(
38996 struct nb_cb_modify_args *args)
38997 {
38998 switch (args->event) {
38999 case NB_EV_VALIDATE:
39000 case NB_EV_PREPARE:
39001 case NB_EV_ABORT:
39002 break;
39003 case NB_EV_APPLY:
39004 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
39005 }
39006
39007 return NB_OK;
39008 }
39009
39010 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_destroy(
39011 struct nb_cb_destroy_args *args)
39012 {
39013 switch (args->event) {
39014 case NB_EV_VALIDATE:
39015 case NB_EV_PREPARE:
39016 case NB_EV_ABORT:
39017 break;
39018 case NB_EV_APPLY:
39019 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
39020 }
39021
39022 return NB_OK;
39023 }
39024
39025 /*
39026 * XPath:
39027 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/filter-config/plist-export
39028 */
39029 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_modify(
39030 struct nb_cb_modify_args *args)
39031 {
39032 switch (args->event) {
39033 case NB_EV_VALIDATE:
39034 case NB_EV_PREPARE:
39035 case NB_EV_ABORT:
39036 break;
39037 case NB_EV_APPLY:
39038 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
39039 }
39040
39041 return NB_OK;
39042 }
39043
39044 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_destroy(
39045 struct nb_cb_destroy_args *args)
39046 {
39047 switch (args->event) {
39048 case NB_EV_VALIDATE:
39049 case NB_EV_PREPARE:
39050 case NB_EV_ABORT:
39051 break;
39052 case NB_EV_APPLY:
39053 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
39054 }
39055
39056 return NB_OK;
39057 }
39058
39059 /*
39060 * XPath:
39061 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/filter-config/access-list-import
39062 */
39063 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_modify(
39064 struct nb_cb_modify_args *args)
39065 {
39066 switch (args->event) {
39067 case NB_EV_VALIDATE:
39068 case NB_EV_PREPARE:
39069 case NB_EV_ABORT:
39070 case NB_EV_APPLY:
39071 /* TODO: implement me. */
39072 break;
39073 }
39074
39075 return NB_OK;
39076 }
39077
39078 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_destroy(
39079 struct nb_cb_destroy_args *args)
39080 {
39081 switch (args->event) {
39082 case NB_EV_VALIDATE:
39083 case NB_EV_PREPARE:
39084 case NB_EV_ABORT:
39085 case NB_EV_APPLY:
39086 /* TODO: implement me. */
39087 break;
39088 }
39089
39090 return NB_OK;
39091 }
39092
39093 /*
39094 * XPath:
39095 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/filter-config/access-list-export
39096 */
39097 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_modify(
39098 struct nb_cb_modify_args *args)
39099 {
39100 switch (args->event) {
39101 case NB_EV_VALIDATE:
39102 case NB_EV_PREPARE:
39103 case NB_EV_ABORT:
39104 case NB_EV_APPLY:
39105 /* TODO: implement me. */
39106 break;
39107 }
39108
39109 return NB_OK;
39110 }
39111
39112 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_destroy(
39113 struct nb_cb_destroy_args *args)
39114 {
39115 switch (args->event) {
39116 case NB_EV_VALIDATE:
39117 case NB_EV_PREPARE:
39118 case NB_EV_ABORT:
39119 case NB_EV_APPLY:
39120 /* TODO: implement me. */
39121 break;
39122 }
39123
39124 return NB_OK;
39125 }
39126
39127 /*
39128 * XPath:
39129 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/filter-config/as-path-filter-list-import
39130 */
39131 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_modify(
39132 struct nb_cb_modify_args *args)
39133 {
39134 switch (args->event) {
39135 case NB_EV_VALIDATE:
39136 case NB_EV_PREPARE:
39137 case NB_EV_ABORT:
39138 case NB_EV_APPLY:
39139 /* TODO: implement me. */
39140 break;
39141 }
39142
39143 return NB_OK;
39144 }
39145
39146 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_destroy(
39147 struct nb_cb_destroy_args *args)
39148 {
39149 switch (args->event) {
39150 case NB_EV_VALIDATE:
39151 case NB_EV_PREPARE:
39152 case NB_EV_ABORT:
39153 case NB_EV_APPLY:
39154 /* TODO: implement me. */
39155 break;
39156 }
39157
39158 return NB_OK;
39159 }
39160
39161 /*
39162 * XPath:
39163 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/filter-config/as-path-filter-list-export
39164 */
39165 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_modify(
39166 struct nb_cb_modify_args *args)
39167 {
39168 switch (args->event) {
39169 case NB_EV_VALIDATE:
39170 case NB_EV_PREPARE:
39171 case NB_EV_ABORT:
39172 case NB_EV_APPLY:
39173 /* TODO: implement me. */
39174 break;
39175 }
39176
39177 return NB_OK;
39178 }
39179
39180 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_destroy(
39181 struct nb_cb_destroy_args *args)
39182 {
39183 switch (args->event) {
39184 case NB_EV_VALIDATE:
39185 case NB_EV_PREPARE:
39186 case NB_EV_ABORT:
39187 case NB_EV_APPLY:
39188 /* TODO: implement me. */
39189 break;
39190 }
39191
39192 return NB_OK;
39193 }
39194
39195 /*
39196 * XPath:
39197 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/filter-config/unsuppress-map-import
39198 */
39199 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_modify(
39200 struct nb_cb_modify_args *args)
39201 {
39202 switch (args->event) {
39203 case NB_EV_VALIDATE:
39204 case NB_EV_PREPARE:
39205 case NB_EV_ABORT:
39206 case NB_EV_APPLY:
39207 /* TODO: implement me. */
39208 break;
39209 }
39210
39211 return NB_OK;
39212 }
39213
39214 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_destroy(
39215 struct nb_cb_destroy_args *args)
39216 {
39217 switch (args->event) {
39218 case NB_EV_VALIDATE:
39219 case NB_EV_PREPARE:
39220 case NB_EV_ABORT:
39221 case NB_EV_APPLY:
39222 /* TODO: implement me. */
39223 break;
39224 }
39225
39226 return NB_OK;
39227 }
39228
39229 /*
39230 * XPath:
39231 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/filter-config/unsuppress-map-export
39232 */
39233 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_modify(
39234 struct nb_cb_modify_args *args)
39235 {
39236 switch (args->event) {
39237 case NB_EV_VALIDATE:
39238 case NB_EV_PREPARE:
39239 case NB_EV_ABORT:
39240 case NB_EV_APPLY:
39241 /* TODO: implement me. */
39242 break;
39243 }
39244
39245 return NB_OK;
39246 }
39247
39248 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_destroy(
39249 struct nb_cb_destroy_args *args)
39250 {
39251 switch (args->event) {
39252 case NB_EV_VALIDATE:
39253 case NB_EV_PREPARE:
39254 case NB_EV_ABORT:
39255 case NB_EV_APPLY:
39256 /* TODO: implement me. */
39257 break;
39258 }
39259
39260 return NB_OK;
39261 }
39262
39263 /*
39264 * XPath:
39265 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/add-paths/path-type
39266 */
39267 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_add_paths_path_type_modify(
39268 struct nb_cb_modify_args *args)
39269 {
39270 switch (args->event) {
39271 case NB_EV_VALIDATE:
39272 case NB_EV_PREPARE:
39273 case NB_EV_ABORT:
39274 case NB_EV_APPLY:
39275 /* TODO: implement me. */
39276 break;
39277 }
39278
39279 return NB_OK;
39280 }
39281
39282 /*
39283 * XPath:
39284 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/as-path-options/allow-own-as
39285 */
39286 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_modify(
39287 struct nb_cb_modify_args *args)
39288 {
39289 switch (args->event) {
39290 case NB_EV_VALIDATE:
39291 case NB_EV_PREPARE:
39292 case NB_EV_ABORT:
39293 case NB_EV_APPLY:
39294 /* TODO: implement me. */
39295 break;
39296 }
39297
39298 return NB_OK;
39299 }
39300
39301 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_destroy(
39302 struct nb_cb_destroy_args *args)
39303 {
39304 switch (args->event) {
39305 case NB_EV_VALIDATE:
39306 case NB_EV_PREPARE:
39307 case NB_EV_ABORT:
39308 case NB_EV_APPLY:
39309 /* TODO: implement me. */
39310 break;
39311 }
39312
39313 return NB_OK;
39314 }
39315
39316 /*
39317 * XPath:
39318 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/as-path-options/allow-own-origin-as
39319 */
39320 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_modify(
39321 struct nb_cb_modify_args *args)
39322 {
39323 switch (args->event) {
39324 case NB_EV_VALIDATE:
39325 case NB_EV_PREPARE:
39326 case NB_EV_ABORT:
39327 case NB_EV_APPLY:
39328 /* TODO: implement me. */
39329 break;
39330 }
39331
39332 return NB_OK;
39333 }
39334
39335 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_destroy(
39336 struct nb_cb_destroy_args *args)
39337 {
39338 switch (args->event) {
39339 case NB_EV_VALIDATE:
39340 case NB_EV_PREPARE:
39341 case NB_EV_ABORT:
39342 case NB_EV_APPLY:
39343 /* TODO: implement me. */
39344 break;
39345 }
39346
39347 return NB_OK;
39348 }
39349
39350 /*
39351 * XPath:
39352 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/as-path-options/replace-peer-as
39353 */
39354 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_as_path_options_replace_peer_as_modify(
39355 struct nb_cb_modify_args *args)
39356 {
39357 switch (args->event) {
39358 case NB_EV_VALIDATE:
39359 case NB_EV_PREPARE:
39360 case NB_EV_ABORT:
39361 return NB_OK;
39362 case NB_EV_APPLY:
39363 return bgp_peer_group_afi_safi_flag_modify(
39364 args, PEER_FLAG_AS_OVERRIDE,
39365 yang_dnode_get_bool(args->dnode, NULL));
39366
39367 break;
39368 }
39369
39370 return NB_OK;
39371 }
39372
39373 /*
39374 * XPath:
39375 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/default-originate/originate
39376 */
39377 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_default_originate_originate_modify(
39378 struct nb_cb_modify_args *args)
39379 {
39380 switch (args->event) {
39381 case NB_EV_VALIDATE:
39382 case NB_EV_PREPARE:
39383 case NB_EV_ABORT:
39384 case NB_EV_APPLY:
39385 /* TODO: implement me. */
39386 break;
39387 }
39388
39389 return NB_OK;
39390 }
39391
39392 /*
39393 * XPath:
39394 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/default-originate/route-map
39395 */
39396 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_modify(
39397 struct nb_cb_modify_args *args)
39398 {
39399 switch (args->event) {
39400 case NB_EV_VALIDATE:
39401 case NB_EV_PREPARE:
39402 case NB_EV_ABORT:
39403 case NB_EV_APPLY:
39404 /* TODO: implement me. */
39405 break;
39406 }
39407
39408 return NB_OK;
39409 }
39410
39411 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_destroy(
39412 struct nb_cb_destroy_args *args)
39413 {
39414 switch (args->event) {
39415 case NB_EV_VALIDATE:
39416 case NB_EV_PREPARE:
39417 case NB_EV_ABORT:
39418 case NB_EV_APPLY:
39419 /* TODO: implement me. */
39420 break;
39421 }
39422
39423 return NB_OK;
39424 }
39425
39426 /*
39427 * XPath:
39428 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/attr-unchanged/as-path-unchanged
39429 */
39430 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_as_path_unchanged_modify(
39431 struct nb_cb_modify_args *args)
39432 {
39433 switch (args->event) {
39434 case NB_EV_VALIDATE:
39435 case NB_EV_PREPARE:
39436 case NB_EV_ABORT:
39437 return NB_OK;
39438 case NB_EV_APPLY:
39439 return bgp_peer_group_afi_safi_flag_modify(
39440 args, PEER_FLAG_AS_PATH_UNCHANGED,
39441 yang_dnode_get_bool(args->dnode, NULL));
39442
39443 break;
39444 }
39445
39446 return NB_OK;
39447 }
39448
39449 /*
39450 * XPath:
39451 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/attr-unchanged/next-hop-unchanged
39452 */
39453 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_next_hop_unchanged_modify(
39454 struct nb_cb_modify_args *args)
39455 {
39456 switch (args->event) {
39457 case NB_EV_VALIDATE:
39458 case NB_EV_PREPARE:
39459 case NB_EV_ABORT:
39460 return NB_OK;
39461 case NB_EV_APPLY:
39462 return bgp_peer_group_afi_safi_flag_modify(
39463 args, PEER_FLAG_NEXTHOP_UNCHANGED,
39464 yang_dnode_get_bool(args->dnode, NULL));
39465
39466 break;
39467 }
39468
39469 return NB_OK;
39470 }
39471
39472 /*
39473 * XPath:
39474 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/attr-unchanged/med-unchanged
39475 */
39476 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_med_unchanged_modify(
39477 struct nb_cb_modify_args *args)
39478 {
39479 switch (args->event) {
39480 case NB_EV_VALIDATE:
39481 case NB_EV_PREPARE:
39482 case NB_EV_ABORT:
39483 return NB_OK;
39484 case NB_EV_APPLY:
39485 return bgp_peer_group_afi_safi_flag_modify(
39486 args, PEER_FLAG_MED_UNCHANGED,
39487 yang_dnode_get_bool(args->dnode, NULL));
39488
39489 break;
39490 }
39491
39492 return NB_OK;
39493 }
39494
39495 /*
39496 * XPath:
39497 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-send
39498 */
39499 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_modify(
39500 struct nb_cb_modify_args *args)
39501 {
39502 switch (args->event) {
39503 case NB_EV_VALIDATE:
39504 case NB_EV_PREPARE:
39505 case NB_EV_ABORT:
39506 case NB_EV_APPLY:
39507 /* TODO: implement me. */
39508 break;
39509 }
39510
39511 return NB_OK;
39512 }
39513
39514 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_destroy(
39515 struct nb_cb_destroy_args *args)
39516 {
39517 switch (args->event) {
39518 case NB_EV_VALIDATE:
39519 case NB_EV_PREPARE:
39520 case NB_EV_ABORT:
39521 case NB_EV_APPLY:
39522 /* TODO: implement me. */
39523 break;
39524 }
39525
39526 return NB_OK;
39527 }
39528
39529 /*
39530 * XPath:
39531 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-receive
39532 */
39533 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_modify(
39534 struct nb_cb_modify_args *args)
39535 {
39536 switch (args->event) {
39537 case NB_EV_VALIDATE:
39538 case NB_EV_PREPARE:
39539 case NB_EV_ABORT:
39540 case NB_EV_APPLY:
39541 /* TODO: implement me. */
39542 break;
39543 }
39544
39545 return NB_OK;
39546 }
39547
39548 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_destroy(
39549 struct nb_cb_destroy_args *args)
39550 {
39551 switch (args->event) {
39552 case NB_EV_VALIDATE:
39553 case NB_EV_PREPARE:
39554 case NB_EV_ABORT:
39555 case NB_EV_APPLY:
39556 /* TODO: implement me. */
39557 break;
39558 }
39559
39560 return NB_OK;
39561 }
39562
39563 /*
39564 * XPath:
39565 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-both
39566 */
39567 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_modify(
39568 struct nb_cb_modify_args *args)
39569 {
39570 switch (args->event) {
39571 case NB_EV_VALIDATE:
39572 case NB_EV_PREPARE:
39573 case NB_EV_ABORT:
39574 case NB_EV_APPLY:
39575 /* TODO: implement me. */
39576 break;
39577 }
39578
39579 return NB_OK;
39580 }
39581
39582 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_destroy(
39583 struct nb_cb_destroy_args *args)
39584 {
39585 switch (args->event) {
39586 case NB_EV_VALIDATE:
39587 case NB_EV_PREPARE:
39588 case NB_EV_ABORT:
39589 case NB_EV_APPLY:
39590 /* TODO: implement me. */
39591 break;
39592 }
39593
39594 return NB_OK;
39595 }
39596
39597 /*
39598 * XPath:
39599 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list
39600 */
39601 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_create(
39602 struct nb_cb_create_args *args)
39603 {
39604 switch (args->event) {
39605 case NB_EV_VALIDATE:
39606 case NB_EV_PREPARE:
39607 case NB_EV_ABORT:
39608 case NB_EV_APPLY:
39609 /* TODO: implement me. */
39610 break;
39611 }
39612
39613 return NB_OK;
39614 }
39615
39616 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_destroy(
39617 struct nb_cb_destroy_args *args)
39618 {
39619 switch (args->event) {
39620 case NB_EV_VALIDATE:
39621 case NB_EV_PREPARE:
39622 case NB_EV_ABORT:
39623 return NB_OK;
39624 case NB_EV_APPLY:
39625 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
39626 }
39627
39628 return NB_OK;
39629 }
39630
39631 /*
39632 * XPath:
39633 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/max-prefixes
39634 */
39635 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_max_prefixes_modify(
39636 struct nb_cb_modify_args *args)
39637 {
39638 switch (args->event) {
39639 case NB_EV_VALIDATE:
39640 case NB_EV_PREPARE:
39641 case NB_EV_ABORT:
39642 case NB_EV_APPLY:
39643 /* TODO: implement me. */
39644 break;
39645 }
39646
39647 return NB_OK;
39648 }
39649
39650 /*
39651 * XPath:
39652 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/force-check
39653 */
39654 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_force_check_modify(
39655 struct nb_cb_modify_args *args)
39656 {
39657 switch (args->event) {
39658 case NB_EV_VALIDATE:
39659 case NB_EV_PREPARE:
39660 case NB_EV_ABORT:
39661 case NB_EV_APPLY:
39662 /* TODO: implement me. */
39663 break;
39664 }
39665
39666 return NB_OK;
39667 }
39668
39669 /*
39670 * XPath:
39671 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/warning-only
39672 */
39673 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_modify(
39674 struct nb_cb_modify_args *args)
39675 {
39676 switch (args->event) {
39677 case NB_EV_VALIDATE:
39678 case NB_EV_PREPARE:
39679 case NB_EV_ABORT:
39680 case NB_EV_APPLY:
39681 /* TODO: implement me. */
39682 break;
39683 }
39684
39685 return NB_OK;
39686 }
39687
39688 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_destroy(
39689 struct nb_cb_destroy_args *args)
39690 {
39691 switch (args->event) {
39692 case NB_EV_VALIDATE:
39693 case NB_EV_PREPARE:
39694 case NB_EV_ABORT:
39695 case NB_EV_APPLY:
39696 /* TODO: implement me. */
39697 break;
39698 }
39699
39700 return NB_OK;
39701 }
39702
39703 /*
39704 * XPath:
39705 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/restart-timer
39706 */
39707 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_modify(
39708 struct nb_cb_modify_args *args)
39709 {
39710 switch (args->event) {
39711 case NB_EV_VALIDATE:
39712 case NB_EV_PREPARE:
39713 case NB_EV_ABORT:
39714 case NB_EV_APPLY:
39715 /* TODO: implement me. */
39716 break;
39717 }
39718
39719 return NB_OK;
39720 }
39721
39722 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
39723 struct nb_cb_destroy_args *args)
39724 {
39725 switch (args->event) {
39726 case NB_EV_VALIDATE:
39727 case NB_EV_PREPARE:
39728 case NB_EV_ABORT:
39729 case NB_EV_APPLY:
39730 /* TODO: implement me. */
39731 break;
39732 }
39733
39734 return NB_OK;
39735 }
39736
39737 /*
39738 * XPath:
39739 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/shutdown-threshold-pct
39740 */
39741 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
39742 struct nb_cb_modify_args *args)
39743 {
39744 switch (args->event) {
39745 case NB_EV_VALIDATE:
39746 case NB_EV_PREPARE:
39747 case NB_EV_ABORT:
39748 case NB_EV_APPLY:
39749 /* TODO: implement me. */
39750 break;
39751 }
39752
39753 return NB_OK;
39754 }
39755
39756 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
39757 struct nb_cb_destroy_args *args)
39758 {
39759 switch (args->event) {
39760 case NB_EV_VALIDATE:
39761 case NB_EV_PREPARE:
39762 case NB_EV_ABORT:
39763 case NB_EV_APPLY:
39764 /* TODO: implement me. */
39765 break;
39766 }
39767
39768 return NB_OK;
39769 }
39770
39771 /*
39772 * XPath:
39773 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
39774 */
39775 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
39776 struct nb_cb_modify_args *args)
39777 {
39778 switch (args->event) {
39779 case NB_EV_VALIDATE:
39780 case NB_EV_PREPARE:
39781 case NB_EV_ABORT:
39782 case NB_EV_APPLY:
39783 /* TODO: implement me. */
39784 break;
39785 }
39786
39787 return NB_OK;
39788 }
39789
39790 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
39791 struct nb_cb_destroy_args *args)
39792 {
39793 switch (args->event) {
39794 case NB_EV_VALIDATE:
39795 case NB_EV_PREPARE:
39796 case NB_EV_ABORT:
39797 case NB_EV_APPLY:
39798 /* TODO: implement me. */
39799 break;
39800 }
39801
39802 return NB_OK;
39803 }
39804
39805 /*
39806 * XPath:
39807 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tr-restart-timer
39808 */
39809 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
39810 struct nb_cb_modify_args *args)
39811 {
39812 switch (args->event) {
39813 case NB_EV_VALIDATE:
39814 case NB_EV_PREPARE:
39815 case NB_EV_ABORT:
39816 case NB_EV_APPLY:
39817 /* TODO: implement me. */
39818 break;
39819 }
39820
39821 return NB_OK;
39822 }
39823
39824 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
39825 struct nb_cb_destroy_args *args)
39826 {
39827 switch (args->event) {
39828 case NB_EV_VALIDATE:
39829 case NB_EV_PREPARE:
39830 case NB_EV_ABORT:
39831 case NB_EV_APPLY:
39832 /* TODO: implement me. */
39833 break;
39834 }
39835
39836 return NB_OK;
39837 }
39838
39839 /*
39840 * XPath:
39841 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
39842 */
39843 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
39844 struct nb_cb_modify_args *args)
39845 {
39846 switch (args->event) {
39847 case NB_EV_VALIDATE:
39848 case NB_EV_PREPARE:
39849 case NB_EV_ABORT:
39850 case NB_EV_APPLY:
39851 /* TODO: implement me. */
39852 break;
39853 }
39854
39855 return NB_OK;
39856 }
39857
39858 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
39859 struct nb_cb_destroy_args *args)
39860 {
39861 switch (args->event) {
39862 case NB_EV_VALIDATE:
39863 case NB_EV_PREPARE:
39864 case NB_EV_ABORT:
39865 case NB_EV_APPLY:
39866 /* TODO: implement me. */
39867 break;
39868 }
39869
39870 return NB_OK;
39871 }
39872
39873 /*
39874 * XPath:
39875 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list/options/tw-warning-only
39876 */
39877 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
39878 struct nb_cb_modify_args *args)
39879 {
39880 switch (args->event) {
39881 case NB_EV_VALIDATE:
39882 case NB_EV_PREPARE:
39883 case NB_EV_ABORT:
39884 case NB_EV_APPLY:
39885 /* TODO: implement me. */
39886 break;
39887 }
39888
39889 return NB_OK;
39890 }
39891
39892 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
39893 struct nb_cb_destroy_args *args)
39894 {
39895 switch (args->event) {
39896 case NB_EV_VALIDATE:
39897 case NB_EV_PREPARE:
39898 case NB_EV_ABORT:
39899 case NB_EV_APPLY:
39900 /* TODO: implement me. */
39901 break;
39902 }
39903
39904 return NB_OK;
39905 }
39906
39907 /*
39908 * XPath:
39909 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/nexthop-self/next-hop-self
39910 */
39911 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_modify(
39912 struct nb_cb_modify_args *args)
39913 {
39914 switch (args->event) {
39915 case NB_EV_VALIDATE:
39916 case NB_EV_PREPARE:
39917 case NB_EV_ABORT:
39918 return NB_OK;
39919 case NB_EV_APPLY:
39920 return bgp_peer_group_afi_safi_flag_modify(
39921 args, PEER_FLAG_NEXTHOP_SELF,
39922 yang_dnode_get_bool(args->dnode, NULL));
39923
39924 break;
39925 }
39926
39927 return NB_OK;
39928 }
39929
39930 /*
39931 * XPath:
39932 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/nexthop-self/next-hop-self-force
39933 */
39934 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_force_modify(
39935 struct nb_cb_modify_args *args)
39936 {
39937 switch (args->event) {
39938 case NB_EV_VALIDATE:
39939 case NB_EV_PREPARE:
39940 case NB_EV_ABORT:
39941 return NB_OK;
39942 case NB_EV_APPLY:
39943 return bgp_peer_group_afi_safi_flag_modify(
39944 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
39945 yang_dnode_get_bool(args->dnode, NULL));
39946
39947 break;
39948 }
39949
39950 return NB_OK;
39951 }
39952
39953 /*
39954 * XPath:
39955 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as-all
39956 */
39957 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_modify(
39958 struct nb_cb_modify_args *args)
39959 {
39960 switch (args->event) {
39961 case NB_EV_VALIDATE:
39962 case NB_EV_PREPARE:
39963 case NB_EV_ABORT:
39964 return NB_OK;
39965 case NB_EV_APPLY:
39966 return bgp_peer_group_afi_safi_flag_modify(
39967 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
39968 yang_dnode_get_bool(args->dnode, NULL));
39969
39970 break;
39971 }
39972
39973 return NB_OK;
39974 }
39975
39976 /*
39977 * XPath:
39978 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as-all-replace
39979 */
39980 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_replace_modify(
39981 struct nb_cb_modify_args *args)
39982 {
39983 switch (args->event) {
39984 case NB_EV_VALIDATE:
39985 case NB_EV_PREPARE:
39986 case NB_EV_ABORT:
39987 return NB_OK;
39988 case NB_EV_APPLY:
39989 return bgp_peer_group_afi_safi_flag_modify(
39990 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
39991 yang_dnode_get_bool(args->dnode, NULL));
39992
39993 break;
39994 }
39995
39996 return NB_OK;
39997 }
39998
39999 /*
40000 * XPath:
40001 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as
40002 */
40003 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_modify(
40004 struct nb_cb_modify_args *args)
40005 {
40006 switch (args->event) {
40007 case NB_EV_VALIDATE:
40008 case NB_EV_PREPARE:
40009 case NB_EV_ABORT:
40010 return NB_OK;
40011 case NB_EV_APPLY:
40012 return bgp_peer_group_afi_safi_flag_modify(
40013 args, PEER_FLAG_REMOVE_PRIVATE_AS,
40014 yang_dnode_get_bool(args->dnode, NULL));
40015
40016 break;
40017 }
40018
40019 return NB_OK;
40020 }
40021
40022 /*
40023 * XPath:
40024 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/private-as/remove-private-as-replace
40025 */
40026 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_replace_modify(
40027 struct nb_cb_modify_args *args)
40028 {
40029 switch (args->event) {
40030 case NB_EV_VALIDATE:
40031 case NB_EV_PREPARE:
40032 case NB_EV_ABORT:
40033 return NB_OK;
40034 case NB_EV_APPLY:
40035 return bgp_peer_group_afi_safi_flag_modify(
40036 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
40037 yang_dnode_get_bool(args->dnode, NULL));
40038
40039 break;
40040 }
40041
40042 return NB_OK;
40043 }
40044
40045 /*
40046 * XPath:
40047 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/route-reflector/route-reflector-client
40048 */
40049 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_route_reflector_route_reflector_client_modify(
40050 struct nb_cb_modify_args *args)
40051 {
40052 switch (args->event) {
40053 case NB_EV_VALIDATE:
40054 case NB_EV_PREPARE:
40055 case NB_EV_ABORT:
40056 return NB_OK;
40057 case NB_EV_APPLY:
40058 return bgp_peer_group_afi_safi_flag_modify(
40059 args, PEER_FLAG_REFLECTOR_CLIENT,
40060 yang_dnode_get_bool(args->dnode, NULL));
40061
40062 break;
40063 }
40064
40065 return NB_OK;
40066 }
40067
40068 /*
40069 * XPath:
40070 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/route-server/route-server-client
40071 */
40072 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_route_server_route_server_client_modify(
40073 struct nb_cb_modify_args *args)
40074 {
40075 switch (args->event) {
40076 case NB_EV_VALIDATE:
40077 case NB_EV_PREPARE:
40078 case NB_EV_ABORT:
40079 return NB_OK;
40080 case NB_EV_APPLY:
40081 return bgp_peer_group_afi_safi_flag_modify(
40082 args, PEER_FLAG_RSERVER_CLIENT,
40083 yang_dnode_get_bool(args->dnode, NULL));
40084
40085 break;
40086 }
40087
40088 return NB_OK;
40089 }
40090
40091 /*
40092 * XPath:
40093 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/send-community/send-community
40094 */
40095 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_send_community_send_community_modify(
40096 struct nb_cb_modify_args *args)
40097 {
40098 switch (args->event) {
40099 case NB_EV_VALIDATE:
40100 case NB_EV_PREPARE:
40101 case NB_EV_ABORT:
40102 return NB_OK;
40103 case NB_EV_APPLY:
40104 return bgp_peer_group_afi_safi_flag_modify(
40105 args, PEER_FLAG_SEND_COMMUNITY,
40106 yang_dnode_get_bool(args->dnode, NULL));
40107
40108 break;
40109 }
40110
40111 return NB_OK;
40112 }
40113
40114 /*
40115 * XPath:
40116 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/send-community/send-ext-community
40117 */
40118 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_send_community_send_ext_community_modify(
40119 struct nb_cb_modify_args *args)
40120 {
40121 switch (args->event) {
40122 case NB_EV_VALIDATE:
40123 case NB_EV_PREPARE:
40124 case NB_EV_ABORT:
40125 return NB_OK;
40126 case NB_EV_APPLY:
40127 return bgp_peer_group_afi_safi_flag_modify(
40128 args, PEER_FLAG_SEND_EXT_COMMUNITY,
40129 yang_dnode_get_bool(args->dnode, NULL));
40130
40131 break;
40132 }
40133
40134 return NB_OK;
40135 }
40136
40137 /*
40138 * XPath:
40139 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/send-community/send-large-community
40140 */
40141 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_send_community_send_large_community_modify(
40142 struct nb_cb_modify_args *args)
40143 {
40144 switch (args->event) {
40145 case NB_EV_VALIDATE:
40146 case NB_EV_PREPARE:
40147 case NB_EV_ABORT:
40148 return NB_OK;
40149 case NB_EV_APPLY:
40150 return bgp_peer_group_afi_safi_flag_modify(
40151 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
40152 yang_dnode_get_bool(args->dnode, NULL));
40153
40154 break;
40155 }
40156
40157 return NB_OK;
40158 }
40159
40160 /*
40161 * XPath:
40162 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/soft-reconfiguration
40163 */
40164 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_soft_reconfiguration_modify(
40165 struct nb_cb_modify_args *args)
40166 {
40167 switch (args->event) {
40168 case NB_EV_VALIDATE:
40169 case NB_EV_PREPARE:
40170 case NB_EV_ABORT:
40171 return NB_OK;
40172 case NB_EV_APPLY:
40173 return bgp_peer_group_afi_safi_flag_modify(
40174 args, PEER_FLAG_SOFT_RECONFIG,
40175 yang_dnode_get_bool(args->dnode, NULL));
40176
40177 break;
40178 }
40179
40180 return NB_OK;
40181 }
40182
40183 /*
40184 * XPath:
40185 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/weight/weight-attribute
40186 */
40187 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_modify(
40188 struct nb_cb_modify_args *args)
40189 {
40190 switch (args->event) {
40191 case NB_EV_VALIDATE:
40192 case NB_EV_PREPARE:
40193 case NB_EV_ABORT:
40194 return NB_OK;
40195 case NB_EV_APPLY:
40196 return bgp_peer_group_afi_safi_weight_modify(args);
40197
40198 break;
40199 }
40200
40201 return NB_OK;
40202 }
40203
40204 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_destroy(
40205 struct nb_cb_destroy_args *args)
40206 {
40207 switch (args->event) {
40208 case NB_EV_VALIDATE:
40209 case NB_EV_PREPARE:
40210 case NB_EV_ABORT:
40211 return NB_OK;
40212 case NB_EV_APPLY:
40213 return bgp_peer_group_afi_safi_weight_destroy(args);
40214
40215 break;
40216 }
40217
40218 return NB_OK;
40219 }
40220
40221 /*
40222 * XPath:
40223 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/filter-config/rmap-import
40224 */
40225 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_modify(
40226 struct nb_cb_modify_args *args)
40227 {
40228 switch (args->event) {
40229 case NB_EV_VALIDATE:
40230 case NB_EV_PREPARE:
40231 case NB_EV_ABORT:
40232 break;
40233 case NB_EV_APPLY:
40234 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
40235 }
40236
40237 return NB_OK;
40238 }
40239
40240 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_destroy(
40241 struct nb_cb_destroy_args *args)
40242 {
40243 switch (args->event) {
40244 case NB_EV_VALIDATE:
40245 case NB_EV_PREPARE:
40246 case NB_EV_ABORT:
40247 break;
40248 case NB_EV_APPLY:
40249 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
40250 }
40251
40252 return NB_OK;
40253 }
40254
40255 /*
40256 * XPath:
40257 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/filter-config/rmap-export
40258 */
40259 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_modify(
40260 struct nb_cb_modify_args *args)
40261 {
40262 switch (args->event) {
40263 case NB_EV_VALIDATE:
40264 case NB_EV_PREPARE:
40265 case NB_EV_ABORT:
40266 break;
40267 case NB_EV_APPLY:
40268 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
40269 }
40270
40271 return NB_OK;
40272 }
40273
40274 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_destroy(
40275 struct nb_cb_destroy_args *args)
40276 {
40277 switch (args->event) {
40278 case NB_EV_VALIDATE:
40279 case NB_EV_PREPARE:
40280 case NB_EV_ABORT:
40281 break;
40282 case NB_EV_APPLY:
40283 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
40284 }
40285
40286 return NB_OK;
40287 }
40288
40289 /*
40290 * XPath:
40291 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/filter-config/plist-import
40292 */
40293 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_modify(
40294 struct nb_cb_modify_args *args)
40295 {
40296 switch (args->event) {
40297 case NB_EV_VALIDATE:
40298 case NB_EV_PREPARE:
40299 case NB_EV_ABORT:
40300 break;
40301 case NB_EV_APPLY:
40302 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
40303 }
40304
40305 return NB_OK;
40306 }
40307
40308 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_destroy(
40309 struct nb_cb_destroy_args *args)
40310 {
40311 switch (args->event) {
40312 case NB_EV_VALIDATE:
40313 case NB_EV_PREPARE:
40314 case NB_EV_ABORT:
40315 break;
40316 case NB_EV_APPLY:
40317 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
40318 }
40319
40320 return NB_OK;
40321 }
40322
40323 /*
40324 * XPath:
40325 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/filter-config/plist-export
40326 */
40327 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_modify(
40328 struct nb_cb_modify_args *args)
40329 {
40330 switch (args->event) {
40331 case NB_EV_VALIDATE:
40332 case NB_EV_PREPARE:
40333 case NB_EV_ABORT:
40334 break;
40335 case NB_EV_APPLY:
40336 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
40337 }
40338
40339 return NB_OK;
40340 }
40341
40342 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_destroy(
40343 struct nb_cb_destroy_args *args)
40344 {
40345 switch (args->event) {
40346 case NB_EV_VALIDATE:
40347 case NB_EV_PREPARE:
40348 case NB_EV_ABORT:
40349 break;
40350 case NB_EV_APPLY:
40351 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
40352 }
40353
40354 return NB_OK;
40355 }
40356
40357 /*
40358 * XPath:
40359 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/filter-config/access-list-import
40360 */
40361 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_modify(
40362 struct nb_cb_modify_args *args)
40363 {
40364 switch (args->event) {
40365 case NB_EV_VALIDATE:
40366 case NB_EV_PREPARE:
40367 case NB_EV_ABORT:
40368 case NB_EV_APPLY:
40369 /* TODO: implement me. */
40370 break;
40371 }
40372
40373 return NB_OK;
40374 }
40375
40376 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_destroy(
40377 struct nb_cb_destroy_args *args)
40378 {
40379 switch (args->event) {
40380 case NB_EV_VALIDATE:
40381 case NB_EV_PREPARE:
40382 case NB_EV_ABORT:
40383 case NB_EV_APPLY:
40384 /* TODO: implement me. */
40385 break;
40386 }
40387
40388 return NB_OK;
40389 }
40390
40391 /*
40392 * XPath:
40393 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/filter-config/access-list-export
40394 */
40395 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_modify(
40396 struct nb_cb_modify_args *args)
40397 {
40398 switch (args->event) {
40399 case NB_EV_VALIDATE:
40400 case NB_EV_PREPARE:
40401 case NB_EV_ABORT:
40402 case NB_EV_APPLY:
40403 /* TODO: implement me. */
40404 break;
40405 }
40406
40407 return NB_OK;
40408 }
40409
40410 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_destroy(
40411 struct nb_cb_destroy_args *args)
40412 {
40413 switch (args->event) {
40414 case NB_EV_VALIDATE:
40415 case NB_EV_PREPARE:
40416 case NB_EV_ABORT:
40417 case NB_EV_APPLY:
40418 /* TODO: implement me. */
40419 break;
40420 }
40421
40422 return NB_OK;
40423 }
40424
40425 /*
40426 * XPath:
40427 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/filter-config/as-path-filter-list-import
40428 */
40429 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_modify(
40430 struct nb_cb_modify_args *args)
40431 {
40432 switch (args->event) {
40433 case NB_EV_VALIDATE:
40434 case NB_EV_PREPARE:
40435 case NB_EV_ABORT:
40436 case NB_EV_APPLY:
40437 /* TODO: implement me. */
40438 break;
40439 }
40440
40441 return NB_OK;
40442 }
40443
40444 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_destroy(
40445 struct nb_cb_destroy_args *args)
40446 {
40447 switch (args->event) {
40448 case NB_EV_VALIDATE:
40449 case NB_EV_PREPARE:
40450 case NB_EV_ABORT:
40451 case NB_EV_APPLY:
40452 /* TODO: implement me. */
40453 break;
40454 }
40455
40456 return NB_OK;
40457 }
40458
40459 /*
40460 * XPath:
40461 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/filter-config/as-path-filter-list-export
40462 */
40463 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_modify(
40464 struct nb_cb_modify_args *args)
40465 {
40466 switch (args->event) {
40467 case NB_EV_VALIDATE:
40468 case NB_EV_PREPARE:
40469 case NB_EV_ABORT:
40470 case NB_EV_APPLY:
40471 /* TODO: implement me. */
40472 break;
40473 }
40474
40475 return NB_OK;
40476 }
40477
40478 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_destroy(
40479 struct nb_cb_destroy_args *args)
40480 {
40481 switch (args->event) {
40482 case NB_EV_VALIDATE:
40483 case NB_EV_PREPARE:
40484 case NB_EV_ABORT:
40485 case NB_EV_APPLY:
40486 /* TODO: implement me. */
40487 break;
40488 }
40489
40490 return NB_OK;
40491 }
40492
40493 /*
40494 * XPath:
40495 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/filter-config/unsuppress-map-import
40496 */
40497 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_modify(
40498 struct nb_cb_modify_args *args)
40499 {
40500 switch (args->event) {
40501 case NB_EV_VALIDATE:
40502 case NB_EV_PREPARE:
40503 case NB_EV_ABORT:
40504 case NB_EV_APPLY:
40505 /* TODO: implement me. */
40506 break;
40507 }
40508
40509 return NB_OK;
40510 }
40511
40512 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_destroy(
40513 struct nb_cb_destroy_args *args)
40514 {
40515 switch (args->event) {
40516 case NB_EV_VALIDATE:
40517 case NB_EV_PREPARE:
40518 case NB_EV_ABORT:
40519 case NB_EV_APPLY:
40520 /* TODO: implement me. */
40521 break;
40522 }
40523
40524 return NB_OK;
40525 }
40526
40527 /*
40528 * XPath:
40529 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/filter-config/unsuppress-map-export
40530 */
40531 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_modify(
40532 struct nb_cb_modify_args *args)
40533 {
40534 switch (args->event) {
40535 case NB_EV_VALIDATE:
40536 case NB_EV_PREPARE:
40537 case NB_EV_ABORT:
40538 case NB_EV_APPLY:
40539 /* TODO: implement me. */
40540 break;
40541 }
40542
40543 return NB_OK;
40544 }
40545
40546 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_destroy(
40547 struct nb_cb_destroy_args *args)
40548 {
40549 switch (args->event) {
40550 case NB_EV_VALIDATE:
40551 case NB_EV_PREPARE:
40552 case NB_EV_ABORT:
40553 case NB_EV_APPLY:
40554 /* TODO: implement me. */
40555 break;
40556 }
40557
40558 return NB_OK;
40559 }
40560
40561 /*
40562 * XPath:
40563 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/add-paths/path-type
40564 */
40565 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_add_paths_path_type_modify(
40566 struct nb_cb_modify_args *args)
40567 {
40568 switch (args->event) {
40569 case NB_EV_VALIDATE:
40570 case NB_EV_PREPARE:
40571 case NB_EV_ABORT:
40572 case NB_EV_APPLY:
40573 /* TODO: implement me. */
40574 break;
40575 }
40576
40577 return NB_OK;
40578 }
40579
40580 /*
40581 * XPath:
40582 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/as-path-options/allow-own-as
40583 */
40584 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_modify(
40585 struct nb_cb_modify_args *args)
40586 {
40587 switch (args->event) {
40588 case NB_EV_VALIDATE:
40589 case NB_EV_PREPARE:
40590 case NB_EV_ABORT:
40591 case NB_EV_APPLY:
40592 /* TODO: implement me. */
40593 break;
40594 }
40595
40596 return NB_OK;
40597 }
40598
40599 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_destroy(
40600 struct nb_cb_destroy_args *args)
40601 {
40602 switch (args->event) {
40603 case NB_EV_VALIDATE:
40604 case NB_EV_PREPARE:
40605 case NB_EV_ABORT:
40606 case NB_EV_APPLY:
40607 /* TODO: implement me. */
40608 break;
40609 }
40610
40611 return NB_OK;
40612 }
40613
40614 /*
40615 * XPath:
40616 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/as-path-options/allow-own-origin-as
40617 */
40618 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_modify(
40619 struct nb_cb_modify_args *args)
40620 {
40621 switch (args->event) {
40622 case NB_EV_VALIDATE:
40623 case NB_EV_PREPARE:
40624 case NB_EV_ABORT:
40625 case NB_EV_APPLY:
40626 /* TODO: implement me. */
40627 break;
40628 }
40629
40630 return NB_OK;
40631 }
40632
40633 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_destroy(
40634 struct nb_cb_destroy_args *args)
40635 {
40636 switch (args->event) {
40637 case NB_EV_VALIDATE:
40638 case NB_EV_PREPARE:
40639 case NB_EV_ABORT:
40640 case NB_EV_APPLY:
40641 /* TODO: implement me. */
40642 break;
40643 }
40644
40645 return NB_OK;
40646 }
40647
40648 /*
40649 * XPath:
40650 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/as-path-options/replace-peer-as
40651 */
40652 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_as_path_options_replace_peer_as_modify(
40653 struct nb_cb_modify_args *args)
40654 {
40655 switch (args->event) {
40656 case NB_EV_VALIDATE:
40657 case NB_EV_PREPARE:
40658 case NB_EV_ABORT:
40659 return NB_OK;
40660 case NB_EV_APPLY:
40661 return bgp_peer_group_afi_safi_flag_modify(
40662 args, PEER_FLAG_AS_OVERRIDE,
40663 yang_dnode_get_bool(args->dnode, NULL));
40664
40665 break;
40666 }
40667
40668 return NB_OK;
40669 }
40670
40671 /*
40672 * XPath:
40673 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/default-originate/originate
40674 */
40675 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_default_originate_originate_modify(
40676 struct nb_cb_modify_args *args)
40677 {
40678 switch (args->event) {
40679 case NB_EV_VALIDATE:
40680 case NB_EV_PREPARE:
40681 case NB_EV_ABORT:
40682 case NB_EV_APPLY:
40683 /* TODO: implement me. */
40684 break;
40685 }
40686
40687 return NB_OK;
40688 }
40689
40690 /*
40691 * XPath:
40692 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/default-originate/route-map
40693 */
40694 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_modify(
40695 struct nb_cb_modify_args *args)
40696 {
40697 switch (args->event) {
40698 case NB_EV_VALIDATE:
40699 case NB_EV_PREPARE:
40700 case NB_EV_ABORT:
40701 case NB_EV_APPLY:
40702 /* TODO: implement me. */
40703 break;
40704 }
40705
40706 return NB_OK;
40707 }
40708
40709 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_destroy(
40710 struct nb_cb_destroy_args *args)
40711 {
40712 switch (args->event) {
40713 case NB_EV_VALIDATE:
40714 case NB_EV_PREPARE:
40715 case NB_EV_ABORT:
40716 case NB_EV_APPLY:
40717 /* TODO: implement me. */
40718 break;
40719 }
40720
40721 return NB_OK;
40722 }
40723
40724 /*
40725 * XPath:
40726 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/attr-unchanged/as-path-unchanged
40727 */
40728 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_as_path_unchanged_modify(
40729 struct nb_cb_modify_args *args)
40730 {
40731 switch (args->event) {
40732 case NB_EV_VALIDATE:
40733 case NB_EV_PREPARE:
40734 case NB_EV_ABORT:
40735 return NB_OK;
40736 case NB_EV_APPLY:
40737 return bgp_peer_group_afi_safi_flag_modify(
40738 args, PEER_FLAG_AS_PATH_UNCHANGED,
40739 yang_dnode_get_bool(args->dnode, NULL));
40740
40741 break;
40742 }
40743
40744 return NB_OK;
40745 }
40746
40747 /*
40748 * XPath:
40749 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/attr-unchanged/next-hop-unchanged
40750 */
40751 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_next_hop_unchanged_modify(
40752 struct nb_cb_modify_args *args)
40753 {
40754 switch (args->event) {
40755 case NB_EV_VALIDATE:
40756 case NB_EV_PREPARE:
40757 case NB_EV_ABORT:
40758 return NB_OK;
40759 case NB_EV_APPLY:
40760 return bgp_peer_group_afi_safi_flag_modify(
40761 args, PEER_FLAG_NEXTHOP_UNCHANGED,
40762 yang_dnode_get_bool(args->dnode, NULL));
40763
40764 break;
40765 }
40766
40767 return NB_OK;
40768 }
40769
40770 /*
40771 * XPath:
40772 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/attr-unchanged/med-unchanged
40773 */
40774 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_med_unchanged_modify(
40775 struct nb_cb_modify_args *args)
40776 {
40777 switch (args->event) {
40778 case NB_EV_VALIDATE:
40779 case NB_EV_PREPARE:
40780 case NB_EV_ABORT:
40781 return NB_OK;
40782 case NB_EV_APPLY:
40783 return bgp_peer_group_afi_safi_flag_modify(
40784 args, PEER_FLAG_MED_UNCHANGED,
40785 yang_dnode_get_bool(args->dnode, NULL));
40786
40787 break;
40788 }
40789
40790 return NB_OK;
40791 }
40792
40793 /*
40794 * XPath:
40795 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-send
40796 */
40797 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_modify(
40798 struct nb_cb_modify_args *args)
40799 {
40800 switch (args->event) {
40801 case NB_EV_VALIDATE:
40802 case NB_EV_PREPARE:
40803 case NB_EV_ABORT:
40804 case NB_EV_APPLY:
40805 /* TODO: implement me. */
40806 break;
40807 }
40808
40809 return NB_OK;
40810 }
40811
40812 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_destroy(
40813 struct nb_cb_destroy_args *args)
40814 {
40815 switch (args->event) {
40816 case NB_EV_VALIDATE:
40817 case NB_EV_PREPARE:
40818 case NB_EV_ABORT:
40819 case NB_EV_APPLY:
40820 /* TODO: implement me. */
40821 break;
40822 }
40823
40824 return NB_OK;
40825 }
40826
40827 /*
40828 * XPath:
40829 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-receive
40830 */
40831 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_modify(
40832 struct nb_cb_modify_args *args)
40833 {
40834 switch (args->event) {
40835 case NB_EV_VALIDATE:
40836 case NB_EV_PREPARE:
40837 case NB_EV_ABORT:
40838 case NB_EV_APPLY:
40839 /* TODO: implement me. */
40840 break;
40841 }
40842
40843 return NB_OK;
40844 }
40845
40846 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_destroy(
40847 struct nb_cb_destroy_args *args)
40848 {
40849 switch (args->event) {
40850 case NB_EV_VALIDATE:
40851 case NB_EV_PREPARE:
40852 case NB_EV_ABORT:
40853 case NB_EV_APPLY:
40854 /* TODO: implement me. */
40855 break;
40856 }
40857
40858 return NB_OK;
40859 }
40860
40861 /*
40862 * XPath:
40863 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-both
40864 */
40865 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_modify(
40866 struct nb_cb_modify_args *args)
40867 {
40868 switch (args->event) {
40869 case NB_EV_VALIDATE:
40870 case NB_EV_PREPARE:
40871 case NB_EV_ABORT:
40872 case NB_EV_APPLY:
40873 /* TODO: implement me. */
40874 break;
40875 }
40876
40877 return NB_OK;
40878 }
40879
40880 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_destroy(
40881 struct nb_cb_destroy_args *args)
40882 {
40883 switch (args->event) {
40884 case NB_EV_VALIDATE:
40885 case NB_EV_PREPARE:
40886 case NB_EV_ABORT:
40887 case NB_EV_APPLY:
40888 /* TODO: implement me. */
40889 break;
40890 }
40891
40892 return NB_OK;
40893 }
40894
40895 /*
40896 * XPath:
40897 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list
40898 */
40899 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_create(
40900 struct nb_cb_create_args *args)
40901 {
40902 switch (args->event) {
40903 case NB_EV_VALIDATE:
40904 case NB_EV_PREPARE:
40905 case NB_EV_ABORT:
40906 case NB_EV_APPLY:
40907 /* TODO: implement me. */
40908 break;
40909 }
40910
40911 return NB_OK;
40912 }
40913
40914 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_destroy(
40915 struct nb_cb_destroy_args *args)
40916 {
40917 switch (args->event) {
40918 case NB_EV_VALIDATE:
40919 case NB_EV_PREPARE:
40920 case NB_EV_ABORT:
40921 return NB_OK;
40922 case NB_EV_APPLY:
40923 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
40924 }
40925
40926 return NB_OK;
40927 }
40928
40929 /*
40930 * XPath:
40931 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/max-prefixes
40932 */
40933 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_max_prefixes_modify(
40934 struct nb_cb_modify_args *args)
40935 {
40936 switch (args->event) {
40937 case NB_EV_VALIDATE:
40938 case NB_EV_PREPARE:
40939 case NB_EV_ABORT:
40940 case NB_EV_APPLY:
40941 /* TODO: implement me. */
40942 break;
40943 }
40944
40945 return NB_OK;
40946 }
40947
40948 /*
40949 * XPath:
40950 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/force-check
40951 */
40952 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_force_check_modify(
40953 struct nb_cb_modify_args *args)
40954 {
40955 switch (args->event) {
40956 case NB_EV_VALIDATE:
40957 case NB_EV_PREPARE:
40958 case NB_EV_ABORT:
40959 case NB_EV_APPLY:
40960 /* TODO: implement me. */
40961 break;
40962 }
40963
40964 return NB_OK;
40965 }
40966
40967 /*
40968 * XPath:
40969 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/warning-only
40970 */
40971 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_modify(
40972 struct nb_cb_modify_args *args)
40973 {
40974 switch (args->event) {
40975 case NB_EV_VALIDATE:
40976 case NB_EV_PREPARE:
40977 case NB_EV_ABORT:
40978 case NB_EV_APPLY:
40979 /* TODO: implement me. */
40980 break;
40981 }
40982
40983 return NB_OK;
40984 }
40985
40986 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_destroy(
40987 struct nb_cb_destroy_args *args)
40988 {
40989 switch (args->event) {
40990 case NB_EV_VALIDATE:
40991 case NB_EV_PREPARE:
40992 case NB_EV_ABORT:
40993 case NB_EV_APPLY:
40994 /* TODO: implement me. */
40995 break;
40996 }
40997
40998 return NB_OK;
40999 }
41000
41001 /*
41002 * XPath:
41003 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/restart-timer
41004 */
41005 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_modify(
41006 struct nb_cb_modify_args *args)
41007 {
41008 switch (args->event) {
41009 case NB_EV_VALIDATE:
41010 case NB_EV_PREPARE:
41011 case NB_EV_ABORT:
41012 case NB_EV_APPLY:
41013 /* TODO: implement me. */
41014 break;
41015 }
41016
41017 return NB_OK;
41018 }
41019
41020 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
41021 struct nb_cb_destroy_args *args)
41022 {
41023 switch (args->event) {
41024 case NB_EV_VALIDATE:
41025 case NB_EV_PREPARE:
41026 case NB_EV_ABORT:
41027 case NB_EV_APPLY:
41028 /* TODO: implement me. */
41029 break;
41030 }
41031
41032 return NB_OK;
41033 }
41034
41035 /*
41036 * XPath:
41037 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/shutdown-threshold-pct
41038 */
41039 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
41040 struct nb_cb_modify_args *args)
41041 {
41042 switch (args->event) {
41043 case NB_EV_VALIDATE:
41044 case NB_EV_PREPARE:
41045 case NB_EV_ABORT:
41046 case NB_EV_APPLY:
41047 /* TODO: implement me. */
41048 break;
41049 }
41050
41051 return NB_OK;
41052 }
41053
41054 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
41055 struct nb_cb_destroy_args *args)
41056 {
41057 switch (args->event) {
41058 case NB_EV_VALIDATE:
41059 case NB_EV_PREPARE:
41060 case NB_EV_ABORT:
41061 case NB_EV_APPLY:
41062 /* TODO: implement me. */
41063 break;
41064 }
41065
41066 return NB_OK;
41067 }
41068
41069 /*
41070 * XPath:
41071 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
41072 */
41073 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
41074 struct nb_cb_modify_args *args)
41075 {
41076 switch (args->event) {
41077 case NB_EV_VALIDATE:
41078 case NB_EV_PREPARE:
41079 case NB_EV_ABORT:
41080 case NB_EV_APPLY:
41081 /* TODO: implement me. */
41082 break;
41083 }
41084
41085 return NB_OK;
41086 }
41087
41088 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
41089 struct nb_cb_destroy_args *args)
41090 {
41091 switch (args->event) {
41092 case NB_EV_VALIDATE:
41093 case NB_EV_PREPARE:
41094 case NB_EV_ABORT:
41095 case NB_EV_APPLY:
41096 /* TODO: implement me. */
41097 break;
41098 }
41099
41100 return NB_OK;
41101 }
41102
41103 /*
41104 * XPath:
41105 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tr-restart-timer
41106 */
41107 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
41108 struct nb_cb_modify_args *args)
41109 {
41110 switch (args->event) {
41111 case NB_EV_VALIDATE:
41112 case NB_EV_PREPARE:
41113 case NB_EV_ABORT:
41114 case NB_EV_APPLY:
41115 /* TODO: implement me. */
41116 break;
41117 }
41118
41119 return NB_OK;
41120 }
41121
41122 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
41123 struct nb_cb_destroy_args *args)
41124 {
41125 switch (args->event) {
41126 case NB_EV_VALIDATE:
41127 case NB_EV_PREPARE:
41128 case NB_EV_ABORT:
41129 case NB_EV_APPLY:
41130 /* TODO: implement me. */
41131 break;
41132 }
41133
41134 return NB_OK;
41135 }
41136
41137 /*
41138 * XPath:
41139 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
41140 */
41141 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
41142 struct nb_cb_modify_args *args)
41143 {
41144 switch (args->event) {
41145 case NB_EV_VALIDATE:
41146 case NB_EV_PREPARE:
41147 case NB_EV_ABORT:
41148 case NB_EV_APPLY:
41149 /* TODO: implement me. */
41150 break;
41151 }
41152
41153 return NB_OK;
41154 }
41155
41156 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
41157 struct nb_cb_destroy_args *args)
41158 {
41159 switch (args->event) {
41160 case NB_EV_VALIDATE:
41161 case NB_EV_PREPARE:
41162 case NB_EV_ABORT:
41163 case NB_EV_APPLY:
41164 /* TODO: implement me. */
41165 break;
41166 }
41167
41168 return NB_OK;
41169 }
41170
41171 /*
41172 * XPath:
41173 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list/options/tw-warning-only
41174 */
41175 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
41176 struct nb_cb_modify_args *args)
41177 {
41178 switch (args->event) {
41179 case NB_EV_VALIDATE:
41180 case NB_EV_PREPARE:
41181 case NB_EV_ABORT:
41182 case NB_EV_APPLY:
41183 /* TODO: implement me. */
41184 break;
41185 }
41186
41187 return NB_OK;
41188 }
41189
41190 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
41191 struct nb_cb_destroy_args *args)
41192 {
41193 switch (args->event) {
41194 case NB_EV_VALIDATE:
41195 case NB_EV_PREPARE:
41196 case NB_EV_ABORT:
41197 case NB_EV_APPLY:
41198 /* TODO: implement me. */
41199 break;
41200 }
41201
41202 return NB_OK;
41203 }
41204
41205 /*
41206 * XPath:
41207 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/nexthop-self/next-hop-self
41208 */
41209 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_modify(
41210 struct nb_cb_modify_args *args)
41211 {
41212 switch (args->event) {
41213 case NB_EV_VALIDATE:
41214 case NB_EV_PREPARE:
41215 case NB_EV_ABORT:
41216 return NB_OK;
41217 case NB_EV_APPLY:
41218 return bgp_peer_group_afi_safi_flag_modify(
41219 args, PEER_FLAG_NEXTHOP_SELF,
41220 yang_dnode_get_bool(args->dnode, NULL));
41221
41222 break;
41223 }
41224
41225 return NB_OK;
41226 }
41227
41228 /*
41229 * XPath:
41230 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/nexthop-self/next-hop-self-force
41231 */
41232 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_force_modify(
41233 struct nb_cb_modify_args *args)
41234 {
41235 switch (args->event) {
41236 case NB_EV_VALIDATE:
41237 case NB_EV_PREPARE:
41238 case NB_EV_ABORT:
41239 return NB_OK;
41240 case NB_EV_APPLY:
41241 return bgp_peer_group_afi_safi_flag_modify(
41242 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
41243 yang_dnode_get_bool(args->dnode, NULL));
41244
41245 break;
41246 }
41247
41248 return NB_OK;
41249 }
41250
41251 /*
41252 * XPath:
41253 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as-all
41254 */
41255 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_modify(
41256 struct nb_cb_modify_args *args)
41257 {
41258 switch (args->event) {
41259 case NB_EV_VALIDATE:
41260 case NB_EV_PREPARE:
41261 case NB_EV_ABORT:
41262 return NB_OK;
41263 case NB_EV_APPLY:
41264 return bgp_peer_group_afi_safi_flag_modify(
41265 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
41266 yang_dnode_get_bool(args->dnode, NULL));
41267
41268 break;
41269 }
41270
41271 return NB_OK;
41272 }
41273
41274 /*
41275 * XPath:
41276 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as-all-replace
41277 */
41278 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_replace_modify(
41279 struct nb_cb_modify_args *args)
41280 {
41281 switch (args->event) {
41282 case NB_EV_VALIDATE:
41283 case NB_EV_PREPARE:
41284 case NB_EV_ABORT:
41285 return NB_OK;
41286 case NB_EV_APPLY:
41287 return bgp_peer_group_afi_safi_flag_modify(
41288 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
41289 yang_dnode_get_bool(args->dnode, NULL));
41290
41291 break;
41292 }
41293
41294 return NB_OK;
41295 }
41296
41297 /*
41298 * XPath:
41299 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as
41300 */
41301 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_modify(
41302 struct nb_cb_modify_args *args)
41303 {
41304 switch (args->event) {
41305 case NB_EV_VALIDATE:
41306 case NB_EV_PREPARE:
41307 case NB_EV_ABORT:
41308 return NB_OK;
41309 case NB_EV_APPLY:
41310 return bgp_peer_group_afi_safi_flag_modify(
41311 args, PEER_FLAG_REMOVE_PRIVATE_AS,
41312 yang_dnode_get_bool(args->dnode, NULL));
41313
41314 break;
41315 }
41316
41317 return NB_OK;
41318 }
41319
41320 /*
41321 * XPath:
41322 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/private-as/remove-private-as-replace
41323 */
41324 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_replace_modify(
41325 struct nb_cb_modify_args *args)
41326 {
41327 switch (args->event) {
41328 case NB_EV_VALIDATE:
41329 case NB_EV_PREPARE:
41330 case NB_EV_ABORT:
41331 return NB_OK;
41332 case NB_EV_APPLY:
41333 return bgp_peer_group_afi_safi_flag_modify(
41334 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
41335 yang_dnode_get_bool(args->dnode, NULL));
41336
41337 break;
41338 }
41339
41340 return NB_OK;
41341 }
41342
41343 /*
41344 * XPath:
41345 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/route-reflector/route-reflector-client
41346 */
41347 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_route_reflector_route_reflector_client_modify(
41348 struct nb_cb_modify_args *args)
41349 {
41350 switch (args->event) {
41351 case NB_EV_VALIDATE:
41352 case NB_EV_PREPARE:
41353 case NB_EV_ABORT:
41354 return NB_OK;
41355 case NB_EV_APPLY:
41356 return bgp_peer_group_afi_safi_flag_modify(
41357 args, PEER_FLAG_REFLECTOR_CLIENT,
41358 yang_dnode_get_bool(args->dnode, NULL));
41359
41360 break;
41361 }
41362
41363 return NB_OK;
41364 }
41365
41366 /*
41367 * XPath:
41368 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/route-server/route-server-client
41369 */
41370 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_route_server_route_server_client_modify(
41371 struct nb_cb_modify_args *args)
41372 {
41373 switch (args->event) {
41374 case NB_EV_VALIDATE:
41375 case NB_EV_PREPARE:
41376 case NB_EV_ABORT:
41377 return NB_OK;
41378 case NB_EV_APPLY:
41379 return bgp_peer_group_afi_safi_flag_modify(
41380 args, PEER_FLAG_RSERVER_CLIENT,
41381 yang_dnode_get_bool(args->dnode, NULL));
41382
41383 break;
41384 }
41385
41386 return NB_OK;
41387 }
41388
41389 /*
41390 * XPath:
41391 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/send-community/send-community
41392 */
41393 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_send_community_send_community_modify(
41394 struct nb_cb_modify_args *args)
41395 {
41396 switch (args->event) {
41397 case NB_EV_VALIDATE:
41398 case NB_EV_PREPARE:
41399 case NB_EV_ABORT:
41400 return NB_OK;
41401 case NB_EV_APPLY:
41402 return bgp_peer_group_afi_safi_flag_modify(
41403 args, PEER_FLAG_SEND_COMMUNITY,
41404 yang_dnode_get_bool(args->dnode, NULL));
41405
41406 break;
41407 }
41408
41409 return NB_OK;
41410 }
41411
41412 /*
41413 * XPath:
41414 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/send-community/send-ext-community
41415 */
41416 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_send_community_send_ext_community_modify(
41417 struct nb_cb_modify_args *args)
41418 {
41419 switch (args->event) {
41420 case NB_EV_VALIDATE:
41421 case NB_EV_PREPARE:
41422 case NB_EV_ABORT:
41423 return NB_OK;
41424 case NB_EV_APPLY:
41425 return bgp_peer_group_afi_safi_flag_modify(
41426 args, PEER_FLAG_SEND_EXT_COMMUNITY,
41427 yang_dnode_get_bool(args->dnode, NULL));
41428
41429 break;
41430 }
41431
41432 return NB_OK;
41433 }
41434
41435 /*
41436 * XPath:
41437 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/send-community/send-large-community
41438 */
41439 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_send_community_send_large_community_modify(
41440 struct nb_cb_modify_args *args)
41441 {
41442 switch (args->event) {
41443 case NB_EV_VALIDATE:
41444 case NB_EV_PREPARE:
41445 case NB_EV_ABORT:
41446 return NB_OK;
41447 case NB_EV_APPLY:
41448 return bgp_peer_group_afi_safi_flag_modify(
41449 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
41450 yang_dnode_get_bool(args->dnode, NULL));
41451
41452 break;
41453 }
41454
41455 return NB_OK;
41456 }
41457
41458 /*
41459 * XPath:
41460 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/soft-reconfiguration
41461 */
41462 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_soft_reconfiguration_modify(
41463 struct nb_cb_modify_args *args)
41464 {
41465 switch (args->event) {
41466 case NB_EV_VALIDATE:
41467 case NB_EV_PREPARE:
41468 case NB_EV_ABORT:
41469 return NB_OK;
41470 case NB_EV_APPLY:
41471 return bgp_peer_group_afi_safi_flag_modify(
41472 args, PEER_FLAG_SOFT_RECONFIG,
41473 yang_dnode_get_bool(args->dnode, NULL));
41474
41475 break;
41476 }
41477
41478 return NB_OK;
41479 }
41480
41481 /*
41482 * XPath:
41483 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/weight/weight-attribute
41484 */
41485 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_modify(
41486 struct nb_cb_modify_args *args)
41487 {
41488 switch (args->event) {
41489 case NB_EV_VALIDATE:
41490 case NB_EV_PREPARE:
41491 case NB_EV_ABORT:
41492 return NB_OK;
41493 case NB_EV_APPLY:
41494 return bgp_peer_group_afi_safi_weight_modify(args);
41495
41496 break;
41497 }
41498
41499 return NB_OK;
41500 }
41501
41502 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_destroy(
41503 struct nb_cb_destroy_args *args)
41504 {
41505 switch (args->event) {
41506 case NB_EV_VALIDATE:
41507 case NB_EV_PREPARE:
41508 case NB_EV_ABORT:
41509 return NB_OK;
41510 case NB_EV_APPLY:
41511 return bgp_peer_group_afi_safi_weight_destroy(args);
41512
41513 break;
41514 }
41515
41516 return NB_OK;
41517 }
41518
41519 /*
41520 * XPath:
41521 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/filter-config/rmap-import
41522 */
41523 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_modify(
41524 struct nb_cb_modify_args *args)
41525 {
41526 switch (args->event) {
41527 case NB_EV_VALIDATE:
41528 case NB_EV_PREPARE:
41529 case NB_EV_ABORT:
41530 break;
41531 case NB_EV_APPLY:
41532 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
41533 }
41534
41535 return NB_OK;
41536 }
41537
41538 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_destroy(
41539 struct nb_cb_destroy_args *args)
41540 {
41541 switch (args->event) {
41542 case NB_EV_VALIDATE:
41543 case NB_EV_PREPARE:
41544 case NB_EV_ABORT:
41545 break;
41546 case NB_EV_APPLY:
41547 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
41548 }
41549
41550 return NB_OK;
41551 }
41552
41553 /*
41554 * XPath:
41555 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/filter-config/rmap-export
41556 */
41557 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_modify(
41558 struct nb_cb_modify_args *args)
41559 {
41560 switch (args->event) {
41561 case NB_EV_VALIDATE:
41562 case NB_EV_PREPARE:
41563 case NB_EV_ABORT:
41564 break;
41565 case NB_EV_APPLY:
41566 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
41567 }
41568
41569 return NB_OK;
41570 }
41571
41572 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_destroy(
41573 struct nb_cb_destroy_args *args)
41574 {
41575 switch (args->event) {
41576 case NB_EV_VALIDATE:
41577 case NB_EV_PREPARE:
41578 case NB_EV_ABORT:
41579 break;
41580 case NB_EV_APPLY:
41581 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
41582 }
41583
41584 return NB_OK;
41585 }
41586
41587 /*
41588 * XPath:
41589 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/filter-config/plist-import
41590 */
41591 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_modify(
41592 struct nb_cb_modify_args *args)
41593 {
41594 switch (args->event) {
41595 case NB_EV_VALIDATE:
41596 case NB_EV_PREPARE:
41597 case NB_EV_ABORT:
41598 break;
41599 case NB_EV_APPLY:
41600 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
41601 }
41602
41603 return NB_OK;
41604 }
41605
41606 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_destroy(
41607 struct nb_cb_destroy_args *args)
41608 {
41609 switch (args->event) {
41610 case NB_EV_VALIDATE:
41611 case NB_EV_PREPARE:
41612 case NB_EV_ABORT:
41613 break;
41614 case NB_EV_APPLY:
41615 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
41616 }
41617
41618 return NB_OK;
41619 }
41620
41621 /*
41622 * XPath:
41623 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/filter-config/plist-export
41624 */
41625 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_modify(
41626 struct nb_cb_modify_args *args)
41627 {
41628 switch (args->event) {
41629 case NB_EV_VALIDATE:
41630 case NB_EV_PREPARE:
41631 case NB_EV_ABORT:
41632 break;
41633 case NB_EV_APPLY:
41634 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
41635 }
41636
41637 return NB_OK;
41638 }
41639
41640 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_destroy(
41641 struct nb_cb_destroy_args *args)
41642 {
41643 switch (args->event) {
41644 case NB_EV_VALIDATE:
41645 case NB_EV_PREPARE:
41646 case NB_EV_ABORT:
41647 break;
41648 case NB_EV_APPLY:
41649 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
41650 }
41651
41652 return NB_OK;
41653 }
41654
41655 /*
41656 * XPath:
41657 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/filter-config/access-list-import
41658 */
41659 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_modify(
41660 struct nb_cb_modify_args *args)
41661 {
41662 switch (args->event) {
41663 case NB_EV_VALIDATE:
41664 case NB_EV_PREPARE:
41665 case NB_EV_ABORT:
41666 case NB_EV_APPLY:
41667 /* TODO: implement me. */
41668 break;
41669 }
41670
41671 return NB_OK;
41672 }
41673
41674 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_destroy(
41675 struct nb_cb_destroy_args *args)
41676 {
41677 switch (args->event) {
41678 case NB_EV_VALIDATE:
41679 case NB_EV_PREPARE:
41680 case NB_EV_ABORT:
41681 case NB_EV_APPLY:
41682 /* TODO: implement me. */
41683 break;
41684 }
41685
41686 return NB_OK;
41687 }
41688
41689 /*
41690 * XPath:
41691 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/filter-config/access-list-export
41692 */
41693 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_modify(
41694 struct nb_cb_modify_args *args)
41695 {
41696 switch (args->event) {
41697 case NB_EV_VALIDATE:
41698 case NB_EV_PREPARE:
41699 case NB_EV_ABORT:
41700 case NB_EV_APPLY:
41701 /* TODO: implement me. */
41702 break;
41703 }
41704
41705 return NB_OK;
41706 }
41707
41708 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_destroy(
41709 struct nb_cb_destroy_args *args)
41710 {
41711 switch (args->event) {
41712 case NB_EV_VALIDATE:
41713 case NB_EV_PREPARE:
41714 case NB_EV_ABORT:
41715 case NB_EV_APPLY:
41716 /* TODO: implement me. */
41717 break;
41718 }
41719
41720 return NB_OK;
41721 }
41722
41723 /*
41724 * XPath:
41725 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/filter-config/as-path-filter-list-import
41726 */
41727 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_modify(
41728 struct nb_cb_modify_args *args)
41729 {
41730 switch (args->event) {
41731 case NB_EV_VALIDATE:
41732 case NB_EV_PREPARE:
41733 case NB_EV_ABORT:
41734 case NB_EV_APPLY:
41735 /* TODO: implement me. */
41736 break;
41737 }
41738
41739 return NB_OK;
41740 }
41741
41742 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_destroy(
41743 struct nb_cb_destroy_args *args)
41744 {
41745 switch (args->event) {
41746 case NB_EV_VALIDATE:
41747 case NB_EV_PREPARE:
41748 case NB_EV_ABORT:
41749 case NB_EV_APPLY:
41750 /* TODO: implement me. */
41751 break;
41752 }
41753
41754 return NB_OK;
41755 }
41756
41757 /*
41758 * XPath:
41759 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/filter-config/as-path-filter-list-export
41760 */
41761 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_modify(
41762 struct nb_cb_modify_args *args)
41763 {
41764 switch (args->event) {
41765 case NB_EV_VALIDATE:
41766 case NB_EV_PREPARE:
41767 case NB_EV_ABORT:
41768 case NB_EV_APPLY:
41769 /* TODO: implement me. */
41770 break;
41771 }
41772
41773 return NB_OK;
41774 }
41775
41776 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_destroy(
41777 struct nb_cb_destroy_args *args)
41778 {
41779 switch (args->event) {
41780 case NB_EV_VALIDATE:
41781 case NB_EV_PREPARE:
41782 case NB_EV_ABORT:
41783 case NB_EV_APPLY:
41784 /* TODO: implement me. */
41785 break;
41786 }
41787
41788 return NB_OK;
41789 }
41790
41791 /*
41792 * XPath:
41793 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/filter-config/unsuppress-map-import
41794 */
41795 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_modify(
41796 struct nb_cb_modify_args *args)
41797 {
41798 switch (args->event) {
41799 case NB_EV_VALIDATE:
41800 case NB_EV_PREPARE:
41801 case NB_EV_ABORT:
41802 case NB_EV_APPLY:
41803 /* TODO: implement me. */
41804 break;
41805 }
41806
41807 return NB_OK;
41808 }
41809
41810 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_destroy(
41811 struct nb_cb_destroy_args *args)
41812 {
41813 switch (args->event) {
41814 case NB_EV_VALIDATE:
41815 case NB_EV_PREPARE:
41816 case NB_EV_ABORT:
41817 case NB_EV_APPLY:
41818 /* TODO: implement me. */
41819 break;
41820 }
41821
41822 return NB_OK;
41823 }
41824
41825 /*
41826 * XPath:
41827 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/filter-config/unsuppress-map-export
41828 */
41829 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_modify(
41830 struct nb_cb_modify_args *args)
41831 {
41832 switch (args->event) {
41833 case NB_EV_VALIDATE:
41834 case NB_EV_PREPARE:
41835 case NB_EV_ABORT:
41836 case NB_EV_APPLY:
41837 /* TODO: implement me. */
41838 break;
41839 }
41840
41841 return NB_OK;
41842 }
41843
41844 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_destroy(
41845 struct nb_cb_destroy_args *args)
41846 {
41847 switch (args->event) {
41848 case NB_EV_VALIDATE:
41849 case NB_EV_PREPARE:
41850 case NB_EV_ABORT:
41851 case NB_EV_APPLY:
41852 /* TODO: implement me. */
41853 break;
41854 }
41855
41856 return NB_OK;
41857 }
41858
41859 /*
41860 * XPath:
41861 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/add-paths/path-type
41862 */
41863 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_add_paths_path_type_modify(
41864 struct nb_cb_modify_args *args)
41865 {
41866 switch (args->event) {
41867 case NB_EV_VALIDATE:
41868 case NB_EV_PREPARE:
41869 case NB_EV_ABORT:
41870 case NB_EV_APPLY:
41871 /* TODO: implement me. */
41872 break;
41873 }
41874
41875 return NB_OK;
41876 }
41877
41878 /*
41879 * XPath:
41880 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/as-path-options/allow-own-as
41881 */
41882 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_modify(
41883 struct nb_cb_modify_args *args)
41884 {
41885 switch (args->event) {
41886 case NB_EV_VALIDATE:
41887 case NB_EV_PREPARE:
41888 case NB_EV_ABORT:
41889 case NB_EV_APPLY:
41890 /* TODO: implement me. */
41891 break;
41892 }
41893
41894 return NB_OK;
41895 }
41896
41897 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_destroy(
41898 struct nb_cb_destroy_args *args)
41899 {
41900 switch (args->event) {
41901 case NB_EV_VALIDATE:
41902 case NB_EV_PREPARE:
41903 case NB_EV_ABORT:
41904 case NB_EV_APPLY:
41905 /* TODO: implement me. */
41906 break;
41907 }
41908
41909 return NB_OK;
41910 }
41911
41912 /*
41913 * XPath:
41914 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/as-path-options/allow-own-origin-as
41915 */
41916 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_modify(
41917 struct nb_cb_modify_args *args)
41918 {
41919 switch (args->event) {
41920 case NB_EV_VALIDATE:
41921 case NB_EV_PREPARE:
41922 case NB_EV_ABORT:
41923 case NB_EV_APPLY:
41924 /* TODO: implement me. */
41925 break;
41926 }
41927
41928 return NB_OK;
41929 }
41930
41931 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
41932 struct nb_cb_destroy_args *args)
41933 {
41934 switch (args->event) {
41935 case NB_EV_VALIDATE:
41936 case NB_EV_PREPARE:
41937 case NB_EV_ABORT:
41938 case NB_EV_APPLY:
41939 /* TODO: implement me. */
41940 break;
41941 }
41942
41943 return NB_OK;
41944 }
41945
41946 /*
41947 * XPath:
41948 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/as-path-options/replace-peer-as
41949 */
41950 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_replace_peer_as_modify(
41951 struct nb_cb_modify_args *args)
41952 {
41953 switch (args->event) {
41954 case NB_EV_VALIDATE:
41955 case NB_EV_PREPARE:
41956 case NB_EV_ABORT:
41957 return NB_OK;
41958 case NB_EV_APPLY:
41959 return bgp_peer_group_afi_safi_flag_modify(
41960 args, PEER_FLAG_AS_OVERRIDE,
41961 yang_dnode_get_bool(args->dnode, NULL));
41962
41963 break;
41964 }
41965
41966 return NB_OK;
41967 }
41968
41969 /*
41970 * XPath:
41971 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/default-originate/originate
41972 */
41973 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_originate_modify(
41974 struct nb_cb_modify_args *args)
41975 {
41976 switch (args->event) {
41977 case NB_EV_VALIDATE:
41978 case NB_EV_PREPARE:
41979 case NB_EV_ABORT:
41980 case NB_EV_APPLY:
41981 /* TODO: implement me. */
41982 break;
41983 }
41984
41985 return NB_OK;
41986 }
41987
41988 /*
41989 * XPath:
41990 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/default-originate/route-map
41991 */
41992 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_modify(
41993 struct nb_cb_modify_args *args)
41994 {
41995 switch (args->event) {
41996 case NB_EV_VALIDATE:
41997 case NB_EV_PREPARE:
41998 case NB_EV_ABORT:
41999 case NB_EV_APPLY:
42000 /* TODO: implement me. */
42001 break;
42002 }
42003
42004 return NB_OK;
42005 }
42006
42007 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_destroy(
42008 struct nb_cb_destroy_args *args)
42009 {
42010 switch (args->event) {
42011 case NB_EV_VALIDATE:
42012 case NB_EV_PREPARE:
42013 case NB_EV_ABORT:
42014 case NB_EV_APPLY:
42015 /* TODO: implement me. */
42016 break;
42017 }
42018
42019 return NB_OK;
42020 }
42021
42022 /*
42023 * XPath:
42024 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/attr-unchanged/as-path-unchanged
42025 */
42026 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
42027 struct nb_cb_modify_args *args)
42028 {
42029 switch (args->event) {
42030 case NB_EV_VALIDATE:
42031 case NB_EV_PREPARE:
42032 case NB_EV_ABORT:
42033 return NB_OK;
42034 case NB_EV_APPLY:
42035 return bgp_peer_group_afi_safi_flag_modify(
42036 args, PEER_FLAG_AS_PATH_UNCHANGED,
42037 yang_dnode_get_bool(args->dnode, NULL));
42038
42039 break;
42040 }
42041
42042 return NB_OK;
42043 }
42044
42045 /*
42046 * XPath:
42047 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/attr-unchanged/next-hop-unchanged
42048 */
42049 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
42050 struct nb_cb_modify_args *args)
42051 {
42052 switch (args->event) {
42053 case NB_EV_VALIDATE:
42054 case NB_EV_PREPARE:
42055 case NB_EV_ABORT:
42056 return NB_OK;
42057 case NB_EV_APPLY:
42058 return bgp_peer_group_afi_safi_flag_modify(
42059 args, PEER_FLAG_NEXTHOP_UNCHANGED,
42060 yang_dnode_get_bool(args->dnode, NULL));
42061
42062 break;
42063 }
42064
42065 return NB_OK;
42066 }
42067
42068 /*
42069 * XPath:
42070 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/attr-unchanged/med-unchanged
42071 */
42072 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_med_unchanged_modify(
42073 struct nb_cb_modify_args *args)
42074 {
42075 switch (args->event) {
42076 case NB_EV_VALIDATE:
42077 case NB_EV_PREPARE:
42078 case NB_EV_ABORT:
42079 return NB_OK;
42080 case NB_EV_APPLY:
42081 return bgp_peer_group_afi_safi_flag_modify(
42082 args, PEER_FLAG_MED_UNCHANGED,
42083 yang_dnode_get_bool(args->dnode, NULL));
42084
42085 break;
42086 }
42087
42088 return NB_OK;
42089 }
42090
42091 /*
42092 * XPath:
42093 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/orf-capability/orf-send
42094 */
42095 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_modify(
42096 struct nb_cb_modify_args *args)
42097 {
42098 switch (args->event) {
42099 case NB_EV_VALIDATE:
42100 case NB_EV_PREPARE:
42101 case NB_EV_ABORT:
42102 case NB_EV_APPLY:
42103 /* TODO: implement me. */
42104 break;
42105 }
42106
42107 return NB_OK;
42108 }
42109
42110 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_destroy(
42111 struct nb_cb_destroy_args *args)
42112 {
42113 switch (args->event) {
42114 case NB_EV_VALIDATE:
42115 case NB_EV_PREPARE:
42116 case NB_EV_ABORT:
42117 case NB_EV_APPLY:
42118 /* TODO: implement me. */
42119 break;
42120 }
42121
42122 return NB_OK;
42123 }
42124
42125 /*
42126 * XPath:
42127 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/orf-capability/orf-receive
42128 */
42129 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_modify(
42130 struct nb_cb_modify_args *args)
42131 {
42132 switch (args->event) {
42133 case NB_EV_VALIDATE:
42134 case NB_EV_PREPARE:
42135 case NB_EV_ABORT:
42136 case NB_EV_APPLY:
42137 /* TODO: implement me. */
42138 break;
42139 }
42140
42141 return NB_OK;
42142 }
42143
42144 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_destroy(
42145 struct nb_cb_destroy_args *args)
42146 {
42147 switch (args->event) {
42148 case NB_EV_VALIDATE:
42149 case NB_EV_PREPARE:
42150 case NB_EV_ABORT:
42151 case NB_EV_APPLY:
42152 /* TODO: implement me. */
42153 break;
42154 }
42155
42156 return NB_OK;
42157 }
42158
42159 /*
42160 * XPath:
42161 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/orf-capability/orf-both
42162 */
42163 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_modify(
42164 struct nb_cb_modify_args *args)
42165 {
42166 switch (args->event) {
42167 case NB_EV_VALIDATE:
42168 case NB_EV_PREPARE:
42169 case NB_EV_ABORT:
42170 case NB_EV_APPLY:
42171 /* TODO: implement me. */
42172 break;
42173 }
42174
42175 return NB_OK;
42176 }
42177
42178 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_destroy(
42179 struct nb_cb_destroy_args *args)
42180 {
42181 switch (args->event) {
42182 case NB_EV_VALIDATE:
42183 case NB_EV_PREPARE:
42184 case NB_EV_ABORT:
42185 case NB_EV_APPLY:
42186 /* TODO: implement me. */
42187 break;
42188 }
42189
42190 return NB_OK;
42191 }
42192
42193 /*
42194 * XPath:
42195 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list
42196 */
42197 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_create(
42198 struct nb_cb_create_args *args)
42199 {
42200 switch (args->event) {
42201 case NB_EV_VALIDATE:
42202 case NB_EV_PREPARE:
42203 case NB_EV_ABORT:
42204 case NB_EV_APPLY:
42205 /* TODO: implement me. */
42206 break;
42207 }
42208
42209 return NB_OK;
42210 }
42211
42212 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_destroy(
42213 struct nb_cb_destroy_args *args)
42214 {
42215 switch (args->event) {
42216 case NB_EV_VALIDATE:
42217 case NB_EV_PREPARE:
42218 case NB_EV_ABORT:
42219 return NB_OK;
42220 case NB_EV_APPLY:
42221 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
42222 }
42223
42224 return NB_OK;
42225 }
42226
42227 /*
42228 * XPath:
42229 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/max-prefixes
42230 */
42231 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
42232 struct nb_cb_modify_args *args)
42233 {
42234 switch (args->event) {
42235 case NB_EV_VALIDATE:
42236 case NB_EV_PREPARE:
42237 case NB_EV_ABORT:
42238 case NB_EV_APPLY:
42239 /* TODO: implement me. */
42240 break;
42241 }
42242
42243 return NB_OK;
42244 }
42245
42246 /*
42247 * XPath:
42248 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/force-check
42249 */
42250 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_force_check_modify(
42251 struct nb_cb_modify_args *args)
42252 {
42253 switch (args->event) {
42254 case NB_EV_VALIDATE:
42255 case NB_EV_PREPARE:
42256 case NB_EV_ABORT:
42257 case NB_EV_APPLY:
42258 /* TODO: implement me. */
42259 break;
42260 }
42261
42262 return NB_OK;
42263 }
42264
42265 /*
42266 * XPath:
42267 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/warning-only
42268 */
42269 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
42270 struct nb_cb_modify_args *args)
42271 {
42272 switch (args->event) {
42273 case NB_EV_VALIDATE:
42274 case NB_EV_PREPARE:
42275 case NB_EV_ABORT:
42276 case NB_EV_APPLY:
42277 /* TODO: implement me. */
42278 break;
42279 }
42280
42281 return NB_OK;
42282 }
42283
42284 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
42285 struct nb_cb_destroy_args *args)
42286 {
42287 switch (args->event) {
42288 case NB_EV_VALIDATE:
42289 case NB_EV_PREPARE:
42290 case NB_EV_ABORT:
42291 case NB_EV_APPLY:
42292 /* TODO: implement me. */
42293 break;
42294 }
42295
42296 return NB_OK;
42297 }
42298
42299 /*
42300 * XPath:
42301 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/restart-timer
42302 */
42303 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
42304 struct nb_cb_modify_args *args)
42305 {
42306 switch (args->event) {
42307 case NB_EV_VALIDATE:
42308 case NB_EV_PREPARE:
42309 case NB_EV_ABORT:
42310 case NB_EV_APPLY:
42311 /* TODO: implement me. */
42312 break;
42313 }
42314
42315 return NB_OK;
42316 }
42317
42318 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
42319 struct nb_cb_destroy_args *args)
42320 {
42321 switch (args->event) {
42322 case NB_EV_VALIDATE:
42323 case NB_EV_PREPARE:
42324 case NB_EV_ABORT:
42325 case NB_EV_APPLY:
42326 /* TODO: implement me. */
42327 break;
42328 }
42329
42330 return NB_OK;
42331 }
42332
42333 /*
42334 * XPath:
42335 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
42336 */
42337 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
42338 struct nb_cb_modify_args *args)
42339 {
42340 switch (args->event) {
42341 case NB_EV_VALIDATE:
42342 case NB_EV_PREPARE:
42343 case NB_EV_ABORT:
42344 case NB_EV_APPLY:
42345 /* TODO: implement me. */
42346 break;
42347 }
42348
42349 return NB_OK;
42350 }
42351
42352 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
42353 struct nb_cb_destroy_args *args)
42354 {
42355 switch (args->event) {
42356 case NB_EV_VALIDATE:
42357 case NB_EV_PREPARE:
42358 case NB_EV_ABORT:
42359 case NB_EV_APPLY:
42360 /* TODO: implement me. */
42361 break;
42362 }
42363
42364 return NB_OK;
42365 }
42366
42367 /*
42368 * XPath:
42369 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
42370 */
42371 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
42372 struct nb_cb_modify_args *args)
42373 {
42374 switch (args->event) {
42375 case NB_EV_VALIDATE:
42376 case NB_EV_PREPARE:
42377 case NB_EV_ABORT:
42378 case NB_EV_APPLY:
42379 /* TODO: implement me. */
42380 break;
42381 }
42382
42383 return NB_OK;
42384 }
42385
42386 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
42387 struct nb_cb_destroy_args *args)
42388 {
42389 switch (args->event) {
42390 case NB_EV_VALIDATE:
42391 case NB_EV_PREPARE:
42392 case NB_EV_ABORT:
42393 case NB_EV_APPLY:
42394 /* TODO: implement me. */
42395 break;
42396 }
42397
42398 return NB_OK;
42399 }
42400
42401 /*
42402 * XPath:
42403 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tr-restart-timer
42404 */
42405 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
42406 struct nb_cb_modify_args *args)
42407 {
42408 switch (args->event) {
42409 case NB_EV_VALIDATE:
42410 case NB_EV_PREPARE:
42411 case NB_EV_ABORT:
42412 case NB_EV_APPLY:
42413 /* TODO: implement me. */
42414 break;
42415 }
42416
42417 return NB_OK;
42418 }
42419
42420 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
42421 struct nb_cb_destroy_args *args)
42422 {
42423 switch (args->event) {
42424 case NB_EV_VALIDATE:
42425 case NB_EV_PREPARE:
42426 case NB_EV_ABORT:
42427 case NB_EV_APPLY:
42428 /* TODO: implement me. */
42429 break;
42430 }
42431
42432 return NB_OK;
42433 }
42434
42435 /*
42436 * XPath:
42437 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
42438 */
42439 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
42440 struct nb_cb_modify_args *args)
42441 {
42442 switch (args->event) {
42443 case NB_EV_VALIDATE:
42444 case NB_EV_PREPARE:
42445 case NB_EV_ABORT:
42446 case NB_EV_APPLY:
42447 /* TODO: implement me. */
42448 break;
42449 }
42450
42451 return NB_OK;
42452 }
42453
42454 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
42455 struct nb_cb_destroy_args *args)
42456 {
42457 switch (args->event) {
42458 case NB_EV_VALIDATE:
42459 case NB_EV_PREPARE:
42460 case NB_EV_ABORT:
42461 case NB_EV_APPLY:
42462 /* TODO: implement me. */
42463 break;
42464 }
42465
42466 return NB_OK;
42467 }
42468
42469 /*
42470 * XPath:
42471 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/prefix-limit/direction-list/options/tw-warning-only
42472 */
42473 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
42474 struct nb_cb_modify_args *args)
42475 {
42476 switch (args->event) {
42477 case NB_EV_VALIDATE:
42478 case NB_EV_PREPARE:
42479 case NB_EV_ABORT:
42480 case NB_EV_APPLY:
42481 /* TODO: implement me. */
42482 break;
42483 }
42484
42485 return NB_OK;
42486 }
42487
42488 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
42489 struct nb_cb_destroy_args *args)
42490 {
42491 switch (args->event) {
42492 case NB_EV_VALIDATE:
42493 case NB_EV_PREPARE:
42494 case NB_EV_ABORT:
42495 case NB_EV_APPLY:
42496 /* TODO: implement me. */
42497 break;
42498 }
42499
42500 return NB_OK;
42501 }
42502
42503 /*
42504 * XPath:
42505 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/nexthop-self/next-hop-self
42506 */
42507 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_modify(
42508 struct nb_cb_modify_args *args)
42509 {
42510 switch (args->event) {
42511 case NB_EV_VALIDATE:
42512 case NB_EV_PREPARE:
42513 case NB_EV_ABORT:
42514 return NB_OK;
42515 case NB_EV_APPLY:
42516 return bgp_peer_group_afi_safi_flag_modify(
42517 args, PEER_FLAG_NEXTHOP_SELF,
42518 yang_dnode_get_bool(args->dnode, NULL));
42519
42520 break;
42521 }
42522
42523 return NB_OK;
42524 }
42525
42526 /*
42527 * XPath:
42528 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/nexthop-self/next-hop-self-force
42529 */
42530 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_force_modify(
42531 struct nb_cb_modify_args *args)
42532 {
42533 switch (args->event) {
42534 case NB_EV_VALIDATE:
42535 case NB_EV_PREPARE:
42536 case NB_EV_ABORT:
42537 return NB_OK;
42538 case NB_EV_APPLY:
42539 return bgp_peer_group_afi_safi_flag_modify(
42540 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
42541 yang_dnode_get_bool(args->dnode, NULL));
42542
42543 break;
42544 }
42545
42546 return NB_OK;
42547 }
42548
42549 /*
42550 * XPath:
42551 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as-all
42552 */
42553 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_modify(
42554 struct nb_cb_modify_args *args)
42555 {
42556 switch (args->event) {
42557 case NB_EV_VALIDATE:
42558 case NB_EV_PREPARE:
42559 case NB_EV_ABORT:
42560 return NB_OK;
42561 case NB_EV_APPLY:
42562 return bgp_peer_group_afi_safi_flag_modify(
42563 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
42564 yang_dnode_get_bool(args->dnode, NULL));
42565
42566 break;
42567 }
42568
42569 return NB_OK;
42570 }
42571
42572 /*
42573 * XPath:
42574 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as-all-replace
42575 */
42576 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_replace_modify(
42577 struct nb_cb_modify_args *args)
42578 {
42579 switch (args->event) {
42580 case NB_EV_VALIDATE:
42581 case NB_EV_PREPARE:
42582 case NB_EV_ABORT:
42583 return NB_OK;
42584 case NB_EV_APPLY:
42585 return bgp_peer_group_afi_safi_flag_modify(
42586 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
42587 yang_dnode_get_bool(args->dnode, NULL));
42588
42589 break;
42590 }
42591
42592 return NB_OK;
42593 }
42594
42595 /*
42596 * XPath:
42597 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as
42598 */
42599 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_modify(
42600 struct nb_cb_modify_args *args)
42601 {
42602 switch (args->event) {
42603 case NB_EV_VALIDATE:
42604 case NB_EV_PREPARE:
42605 case NB_EV_ABORT:
42606 return NB_OK;
42607 case NB_EV_APPLY:
42608 return bgp_peer_group_afi_safi_flag_modify(
42609 args, PEER_FLAG_REMOVE_PRIVATE_AS,
42610 yang_dnode_get_bool(args->dnode, NULL));
42611
42612 break;
42613 }
42614
42615 return NB_OK;
42616 }
42617
42618 /*
42619 * XPath:
42620 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/private-as/remove-private-as-replace
42621 */
42622 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_replace_modify(
42623 struct nb_cb_modify_args *args)
42624 {
42625 switch (args->event) {
42626 case NB_EV_VALIDATE:
42627 case NB_EV_PREPARE:
42628 case NB_EV_ABORT:
42629 return NB_OK;
42630 case NB_EV_APPLY:
42631 return bgp_peer_group_afi_safi_flag_modify(
42632 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
42633 yang_dnode_get_bool(args->dnode, NULL));
42634
42635 break;
42636 }
42637
42638 return NB_OK;
42639 }
42640
42641 /*
42642 * XPath:
42643 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/route-reflector/route-reflector-client
42644 */
42645 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_route_reflector_route_reflector_client_modify(
42646 struct nb_cb_modify_args *args)
42647 {
42648 switch (args->event) {
42649 case NB_EV_VALIDATE:
42650 case NB_EV_PREPARE:
42651 case NB_EV_ABORT:
42652 return NB_OK;
42653 case NB_EV_APPLY:
42654 return bgp_peer_group_afi_safi_flag_modify(
42655 args, PEER_FLAG_REFLECTOR_CLIENT,
42656 yang_dnode_get_bool(args->dnode, NULL));
42657
42658 break;
42659 }
42660
42661 return NB_OK;
42662 }
42663
42664 /*
42665 * XPath:
42666 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/route-server/route-server-client
42667 */
42668 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_route_server_route_server_client_modify(
42669 struct nb_cb_modify_args *args)
42670 {
42671 switch (args->event) {
42672 case NB_EV_VALIDATE:
42673 case NB_EV_PREPARE:
42674 case NB_EV_ABORT:
42675 return NB_OK;
42676 case NB_EV_APPLY:
42677 return bgp_peer_group_afi_safi_flag_modify(
42678 args, PEER_FLAG_RSERVER_CLIENT,
42679 yang_dnode_get_bool(args->dnode, NULL));
42680
42681 break;
42682 }
42683
42684 return NB_OK;
42685 }
42686
42687 /*
42688 * XPath:
42689 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/send-community/send-community
42690 */
42691 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_community_modify(
42692 struct nb_cb_modify_args *args)
42693 {
42694 switch (args->event) {
42695 case NB_EV_VALIDATE:
42696 case NB_EV_PREPARE:
42697 case NB_EV_ABORT:
42698 return NB_OK;
42699 case NB_EV_APPLY:
42700 return bgp_peer_group_afi_safi_flag_modify(
42701 args, PEER_FLAG_SEND_COMMUNITY,
42702 yang_dnode_get_bool(args->dnode, NULL));
42703
42704 break;
42705 }
42706
42707 return NB_OK;
42708 }
42709
42710 /*
42711 * XPath:
42712 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/send-community/send-ext-community
42713 */
42714 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_ext_community_modify(
42715 struct nb_cb_modify_args *args)
42716 {
42717 switch (args->event) {
42718 case NB_EV_VALIDATE:
42719 case NB_EV_PREPARE:
42720 case NB_EV_ABORT:
42721 return NB_OK;
42722 case NB_EV_APPLY:
42723 return bgp_peer_group_afi_safi_flag_modify(
42724 args, PEER_FLAG_SEND_EXT_COMMUNITY,
42725 yang_dnode_get_bool(args->dnode, NULL));
42726
42727 break;
42728 }
42729
42730 return NB_OK;
42731 }
42732
42733 /*
42734 * XPath:
42735 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/send-community/send-large-community
42736 */
42737 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_large_community_modify(
42738 struct nb_cb_modify_args *args)
42739 {
42740 switch (args->event) {
42741 case NB_EV_VALIDATE:
42742 case NB_EV_PREPARE:
42743 case NB_EV_ABORT:
42744 return NB_OK;
42745 case NB_EV_APPLY:
42746 return bgp_peer_group_afi_safi_flag_modify(
42747 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
42748 yang_dnode_get_bool(args->dnode, NULL));
42749
42750 break;
42751 }
42752
42753 return NB_OK;
42754 }
42755
42756 /*
42757 * XPath:
42758 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/soft-reconfiguration
42759 */
42760 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_soft_reconfiguration_modify(
42761 struct nb_cb_modify_args *args)
42762 {
42763 switch (args->event) {
42764 case NB_EV_VALIDATE:
42765 case NB_EV_PREPARE:
42766 case NB_EV_ABORT:
42767 return NB_OK;
42768 case NB_EV_APPLY:
42769 return bgp_peer_group_afi_safi_flag_modify(
42770 args, PEER_FLAG_SOFT_RECONFIG,
42771 yang_dnode_get_bool(args->dnode, NULL));
42772
42773 break;
42774 }
42775
42776 return NB_OK;
42777 }
42778
42779 /*
42780 * XPath:
42781 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/weight/weight-attribute
42782 */
42783 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_modify(
42784 struct nb_cb_modify_args *args)
42785 {
42786 switch (args->event) {
42787 case NB_EV_VALIDATE:
42788 case NB_EV_PREPARE:
42789 case NB_EV_ABORT:
42790 return NB_OK;
42791 case NB_EV_APPLY:
42792 return bgp_peer_group_afi_safi_weight_modify(args);
42793
42794 break;
42795 }
42796
42797 return NB_OK;
42798 }
42799
42800 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_destroy(
42801 struct nb_cb_destroy_args *args)
42802 {
42803 switch (args->event) {
42804 case NB_EV_VALIDATE:
42805 case NB_EV_PREPARE:
42806 case NB_EV_ABORT:
42807 return NB_OK;
42808 case NB_EV_APPLY:
42809 return bgp_peer_group_afi_safi_weight_destroy(args);
42810
42811 break;
42812 }
42813
42814 return NB_OK;
42815 }
42816
42817 /*
42818 * XPath:
42819 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/rmap-import
42820 */
42821 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_modify(
42822 struct nb_cb_modify_args *args)
42823 {
42824 switch (args->event) {
42825 case NB_EV_VALIDATE:
42826 case NB_EV_PREPARE:
42827 case NB_EV_ABORT:
42828 break;
42829 case NB_EV_APPLY:
42830 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
42831 }
42832
42833 return NB_OK;
42834 }
42835
42836 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_destroy(
42837 struct nb_cb_destroy_args *args)
42838 {
42839 switch (args->event) {
42840 case NB_EV_VALIDATE:
42841 case NB_EV_PREPARE:
42842 case NB_EV_ABORT:
42843 break;
42844 case NB_EV_APPLY:
42845 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
42846 }
42847
42848 return NB_OK;
42849 }
42850
42851 /*
42852 * XPath:
42853 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/rmap-export
42854 */
42855 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_modify(
42856 struct nb_cb_modify_args *args)
42857 {
42858 switch (args->event) {
42859 case NB_EV_VALIDATE:
42860 case NB_EV_PREPARE:
42861 case NB_EV_ABORT:
42862 break;
42863 case NB_EV_APPLY:
42864 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
42865 }
42866
42867 return NB_OK;
42868 }
42869
42870 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_destroy(
42871 struct nb_cb_destroy_args *args)
42872 {
42873 switch (args->event) {
42874 case NB_EV_VALIDATE:
42875 case NB_EV_PREPARE:
42876 case NB_EV_ABORT:
42877 break;
42878 case NB_EV_APPLY:
42879 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
42880 }
42881
42882 return NB_OK;
42883 }
42884
42885 /*
42886 * XPath:
42887 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/plist-import
42888 */
42889 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_modify(
42890 struct nb_cb_modify_args *args)
42891 {
42892 switch (args->event) {
42893 case NB_EV_VALIDATE:
42894 case NB_EV_PREPARE:
42895 case NB_EV_ABORT:
42896 break;
42897 case NB_EV_APPLY:
42898 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
42899 }
42900
42901 return NB_OK;
42902 }
42903
42904 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_destroy(
42905 struct nb_cb_destroy_args *args)
42906 {
42907 switch (args->event) {
42908 case NB_EV_VALIDATE:
42909 case NB_EV_PREPARE:
42910 case NB_EV_ABORT:
42911 break;
42912 case NB_EV_APPLY:
42913 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
42914 }
42915
42916 return NB_OK;
42917 }
42918
42919 /*
42920 * XPath:
42921 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/plist-export
42922 */
42923 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_modify(
42924 struct nb_cb_modify_args *args)
42925 {
42926 switch (args->event) {
42927 case NB_EV_VALIDATE:
42928 case NB_EV_PREPARE:
42929 case NB_EV_ABORT:
42930 break;
42931 case NB_EV_APPLY:
42932 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
42933 }
42934
42935 return NB_OK;
42936 }
42937
42938 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_destroy(
42939 struct nb_cb_destroy_args *args)
42940 {
42941 switch (args->event) {
42942 case NB_EV_VALIDATE:
42943 case NB_EV_PREPARE:
42944 case NB_EV_ABORT:
42945 break;
42946 case NB_EV_APPLY:
42947 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
42948 }
42949
42950 return NB_OK;
42951 }
42952
42953 /*
42954 * XPath:
42955 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/access-list-import
42956 */
42957 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_modify(
42958 struct nb_cb_modify_args *args)
42959 {
42960 switch (args->event) {
42961 case NB_EV_VALIDATE:
42962 case NB_EV_PREPARE:
42963 case NB_EV_ABORT:
42964 case NB_EV_APPLY:
42965 /* TODO: implement me. */
42966 break;
42967 }
42968
42969 return NB_OK;
42970 }
42971
42972 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_destroy(
42973 struct nb_cb_destroy_args *args)
42974 {
42975 switch (args->event) {
42976 case NB_EV_VALIDATE:
42977 case NB_EV_PREPARE:
42978 case NB_EV_ABORT:
42979 case NB_EV_APPLY:
42980 /* TODO: implement me. */
42981 break;
42982 }
42983
42984 return NB_OK;
42985 }
42986
42987 /*
42988 * XPath:
42989 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/access-list-export
42990 */
42991 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_modify(
42992 struct nb_cb_modify_args *args)
42993 {
42994 switch (args->event) {
42995 case NB_EV_VALIDATE:
42996 case NB_EV_PREPARE:
42997 case NB_EV_ABORT:
42998 case NB_EV_APPLY:
42999 /* TODO: implement me. */
43000 break;
43001 }
43002
43003 return NB_OK;
43004 }
43005
43006 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_destroy(
43007 struct nb_cb_destroy_args *args)
43008 {
43009 switch (args->event) {
43010 case NB_EV_VALIDATE:
43011 case NB_EV_PREPARE:
43012 case NB_EV_ABORT:
43013 case NB_EV_APPLY:
43014 /* TODO: implement me. */
43015 break;
43016 }
43017
43018 return NB_OK;
43019 }
43020
43021 /*
43022 * XPath:
43023 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/as-path-filter-list-import
43024 */
43025 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_modify(
43026 struct nb_cb_modify_args *args)
43027 {
43028 switch (args->event) {
43029 case NB_EV_VALIDATE:
43030 case NB_EV_PREPARE:
43031 case NB_EV_ABORT:
43032 case NB_EV_APPLY:
43033 /* TODO: implement me. */
43034 break;
43035 }
43036
43037 return NB_OK;
43038 }
43039
43040 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_destroy(
43041 struct nb_cb_destroy_args *args)
43042 {
43043 switch (args->event) {
43044 case NB_EV_VALIDATE:
43045 case NB_EV_PREPARE:
43046 case NB_EV_ABORT:
43047 case NB_EV_APPLY:
43048 /* TODO: implement me. */
43049 break;
43050 }
43051
43052 return NB_OK;
43053 }
43054
43055 /*
43056 * XPath:
43057 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/as-path-filter-list-export
43058 */
43059 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_modify(
43060 struct nb_cb_modify_args *args)
43061 {
43062 switch (args->event) {
43063 case NB_EV_VALIDATE:
43064 case NB_EV_PREPARE:
43065 case NB_EV_ABORT:
43066 case NB_EV_APPLY:
43067 /* TODO: implement me. */
43068 break;
43069 }
43070
43071 return NB_OK;
43072 }
43073
43074 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_destroy(
43075 struct nb_cb_destroy_args *args)
43076 {
43077 switch (args->event) {
43078 case NB_EV_VALIDATE:
43079 case NB_EV_PREPARE:
43080 case NB_EV_ABORT:
43081 case NB_EV_APPLY:
43082 /* TODO: implement me. */
43083 break;
43084 }
43085
43086 return NB_OK;
43087 }
43088
43089 /*
43090 * XPath:
43091 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/unsuppress-map-import
43092 */
43093 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_modify(
43094 struct nb_cb_modify_args *args)
43095 {
43096 switch (args->event) {
43097 case NB_EV_VALIDATE:
43098 case NB_EV_PREPARE:
43099 case NB_EV_ABORT:
43100 case NB_EV_APPLY:
43101 /* TODO: implement me. */
43102 break;
43103 }
43104
43105 return NB_OK;
43106 }
43107
43108 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_destroy(
43109 struct nb_cb_destroy_args *args)
43110 {
43111 switch (args->event) {
43112 case NB_EV_VALIDATE:
43113 case NB_EV_PREPARE:
43114 case NB_EV_ABORT:
43115 case NB_EV_APPLY:
43116 /* TODO: implement me. */
43117 break;
43118 }
43119
43120 return NB_OK;
43121 }
43122
43123 /*
43124 * XPath:
43125 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-labeled-unicast/filter-config/unsuppress-map-export
43126 */
43127 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_modify(
43128 struct nb_cb_modify_args *args)
43129 {
43130 switch (args->event) {
43131 case NB_EV_VALIDATE:
43132 case NB_EV_PREPARE:
43133 case NB_EV_ABORT:
43134 case NB_EV_APPLY:
43135 /* TODO: implement me. */
43136 break;
43137 }
43138
43139 return NB_OK;
43140 }
43141
43142 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_destroy(
43143 struct nb_cb_destroy_args *args)
43144 {
43145 switch (args->event) {
43146 case NB_EV_VALIDATE:
43147 case NB_EV_PREPARE:
43148 case NB_EV_ABORT:
43149 case NB_EV_APPLY:
43150 /* TODO: implement me. */
43151 break;
43152 }
43153
43154 return NB_OK;
43155 }
43156
43157 /*
43158 * XPath:
43159 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/add-paths/path-type
43160 */
43161 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_add_paths_path_type_modify(
43162 struct nb_cb_modify_args *args)
43163 {
43164 switch (args->event) {
43165 case NB_EV_VALIDATE:
43166 case NB_EV_PREPARE:
43167 case NB_EV_ABORT:
43168 case NB_EV_APPLY:
43169 /* TODO: implement me. */
43170 break;
43171 }
43172
43173 return NB_OK;
43174 }
43175
43176 /*
43177 * XPath:
43178 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/as-path-options/allow-own-as
43179 */
43180 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_modify(
43181 struct nb_cb_modify_args *args)
43182 {
43183 switch (args->event) {
43184 case NB_EV_VALIDATE:
43185 case NB_EV_PREPARE:
43186 case NB_EV_ABORT:
43187 case NB_EV_APPLY:
43188 /* TODO: implement me. */
43189 break;
43190 }
43191
43192 return NB_OK;
43193 }
43194
43195 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_destroy(
43196 struct nb_cb_destroy_args *args)
43197 {
43198 switch (args->event) {
43199 case NB_EV_VALIDATE:
43200 case NB_EV_PREPARE:
43201 case NB_EV_ABORT:
43202 case NB_EV_APPLY:
43203 /* TODO: implement me. */
43204 break;
43205 }
43206
43207 return NB_OK;
43208 }
43209
43210 /*
43211 * XPath:
43212 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/as-path-options/allow-own-origin-as
43213 */
43214 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_modify(
43215 struct nb_cb_modify_args *args)
43216 {
43217 switch (args->event) {
43218 case NB_EV_VALIDATE:
43219 case NB_EV_PREPARE:
43220 case NB_EV_ABORT:
43221 case NB_EV_APPLY:
43222 /* TODO: implement me. */
43223 break;
43224 }
43225
43226 return NB_OK;
43227 }
43228
43229 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
43230 struct nb_cb_destroy_args *args)
43231 {
43232 switch (args->event) {
43233 case NB_EV_VALIDATE:
43234 case NB_EV_PREPARE:
43235 case NB_EV_ABORT:
43236 case NB_EV_APPLY:
43237 /* TODO: implement me. */
43238 break;
43239 }
43240
43241 return NB_OK;
43242 }
43243
43244 /*
43245 * XPath:
43246 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/as-path-options/replace-peer-as
43247 */
43248 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_replace_peer_as_modify(
43249 struct nb_cb_modify_args *args)
43250 {
43251 switch (args->event) {
43252 case NB_EV_VALIDATE:
43253 case NB_EV_PREPARE:
43254 case NB_EV_ABORT:
43255 return NB_OK;
43256 case NB_EV_APPLY:
43257 return bgp_peer_group_afi_safi_flag_modify(
43258 args, PEER_FLAG_AS_OVERRIDE,
43259 yang_dnode_get_bool(args->dnode, NULL));
43260
43261 break;
43262 }
43263
43264 return NB_OK;
43265 }
43266
43267 /*
43268 * XPath:
43269 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/default-originate/originate
43270 */
43271 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_originate_modify(
43272 struct nb_cb_modify_args *args)
43273 {
43274 switch (args->event) {
43275 case NB_EV_VALIDATE:
43276 case NB_EV_PREPARE:
43277 case NB_EV_ABORT:
43278 case NB_EV_APPLY:
43279 /* TODO: implement me. */
43280 break;
43281 }
43282
43283 return NB_OK;
43284 }
43285
43286 /*
43287 * XPath:
43288 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/default-originate/route-map
43289 */
43290 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_modify(
43291 struct nb_cb_modify_args *args)
43292 {
43293 switch (args->event) {
43294 case NB_EV_VALIDATE:
43295 case NB_EV_PREPARE:
43296 case NB_EV_ABORT:
43297 case NB_EV_APPLY:
43298 /* TODO: implement me. */
43299 break;
43300 }
43301
43302 return NB_OK;
43303 }
43304
43305 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_destroy(
43306 struct nb_cb_destroy_args *args)
43307 {
43308 switch (args->event) {
43309 case NB_EV_VALIDATE:
43310 case NB_EV_PREPARE:
43311 case NB_EV_ABORT:
43312 case NB_EV_APPLY:
43313 /* TODO: implement me. */
43314 break;
43315 }
43316
43317 return NB_OK;
43318 }
43319
43320 /*
43321 * XPath:
43322 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/attr-unchanged/as-path-unchanged
43323 */
43324 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
43325 struct nb_cb_modify_args *args)
43326 {
43327 switch (args->event) {
43328 case NB_EV_VALIDATE:
43329 case NB_EV_PREPARE:
43330 case NB_EV_ABORT:
43331 return NB_OK;
43332 case NB_EV_APPLY:
43333 return bgp_peer_group_afi_safi_flag_modify(
43334 args, PEER_FLAG_AS_PATH_UNCHANGED,
43335 yang_dnode_get_bool(args->dnode, NULL));
43336
43337 break;
43338 }
43339
43340 return NB_OK;
43341 }
43342
43343 /*
43344 * XPath:
43345 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/attr-unchanged/next-hop-unchanged
43346 */
43347 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
43348 struct nb_cb_modify_args *args)
43349 {
43350 switch (args->event) {
43351 case NB_EV_VALIDATE:
43352 case NB_EV_PREPARE:
43353 case NB_EV_ABORT:
43354 return NB_OK;
43355 case NB_EV_APPLY:
43356 return bgp_peer_group_afi_safi_flag_modify(
43357 args, PEER_FLAG_NEXTHOP_UNCHANGED,
43358 yang_dnode_get_bool(args->dnode, NULL));
43359
43360 break;
43361 }
43362
43363 return NB_OK;
43364 }
43365
43366 /*
43367 * XPath:
43368 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/attr-unchanged/med-unchanged
43369 */
43370 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_med_unchanged_modify(
43371 struct nb_cb_modify_args *args)
43372 {
43373 switch (args->event) {
43374 case NB_EV_VALIDATE:
43375 case NB_EV_PREPARE:
43376 case NB_EV_ABORT:
43377 return NB_OK;
43378 case NB_EV_APPLY:
43379 return bgp_peer_group_afi_safi_flag_modify(
43380 args, PEER_FLAG_MED_UNCHANGED,
43381 yang_dnode_get_bool(args->dnode, NULL));
43382
43383 break;
43384 }
43385
43386 return NB_OK;
43387 }
43388
43389 /*
43390 * XPath:
43391 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/orf-capability/orf-send
43392 */
43393 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_modify(
43394 struct nb_cb_modify_args *args)
43395 {
43396 switch (args->event) {
43397 case NB_EV_VALIDATE:
43398 case NB_EV_PREPARE:
43399 case NB_EV_ABORT:
43400 case NB_EV_APPLY:
43401 /* TODO: implement me. */
43402 break;
43403 }
43404
43405 return NB_OK;
43406 }
43407
43408 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_destroy(
43409 struct nb_cb_destroy_args *args)
43410 {
43411 switch (args->event) {
43412 case NB_EV_VALIDATE:
43413 case NB_EV_PREPARE:
43414 case NB_EV_ABORT:
43415 case NB_EV_APPLY:
43416 /* TODO: implement me. */
43417 break;
43418 }
43419
43420 return NB_OK;
43421 }
43422
43423 /*
43424 * XPath:
43425 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/orf-capability/orf-receive
43426 */
43427 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_modify(
43428 struct nb_cb_modify_args *args)
43429 {
43430 switch (args->event) {
43431 case NB_EV_VALIDATE:
43432 case NB_EV_PREPARE:
43433 case NB_EV_ABORT:
43434 case NB_EV_APPLY:
43435 /* TODO: implement me. */
43436 break;
43437 }
43438
43439 return NB_OK;
43440 }
43441
43442 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_destroy(
43443 struct nb_cb_destroy_args *args)
43444 {
43445 switch (args->event) {
43446 case NB_EV_VALIDATE:
43447 case NB_EV_PREPARE:
43448 case NB_EV_ABORT:
43449 case NB_EV_APPLY:
43450 /* TODO: implement me. */
43451 break;
43452 }
43453
43454 return NB_OK;
43455 }
43456
43457 /*
43458 * XPath:
43459 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/orf-capability/orf-both
43460 */
43461 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_modify(
43462 struct nb_cb_modify_args *args)
43463 {
43464 switch (args->event) {
43465 case NB_EV_VALIDATE:
43466 case NB_EV_PREPARE:
43467 case NB_EV_ABORT:
43468 case NB_EV_APPLY:
43469 /* TODO: implement me. */
43470 break;
43471 }
43472
43473 return NB_OK;
43474 }
43475
43476 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_destroy(
43477 struct nb_cb_destroy_args *args)
43478 {
43479 switch (args->event) {
43480 case NB_EV_VALIDATE:
43481 case NB_EV_PREPARE:
43482 case NB_EV_ABORT:
43483 case NB_EV_APPLY:
43484 /* TODO: implement me. */
43485 break;
43486 }
43487
43488 return NB_OK;
43489 }
43490
43491 /*
43492 * XPath:
43493 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list
43494 */
43495 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_create(
43496 struct nb_cb_create_args *args)
43497 {
43498 switch (args->event) {
43499 case NB_EV_VALIDATE:
43500 case NB_EV_PREPARE:
43501 case NB_EV_ABORT:
43502 case NB_EV_APPLY:
43503 /* TODO: implement me. */
43504 break;
43505 }
43506
43507 return NB_OK;
43508 }
43509
43510 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_destroy(
43511 struct nb_cb_destroy_args *args)
43512 {
43513 switch (args->event) {
43514 case NB_EV_VALIDATE:
43515 case NB_EV_PREPARE:
43516 case NB_EV_ABORT:
43517 return NB_OK;
43518 case NB_EV_APPLY:
43519 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
43520 }
43521
43522 return NB_OK;
43523 }
43524
43525 /*
43526 * XPath:
43527 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/max-prefixes
43528 */
43529 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
43530 struct nb_cb_modify_args *args)
43531 {
43532 switch (args->event) {
43533 case NB_EV_VALIDATE:
43534 case NB_EV_PREPARE:
43535 case NB_EV_ABORT:
43536 case NB_EV_APPLY:
43537 /* TODO: implement me. */
43538 break;
43539 }
43540
43541 return NB_OK;
43542 }
43543
43544 /*
43545 * XPath:
43546 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/force-check
43547 */
43548 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_force_check_modify(
43549 struct nb_cb_modify_args *args)
43550 {
43551 switch (args->event) {
43552 case NB_EV_VALIDATE:
43553 case NB_EV_PREPARE:
43554 case NB_EV_ABORT:
43555 case NB_EV_APPLY:
43556 /* TODO: implement me. */
43557 break;
43558 }
43559
43560 return NB_OK;
43561 }
43562
43563 /*
43564 * XPath:
43565 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/warning-only
43566 */
43567 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
43568 struct nb_cb_modify_args *args)
43569 {
43570 switch (args->event) {
43571 case NB_EV_VALIDATE:
43572 case NB_EV_PREPARE:
43573 case NB_EV_ABORT:
43574 case NB_EV_APPLY:
43575 /* TODO: implement me. */
43576 break;
43577 }
43578
43579 return NB_OK;
43580 }
43581
43582 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
43583 struct nb_cb_destroy_args *args)
43584 {
43585 switch (args->event) {
43586 case NB_EV_VALIDATE:
43587 case NB_EV_PREPARE:
43588 case NB_EV_ABORT:
43589 case NB_EV_APPLY:
43590 /* TODO: implement me. */
43591 break;
43592 }
43593
43594 return NB_OK;
43595 }
43596
43597 /*
43598 * XPath:
43599 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/restart-timer
43600 */
43601 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
43602 struct nb_cb_modify_args *args)
43603 {
43604 switch (args->event) {
43605 case NB_EV_VALIDATE:
43606 case NB_EV_PREPARE:
43607 case NB_EV_ABORT:
43608 case NB_EV_APPLY:
43609 /* TODO: implement me. */
43610 break;
43611 }
43612
43613 return NB_OK;
43614 }
43615
43616 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
43617 struct nb_cb_destroy_args *args)
43618 {
43619 switch (args->event) {
43620 case NB_EV_VALIDATE:
43621 case NB_EV_PREPARE:
43622 case NB_EV_ABORT:
43623 case NB_EV_APPLY:
43624 /* TODO: implement me. */
43625 break;
43626 }
43627
43628 return NB_OK;
43629 }
43630
43631 /*
43632 * XPath:
43633 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
43634 */
43635 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
43636 struct nb_cb_modify_args *args)
43637 {
43638 switch (args->event) {
43639 case NB_EV_VALIDATE:
43640 case NB_EV_PREPARE:
43641 case NB_EV_ABORT:
43642 case NB_EV_APPLY:
43643 /* TODO: implement me. */
43644 break;
43645 }
43646
43647 return NB_OK;
43648 }
43649
43650 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
43651 struct nb_cb_destroy_args *args)
43652 {
43653 switch (args->event) {
43654 case NB_EV_VALIDATE:
43655 case NB_EV_PREPARE:
43656 case NB_EV_ABORT:
43657 case NB_EV_APPLY:
43658 /* TODO: implement me. */
43659 break;
43660 }
43661
43662 return NB_OK;
43663 }
43664
43665 /*
43666 * XPath:
43667 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
43668 */
43669 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
43670 struct nb_cb_modify_args *args)
43671 {
43672 switch (args->event) {
43673 case NB_EV_VALIDATE:
43674 case NB_EV_PREPARE:
43675 case NB_EV_ABORT:
43676 case NB_EV_APPLY:
43677 /* TODO: implement me. */
43678 break;
43679 }
43680
43681 return NB_OK;
43682 }
43683
43684 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
43685 struct nb_cb_destroy_args *args)
43686 {
43687 switch (args->event) {
43688 case NB_EV_VALIDATE:
43689 case NB_EV_PREPARE:
43690 case NB_EV_ABORT:
43691 case NB_EV_APPLY:
43692 /* TODO: implement me. */
43693 break;
43694 }
43695
43696 return NB_OK;
43697 }
43698
43699 /*
43700 * XPath:
43701 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tr-restart-timer
43702 */
43703 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
43704 struct nb_cb_modify_args *args)
43705 {
43706 switch (args->event) {
43707 case NB_EV_VALIDATE:
43708 case NB_EV_PREPARE:
43709 case NB_EV_ABORT:
43710 case NB_EV_APPLY:
43711 /* TODO: implement me. */
43712 break;
43713 }
43714
43715 return NB_OK;
43716 }
43717
43718 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
43719 struct nb_cb_destroy_args *args)
43720 {
43721 switch (args->event) {
43722 case NB_EV_VALIDATE:
43723 case NB_EV_PREPARE:
43724 case NB_EV_ABORT:
43725 case NB_EV_APPLY:
43726 /* TODO: implement me. */
43727 break;
43728 }
43729
43730 return NB_OK;
43731 }
43732
43733 /*
43734 * XPath:
43735 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
43736 */
43737 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
43738 struct nb_cb_modify_args *args)
43739 {
43740 switch (args->event) {
43741 case NB_EV_VALIDATE:
43742 case NB_EV_PREPARE:
43743 case NB_EV_ABORT:
43744 case NB_EV_APPLY:
43745 /* TODO: implement me. */
43746 break;
43747 }
43748
43749 return NB_OK;
43750 }
43751
43752 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
43753 struct nb_cb_destroy_args *args)
43754 {
43755 switch (args->event) {
43756 case NB_EV_VALIDATE:
43757 case NB_EV_PREPARE:
43758 case NB_EV_ABORT:
43759 case NB_EV_APPLY:
43760 /* TODO: implement me. */
43761 break;
43762 }
43763
43764 return NB_OK;
43765 }
43766
43767 /*
43768 * XPath:
43769 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/prefix-limit/direction-list/options/tw-warning-only
43770 */
43771 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
43772 struct nb_cb_modify_args *args)
43773 {
43774 switch (args->event) {
43775 case NB_EV_VALIDATE:
43776 case NB_EV_PREPARE:
43777 case NB_EV_ABORT:
43778 case NB_EV_APPLY:
43779 /* TODO: implement me. */
43780 break;
43781 }
43782
43783 return NB_OK;
43784 }
43785
43786 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
43787 struct nb_cb_destroy_args *args)
43788 {
43789 switch (args->event) {
43790 case NB_EV_VALIDATE:
43791 case NB_EV_PREPARE:
43792 case NB_EV_ABORT:
43793 case NB_EV_APPLY:
43794 /* TODO: implement me. */
43795 break;
43796 }
43797
43798 return NB_OK;
43799 }
43800
43801 /*
43802 * XPath:
43803 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/nexthop-self/next-hop-self
43804 */
43805 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_modify(
43806 struct nb_cb_modify_args *args)
43807 {
43808 switch (args->event) {
43809 case NB_EV_VALIDATE:
43810 case NB_EV_PREPARE:
43811 case NB_EV_ABORT:
43812 return NB_OK;
43813 case NB_EV_APPLY:
43814 return bgp_peer_group_afi_safi_flag_modify(
43815 args, PEER_FLAG_NEXTHOP_SELF,
43816 yang_dnode_get_bool(args->dnode, NULL));
43817
43818 break;
43819 }
43820
43821 return NB_OK;
43822 }
43823
43824 /*
43825 * XPath:
43826 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/nexthop-self/next-hop-self-force
43827 */
43828 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_force_modify(
43829 struct nb_cb_modify_args *args)
43830 {
43831 switch (args->event) {
43832 case NB_EV_VALIDATE:
43833 case NB_EV_PREPARE:
43834 case NB_EV_ABORT:
43835 return NB_OK;
43836 case NB_EV_APPLY:
43837 return bgp_peer_group_afi_safi_flag_modify(
43838 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
43839 yang_dnode_get_bool(args->dnode, NULL));
43840
43841 break;
43842 }
43843
43844 return NB_OK;
43845 }
43846
43847 /*
43848 * XPath:
43849 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as-all
43850 */
43851 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_modify(
43852 struct nb_cb_modify_args *args)
43853 {
43854 switch (args->event) {
43855 case NB_EV_VALIDATE:
43856 case NB_EV_PREPARE:
43857 case NB_EV_ABORT:
43858 return NB_OK;
43859 case NB_EV_APPLY:
43860 return bgp_peer_group_afi_safi_flag_modify(
43861 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
43862 yang_dnode_get_bool(args->dnode, NULL));
43863
43864 break;
43865 }
43866
43867 return NB_OK;
43868 }
43869
43870 /*
43871 * XPath:
43872 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as-all-replace
43873 */
43874 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_replace_modify(
43875 struct nb_cb_modify_args *args)
43876 {
43877 switch (args->event) {
43878 case NB_EV_VALIDATE:
43879 case NB_EV_PREPARE:
43880 case NB_EV_ABORT:
43881 return NB_OK;
43882 case NB_EV_APPLY:
43883 return bgp_peer_group_afi_safi_flag_modify(
43884 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
43885 yang_dnode_get_bool(args->dnode, NULL));
43886
43887 break;
43888 }
43889
43890 return NB_OK;
43891 }
43892
43893 /*
43894 * XPath:
43895 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as
43896 */
43897 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_modify(
43898 struct nb_cb_modify_args *args)
43899 {
43900 switch (args->event) {
43901 case NB_EV_VALIDATE:
43902 case NB_EV_PREPARE:
43903 case NB_EV_ABORT:
43904 return NB_OK;
43905 case NB_EV_APPLY:
43906 return bgp_peer_group_afi_safi_flag_modify(
43907 args, PEER_FLAG_REMOVE_PRIVATE_AS,
43908 yang_dnode_get_bool(args->dnode, NULL));
43909
43910 break;
43911 }
43912
43913 return NB_OK;
43914 }
43915
43916 /*
43917 * XPath:
43918 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/private-as/remove-private-as-replace
43919 */
43920 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_replace_modify(
43921 struct nb_cb_modify_args *args)
43922 {
43923 switch (args->event) {
43924 case NB_EV_VALIDATE:
43925 case NB_EV_PREPARE:
43926 case NB_EV_ABORT:
43927 return NB_OK;
43928 case NB_EV_APPLY:
43929 return bgp_peer_group_afi_safi_flag_modify(
43930 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
43931 yang_dnode_get_bool(args->dnode, NULL));
43932
43933 break;
43934 }
43935
43936 return NB_OK;
43937 }
43938
43939 /*
43940 * XPath:
43941 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/route-reflector/route-reflector-client
43942 */
43943 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_route_reflector_route_reflector_client_modify(
43944 struct nb_cb_modify_args *args)
43945 {
43946 switch (args->event) {
43947 case NB_EV_VALIDATE:
43948 case NB_EV_PREPARE:
43949 case NB_EV_ABORT:
43950 return NB_OK;
43951 case NB_EV_APPLY:
43952 return bgp_peer_group_afi_safi_flag_modify(
43953 args, PEER_FLAG_REFLECTOR_CLIENT,
43954 yang_dnode_get_bool(args->dnode, NULL));
43955
43956 break;
43957 }
43958
43959 return NB_OK;
43960 }
43961
43962 /*
43963 * XPath:
43964 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/route-server/route-server-client
43965 */
43966 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_route_server_route_server_client_modify(
43967 struct nb_cb_modify_args *args)
43968 {
43969 switch (args->event) {
43970 case NB_EV_VALIDATE:
43971 case NB_EV_PREPARE:
43972 case NB_EV_ABORT:
43973 return NB_OK;
43974 case NB_EV_APPLY:
43975 return bgp_peer_group_afi_safi_flag_modify(
43976 args, PEER_FLAG_RSERVER_CLIENT,
43977 yang_dnode_get_bool(args->dnode, NULL));
43978
43979 break;
43980 }
43981
43982 return NB_OK;
43983 }
43984
43985 /*
43986 * XPath:
43987 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/send-community/send-community
43988 */
43989 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_community_modify(
43990 struct nb_cb_modify_args *args)
43991 {
43992 switch (args->event) {
43993 case NB_EV_VALIDATE:
43994 case NB_EV_PREPARE:
43995 case NB_EV_ABORT:
43996 return NB_OK;
43997 case NB_EV_APPLY:
43998 return bgp_peer_group_afi_safi_flag_modify(
43999 args, PEER_FLAG_SEND_COMMUNITY,
44000 yang_dnode_get_bool(args->dnode, NULL));
44001
44002 break;
44003 }
44004
44005 return NB_OK;
44006 }
44007
44008 /*
44009 * XPath:
44010 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/send-community/send-ext-community
44011 */
44012 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_ext_community_modify(
44013 struct nb_cb_modify_args *args)
44014 {
44015 switch (args->event) {
44016 case NB_EV_VALIDATE:
44017 case NB_EV_PREPARE:
44018 case NB_EV_ABORT:
44019 return NB_OK;
44020 case NB_EV_APPLY:
44021 return bgp_peer_group_afi_safi_flag_modify(
44022 args, PEER_FLAG_SEND_EXT_COMMUNITY,
44023 yang_dnode_get_bool(args->dnode, NULL));
44024
44025 break;
44026 }
44027
44028 return NB_OK;
44029 }
44030
44031 /*
44032 * XPath:
44033 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/send-community/send-large-community
44034 */
44035 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_large_community_modify(
44036 struct nb_cb_modify_args *args)
44037 {
44038 switch (args->event) {
44039 case NB_EV_VALIDATE:
44040 case NB_EV_PREPARE:
44041 case NB_EV_ABORT:
44042 return NB_OK;
44043 case NB_EV_APPLY:
44044 return bgp_peer_group_afi_safi_flag_modify(
44045 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
44046 yang_dnode_get_bool(args->dnode, NULL));
44047
44048 break;
44049 }
44050
44051 return NB_OK;
44052 }
44053
44054 /*
44055 * XPath:
44056 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/soft-reconfiguration
44057 */
44058 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_soft_reconfiguration_modify(
44059 struct nb_cb_modify_args *args)
44060 {
44061 switch (args->event) {
44062 case NB_EV_VALIDATE:
44063 case NB_EV_PREPARE:
44064 case NB_EV_ABORT:
44065 return NB_OK;
44066 case NB_EV_APPLY:
44067 return bgp_peer_group_afi_safi_flag_modify(
44068 args, PEER_FLAG_SOFT_RECONFIG,
44069 yang_dnode_get_bool(args->dnode, NULL));
44070
44071 break;
44072 }
44073
44074 return NB_OK;
44075 }
44076
44077 /*
44078 * XPath:
44079 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/weight/weight-attribute
44080 */
44081 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_modify(
44082 struct nb_cb_modify_args *args)
44083 {
44084 switch (args->event) {
44085 case NB_EV_VALIDATE:
44086 case NB_EV_PREPARE:
44087 case NB_EV_ABORT:
44088 return NB_OK;
44089 case NB_EV_APPLY:
44090 return bgp_peer_group_afi_safi_weight_modify(args);
44091
44092 break;
44093 }
44094
44095 return NB_OK;
44096 }
44097
44098 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_destroy(
44099 struct nb_cb_destroy_args *args)
44100 {
44101 switch (args->event) {
44102 case NB_EV_VALIDATE:
44103 case NB_EV_PREPARE:
44104 case NB_EV_ABORT:
44105 return NB_OK;
44106 case NB_EV_APPLY:
44107 return bgp_peer_group_afi_safi_weight_destroy(args);
44108
44109 break;
44110 }
44111
44112 return NB_OK;
44113 }
44114
44115 /*
44116 * XPath:
44117 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/rmap-import
44118 */
44119 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_import_modify(
44120 struct nb_cb_modify_args *args)
44121 {
44122 switch (args->event) {
44123 case NB_EV_VALIDATE:
44124 case NB_EV_PREPARE:
44125 case NB_EV_ABORT:
44126 break;
44127 case NB_EV_APPLY:
44128 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
44129 }
44130
44131 return NB_OK;
44132 }
44133
44134 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_import_destroy(
44135 struct nb_cb_destroy_args *args)
44136 {
44137 switch (args->event) {
44138 case NB_EV_VALIDATE:
44139 case NB_EV_PREPARE:
44140 case NB_EV_ABORT:
44141 break;
44142 case NB_EV_APPLY:
44143 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
44144 }
44145
44146 return NB_OK;
44147 }
44148
44149 /*
44150 * XPath:
44151 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/rmap-export
44152 */
44153 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_export_modify(
44154 struct nb_cb_modify_args *args)
44155 {
44156 switch (args->event) {
44157 case NB_EV_VALIDATE:
44158 case NB_EV_PREPARE:
44159 case NB_EV_ABORT:
44160 break;
44161 case NB_EV_APPLY:
44162 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
44163 }
44164
44165 return NB_OK;
44166 }
44167
44168 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_export_destroy(
44169 struct nb_cb_destroy_args *args)
44170 {
44171 switch (args->event) {
44172 case NB_EV_VALIDATE:
44173 case NB_EV_PREPARE:
44174 case NB_EV_ABORT:
44175 break;
44176 case NB_EV_APPLY:
44177 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
44178 }
44179
44180 return NB_OK;
44181 }
44182
44183 /*
44184 * XPath:
44185 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/plist-import
44186 */
44187 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_import_modify(
44188 struct nb_cb_modify_args *args)
44189 {
44190 switch (args->event) {
44191 case NB_EV_VALIDATE:
44192 case NB_EV_PREPARE:
44193 case NB_EV_ABORT:
44194 break;
44195 case NB_EV_APPLY:
44196 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
44197 }
44198
44199 return NB_OK;
44200 }
44201
44202 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_import_destroy(
44203 struct nb_cb_destroy_args *args)
44204 {
44205 switch (args->event) {
44206 case NB_EV_VALIDATE:
44207 case NB_EV_PREPARE:
44208 case NB_EV_ABORT:
44209 break;
44210 case NB_EV_APPLY:
44211 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
44212 }
44213
44214 return NB_OK;
44215 }
44216
44217 /*
44218 * XPath:
44219 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/plist-export
44220 */
44221 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_export_modify(
44222 struct nb_cb_modify_args *args)
44223 {
44224 switch (args->event) {
44225 case NB_EV_VALIDATE:
44226 case NB_EV_PREPARE:
44227 case NB_EV_ABORT:
44228 break;
44229 case NB_EV_APPLY:
44230 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
44231 }
44232
44233 return NB_OK;
44234 }
44235
44236 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_export_destroy(
44237 struct nb_cb_destroy_args *args)
44238 {
44239 switch (args->event) {
44240 case NB_EV_VALIDATE:
44241 case NB_EV_PREPARE:
44242 case NB_EV_ABORT:
44243 break;
44244 case NB_EV_APPLY:
44245 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
44246 }
44247
44248 return NB_OK;
44249 }
44250
44251 /*
44252 * XPath:
44253 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/access-list-import
44254 */
44255 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_import_modify(
44256 struct nb_cb_modify_args *args)
44257 {
44258 switch (args->event) {
44259 case NB_EV_VALIDATE:
44260 case NB_EV_PREPARE:
44261 case NB_EV_ABORT:
44262 case NB_EV_APPLY:
44263 /* TODO: implement me. */
44264 break;
44265 }
44266
44267 return NB_OK;
44268 }
44269
44270 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_import_destroy(
44271 struct nb_cb_destroy_args *args)
44272 {
44273 switch (args->event) {
44274 case NB_EV_VALIDATE:
44275 case NB_EV_PREPARE:
44276 case NB_EV_ABORT:
44277 case NB_EV_APPLY:
44278 /* TODO: implement me. */
44279 break;
44280 }
44281
44282 return NB_OK;
44283 }
44284
44285 /*
44286 * XPath:
44287 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/access-list-export
44288 */
44289 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_export_modify(
44290 struct nb_cb_modify_args *args)
44291 {
44292 switch (args->event) {
44293 case NB_EV_VALIDATE:
44294 case NB_EV_PREPARE:
44295 case NB_EV_ABORT:
44296 case NB_EV_APPLY:
44297 /* TODO: implement me. */
44298 break;
44299 }
44300
44301 return NB_OK;
44302 }
44303
44304 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_export_destroy(
44305 struct nb_cb_destroy_args *args)
44306 {
44307 switch (args->event) {
44308 case NB_EV_VALIDATE:
44309 case NB_EV_PREPARE:
44310 case NB_EV_ABORT:
44311 case NB_EV_APPLY:
44312 /* TODO: implement me. */
44313 break;
44314 }
44315
44316 return NB_OK;
44317 }
44318
44319 /*
44320 * XPath:
44321 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/as-path-filter-list-import
44322 */
44323 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_import_modify(
44324 struct nb_cb_modify_args *args)
44325 {
44326 switch (args->event) {
44327 case NB_EV_VALIDATE:
44328 case NB_EV_PREPARE:
44329 case NB_EV_ABORT:
44330 case NB_EV_APPLY:
44331 /* TODO: implement me. */
44332 break;
44333 }
44334
44335 return NB_OK;
44336 }
44337
44338 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_import_destroy(
44339 struct nb_cb_destroy_args *args)
44340 {
44341 switch (args->event) {
44342 case NB_EV_VALIDATE:
44343 case NB_EV_PREPARE:
44344 case NB_EV_ABORT:
44345 case NB_EV_APPLY:
44346 /* TODO: implement me. */
44347 break;
44348 }
44349
44350 return NB_OK;
44351 }
44352
44353 /*
44354 * XPath:
44355 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/as-path-filter-list-export
44356 */
44357 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_export_modify(
44358 struct nb_cb_modify_args *args)
44359 {
44360 switch (args->event) {
44361 case NB_EV_VALIDATE:
44362 case NB_EV_PREPARE:
44363 case NB_EV_ABORT:
44364 case NB_EV_APPLY:
44365 /* TODO: implement me. */
44366 break;
44367 }
44368
44369 return NB_OK;
44370 }
44371
44372 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_export_destroy(
44373 struct nb_cb_destroy_args *args)
44374 {
44375 switch (args->event) {
44376 case NB_EV_VALIDATE:
44377 case NB_EV_PREPARE:
44378 case NB_EV_ABORT:
44379 case NB_EV_APPLY:
44380 /* TODO: implement me. */
44381 break;
44382 }
44383
44384 return NB_OK;
44385 }
44386
44387 /*
44388 * XPath:
44389 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/unsuppress-map-import
44390 */
44391 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_import_modify(
44392 struct nb_cb_modify_args *args)
44393 {
44394 switch (args->event) {
44395 case NB_EV_VALIDATE:
44396 case NB_EV_PREPARE:
44397 case NB_EV_ABORT:
44398 case NB_EV_APPLY:
44399 /* TODO: implement me. */
44400 break;
44401 }
44402
44403 return NB_OK;
44404 }
44405
44406 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_import_destroy(
44407 struct nb_cb_destroy_args *args)
44408 {
44409 switch (args->event) {
44410 case NB_EV_VALIDATE:
44411 case NB_EV_PREPARE:
44412 case NB_EV_ABORT:
44413 case NB_EV_APPLY:
44414 /* TODO: implement me. */
44415 break;
44416 }
44417
44418 return NB_OK;
44419 }
44420
44421 /*
44422 * XPath:
44423 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-labeled-unicast/filter-config/unsuppress-map-export
44424 */
44425 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_export_modify(
44426 struct nb_cb_modify_args *args)
44427 {
44428 switch (args->event) {
44429 case NB_EV_VALIDATE:
44430 case NB_EV_PREPARE:
44431 case NB_EV_ABORT:
44432 case NB_EV_APPLY:
44433 /* TODO: implement me. */
44434 break;
44435 }
44436
44437 return NB_OK;
44438 }
44439
44440 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_export_destroy(
44441 struct nb_cb_destroy_args *args)
44442 {
44443 switch (args->event) {
44444 case NB_EV_VALIDATE:
44445 case NB_EV_PREPARE:
44446 case NB_EV_ABORT:
44447 case NB_EV_APPLY:
44448 /* TODO: implement me. */
44449 break;
44450 }
44451
44452 return NB_OK;
44453 }
44454
44455 /*
44456 * XPath:
44457 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/add-paths/path-type
44458 */
44459 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_add_paths_path_type_modify(
44460 struct nb_cb_modify_args *args)
44461 {
44462 switch (args->event) {
44463 case NB_EV_VALIDATE:
44464 case NB_EV_PREPARE:
44465 case NB_EV_ABORT:
44466 case NB_EV_APPLY:
44467 /* TODO: implement me. */
44468 break;
44469 }
44470
44471 return NB_OK;
44472 }
44473
44474 /*
44475 * XPath:
44476 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/as-path-options/allow-own-as
44477 */
44478 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_modify(
44479 struct nb_cb_modify_args *args)
44480 {
44481 switch (args->event) {
44482 case NB_EV_VALIDATE:
44483 case NB_EV_PREPARE:
44484 case NB_EV_ABORT:
44485 case NB_EV_APPLY:
44486 /* TODO: implement me. */
44487 break;
44488 }
44489
44490 return NB_OK;
44491 }
44492
44493 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_destroy(
44494 struct nb_cb_destroy_args *args)
44495 {
44496 switch (args->event) {
44497 case NB_EV_VALIDATE:
44498 case NB_EV_PREPARE:
44499 case NB_EV_ABORT:
44500 case NB_EV_APPLY:
44501 /* TODO: implement me. */
44502 break;
44503 }
44504
44505 return NB_OK;
44506 }
44507
44508 /*
44509 * XPath:
44510 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/as-path-options/allow-own-origin-as
44511 */
44512 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
44513 struct nb_cb_modify_args *args)
44514 {
44515 switch (args->event) {
44516 case NB_EV_VALIDATE:
44517 case NB_EV_PREPARE:
44518 case NB_EV_ABORT:
44519 case NB_EV_APPLY:
44520 /* TODO: implement me. */
44521 break;
44522 }
44523
44524 return NB_OK;
44525 }
44526
44527 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
44528 struct nb_cb_destroy_args *args)
44529 {
44530 switch (args->event) {
44531 case NB_EV_VALIDATE:
44532 case NB_EV_PREPARE:
44533 case NB_EV_ABORT:
44534 case NB_EV_APPLY:
44535 /* TODO: implement me. */
44536 break;
44537 }
44538
44539 return NB_OK;
44540 }
44541
44542 /*
44543 * XPath:
44544 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/as-path-options/replace-peer-as
44545 */
44546 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_replace_peer_as_modify(
44547 struct nb_cb_modify_args *args)
44548 {
44549 switch (args->event) {
44550 case NB_EV_VALIDATE:
44551 case NB_EV_PREPARE:
44552 case NB_EV_ABORT:
44553 return NB_OK;
44554 case NB_EV_APPLY:
44555 return bgp_peer_group_afi_safi_flag_modify(
44556 args, PEER_FLAG_AS_OVERRIDE,
44557 yang_dnode_get_bool(args->dnode, NULL));
44558
44559 break;
44560 }
44561
44562 return NB_OK;
44563 }
44564
44565 /*
44566 * XPath:
44567 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/attr-unchanged/as-path-unchanged
44568 */
44569 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
44570 struct nb_cb_modify_args *args)
44571 {
44572 switch (args->event) {
44573 case NB_EV_VALIDATE:
44574 case NB_EV_PREPARE:
44575 case NB_EV_ABORT:
44576 return NB_OK;
44577 case NB_EV_APPLY:
44578 return bgp_peer_group_afi_safi_flag_modify(
44579 args, PEER_FLAG_AS_PATH_UNCHANGED,
44580 yang_dnode_get_bool(args->dnode, NULL));
44581
44582 break;
44583 }
44584
44585 return NB_OK;
44586 }
44587
44588 /*
44589 * XPath:
44590 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/attr-unchanged/next-hop-unchanged
44591 */
44592 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
44593 struct nb_cb_modify_args *args)
44594 {
44595 switch (args->event) {
44596 case NB_EV_VALIDATE:
44597 case NB_EV_PREPARE:
44598 case NB_EV_ABORT:
44599 return NB_OK;
44600 case NB_EV_APPLY:
44601 return bgp_peer_group_afi_safi_flag_modify(
44602 args, PEER_FLAG_NEXTHOP_UNCHANGED,
44603 yang_dnode_get_bool(args->dnode, NULL));
44604
44605 break;
44606 }
44607
44608 return NB_OK;
44609 }
44610
44611 /*
44612 * XPath:
44613 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/attr-unchanged/med-unchanged
44614 */
44615 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_med_unchanged_modify(
44616 struct nb_cb_modify_args *args)
44617 {
44618 switch (args->event) {
44619 case NB_EV_VALIDATE:
44620 case NB_EV_PREPARE:
44621 case NB_EV_ABORT:
44622 return NB_OK;
44623 case NB_EV_APPLY:
44624 return bgp_peer_group_afi_safi_flag_modify(
44625 args, PEER_FLAG_MED_UNCHANGED,
44626 yang_dnode_get_bool(args->dnode, NULL));
44627
44628 break;
44629 }
44630
44631 return NB_OK;
44632 }
44633
44634 /*
44635 * XPath:
44636 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list
44637 */
44638 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_create(
44639 struct nb_cb_create_args *args)
44640 {
44641 switch (args->event) {
44642 case NB_EV_VALIDATE:
44643 case NB_EV_PREPARE:
44644 case NB_EV_ABORT:
44645 case NB_EV_APPLY:
44646 /* TODO: implement me. */
44647 break;
44648 }
44649
44650 return NB_OK;
44651 }
44652
44653 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_destroy(
44654 struct nb_cb_destroy_args *args)
44655 {
44656 switch (args->event) {
44657 case NB_EV_VALIDATE:
44658 case NB_EV_PREPARE:
44659 case NB_EV_ABORT:
44660 return NB_OK;
44661 case NB_EV_APPLY:
44662 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
44663 }
44664
44665 return NB_OK;
44666 }
44667
44668 /*
44669 * XPath:
44670 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/max-prefixes
44671 */
44672 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
44673 struct nb_cb_modify_args *args)
44674 {
44675 switch (args->event) {
44676 case NB_EV_VALIDATE:
44677 case NB_EV_PREPARE:
44678 case NB_EV_ABORT:
44679 case NB_EV_APPLY:
44680 /* TODO: implement me. */
44681 break;
44682 }
44683
44684 return NB_OK;
44685 }
44686
44687 /*
44688 * XPath:
44689 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/force-check
44690 */
44691 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
44692 struct nb_cb_modify_args *args)
44693 {
44694 switch (args->event) {
44695 case NB_EV_VALIDATE:
44696 case NB_EV_PREPARE:
44697 case NB_EV_ABORT:
44698 case NB_EV_APPLY:
44699 /* TODO: implement me. */
44700 break;
44701 }
44702
44703 return NB_OK;
44704 }
44705
44706 /*
44707 * XPath:
44708 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/warning-only
44709 */
44710 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
44711 struct nb_cb_modify_args *args)
44712 {
44713 switch (args->event) {
44714 case NB_EV_VALIDATE:
44715 case NB_EV_PREPARE:
44716 case NB_EV_ABORT:
44717 case NB_EV_APPLY:
44718 /* TODO: implement me. */
44719 break;
44720 }
44721
44722 return NB_OK;
44723 }
44724
44725 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
44726 struct nb_cb_destroy_args *args)
44727 {
44728 switch (args->event) {
44729 case NB_EV_VALIDATE:
44730 case NB_EV_PREPARE:
44731 case NB_EV_ABORT:
44732 case NB_EV_APPLY:
44733 /* TODO: implement me. */
44734 break;
44735 }
44736
44737 return NB_OK;
44738 }
44739
44740 /*
44741 * XPath:
44742 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/restart-timer
44743 */
44744 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
44745 struct nb_cb_modify_args *args)
44746 {
44747 switch (args->event) {
44748 case NB_EV_VALIDATE:
44749 case NB_EV_PREPARE:
44750 case NB_EV_ABORT:
44751 case NB_EV_APPLY:
44752 /* TODO: implement me. */
44753 break;
44754 }
44755
44756 return NB_OK;
44757 }
44758
44759 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
44760 struct nb_cb_destroy_args *args)
44761 {
44762 switch (args->event) {
44763 case NB_EV_VALIDATE:
44764 case NB_EV_PREPARE:
44765 case NB_EV_ABORT:
44766 case NB_EV_APPLY:
44767 /* TODO: implement me. */
44768 break;
44769 }
44770
44771 return NB_OK;
44772 }
44773
44774 /*
44775 * XPath:
44776 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
44777 */
44778 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
44779 struct nb_cb_modify_args *args)
44780 {
44781 switch (args->event) {
44782 case NB_EV_VALIDATE:
44783 case NB_EV_PREPARE:
44784 case NB_EV_ABORT:
44785 case NB_EV_APPLY:
44786 /* TODO: implement me. */
44787 break;
44788 }
44789
44790 return NB_OK;
44791 }
44792
44793 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
44794 struct nb_cb_destroy_args *args)
44795 {
44796 switch (args->event) {
44797 case NB_EV_VALIDATE:
44798 case NB_EV_PREPARE:
44799 case NB_EV_ABORT:
44800 case NB_EV_APPLY:
44801 /* TODO: implement me. */
44802 break;
44803 }
44804
44805 return NB_OK;
44806 }
44807
44808 /*
44809 * XPath:
44810 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
44811 */
44812 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
44813 struct nb_cb_modify_args *args)
44814 {
44815 switch (args->event) {
44816 case NB_EV_VALIDATE:
44817 case NB_EV_PREPARE:
44818 case NB_EV_ABORT:
44819 case NB_EV_APPLY:
44820 /* TODO: implement me. */
44821 break;
44822 }
44823
44824 return NB_OK;
44825 }
44826
44827 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
44828 struct nb_cb_destroy_args *args)
44829 {
44830 switch (args->event) {
44831 case NB_EV_VALIDATE:
44832 case NB_EV_PREPARE:
44833 case NB_EV_ABORT:
44834 case NB_EV_APPLY:
44835 /* TODO: implement me. */
44836 break;
44837 }
44838
44839 return NB_OK;
44840 }
44841
44842 /*
44843 * XPath:
44844 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tr-restart-timer
44845 */
44846 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
44847 struct nb_cb_modify_args *args)
44848 {
44849 switch (args->event) {
44850 case NB_EV_VALIDATE:
44851 case NB_EV_PREPARE:
44852 case NB_EV_ABORT:
44853 case NB_EV_APPLY:
44854 /* TODO: implement me. */
44855 break;
44856 }
44857
44858 return NB_OK;
44859 }
44860
44861 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
44862 struct nb_cb_destroy_args *args)
44863 {
44864 switch (args->event) {
44865 case NB_EV_VALIDATE:
44866 case NB_EV_PREPARE:
44867 case NB_EV_ABORT:
44868 case NB_EV_APPLY:
44869 /* TODO: implement me. */
44870 break;
44871 }
44872
44873 return NB_OK;
44874 }
44875
44876 /*
44877 * XPath:
44878 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
44879 */
44880 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
44881 struct nb_cb_modify_args *args)
44882 {
44883 switch (args->event) {
44884 case NB_EV_VALIDATE:
44885 case NB_EV_PREPARE:
44886 case NB_EV_ABORT:
44887 case NB_EV_APPLY:
44888 /* TODO: implement me. */
44889 break;
44890 }
44891
44892 return NB_OK;
44893 }
44894
44895 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
44896 struct nb_cb_destroy_args *args)
44897 {
44898 switch (args->event) {
44899 case NB_EV_VALIDATE:
44900 case NB_EV_PREPARE:
44901 case NB_EV_ABORT:
44902 case NB_EV_APPLY:
44903 /* TODO: implement me. */
44904 break;
44905 }
44906
44907 return NB_OK;
44908 }
44909
44910 /*
44911 * XPath:
44912 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/prefix-limit/direction-list/options/tw-warning-only
44913 */
44914 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
44915 struct nb_cb_modify_args *args)
44916 {
44917 switch (args->event) {
44918 case NB_EV_VALIDATE:
44919 case NB_EV_PREPARE:
44920 case NB_EV_ABORT:
44921 case NB_EV_APPLY:
44922 /* TODO: implement me. */
44923 break;
44924 }
44925
44926 return NB_OK;
44927 }
44928
44929 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
44930 struct nb_cb_destroy_args *args)
44931 {
44932 switch (args->event) {
44933 case NB_EV_VALIDATE:
44934 case NB_EV_PREPARE:
44935 case NB_EV_ABORT:
44936 case NB_EV_APPLY:
44937 /* TODO: implement me. */
44938 break;
44939 }
44940
44941 return NB_OK;
44942 }
44943
44944 /*
44945 * XPath:
44946 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/nexthop-self/next-hop-self
44947 */
44948 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_modify(
44949 struct nb_cb_modify_args *args)
44950 {
44951 switch (args->event) {
44952 case NB_EV_VALIDATE:
44953 case NB_EV_PREPARE:
44954 case NB_EV_ABORT:
44955 return NB_OK;
44956 case NB_EV_APPLY:
44957 return bgp_peer_group_afi_safi_flag_modify(
44958 args, PEER_FLAG_NEXTHOP_SELF,
44959 yang_dnode_get_bool(args->dnode, NULL));
44960
44961 break;
44962 }
44963
44964 return NB_OK;
44965 }
44966
44967 /*
44968 * XPath:
44969 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/nexthop-self/next-hop-self-force
44970 */
44971 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
44972 struct nb_cb_modify_args *args)
44973 {
44974 switch (args->event) {
44975 case NB_EV_VALIDATE:
44976 case NB_EV_PREPARE:
44977 case NB_EV_ABORT:
44978 return NB_OK;
44979 case NB_EV_APPLY:
44980 return bgp_peer_group_afi_safi_flag_modify(
44981 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
44982 yang_dnode_get_bool(args->dnode, NULL));
44983
44984 break;
44985 }
44986
44987 return NB_OK;
44988 }
44989
44990 /*
44991 * XPath:
44992 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as-all
44993 */
44994 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_modify(
44995 struct nb_cb_modify_args *args)
44996 {
44997 switch (args->event) {
44998 case NB_EV_VALIDATE:
44999 case NB_EV_PREPARE:
45000 case NB_EV_ABORT:
45001 return NB_OK;
45002 case NB_EV_APPLY:
45003 return bgp_peer_group_afi_safi_flag_modify(
45004 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
45005 yang_dnode_get_bool(args->dnode, NULL));
45006
45007 break;
45008 }
45009
45010 return NB_OK;
45011 }
45012
45013 /*
45014 * XPath:
45015 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as-all-replace
45016 */
45017 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
45018 struct nb_cb_modify_args *args)
45019 {
45020 switch (args->event) {
45021 case NB_EV_VALIDATE:
45022 case NB_EV_PREPARE:
45023 case NB_EV_ABORT:
45024 return NB_OK;
45025 case NB_EV_APPLY:
45026 return bgp_peer_group_afi_safi_flag_modify(
45027 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
45028 yang_dnode_get_bool(args->dnode, NULL));
45029
45030 break;
45031 }
45032
45033 return NB_OK;
45034 }
45035
45036 /*
45037 * XPath:
45038 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as
45039 */
45040 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_modify(
45041 struct nb_cb_modify_args *args)
45042 {
45043 switch (args->event) {
45044 case NB_EV_VALIDATE:
45045 case NB_EV_PREPARE:
45046 case NB_EV_ABORT:
45047 return NB_OK;
45048 case NB_EV_APPLY:
45049 return bgp_peer_group_afi_safi_flag_modify(
45050 args, PEER_FLAG_REMOVE_PRIVATE_AS,
45051 yang_dnode_get_bool(args->dnode, NULL));
45052
45053 break;
45054 }
45055
45056 return NB_OK;
45057 }
45058
45059 /*
45060 * XPath:
45061 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/private-as/remove-private-as-replace
45062 */
45063 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_replace_modify(
45064 struct nb_cb_modify_args *args)
45065 {
45066 switch (args->event) {
45067 case NB_EV_VALIDATE:
45068 case NB_EV_PREPARE:
45069 case NB_EV_ABORT:
45070 return NB_OK;
45071 case NB_EV_APPLY:
45072 return bgp_peer_group_afi_safi_flag_modify(
45073 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
45074 yang_dnode_get_bool(args->dnode, NULL));
45075
45076 break;
45077 }
45078
45079 return NB_OK;
45080 }
45081
45082 /*
45083 * XPath:
45084 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/route-reflector/route-reflector-client
45085 */
45086 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_reflector_route_reflector_client_modify(
45087 struct nb_cb_modify_args *args)
45088 {
45089 switch (args->event) {
45090 case NB_EV_VALIDATE:
45091 case NB_EV_PREPARE:
45092 case NB_EV_ABORT:
45093 return NB_OK;
45094 case NB_EV_APPLY:
45095 return bgp_peer_group_afi_safi_flag_modify(
45096 args, PEER_FLAG_REFLECTOR_CLIENT,
45097 yang_dnode_get_bool(args->dnode, NULL));
45098
45099 break;
45100 }
45101
45102 return NB_OK;
45103 }
45104
45105 /*
45106 * XPath:
45107 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/route-server/route-server-client
45108 */
45109 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_server_route_server_client_modify(
45110 struct nb_cb_modify_args *args)
45111 {
45112 switch (args->event) {
45113 case NB_EV_VALIDATE:
45114 case NB_EV_PREPARE:
45115 case NB_EV_ABORT:
45116 return NB_OK;
45117 case NB_EV_APPLY:
45118 return bgp_peer_group_afi_safi_flag_modify(
45119 args, PEER_FLAG_RSERVER_CLIENT,
45120 yang_dnode_get_bool(args->dnode, NULL));
45121
45122 break;
45123 }
45124
45125 return NB_OK;
45126 }
45127
45128 /*
45129 * XPath:
45130 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/send-community/send-community
45131 */
45132 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_community_modify(
45133 struct nb_cb_modify_args *args)
45134 {
45135 switch (args->event) {
45136 case NB_EV_VALIDATE:
45137 case NB_EV_PREPARE:
45138 case NB_EV_ABORT:
45139 return NB_OK;
45140 case NB_EV_APPLY:
45141 return bgp_peer_group_afi_safi_flag_modify(
45142 args, PEER_FLAG_SEND_COMMUNITY,
45143 yang_dnode_get_bool(args->dnode, NULL));
45144
45145 break;
45146 }
45147
45148 return NB_OK;
45149 }
45150
45151 /*
45152 * XPath:
45153 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/send-community/send-ext-community
45154 */
45155 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_ext_community_modify(
45156 struct nb_cb_modify_args *args)
45157 {
45158 switch (args->event) {
45159 case NB_EV_VALIDATE:
45160 case NB_EV_PREPARE:
45161 case NB_EV_ABORT:
45162 return NB_OK;
45163 case NB_EV_APPLY:
45164 return bgp_peer_group_afi_safi_flag_modify(
45165 args, PEER_FLAG_SEND_EXT_COMMUNITY,
45166 yang_dnode_get_bool(args->dnode, NULL));
45167
45168 break;
45169 }
45170
45171 return NB_OK;
45172 }
45173
45174 /*
45175 * XPath:
45176 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/send-community/send-large-community
45177 */
45178 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_large_community_modify(
45179 struct nb_cb_modify_args *args)
45180 {
45181 switch (args->event) {
45182 case NB_EV_VALIDATE:
45183 case NB_EV_PREPARE:
45184 case NB_EV_ABORT:
45185 return NB_OK;
45186 case NB_EV_APPLY:
45187 return bgp_peer_group_afi_safi_flag_modify(
45188 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
45189 yang_dnode_get_bool(args->dnode, NULL));
45190
45191 break;
45192 }
45193
45194 return NB_OK;
45195 }
45196
45197 /*
45198 * XPath:
45199 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/soft-reconfiguration
45200 */
45201 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_soft_reconfiguration_modify(
45202 struct nb_cb_modify_args *args)
45203 {
45204 switch (args->event) {
45205 case NB_EV_VALIDATE:
45206 case NB_EV_PREPARE:
45207 case NB_EV_ABORT:
45208 return NB_OK;
45209 case NB_EV_APPLY:
45210 return bgp_peer_group_afi_safi_flag_modify(
45211 args, PEER_FLAG_SOFT_RECONFIG,
45212 yang_dnode_get_bool(args->dnode, NULL));
45213
45214 break;
45215 }
45216
45217 return NB_OK;
45218 }
45219
45220 /*
45221 * XPath:
45222 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/weight/weight-attribute
45223 */
45224 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_modify(
45225 struct nb_cb_modify_args *args)
45226 {
45227 switch (args->event) {
45228 case NB_EV_VALIDATE:
45229 case NB_EV_PREPARE:
45230 case NB_EV_ABORT:
45231 return NB_OK;
45232 case NB_EV_APPLY:
45233 return bgp_peer_group_afi_safi_weight_modify(args);
45234
45235 break;
45236 }
45237
45238 return NB_OK;
45239 }
45240
45241 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_destroy(
45242 struct nb_cb_destroy_args *args)
45243 {
45244 switch (args->event) {
45245 case NB_EV_VALIDATE:
45246 case NB_EV_PREPARE:
45247 case NB_EV_ABORT:
45248 return NB_OK;
45249 case NB_EV_APPLY:
45250 return bgp_peer_group_afi_safi_weight_destroy(args);
45251
45252 break;
45253 }
45254
45255 return NB_OK;
45256 }
45257
45258 /*
45259 * XPath:
45260 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/rmap-import
45261 */
45262 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_import_modify(
45263 struct nb_cb_modify_args *args)
45264 {
45265 switch (args->event) {
45266 case NB_EV_VALIDATE:
45267 case NB_EV_PREPARE:
45268 case NB_EV_ABORT:
45269 break;
45270 case NB_EV_APPLY:
45271 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
45272 }
45273
45274 return NB_OK;
45275 }
45276
45277 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_import_destroy(
45278 struct nb_cb_destroy_args *args)
45279 {
45280 switch (args->event) {
45281 case NB_EV_VALIDATE:
45282 case NB_EV_PREPARE:
45283 case NB_EV_ABORT:
45284 break;
45285 case NB_EV_APPLY:
45286 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
45287 }
45288
45289 return NB_OK;
45290 }
45291
45292 /*
45293 * XPath:
45294 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/rmap-export
45295 */
45296 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_export_modify(
45297 struct nb_cb_modify_args *args)
45298 {
45299 switch (args->event) {
45300 case NB_EV_VALIDATE:
45301 case NB_EV_PREPARE:
45302 case NB_EV_ABORT:
45303 break;
45304 case NB_EV_APPLY:
45305 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
45306 }
45307
45308 return NB_OK;
45309 }
45310
45311 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_export_destroy(
45312 struct nb_cb_destroy_args *args)
45313 {
45314 switch (args->event) {
45315 case NB_EV_VALIDATE:
45316 case NB_EV_PREPARE:
45317 case NB_EV_ABORT:
45318 break;
45319 case NB_EV_APPLY:
45320 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
45321 }
45322
45323 return NB_OK;
45324 }
45325
45326 /*
45327 * XPath:
45328 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/plist-import
45329 */
45330 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_import_modify(
45331 struct nb_cb_modify_args *args)
45332 {
45333 switch (args->event) {
45334 case NB_EV_VALIDATE:
45335 case NB_EV_PREPARE:
45336 case NB_EV_ABORT:
45337 break;
45338 case NB_EV_APPLY:
45339 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
45340 }
45341
45342 return NB_OK;
45343 }
45344
45345 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_import_destroy(
45346 struct nb_cb_destroy_args *args)
45347 {
45348 switch (args->event) {
45349 case NB_EV_VALIDATE:
45350 case NB_EV_PREPARE:
45351 case NB_EV_ABORT:
45352 break;
45353 case NB_EV_APPLY:
45354 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
45355 }
45356
45357 return NB_OK;
45358 }
45359
45360 /*
45361 * XPath:
45362 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/plist-export
45363 */
45364 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_export_modify(
45365 struct nb_cb_modify_args *args)
45366 {
45367 switch (args->event) {
45368 case NB_EV_VALIDATE:
45369 case NB_EV_PREPARE:
45370 case NB_EV_ABORT:
45371 break;
45372 case NB_EV_APPLY:
45373 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
45374 }
45375
45376 return NB_OK;
45377 }
45378
45379 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_export_destroy(
45380 struct nb_cb_destroy_args *args)
45381 {
45382 switch (args->event) {
45383 case NB_EV_VALIDATE:
45384 case NB_EV_PREPARE:
45385 case NB_EV_ABORT:
45386 break;
45387 case NB_EV_APPLY:
45388 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
45389 }
45390
45391 return NB_OK;
45392 }
45393
45394 /*
45395 * XPath:
45396 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/access-list-import
45397 */
45398 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_import_modify(
45399 struct nb_cb_modify_args *args)
45400 {
45401 switch (args->event) {
45402 case NB_EV_VALIDATE:
45403 case NB_EV_PREPARE:
45404 case NB_EV_ABORT:
45405 case NB_EV_APPLY:
45406 /* TODO: implement me. */
45407 break;
45408 }
45409
45410 return NB_OK;
45411 }
45412
45413 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_import_destroy(
45414 struct nb_cb_destroy_args *args)
45415 {
45416 switch (args->event) {
45417 case NB_EV_VALIDATE:
45418 case NB_EV_PREPARE:
45419 case NB_EV_ABORT:
45420 case NB_EV_APPLY:
45421 /* TODO: implement me. */
45422 break;
45423 }
45424
45425 return NB_OK;
45426 }
45427
45428 /*
45429 * XPath:
45430 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/access-list-export
45431 */
45432 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_export_modify(
45433 struct nb_cb_modify_args *args)
45434 {
45435 switch (args->event) {
45436 case NB_EV_VALIDATE:
45437 case NB_EV_PREPARE:
45438 case NB_EV_ABORT:
45439 case NB_EV_APPLY:
45440 /* TODO: implement me. */
45441 break;
45442 }
45443
45444 return NB_OK;
45445 }
45446
45447 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_export_destroy(
45448 struct nb_cb_destroy_args *args)
45449 {
45450 switch (args->event) {
45451 case NB_EV_VALIDATE:
45452 case NB_EV_PREPARE:
45453 case NB_EV_ABORT:
45454 case NB_EV_APPLY:
45455 /* TODO: implement me. */
45456 break;
45457 }
45458
45459 return NB_OK;
45460 }
45461
45462 /*
45463 * XPath:
45464 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/as-path-filter-list-import
45465 */
45466 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_import_modify(
45467 struct nb_cb_modify_args *args)
45468 {
45469 switch (args->event) {
45470 case NB_EV_VALIDATE:
45471 case NB_EV_PREPARE:
45472 case NB_EV_ABORT:
45473 case NB_EV_APPLY:
45474 /* TODO: implement me. */
45475 break;
45476 }
45477
45478 return NB_OK;
45479 }
45480
45481 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_import_destroy(
45482 struct nb_cb_destroy_args *args)
45483 {
45484 switch (args->event) {
45485 case NB_EV_VALIDATE:
45486 case NB_EV_PREPARE:
45487 case NB_EV_ABORT:
45488 case NB_EV_APPLY:
45489 /* TODO: implement me. */
45490 break;
45491 }
45492
45493 return NB_OK;
45494 }
45495
45496 /*
45497 * XPath:
45498 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/as-path-filter-list-export
45499 */
45500 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_export_modify(
45501 struct nb_cb_modify_args *args)
45502 {
45503 switch (args->event) {
45504 case NB_EV_VALIDATE:
45505 case NB_EV_PREPARE:
45506 case NB_EV_ABORT:
45507 case NB_EV_APPLY:
45508 /* TODO: implement me. */
45509 break;
45510 }
45511
45512 return NB_OK;
45513 }
45514
45515 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_export_destroy(
45516 struct nb_cb_destroy_args *args)
45517 {
45518 switch (args->event) {
45519 case NB_EV_VALIDATE:
45520 case NB_EV_PREPARE:
45521 case NB_EV_ABORT:
45522 case NB_EV_APPLY:
45523 /* TODO: implement me. */
45524 break;
45525 }
45526
45527 return NB_OK;
45528 }
45529
45530 /*
45531 * XPath:
45532 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/unsuppress-map-import
45533 */
45534 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_import_modify(
45535 struct nb_cb_modify_args *args)
45536 {
45537 switch (args->event) {
45538 case NB_EV_VALIDATE:
45539 case NB_EV_PREPARE:
45540 case NB_EV_ABORT:
45541 case NB_EV_APPLY:
45542 /* TODO: implement me. */
45543 break;
45544 }
45545
45546 return NB_OK;
45547 }
45548
45549 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_import_destroy(
45550 struct nb_cb_destroy_args *args)
45551 {
45552 switch (args->event) {
45553 case NB_EV_VALIDATE:
45554 case NB_EV_PREPARE:
45555 case NB_EV_ABORT:
45556 case NB_EV_APPLY:
45557 /* TODO: implement me. */
45558 break;
45559 }
45560
45561 return NB_OK;
45562 }
45563
45564 /*
45565 * XPath:
45566 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv4-unicast/filter-config/unsuppress-map-export
45567 */
45568 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_export_modify(
45569 struct nb_cb_modify_args *args)
45570 {
45571 switch (args->event) {
45572 case NB_EV_VALIDATE:
45573 case NB_EV_PREPARE:
45574 case NB_EV_ABORT:
45575 case NB_EV_APPLY:
45576 /* TODO: implement me. */
45577 break;
45578 }
45579
45580 return NB_OK;
45581 }
45582
45583 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_export_destroy(
45584 struct nb_cb_destroy_args *args)
45585 {
45586 switch (args->event) {
45587 case NB_EV_VALIDATE:
45588 case NB_EV_PREPARE:
45589 case NB_EV_ABORT:
45590 case NB_EV_APPLY:
45591 /* TODO: implement me. */
45592 break;
45593 }
45594
45595 return NB_OK;
45596 }
45597
45598 /*
45599 * XPath:
45600 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/add-paths/path-type
45601 */
45602 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_add_paths_path_type_modify(
45603 struct nb_cb_modify_args *args)
45604 {
45605 switch (args->event) {
45606 case NB_EV_VALIDATE:
45607 case NB_EV_PREPARE:
45608 case NB_EV_ABORT:
45609 case NB_EV_APPLY:
45610 /* TODO: implement me. */
45611 break;
45612 }
45613
45614 return NB_OK;
45615 }
45616
45617 /*
45618 * XPath:
45619 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/as-path-options/allow-own-as
45620 */
45621 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_modify(
45622 struct nb_cb_modify_args *args)
45623 {
45624 switch (args->event) {
45625 case NB_EV_VALIDATE:
45626 case NB_EV_PREPARE:
45627 case NB_EV_ABORT:
45628 case NB_EV_APPLY:
45629 /* TODO: implement me. */
45630 break;
45631 }
45632
45633 return NB_OK;
45634 }
45635
45636 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_destroy(
45637 struct nb_cb_destroy_args *args)
45638 {
45639 switch (args->event) {
45640 case NB_EV_VALIDATE:
45641 case NB_EV_PREPARE:
45642 case NB_EV_ABORT:
45643 case NB_EV_APPLY:
45644 /* TODO: implement me. */
45645 break;
45646 }
45647
45648 return NB_OK;
45649 }
45650
45651 /*
45652 * XPath:
45653 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/as-path-options/allow-own-origin-as
45654 */
45655 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
45656 struct nb_cb_modify_args *args)
45657 {
45658 switch (args->event) {
45659 case NB_EV_VALIDATE:
45660 case NB_EV_PREPARE:
45661 case NB_EV_ABORT:
45662 case NB_EV_APPLY:
45663 /* TODO: implement me. */
45664 break;
45665 }
45666
45667 return NB_OK;
45668 }
45669
45670 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
45671 struct nb_cb_destroy_args *args)
45672 {
45673 switch (args->event) {
45674 case NB_EV_VALIDATE:
45675 case NB_EV_PREPARE:
45676 case NB_EV_ABORT:
45677 case NB_EV_APPLY:
45678 /* TODO: implement me. */
45679 break;
45680 }
45681
45682 return NB_OK;
45683 }
45684
45685 /*
45686 * XPath:
45687 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/as-path-options/replace-peer-as
45688 */
45689 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_replace_peer_as_modify(
45690 struct nb_cb_modify_args *args)
45691 {
45692 switch (args->event) {
45693 case NB_EV_VALIDATE:
45694 case NB_EV_PREPARE:
45695 case NB_EV_ABORT:
45696 return NB_OK;
45697 case NB_EV_APPLY:
45698 return bgp_peer_group_afi_safi_flag_modify(
45699 args, PEER_FLAG_AS_OVERRIDE,
45700 yang_dnode_get_bool(args->dnode, NULL));
45701
45702 break;
45703 }
45704
45705 return NB_OK;
45706 }
45707
45708 /*
45709 * XPath:
45710 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/attr-unchanged/as-path-unchanged
45711 */
45712 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
45713 struct nb_cb_modify_args *args)
45714 {
45715 switch (args->event) {
45716 case NB_EV_VALIDATE:
45717 case NB_EV_PREPARE:
45718 case NB_EV_ABORT:
45719 return NB_OK;
45720 case NB_EV_APPLY:
45721 return bgp_peer_group_afi_safi_flag_modify(
45722 args, PEER_FLAG_AS_PATH_UNCHANGED,
45723 yang_dnode_get_bool(args->dnode, NULL));
45724
45725 break;
45726 }
45727
45728 return NB_OK;
45729 }
45730
45731 /*
45732 * XPath:
45733 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/attr-unchanged/next-hop-unchanged
45734 */
45735 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
45736 struct nb_cb_modify_args *args)
45737 {
45738 switch (args->event) {
45739 case NB_EV_VALIDATE:
45740 case NB_EV_PREPARE:
45741 case NB_EV_ABORT:
45742 return NB_OK;
45743 case NB_EV_APPLY:
45744 return bgp_peer_group_afi_safi_flag_modify(
45745 args, PEER_FLAG_NEXTHOP_UNCHANGED,
45746 yang_dnode_get_bool(args->dnode, NULL));
45747
45748 break;
45749 }
45750
45751 return NB_OK;
45752 }
45753
45754 /*
45755 * XPath:
45756 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/attr-unchanged/med-unchanged
45757 */
45758 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_med_unchanged_modify(
45759 struct nb_cb_modify_args *args)
45760 {
45761 switch (args->event) {
45762 case NB_EV_VALIDATE:
45763 case NB_EV_PREPARE:
45764 case NB_EV_ABORT:
45765 return NB_OK;
45766 case NB_EV_APPLY:
45767 return bgp_peer_group_afi_safi_flag_modify(
45768 args, PEER_FLAG_MED_UNCHANGED,
45769 yang_dnode_get_bool(args->dnode, NULL));
45770
45771 break;
45772 }
45773
45774 return NB_OK;
45775 }
45776
45777 /*
45778 * XPath:
45779 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list
45780 */
45781 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_create(
45782 struct nb_cb_create_args *args)
45783 {
45784 switch (args->event) {
45785 case NB_EV_VALIDATE:
45786 case NB_EV_PREPARE:
45787 case NB_EV_ABORT:
45788 case NB_EV_APPLY:
45789 /* TODO: implement me. */
45790 break;
45791 }
45792
45793 return NB_OK;
45794 }
45795
45796 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_destroy(
45797 struct nb_cb_destroy_args *args)
45798 {
45799 switch (args->event) {
45800 case NB_EV_VALIDATE:
45801 case NB_EV_PREPARE:
45802 case NB_EV_ABORT:
45803 return NB_OK;
45804 case NB_EV_APPLY:
45805 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
45806 }
45807
45808 return NB_OK;
45809 }
45810
45811 /*
45812 * XPath:
45813 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/max-prefixes
45814 */
45815 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
45816 struct nb_cb_modify_args *args)
45817 {
45818 switch (args->event) {
45819 case NB_EV_VALIDATE:
45820 case NB_EV_PREPARE:
45821 case NB_EV_ABORT:
45822 case NB_EV_APPLY:
45823 /* TODO: implement me. */
45824 break;
45825 }
45826
45827 return NB_OK;
45828 }
45829
45830 /*
45831 * XPath:
45832 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/force-check
45833 */
45834 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
45835 struct nb_cb_modify_args *args)
45836 {
45837 switch (args->event) {
45838 case NB_EV_VALIDATE:
45839 case NB_EV_PREPARE:
45840 case NB_EV_ABORT:
45841 case NB_EV_APPLY:
45842 /* TODO: implement me. */
45843 break;
45844 }
45845
45846 return NB_OK;
45847 }
45848
45849 /*
45850 * XPath:
45851 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/warning-only
45852 */
45853 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
45854 struct nb_cb_modify_args *args)
45855 {
45856 switch (args->event) {
45857 case NB_EV_VALIDATE:
45858 case NB_EV_PREPARE:
45859 case NB_EV_ABORT:
45860 case NB_EV_APPLY:
45861 /* TODO: implement me. */
45862 break;
45863 }
45864
45865 return NB_OK;
45866 }
45867
45868 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
45869 struct nb_cb_destroy_args *args)
45870 {
45871 switch (args->event) {
45872 case NB_EV_VALIDATE:
45873 case NB_EV_PREPARE:
45874 case NB_EV_ABORT:
45875 case NB_EV_APPLY:
45876 /* TODO: implement me. */
45877 break;
45878 }
45879
45880 return NB_OK;
45881 }
45882
45883 /*
45884 * XPath:
45885 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/restart-timer
45886 */
45887 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
45888 struct nb_cb_modify_args *args)
45889 {
45890 switch (args->event) {
45891 case NB_EV_VALIDATE:
45892 case NB_EV_PREPARE:
45893 case NB_EV_ABORT:
45894 case NB_EV_APPLY:
45895 /* TODO: implement me. */
45896 break;
45897 }
45898
45899 return NB_OK;
45900 }
45901
45902 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
45903 struct nb_cb_destroy_args *args)
45904 {
45905 switch (args->event) {
45906 case NB_EV_VALIDATE:
45907 case NB_EV_PREPARE:
45908 case NB_EV_ABORT:
45909 case NB_EV_APPLY:
45910 /* TODO: implement me. */
45911 break;
45912 }
45913
45914 return NB_OK;
45915 }
45916
45917 /*
45918 * XPath:
45919 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/shutdown-threshold-pct
45920 */
45921 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
45922 struct nb_cb_modify_args *args)
45923 {
45924 switch (args->event) {
45925 case NB_EV_VALIDATE:
45926 case NB_EV_PREPARE:
45927 case NB_EV_ABORT:
45928 case NB_EV_APPLY:
45929 /* TODO: implement me. */
45930 break;
45931 }
45932
45933 return NB_OK;
45934 }
45935
45936 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
45937 struct nb_cb_destroy_args *args)
45938 {
45939 switch (args->event) {
45940 case NB_EV_VALIDATE:
45941 case NB_EV_PREPARE:
45942 case NB_EV_ABORT:
45943 case NB_EV_APPLY:
45944 /* TODO: implement me. */
45945 break;
45946 }
45947
45948 return NB_OK;
45949 }
45950
45951 /*
45952 * XPath:
45953 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tr-shutdown-threshold-pct
45954 */
45955 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
45956 struct nb_cb_modify_args *args)
45957 {
45958 switch (args->event) {
45959 case NB_EV_VALIDATE:
45960 case NB_EV_PREPARE:
45961 case NB_EV_ABORT:
45962 case NB_EV_APPLY:
45963 /* TODO: implement me. */
45964 break;
45965 }
45966
45967 return NB_OK;
45968 }
45969
45970 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
45971 struct nb_cb_destroy_args *args)
45972 {
45973 switch (args->event) {
45974 case NB_EV_VALIDATE:
45975 case NB_EV_PREPARE:
45976 case NB_EV_ABORT:
45977 case NB_EV_APPLY:
45978 /* TODO: implement me. */
45979 break;
45980 }
45981
45982 return NB_OK;
45983 }
45984
45985 /*
45986 * XPath:
45987 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tr-restart-timer
45988 */
45989 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
45990 struct nb_cb_modify_args *args)
45991 {
45992 switch (args->event) {
45993 case NB_EV_VALIDATE:
45994 case NB_EV_PREPARE:
45995 case NB_EV_ABORT:
45996 case NB_EV_APPLY:
45997 /* TODO: implement me. */
45998 break;
45999 }
46000
46001 return NB_OK;
46002 }
46003
46004 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
46005 struct nb_cb_destroy_args *args)
46006 {
46007 switch (args->event) {
46008 case NB_EV_VALIDATE:
46009 case NB_EV_PREPARE:
46010 case NB_EV_ABORT:
46011 case NB_EV_APPLY:
46012 /* TODO: implement me. */
46013 break;
46014 }
46015
46016 return NB_OK;
46017 }
46018
46019 /*
46020 * XPath:
46021 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tw-shutdown-threshold-pct
46022 */
46023 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
46024 struct nb_cb_modify_args *args)
46025 {
46026 switch (args->event) {
46027 case NB_EV_VALIDATE:
46028 case NB_EV_PREPARE:
46029 case NB_EV_ABORT:
46030 case NB_EV_APPLY:
46031 /* TODO: implement me. */
46032 break;
46033 }
46034
46035 return NB_OK;
46036 }
46037
46038 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
46039 struct nb_cb_destroy_args *args)
46040 {
46041 switch (args->event) {
46042 case NB_EV_VALIDATE:
46043 case NB_EV_PREPARE:
46044 case NB_EV_ABORT:
46045 case NB_EV_APPLY:
46046 /* TODO: implement me. */
46047 break;
46048 }
46049
46050 return NB_OK;
46051 }
46052
46053 /*
46054 * XPath:
46055 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/prefix-limit/direction-list/options/tw-warning-only
46056 */
46057 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
46058 struct nb_cb_modify_args *args)
46059 {
46060 switch (args->event) {
46061 case NB_EV_VALIDATE:
46062 case NB_EV_PREPARE:
46063 case NB_EV_ABORT:
46064 case NB_EV_APPLY:
46065 /* TODO: implement me. */
46066 break;
46067 }
46068
46069 return NB_OK;
46070 }
46071
46072 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
46073 struct nb_cb_destroy_args *args)
46074 {
46075 switch (args->event) {
46076 case NB_EV_VALIDATE:
46077 case NB_EV_PREPARE:
46078 case NB_EV_ABORT:
46079 case NB_EV_APPLY:
46080 /* TODO: implement me. */
46081 break;
46082 }
46083
46084 return NB_OK;
46085 }
46086
46087 /*
46088 * XPath:
46089 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/nexthop-self/next-hop-self
46090 */
46091 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_modify(
46092 struct nb_cb_modify_args *args)
46093 {
46094 switch (args->event) {
46095 case NB_EV_VALIDATE:
46096 case NB_EV_PREPARE:
46097 case NB_EV_ABORT:
46098 return NB_OK;
46099 case NB_EV_APPLY:
46100 return bgp_peer_group_afi_safi_flag_modify(
46101 args, PEER_FLAG_NEXTHOP_SELF,
46102 yang_dnode_get_bool(args->dnode, NULL));
46103
46104 break;
46105 }
46106
46107 return NB_OK;
46108 }
46109
46110 /*
46111 * XPath:
46112 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/nexthop-self/next-hop-self-force
46113 */
46114 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
46115 struct nb_cb_modify_args *args)
46116 {
46117 switch (args->event) {
46118 case NB_EV_VALIDATE:
46119 case NB_EV_PREPARE:
46120 case NB_EV_ABORT:
46121 return NB_OK;
46122 case NB_EV_APPLY:
46123 return bgp_peer_group_afi_safi_flag_modify(
46124 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
46125 yang_dnode_get_bool(args->dnode, NULL));
46126
46127 break;
46128 }
46129
46130 return NB_OK;
46131 }
46132
46133 /*
46134 * XPath:
46135 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as-all
46136 */
46137 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_modify(
46138 struct nb_cb_modify_args *args)
46139 {
46140 switch (args->event) {
46141 case NB_EV_VALIDATE:
46142 case NB_EV_PREPARE:
46143 case NB_EV_ABORT:
46144 return NB_OK;
46145 case NB_EV_APPLY:
46146 return bgp_peer_group_afi_safi_flag_modify(
46147 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
46148 yang_dnode_get_bool(args->dnode, NULL));
46149
46150 break;
46151 }
46152
46153 return NB_OK;
46154 }
46155
46156 /*
46157 * XPath:
46158 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as-all-replace
46159 */
46160 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
46161 struct nb_cb_modify_args *args)
46162 {
46163 switch (args->event) {
46164 case NB_EV_VALIDATE:
46165 case NB_EV_PREPARE:
46166 case NB_EV_ABORT:
46167 return NB_OK;
46168 case NB_EV_APPLY:
46169 return bgp_peer_group_afi_safi_flag_modify(
46170 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
46171 yang_dnode_get_bool(args->dnode, NULL));
46172
46173 break;
46174 }
46175
46176 return NB_OK;
46177 }
46178
46179 /*
46180 * XPath:
46181 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as
46182 */
46183 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_modify(
46184 struct nb_cb_modify_args *args)
46185 {
46186 switch (args->event) {
46187 case NB_EV_VALIDATE:
46188 case NB_EV_PREPARE:
46189 case NB_EV_ABORT:
46190 return NB_OK;
46191 case NB_EV_APPLY:
46192 return bgp_peer_group_afi_safi_flag_modify(
46193 args, PEER_FLAG_REMOVE_PRIVATE_AS,
46194 yang_dnode_get_bool(args->dnode, NULL));
46195
46196 break;
46197 }
46198
46199 return NB_OK;
46200 }
46201
46202 /*
46203 * XPath:
46204 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/private-as/remove-private-as-replace
46205 */
46206 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_replace_modify(
46207 struct nb_cb_modify_args *args)
46208 {
46209 switch (args->event) {
46210 case NB_EV_VALIDATE:
46211 case NB_EV_PREPARE:
46212 case NB_EV_ABORT:
46213 return NB_OK;
46214 case NB_EV_APPLY:
46215 return bgp_peer_group_afi_safi_flag_modify(
46216 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
46217 yang_dnode_get_bool(args->dnode, NULL));
46218
46219 break;
46220 }
46221
46222 return NB_OK;
46223 }
46224
46225 /*
46226 * XPath:
46227 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/route-reflector/route-reflector-client
46228 */
46229 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_reflector_route_reflector_client_modify(
46230 struct nb_cb_modify_args *args)
46231 {
46232 switch (args->event) {
46233 case NB_EV_VALIDATE:
46234 case NB_EV_PREPARE:
46235 case NB_EV_ABORT:
46236 return NB_OK;
46237 case NB_EV_APPLY:
46238 return bgp_peer_group_afi_safi_flag_modify(
46239 args, PEER_FLAG_REFLECTOR_CLIENT,
46240 yang_dnode_get_bool(args->dnode, NULL));
46241
46242 break;
46243 }
46244
46245 return NB_OK;
46246 }
46247
46248 /*
46249 * XPath:
46250 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/route-server/route-server-client
46251 */
46252 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_server_route_server_client_modify(
46253 struct nb_cb_modify_args *args)
46254 {
46255 switch (args->event) {
46256 case NB_EV_VALIDATE:
46257 case NB_EV_PREPARE:
46258 case NB_EV_ABORT:
46259 return NB_OK;
46260 case NB_EV_APPLY:
46261 return bgp_peer_group_afi_safi_flag_modify(
46262 args, PEER_FLAG_RSERVER_CLIENT,
46263 yang_dnode_get_bool(args->dnode, NULL));
46264
46265 break;
46266 }
46267
46268 return NB_OK;
46269 }
46270
46271 /*
46272 * XPath:
46273 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/send-community/send-community
46274 */
46275 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_community_modify(
46276 struct nb_cb_modify_args *args)
46277 {
46278 switch (args->event) {
46279 case NB_EV_VALIDATE:
46280 case NB_EV_PREPARE:
46281 case NB_EV_ABORT:
46282 return NB_OK;
46283 case NB_EV_APPLY:
46284 return bgp_peer_group_afi_safi_flag_modify(
46285 args, PEER_FLAG_SEND_COMMUNITY,
46286 yang_dnode_get_bool(args->dnode, NULL));
46287
46288 break;
46289 }
46290
46291 return NB_OK;
46292 }
46293
46294 /*
46295 * XPath:
46296 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/send-community/send-ext-community
46297 */
46298 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_ext_community_modify(
46299 struct nb_cb_modify_args *args)
46300 {
46301 switch (args->event) {
46302 case NB_EV_VALIDATE:
46303 case NB_EV_PREPARE:
46304 case NB_EV_ABORT:
46305 return NB_OK;
46306 case NB_EV_APPLY:
46307 return bgp_peer_group_afi_safi_flag_modify(
46308 args, PEER_FLAG_SEND_EXT_COMMUNITY,
46309 yang_dnode_get_bool(args->dnode, NULL));
46310
46311 break;
46312 }
46313
46314 return NB_OK;
46315 }
46316
46317 /*
46318 * XPath:
46319 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/send-community/send-large-community
46320 */
46321 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_large_community_modify(
46322 struct nb_cb_modify_args *args)
46323 {
46324 switch (args->event) {
46325 case NB_EV_VALIDATE:
46326 case NB_EV_PREPARE:
46327 case NB_EV_ABORT:
46328 return NB_OK;
46329 case NB_EV_APPLY:
46330 return bgp_peer_group_afi_safi_flag_modify(
46331 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
46332 yang_dnode_get_bool(args->dnode, NULL));
46333
46334 break;
46335 }
46336
46337 return NB_OK;
46338 }
46339
46340 /*
46341 * XPath:
46342 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/soft-reconfiguration
46343 */
46344 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_soft_reconfiguration_modify(
46345 struct nb_cb_modify_args *args)
46346 {
46347 switch (args->event) {
46348 case NB_EV_VALIDATE:
46349 case NB_EV_PREPARE:
46350 case NB_EV_ABORT:
46351 return NB_OK;
46352 case NB_EV_APPLY:
46353 return bgp_peer_group_afi_safi_flag_modify(
46354 args, PEER_FLAG_SOFT_RECONFIG,
46355 yang_dnode_get_bool(args->dnode, NULL));
46356
46357 break;
46358 }
46359
46360 return NB_OK;
46361 }
46362
46363 /*
46364 * XPath:
46365 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/weight/weight-attribute
46366 */
46367 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_modify(
46368 struct nb_cb_modify_args *args)
46369 {
46370 switch (args->event) {
46371 case NB_EV_VALIDATE:
46372 case NB_EV_PREPARE:
46373 case NB_EV_ABORT:
46374 return NB_OK;
46375 case NB_EV_APPLY:
46376 return bgp_peer_group_afi_safi_weight_modify(args);
46377
46378 break;
46379 }
46380
46381 return NB_OK;
46382 }
46383
46384 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_destroy(
46385 struct nb_cb_destroy_args *args)
46386 {
46387 switch (args->event) {
46388 case NB_EV_VALIDATE:
46389 case NB_EV_PREPARE:
46390 case NB_EV_ABORT:
46391 return NB_OK;
46392 case NB_EV_APPLY:
46393 return bgp_peer_group_afi_safi_weight_destroy(args);
46394
46395 break;
46396 }
46397
46398 return NB_OK;
46399 }
46400
46401 /*
46402 * XPath:
46403 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/rmap-import
46404 */
46405 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_import_modify(
46406 struct nb_cb_modify_args *args)
46407 {
46408 switch (args->event) {
46409 case NB_EV_VALIDATE:
46410 case NB_EV_PREPARE:
46411 case NB_EV_ABORT:
46412 break;
46413 case NB_EV_APPLY:
46414 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
46415 }
46416
46417 return NB_OK;
46418 }
46419
46420 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_import_destroy(
46421 struct nb_cb_destroy_args *args)
46422 {
46423 switch (args->event) {
46424 case NB_EV_VALIDATE:
46425 case NB_EV_PREPARE:
46426 case NB_EV_ABORT:
46427 break;
46428 case NB_EV_APPLY:
46429 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
46430 }
46431
46432 return NB_OK;
46433 }
46434
46435 /*
46436 * XPath:
46437 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/rmap-export
46438 */
46439 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_export_modify(
46440 struct nb_cb_modify_args *args)
46441 {
46442 switch (args->event) {
46443 case NB_EV_VALIDATE:
46444 case NB_EV_PREPARE:
46445 case NB_EV_ABORT:
46446 break;
46447 case NB_EV_APPLY:
46448 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
46449 }
46450
46451 return NB_OK;
46452 }
46453
46454 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_export_destroy(
46455 struct nb_cb_destroy_args *args)
46456 {
46457 switch (args->event) {
46458 case NB_EV_VALIDATE:
46459 case NB_EV_PREPARE:
46460 case NB_EV_ABORT:
46461 break;
46462 case NB_EV_APPLY:
46463 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
46464 }
46465
46466 return NB_OK;
46467 }
46468
46469 /*
46470 * XPath:
46471 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/plist-import
46472 */
46473 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_import_modify(
46474 struct nb_cb_modify_args *args)
46475 {
46476 switch (args->event) {
46477 case NB_EV_VALIDATE:
46478 case NB_EV_PREPARE:
46479 case NB_EV_ABORT:
46480 break;
46481 case NB_EV_APPLY:
46482 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
46483 }
46484
46485 return NB_OK;
46486 }
46487
46488 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_import_destroy(
46489 struct nb_cb_destroy_args *args)
46490 {
46491 switch (args->event) {
46492 case NB_EV_VALIDATE:
46493 case NB_EV_PREPARE:
46494 case NB_EV_ABORT:
46495 break;
46496 case NB_EV_APPLY:
46497 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
46498 }
46499
46500 return NB_OK;
46501 }
46502
46503 /*
46504 * XPath:
46505 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/plist-export
46506 */
46507 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_export_modify(
46508 struct nb_cb_modify_args *args)
46509 {
46510 switch (args->event) {
46511 case NB_EV_VALIDATE:
46512 case NB_EV_PREPARE:
46513 case NB_EV_ABORT:
46514 break;
46515 case NB_EV_APPLY:
46516 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
46517 }
46518
46519 return NB_OK;
46520 }
46521
46522 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_export_destroy(
46523 struct nb_cb_destroy_args *args)
46524 {
46525 switch (args->event) {
46526 case NB_EV_VALIDATE:
46527 case NB_EV_PREPARE:
46528 case NB_EV_ABORT:
46529 break;
46530 case NB_EV_APPLY:
46531 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
46532 }
46533
46534 return NB_OK;
46535 }
46536
46537 /*
46538 * XPath:
46539 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/access-list-import
46540 */
46541 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_import_modify(
46542 struct nb_cb_modify_args *args)
46543 {
46544 switch (args->event) {
46545 case NB_EV_VALIDATE:
46546 case NB_EV_PREPARE:
46547 case NB_EV_ABORT:
46548 case NB_EV_APPLY:
46549 /* TODO: implement me. */
46550 break;
46551 }
46552
46553 return NB_OK;
46554 }
46555
46556 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_import_destroy(
46557 struct nb_cb_destroy_args *args)
46558 {
46559 switch (args->event) {
46560 case NB_EV_VALIDATE:
46561 case NB_EV_PREPARE:
46562 case NB_EV_ABORT:
46563 case NB_EV_APPLY:
46564 /* TODO: implement me. */
46565 break;
46566 }
46567
46568 return NB_OK;
46569 }
46570
46571 /*
46572 * XPath:
46573 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/access-list-export
46574 */
46575 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_export_modify(
46576 struct nb_cb_modify_args *args)
46577 {
46578 switch (args->event) {
46579 case NB_EV_VALIDATE:
46580 case NB_EV_PREPARE:
46581 case NB_EV_ABORT:
46582 case NB_EV_APPLY:
46583 /* TODO: implement me. */
46584 break;
46585 }
46586
46587 return NB_OK;
46588 }
46589
46590 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_export_destroy(
46591 struct nb_cb_destroy_args *args)
46592 {
46593 switch (args->event) {
46594 case NB_EV_VALIDATE:
46595 case NB_EV_PREPARE:
46596 case NB_EV_ABORT:
46597 case NB_EV_APPLY:
46598 /* TODO: implement me. */
46599 break;
46600 }
46601
46602 return NB_OK;
46603 }
46604
46605 /*
46606 * XPath:
46607 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/as-path-filter-list-import
46608 */
46609 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_import_modify(
46610 struct nb_cb_modify_args *args)
46611 {
46612 switch (args->event) {
46613 case NB_EV_VALIDATE:
46614 case NB_EV_PREPARE:
46615 case NB_EV_ABORT:
46616 case NB_EV_APPLY:
46617 /* TODO: implement me. */
46618 break;
46619 }
46620
46621 return NB_OK;
46622 }
46623
46624 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_import_destroy(
46625 struct nb_cb_destroy_args *args)
46626 {
46627 switch (args->event) {
46628 case NB_EV_VALIDATE:
46629 case NB_EV_PREPARE:
46630 case NB_EV_ABORT:
46631 case NB_EV_APPLY:
46632 /* TODO: implement me. */
46633 break;
46634 }
46635
46636 return NB_OK;
46637 }
46638
46639 /*
46640 * XPath:
46641 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/as-path-filter-list-export
46642 */
46643 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_export_modify(
46644 struct nb_cb_modify_args *args)
46645 {
46646 switch (args->event) {
46647 case NB_EV_VALIDATE:
46648 case NB_EV_PREPARE:
46649 case NB_EV_ABORT:
46650 case NB_EV_APPLY:
46651 /* TODO: implement me. */
46652 break;
46653 }
46654
46655 return NB_OK;
46656 }
46657
46658 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_export_destroy(
46659 struct nb_cb_destroy_args *args)
46660 {
46661 switch (args->event) {
46662 case NB_EV_VALIDATE:
46663 case NB_EV_PREPARE:
46664 case NB_EV_ABORT:
46665 case NB_EV_APPLY:
46666 /* TODO: implement me. */
46667 break;
46668 }
46669
46670 return NB_OK;
46671 }
46672
46673 /*
46674 * XPath:
46675 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/unsuppress-map-import
46676 */
46677 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_import_modify(
46678 struct nb_cb_modify_args *args)
46679 {
46680 switch (args->event) {
46681 case NB_EV_VALIDATE:
46682 case NB_EV_PREPARE:
46683 case NB_EV_ABORT:
46684 case NB_EV_APPLY:
46685 /* TODO: implement me. */
46686 break;
46687 }
46688
46689 return NB_OK;
46690 }
46691
46692 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_import_destroy(
46693 struct nb_cb_destroy_args *args)
46694 {
46695 switch (args->event) {
46696 case NB_EV_VALIDATE:
46697 case NB_EV_PREPARE:
46698 case NB_EV_ABORT:
46699 case NB_EV_APPLY:
46700 /* TODO: implement me. */
46701 break;
46702 }
46703
46704 return NB_OK;
46705 }
46706
46707 /*
46708 * XPath:
46709 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l3vpn-ipv6-unicast/filter-config/unsuppress-map-export
46710 */
46711 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_export_modify(
46712 struct nb_cb_modify_args *args)
46713 {
46714 switch (args->event) {
46715 case NB_EV_VALIDATE:
46716 case NB_EV_PREPARE:
46717 case NB_EV_ABORT:
46718 case NB_EV_APPLY:
46719 /* TODO: implement me. */
46720 break;
46721 }
46722
46723 return NB_OK;
46724 }
46725
46726 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_export_destroy(
46727 struct nb_cb_destroy_args *args)
46728 {
46729 switch (args->event) {
46730 case NB_EV_VALIDATE:
46731 case NB_EV_PREPARE:
46732 case NB_EV_ABORT:
46733 case NB_EV_APPLY:
46734 /* TODO: implement me. */
46735 break;
46736 }
46737
46738 return NB_OK;
46739 }
46740
46741 /*
46742 * XPath:
46743 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/as-path-options/allow-own-as
46744 */
46745 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_modify(
46746 struct nb_cb_modify_args *args)
46747 {
46748 switch (args->event) {
46749 case NB_EV_VALIDATE:
46750 case NB_EV_PREPARE:
46751 case NB_EV_ABORT:
46752 case NB_EV_APPLY:
46753 /* TODO: implement me. */
46754 break;
46755 }
46756
46757 return NB_OK;
46758 }
46759
46760 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_destroy(
46761 struct nb_cb_destroy_args *args)
46762 {
46763 switch (args->event) {
46764 case NB_EV_VALIDATE:
46765 case NB_EV_PREPARE:
46766 case NB_EV_ABORT:
46767 case NB_EV_APPLY:
46768 /* TODO: implement me. */
46769 break;
46770 }
46771
46772 return NB_OK;
46773 }
46774
46775 /*
46776 * XPath:
46777 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/as-path-options/allow-own-origin-as
46778 */
46779 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_modify(
46780 struct nb_cb_modify_args *args)
46781 {
46782 switch (args->event) {
46783 case NB_EV_VALIDATE:
46784 case NB_EV_PREPARE:
46785 case NB_EV_ABORT:
46786 case NB_EV_APPLY:
46787 /* TODO: implement me. */
46788 break;
46789 }
46790
46791 return NB_OK;
46792 }
46793
46794 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_destroy(
46795 struct nb_cb_destroy_args *args)
46796 {
46797 switch (args->event) {
46798 case NB_EV_VALIDATE:
46799 case NB_EV_PREPARE:
46800 case NB_EV_ABORT:
46801 case NB_EV_APPLY:
46802 /* TODO: implement me. */
46803 break;
46804 }
46805
46806 return NB_OK;
46807 }
46808
46809 /*
46810 * XPath:
46811 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/as-path-options/replace-peer-as
46812 */
46813 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_as_path_options_replace_peer_as_modify(
46814 struct nb_cb_modify_args *args)
46815 {
46816 switch (args->event) {
46817 case NB_EV_VALIDATE:
46818 case NB_EV_PREPARE:
46819 case NB_EV_ABORT:
46820 return NB_OK;
46821 case NB_EV_APPLY:
46822 return bgp_peer_group_afi_safi_flag_modify(
46823 args, PEER_FLAG_AS_OVERRIDE,
46824 yang_dnode_get_bool(args->dnode, NULL));
46825
46826 break;
46827 }
46828
46829 return NB_OK;
46830 }
46831
46832 /*
46833 * XPath:
46834 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/attr-unchanged/as-path-unchanged
46835 */
46836 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_as_path_unchanged_modify(
46837 struct nb_cb_modify_args *args)
46838 {
46839 switch (args->event) {
46840 case NB_EV_VALIDATE:
46841 case NB_EV_PREPARE:
46842 case NB_EV_ABORT:
46843 return NB_OK;
46844 case NB_EV_APPLY:
46845 return bgp_peer_group_afi_safi_flag_modify(
46846 args, PEER_FLAG_AS_PATH_UNCHANGED,
46847 yang_dnode_get_bool(args->dnode, NULL));
46848
46849 break;
46850 }
46851
46852 return NB_OK;
46853 }
46854
46855 /*
46856 * XPath:
46857 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/attr-unchanged/next-hop-unchanged
46858 */
46859 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_next_hop_unchanged_modify(
46860 struct nb_cb_modify_args *args)
46861 {
46862 switch (args->event) {
46863 case NB_EV_VALIDATE:
46864 case NB_EV_PREPARE:
46865 case NB_EV_ABORT:
46866 return NB_OK;
46867 case NB_EV_APPLY:
46868 return bgp_peer_group_afi_safi_flag_modify(
46869 args, PEER_FLAG_NEXTHOP_UNCHANGED,
46870 yang_dnode_get_bool(args->dnode, NULL));
46871
46872 break;
46873 }
46874
46875 return NB_OK;
46876 }
46877
46878 /*
46879 * XPath:
46880 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/attr-unchanged/med-unchanged
46881 */
46882 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_med_unchanged_modify(
46883 struct nb_cb_modify_args *args)
46884 {
46885 switch (args->event) {
46886 case NB_EV_VALIDATE:
46887 case NB_EV_PREPARE:
46888 case NB_EV_ABORT:
46889 return NB_OK;
46890 case NB_EV_APPLY:
46891 return bgp_peer_group_afi_safi_flag_modify(
46892 args, PEER_FLAG_MED_UNCHANGED,
46893 yang_dnode_get_bool(args->dnode, NULL));
46894
46895 break;
46896 }
46897
46898 return NB_OK;
46899 }
46900
46901 /*
46902 * XPath:
46903 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/nexthop-self/next-hop-self
46904 */
46905 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_modify(
46906 struct nb_cb_modify_args *args)
46907 {
46908 switch (args->event) {
46909 case NB_EV_VALIDATE:
46910 case NB_EV_PREPARE:
46911 case NB_EV_ABORT:
46912 return NB_OK;
46913 case NB_EV_APPLY:
46914 return bgp_peer_group_afi_safi_flag_modify(
46915 args, PEER_FLAG_NEXTHOP_SELF,
46916 yang_dnode_get_bool(args->dnode, NULL));
46917
46918 break;
46919 }
46920
46921 return NB_OK;
46922 }
46923
46924 /*
46925 * XPath:
46926 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/nexthop-self/next-hop-self-force
46927 */
46928 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_force_modify(
46929 struct nb_cb_modify_args *args)
46930 {
46931 switch (args->event) {
46932 case NB_EV_VALIDATE:
46933 case NB_EV_PREPARE:
46934 case NB_EV_ABORT:
46935 return NB_OK;
46936 case NB_EV_APPLY:
46937 return bgp_peer_group_afi_safi_flag_modify(
46938 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
46939 yang_dnode_get_bool(args->dnode, NULL));
46940
46941 break;
46942 }
46943
46944 return NB_OK;
46945 }
46946
46947 /*
46948 * XPath:
46949 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/route-reflector/route-reflector-client
46950 */
46951 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_route_reflector_route_reflector_client_modify(
46952 struct nb_cb_modify_args *args)
46953 {
46954 switch (args->event) {
46955 case NB_EV_VALIDATE:
46956 case NB_EV_PREPARE:
46957 case NB_EV_ABORT:
46958 return NB_OK;
46959 case NB_EV_APPLY:
46960 return bgp_peer_group_afi_safi_flag_modify(
46961 args, PEER_FLAG_REFLECTOR_CLIENT,
46962 yang_dnode_get_bool(args->dnode, NULL));
46963
46964 break;
46965 }
46966
46967 return NB_OK;
46968 }
46969
46970 /*
46971 * XPath:
46972 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/route-server/route-server-client
46973 */
46974 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_route_server_route_server_client_modify(
46975 struct nb_cb_modify_args *args)
46976 {
46977 switch (args->event) {
46978 case NB_EV_VALIDATE:
46979 case NB_EV_PREPARE:
46980 case NB_EV_ABORT:
46981 return NB_OK;
46982 case NB_EV_APPLY:
46983 return bgp_peer_group_afi_safi_flag_modify(
46984 args, PEER_FLAG_RSERVER_CLIENT,
46985 yang_dnode_get_bool(args->dnode, NULL));
46986
46987 break;
46988 }
46989
46990 return NB_OK;
46991 }
46992
46993 /*
46994 * XPath:
46995 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/soft-reconfiguration
46996 */
46997 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_soft_reconfiguration_modify(
46998 struct nb_cb_modify_args *args)
46999 {
47000 switch (args->event) {
47001 case NB_EV_VALIDATE:
47002 case NB_EV_PREPARE:
47003 case NB_EV_ABORT:
47004 return NB_OK;
47005 case NB_EV_APPLY:
47006 return bgp_peer_group_afi_safi_flag_modify(
47007 args, PEER_FLAG_SOFT_RECONFIG,
47008 yang_dnode_get_bool(args->dnode, NULL));
47009
47010 break;
47011 }
47012
47013 return NB_OK;
47014 }
47015
47016 /*
47017 * XPath:
47018 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/route-reflector/route-reflector-client
47019 */
47020 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_route_reflector_route_reflector_client_modify(
47021 struct nb_cb_modify_args *args)
47022 {
47023 switch (args->event) {
47024 case NB_EV_VALIDATE:
47025 case NB_EV_PREPARE:
47026 case NB_EV_ABORT:
47027 return NB_OK;
47028 case NB_EV_APPLY:
47029 return bgp_peer_group_afi_safi_flag_modify(
47030 args, PEER_FLAG_REFLECTOR_CLIENT,
47031 yang_dnode_get_bool(args->dnode, NULL));
47032
47033 break;
47034 }
47035
47036 return NB_OK;
47037 }
47038
47039 /*
47040 * XPath:
47041 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/route-server/route-server-client
47042 */
47043 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_route_server_route_server_client_modify(
47044 struct nb_cb_modify_args *args)
47045 {
47046 switch (args->event) {
47047 case NB_EV_VALIDATE:
47048 case NB_EV_PREPARE:
47049 case NB_EV_ABORT:
47050 return NB_OK;
47051 case NB_EV_APPLY:
47052 return bgp_peer_group_afi_safi_flag_modify(
47053 args, PEER_FLAG_RSERVER_CLIENT,
47054 yang_dnode_get_bool(args->dnode, NULL));
47055
47056 break;
47057 }
47058
47059 return NB_OK;
47060 }
47061
47062 /*
47063 * XPath:
47064 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/soft-reconfiguration
47065 */
47066 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_soft_reconfiguration_modify(
47067 struct nb_cb_modify_args *args)
47068 {
47069 switch (args->event) {
47070 case NB_EV_VALIDATE:
47071 case NB_EV_PREPARE:
47072 case NB_EV_ABORT:
47073 return NB_OK;
47074 case NB_EV_APPLY:
47075 return bgp_peer_group_afi_safi_flag_modify(
47076 args, PEER_FLAG_SOFT_RECONFIG,
47077 yang_dnode_get_bool(args->dnode, NULL));
47078
47079 break;
47080 }
47081
47082 return NB_OK;
47083 }
47084
47085 /*
47086 * XPath:
47087 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/filter-config/rmap-import
47088 */
47089 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_modify(
47090 struct nb_cb_modify_args *args)
47091 {
47092 switch (args->event) {
47093 case NB_EV_VALIDATE:
47094 case NB_EV_PREPARE:
47095 case NB_EV_ABORT:
47096 break;
47097 case NB_EV_APPLY:
47098 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
47099 }
47100
47101 return NB_OK;
47102 }
47103
47104 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_destroy(
47105 struct nb_cb_destroy_args *args)
47106 {
47107 switch (args->event) {
47108 case NB_EV_VALIDATE:
47109 case NB_EV_PREPARE:
47110 case NB_EV_ABORT:
47111 break;
47112 case NB_EV_APPLY:
47113 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
47114 }
47115
47116 return NB_OK;
47117 }
47118
47119 /*
47120 * XPath:
47121 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/filter-config/rmap-export
47122 */
47123 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_modify(
47124 struct nb_cb_modify_args *args)
47125 {
47126 switch (args->event) {
47127 case NB_EV_VALIDATE:
47128 case NB_EV_PREPARE:
47129 case NB_EV_ABORT:
47130 break;
47131 case NB_EV_APPLY:
47132 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
47133 }
47134
47135 return NB_OK;
47136 }
47137
47138 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_destroy(
47139 struct nb_cb_destroy_args *args)
47140 {
47141 switch (args->event) {
47142 case NB_EV_VALIDATE:
47143 case NB_EV_PREPARE:
47144 case NB_EV_ABORT:
47145 break;
47146 case NB_EV_APPLY:
47147 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
47148 }
47149
47150 return NB_OK;
47151 }
47152
47153 /*
47154 * XPath:
47155 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/filter-config/plist-import
47156 */
47157 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_modify(
47158 struct nb_cb_modify_args *args)
47159 {
47160 switch (args->event) {
47161 case NB_EV_VALIDATE:
47162 case NB_EV_PREPARE:
47163 case NB_EV_ABORT:
47164 break;
47165 case NB_EV_APPLY:
47166 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
47167 }
47168
47169 return NB_OK;
47170 }
47171
47172 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_destroy(
47173 struct nb_cb_destroy_args *args)
47174 {
47175 switch (args->event) {
47176 case NB_EV_VALIDATE:
47177 case NB_EV_PREPARE:
47178 case NB_EV_ABORT:
47179 break;
47180 case NB_EV_APPLY:
47181 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
47182 }
47183
47184 return NB_OK;
47185 }
47186
47187 /*
47188 * XPath:
47189 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/filter-config/plist-export
47190 */
47191 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_modify(
47192 struct nb_cb_modify_args *args)
47193 {
47194 switch (args->event) {
47195 case NB_EV_VALIDATE:
47196 case NB_EV_PREPARE:
47197 case NB_EV_ABORT:
47198 break;
47199 case NB_EV_APPLY:
47200 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
47201 }
47202
47203 return NB_OK;
47204 }
47205
47206 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_destroy(
47207 struct nb_cb_destroy_args *args)
47208 {
47209 switch (args->event) {
47210 case NB_EV_VALIDATE:
47211 case NB_EV_PREPARE:
47212 case NB_EV_ABORT:
47213 break;
47214 case NB_EV_APPLY:
47215 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
47216 }
47217
47218 return NB_OK;
47219 }
47220
47221 /*
47222 * XPath:
47223 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/filter-config/access-list-import
47224 */
47225 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_modify(
47226 struct nb_cb_modify_args *args)
47227 {
47228 switch (args->event) {
47229 case NB_EV_VALIDATE:
47230 case NB_EV_PREPARE:
47231 case NB_EV_ABORT:
47232 case NB_EV_APPLY:
47233 /* TODO: implement me. */
47234 break;
47235 }
47236
47237 return NB_OK;
47238 }
47239
47240 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_destroy(
47241 struct nb_cb_destroy_args *args)
47242 {
47243 switch (args->event) {
47244 case NB_EV_VALIDATE:
47245 case NB_EV_PREPARE:
47246 case NB_EV_ABORT:
47247 case NB_EV_APPLY:
47248 /* TODO: implement me. */
47249 break;
47250 }
47251
47252 return NB_OK;
47253 }
47254
47255 /*
47256 * XPath:
47257 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/filter-config/access-list-export
47258 */
47259 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_modify(
47260 struct nb_cb_modify_args *args)
47261 {
47262 switch (args->event) {
47263 case NB_EV_VALIDATE:
47264 case NB_EV_PREPARE:
47265 case NB_EV_ABORT:
47266 case NB_EV_APPLY:
47267 /* TODO: implement me. */
47268 break;
47269 }
47270
47271 return NB_OK;
47272 }
47273
47274 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_destroy(
47275 struct nb_cb_destroy_args *args)
47276 {
47277 switch (args->event) {
47278 case NB_EV_VALIDATE:
47279 case NB_EV_PREPARE:
47280 case NB_EV_ABORT:
47281 case NB_EV_APPLY:
47282 /* TODO: implement me. */
47283 break;
47284 }
47285
47286 return NB_OK;
47287 }
47288
47289 /*
47290 * XPath:
47291 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/filter-config/as-path-filter-list-import
47292 */
47293 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_modify(
47294 struct nb_cb_modify_args *args)
47295 {
47296 switch (args->event) {
47297 case NB_EV_VALIDATE:
47298 case NB_EV_PREPARE:
47299 case NB_EV_ABORT:
47300 case NB_EV_APPLY:
47301 /* TODO: implement me. */
47302 break;
47303 }
47304
47305 return NB_OK;
47306 }
47307
47308 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_destroy(
47309 struct nb_cb_destroy_args *args)
47310 {
47311 switch (args->event) {
47312 case NB_EV_VALIDATE:
47313 case NB_EV_PREPARE:
47314 case NB_EV_ABORT:
47315 case NB_EV_APPLY:
47316 /* TODO: implement me. */
47317 break;
47318 }
47319
47320 return NB_OK;
47321 }
47322
47323 /*
47324 * XPath:
47325 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/filter-config/as-path-filter-list-export
47326 */
47327 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_modify(
47328 struct nb_cb_modify_args *args)
47329 {
47330 switch (args->event) {
47331 case NB_EV_VALIDATE:
47332 case NB_EV_PREPARE:
47333 case NB_EV_ABORT:
47334 case NB_EV_APPLY:
47335 /* TODO: implement me. */
47336 break;
47337 }
47338
47339 return NB_OK;
47340 }
47341
47342 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_destroy(
47343 struct nb_cb_destroy_args *args)
47344 {
47345 switch (args->event) {
47346 case NB_EV_VALIDATE:
47347 case NB_EV_PREPARE:
47348 case NB_EV_ABORT:
47349 case NB_EV_APPLY:
47350 /* TODO: implement me. */
47351 break;
47352 }
47353
47354 return NB_OK;
47355 }
47356
47357 /*
47358 * XPath:
47359 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/filter-config/unsuppress-map-import
47360 */
47361 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_modify(
47362 struct nb_cb_modify_args *args)
47363 {
47364 switch (args->event) {
47365 case NB_EV_VALIDATE:
47366 case NB_EV_PREPARE:
47367 case NB_EV_ABORT:
47368 case NB_EV_APPLY:
47369 /* TODO: implement me. */
47370 break;
47371 }
47372
47373 return NB_OK;
47374 }
47375
47376 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_destroy(
47377 struct nb_cb_destroy_args *args)
47378 {
47379 switch (args->event) {
47380 case NB_EV_VALIDATE:
47381 case NB_EV_PREPARE:
47382 case NB_EV_ABORT:
47383 case NB_EV_APPLY:
47384 /* TODO: implement me. */
47385 break;
47386 }
47387
47388 return NB_OK;
47389 }
47390
47391 /*
47392 * XPath:
47393 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/filter-config/unsuppress-map-export
47394 */
47395 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_modify(
47396 struct nb_cb_modify_args *args)
47397 {
47398 switch (args->event) {
47399 case NB_EV_VALIDATE:
47400 case NB_EV_PREPARE:
47401 case NB_EV_ABORT:
47402 case NB_EV_APPLY:
47403 /* TODO: implement me. */
47404 break;
47405 }
47406
47407 return NB_OK;
47408 }
47409
47410 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_destroy(
47411 struct nb_cb_destroy_args *args)
47412 {
47413 switch (args->event) {
47414 case NB_EV_VALIDATE:
47415 case NB_EV_PREPARE:
47416 case NB_EV_ABORT:
47417 case NB_EV_APPLY:
47418 /* TODO: implement me. */
47419 break;
47420 }
47421
47422 return NB_OK;
47423 }
47424
47425 /*
47426 * XPath:
47427 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/route-reflector/route-reflector-client
47428 */
47429 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_route_reflector_route_reflector_client_modify(
47430 struct nb_cb_modify_args *args)
47431 {
47432 switch (args->event) {
47433 case NB_EV_VALIDATE:
47434 case NB_EV_PREPARE:
47435 case NB_EV_ABORT:
47436 return NB_OK;
47437 case NB_EV_APPLY:
47438 return bgp_peer_group_afi_safi_flag_modify(
47439 args, PEER_FLAG_REFLECTOR_CLIENT,
47440 yang_dnode_get_bool(args->dnode, NULL));
47441
47442 break;
47443 }
47444
47445 return NB_OK;
47446 }
47447
47448 /*
47449 * XPath:
47450 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/route-server/route-server-client
47451 */
47452 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_route_server_route_server_client_modify(
47453 struct nb_cb_modify_args *args)
47454 {
47455 switch (args->event) {
47456 case NB_EV_VALIDATE:
47457 case NB_EV_PREPARE:
47458 case NB_EV_ABORT:
47459 return NB_OK;
47460 case NB_EV_APPLY:
47461 return bgp_peer_group_afi_safi_flag_modify(
47462 args, PEER_FLAG_RSERVER_CLIENT,
47463 yang_dnode_get_bool(args->dnode, NULL));
47464
47465 break;
47466 }
47467
47468 return NB_OK;
47469 }
47470
47471 /*
47472 * XPath:
47473 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/soft-reconfiguration
47474 */
47475 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_soft_reconfiguration_modify(
47476 struct nb_cb_modify_args *args)
47477 {
47478 switch (args->event) {
47479 case NB_EV_VALIDATE:
47480 case NB_EV_PREPARE:
47481 case NB_EV_ABORT:
47482 return NB_OK;
47483 case NB_EV_APPLY:
47484 return bgp_peer_group_afi_safi_flag_modify(
47485 args, PEER_FLAG_SOFT_RECONFIG,
47486 yang_dnode_get_bool(args->dnode, NULL));
47487
47488 break;
47489 }
47490
47491 return NB_OK;
47492 }
47493
47494 /*
47495 * XPath:
47496 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/filter-config/rmap-import
47497 */
47498 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_modify(
47499 struct nb_cb_modify_args *args)
47500 {
47501 switch (args->event) {
47502 case NB_EV_VALIDATE:
47503 case NB_EV_PREPARE:
47504 case NB_EV_ABORT:
47505 break;
47506 case NB_EV_APPLY:
47507 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
47508 }
47509
47510 return NB_OK;
47511 }
47512
47513 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_destroy(
47514 struct nb_cb_destroy_args *args)
47515 {
47516 switch (args->event) {
47517 case NB_EV_VALIDATE:
47518 case NB_EV_PREPARE:
47519 case NB_EV_ABORT:
47520 break;
47521 case NB_EV_APPLY:
47522 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
47523 }
47524
47525 return NB_OK;
47526 }
47527
47528 /*
47529 * XPath:
47530 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/filter-config/rmap-export
47531 */
47532 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_modify(
47533 struct nb_cb_modify_args *args)
47534 {
47535 switch (args->event) {
47536 case NB_EV_VALIDATE:
47537 case NB_EV_PREPARE:
47538 case NB_EV_ABORT:
47539 break;
47540 case NB_EV_APPLY:
47541 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
47542 }
47543
47544 return NB_OK;
47545 }
47546
47547 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_destroy(
47548 struct nb_cb_destroy_args *args)
47549 {
47550 switch (args->event) {
47551 case NB_EV_VALIDATE:
47552 case NB_EV_PREPARE:
47553 case NB_EV_ABORT:
47554 break;
47555 case NB_EV_APPLY:
47556 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
47557 }
47558
47559 return NB_OK;
47560 }
47561
47562 /*
47563 * XPath:
47564 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/filter-config/plist-import
47565 */
47566 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_modify(
47567 struct nb_cb_modify_args *args)
47568 {
47569 switch (args->event) {
47570 case NB_EV_VALIDATE:
47571 case NB_EV_PREPARE:
47572 case NB_EV_ABORT:
47573 break;
47574 case NB_EV_APPLY:
47575 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
47576 }
47577
47578 return NB_OK;
47579 }
47580
47581 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_destroy(
47582 struct nb_cb_destroy_args *args)
47583 {
47584 switch (args->event) {
47585 case NB_EV_VALIDATE:
47586 case NB_EV_PREPARE:
47587 case NB_EV_ABORT:
47588 break;
47589 case NB_EV_APPLY:
47590 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
47591 }
47592
47593 return NB_OK;
47594 }
47595
47596 /*
47597 * XPath:
47598 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/filter-config/plist-export
47599 */
47600 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_modify(
47601 struct nb_cb_modify_args *args)
47602 {
47603 switch (args->event) {
47604 case NB_EV_VALIDATE:
47605 case NB_EV_PREPARE:
47606 case NB_EV_ABORT:
47607 break;
47608 case NB_EV_APPLY:
47609 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
47610 }
47611
47612 return NB_OK;
47613 }
47614
47615 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_destroy(
47616 struct nb_cb_destroy_args *args)
47617 {
47618 switch (args->event) {
47619 case NB_EV_VALIDATE:
47620 case NB_EV_PREPARE:
47621 case NB_EV_ABORT:
47622 break;
47623 case NB_EV_APPLY:
47624 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
47625 }
47626
47627 return NB_OK;
47628 }
47629
47630 /*
47631 * XPath:
47632 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/filter-config/access-list-import
47633 */
47634 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_modify(
47635 struct nb_cb_modify_args *args)
47636 {
47637 switch (args->event) {
47638 case NB_EV_VALIDATE:
47639 case NB_EV_PREPARE:
47640 case NB_EV_ABORT:
47641 case NB_EV_APPLY:
47642 /* TODO: implement me. */
47643 break;
47644 }
47645
47646 return NB_OK;
47647 }
47648
47649 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_destroy(
47650 struct nb_cb_destroy_args *args)
47651 {
47652 switch (args->event) {
47653 case NB_EV_VALIDATE:
47654 case NB_EV_PREPARE:
47655 case NB_EV_ABORT:
47656 case NB_EV_APPLY:
47657 /* TODO: implement me. */
47658 break;
47659 }
47660
47661 return NB_OK;
47662 }
47663
47664 /*
47665 * XPath:
47666 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/filter-config/access-list-export
47667 */
47668 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_modify(
47669 struct nb_cb_modify_args *args)
47670 {
47671 switch (args->event) {
47672 case NB_EV_VALIDATE:
47673 case NB_EV_PREPARE:
47674 case NB_EV_ABORT:
47675 case NB_EV_APPLY:
47676 /* TODO: implement me. */
47677 break;
47678 }
47679
47680 return NB_OK;
47681 }
47682
47683 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_destroy(
47684 struct nb_cb_destroy_args *args)
47685 {
47686 switch (args->event) {
47687 case NB_EV_VALIDATE:
47688 case NB_EV_PREPARE:
47689 case NB_EV_ABORT:
47690 case NB_EV_APPLY:
47691 /* TODO: implement me. */
47692 break;
47693 }
47694
47695 return NB_OK;
47696 }
47697
47698 /*
47699 * XPath:
47700 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/filter-config/as-path-filter-list-import
47701 */
47702 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_modify(
47703 struct nb_cb_modify_args *args)
47704 {
47705 switch (args->event) {
47706 case NB_EV_VALIDATE:
47707 case NB_EV_PREPARE:
47708 case NB_EV_ABORT:
47709 case NB_EV_APPLY:
47710 /* TODO: implement me. */
47711 break;
47712 }
47713
47714 return NB_OK;
47715 }
47716
47717 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_destroy(
47718 struct nb_cb_destroy_args *args)
47719 {
47720 switch (args->event) {
47721 case NB_EV_VALIDATE:
47722 case NB_EV_PREPARE:
47723 case NB_EV_ABORT:
47724 case NB_EV_APPLY:
47725 /* TODO: implement me. */
47726 break;
47727 }
47728
47729 return NB_OK;
47730 }
47731
47732 /*
47733 * XPath:
47734 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/filter-config/as-path-filter-list-export
47735 */
47736 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_modify(
47737 struct nb_cb_modify_args *args)
47738 {
47739 switch (args->event) {
47740 case NB_EV_VALIDATE:
47741 case NB_EV_PREPARE:
47742 case NB_EV_ABORT:
47743 case NB_EV_APPLY:
47744 /* TODO: implement me. */
47745 break;
47746 }
47747
47748 return NB_OK;
47749 }
47750
47751 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_destroy(
47752 struct nb_cb_destroy_args *args)
47753 {
47754 switch (args->event) {
47755 case NB_EV_VALIDATE:
47756 case NB_EV_PREPARE:
47757 case NB_EV_ABORT:
47758 case NB_EV_APPLY:
47759 /* TODO: implement me. */
47760 break;
47761 }
47762
47763 return NB_OK;
47764 }
47765
47766 /*
47767 * XPath:
47768 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/filter-config/unsuppress-map-import
47769 */
47770 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_modify(
47771 struct nb_cb_modify_args *args)
47772 {
47773 switch (args->event) {
47774 case NB_EV_VALIDATE:
47775 case NB_EV_PREPARE:
47776 case NB_EV_ABORT:
47777 case NB_EV_APPLY:
47778 /* TODO: implement me. */
47779 break;
47780 }
47781
47782 return NB_OK;
47783 }
47784
47785 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_destroy(
47786 struct nb_cb_destroy_args *args)
47787 {
47788 switch (args->event) {
47789 case NB_EV_VALIDATE:
47790 case NB_EV_PREPARE:
47791 case NB_EV_ABORT:
47792 case NB_EV_APPLY:
47793 /* TODO: implement me. */
47794 break;
47795 }
47796
47797 return NB_OK;
47798 }
47799
47800 /*
47801 * XPath:
47802 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/filter-config/unsuppress-map-export
47803 */
47804 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_modify(
47805 struct nb_cb_modify_args *args)
47806 {
47807 switch (args->event) {
47808 case NB_EV_VALIDATE:
47809 case NB_EV_PREPARE:
47810 case NB_EV_ABORT:
47811 case NB_EV_APPLY:
47812 /* TODO: implement me. */
47813 break;
47814 }
47815
47816 return NB_OK;
47817 }
47818
47819 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_destroy(
47820 struct nb_cb_destroy_args *args)
47821 {
47822 switch (args->event) {
47823 case NB_EV_VALIDATE:
47824 case NB_EV_PREPARE:
47825 case NB_EV_ABORT:
47826 case NB_EV_APPLY:
47827 /* TODO: implement me. */
47828 break;
47829 }
47830
47831 return NB_OK;
47832 }