]> git.proxmox.com Git - mirror_frr.git/blob - bgpd/bgp_nb_config.c
Merge pull request #8120 from ton31337/feature/bgp_ipv6_default_activated
[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 DEFINE_HOOK(bgp_snmp_init_stats, (struct bgp *bgp), (bgp));
36
37 FRR_CFG_DEFAULT_ULONG(BGP_CONNECT_RETRY,
38 { .val_ulong = 10, .match_profile = "datacenter", },
39 { .val_ulong = 120 },
40 );
41 FRR_CFG_DEFAULT_ULONG(BGP_HOLDTIME,
42 { .val_ulong = 9, .match_profile = "datacenter", },
43 { .val_ulong = 180 },
44 );
45 FRR_CFG_DEFAULT_ULONG(BGP_KEEPALIVE,
46 { .val_ulong = 3, .match_profile = "datacenter", },
47 { .val_ulong = 60 },
48 );
49
50 int routing_control_plane_protocols_name_validate(
51 struct nb_cb_create_args *args)
52 {
53 const char *name;
54
55 name = yang_dnode_get_string(args->dnode, "./name");
56 if (!strmatch(name, "bgp")) {
57 snprintf(args->errmsg, args->errmsg_len,
58 "per vrf only one bgp instance is supported.");
59 return NB_ERR_VALIDATION;
60 }
61 return NB_OK;
62 }
63
64 /*
65 * XPath:
66 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp
67 */
68 int bgp_router_create(struct nb_cb_create_args *args)
69 {
70 const struct lyd_node *vrf_dnode;
71 struct bgp *bgp;
72 const char *vrf_name;
73 const char *name = NULL;
74 as_t as;
75 enum bgp_instance_type inst_type;
76 bool is_view_inst = false;
77 int ret;
78 int is_new_bgp = 0;
79
80 inst_type = BGP_INSTANCE_TYPE_DEFAULT;
81
82 switch (args->event) {
83 case NB_EV_VALIDATE:
84 case NB_EV_PREPARE:
85 case NB_EV_ABORT:
86 return NB_OK;
87 case NB_EV_APPLY:
88 vrf_dnode = yang_dnode_get_parent(args->dnode,
89 "control-plane-protocol");
90 vrf_name = yang_dnode_get_string(vrf_dnode, "./vrf");
91
92 if (strmatch(vrf_name, VRF_DEFAULT_NAME)) {
93 name = NULL;
94 } else {
95 name = vrf_name;
96 inst_type = BGP_INSTANCE_TYPE_VRF;
97 }
98
99 as = yang_dnode_get_uint32(args->dnode, "./global/local-as");
100
101 is_view_inst = yang_dnode_get_bool(
102 args->dnode, "./global/instance-type-view");
103 if (is_view_inst)
104 inst_type = BGP_INSTANCE_TYPE_VIEW;
105
106 if (inst_type == BGP_INSTANCE_TYPE_DEFAULT)
107 is_new_bgp = (bgp_lookup(as, name) == NULL);
108
109 ret = bgp_get_vty(&bgp, &as, name, inst_type);
110 if (ret == BGP_ERR_INSTANCE_MISMATCH) {
111 snprintf(
112 args->errmsg, args->errmsg_len,
113 "BGP instance name and AS number mismatch\nBGP instance is already running; AS is %u, input-as %u",
114 bgp->as, as);
115
116 return NB_ERR_INCONSISTENCY;
117 }
118 /*
119 * If we just instantiated the default instance, complete
120 * any pending VRF-VPN leaking that was configured via
121 * earlier "router bgp X vrf FOO" blocks.
122 */
123 if (is_new_bgp && inst_type == BGP_INSTANCE_TYPE_DEFAULT)
124 vpn_leak_postchange_all();
125
126 if (inst_type == BGP_INSTANCE_TYPE_VRF)
127 bgp_vpn_leak_export(bgp);
128
129 UNSET_FLAG(bgp->vrf_flags, BGP_VRF_AUTO);
130
131 nb_running_set_entry(args->dnode, bgp);
132 break;
133 }
134
135 return NB_OK;
136 }
137
138 int bgp_router_destroy(struct nb_cb_destroy_args *args)
139 {
140 struct bgp *bgp;
141
142 switch (args->event) {
143 case NB_EV_VALIDATE:
144 bgp = nb_running_get_entry(args->dnode, NULL, false);
145
146 if (!bgp)
147 return NB_OK;
148
149 if (bgp->l3vni) {
150 snprintf(args->errmsg, args->errmsg_len,
151 "Please unconfigure l3vni %u", bgp->l3vni);
152 return NB_ERR_VALIDATION;
153 }
154
155 /* Cannot delete default instance if vrf instances exist */
156 if (bgp->inst_type == BGP_INSTANCE_TYPE_DEFAULT) {
157 struct listnode *node;
158 struct bgp *tmp_bgp;
159
160 for (ALL_LIST_ELEMENTS_RO(bm->bgp, node, tmp_bgp)) {
161 if (tmp_bgp->inst_type
162 == BGP_INSTANCE_TYPE_VRF) {
163 snprintf(
164 args->errmsg, args->errmsg_len,
165 "Cannot delete default BGP instance. Dependent VRF instances exist\n");
166 return NB_ERR_VALIDATION;
167 }
168 }
169 }
170
171 break;
172 case NB_EV_PREPARE:
173 case NB_EV_ABORT:
174 return NB_OK;
175 case NB_EV_APPLY:
176 bgp = nb_running_unset_entry(args->dnode);
177
178 bgp_delete(bgp);
179
180 break;
181 }
182
183 return NB_OK;
184 }
185
186 /*
187 * XPath:
188 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/local-as
189 */
190 int bgp_global_local_as_modify(struct nb_cb_modify_args *args)
191 {
192 struct bgp *bgp;
193 as_t as;
194 const struct lyd_node *vrf_dnode;
195 const char *vrf_name;
196 const char *name = NULL;
197 enum bgp_instance_type inst_type;
198 int ret;
199 bool is_view_inst = false;
200
201 switch (args->event) {
202 case NB_EV_VALIDATE:
203 as = yang_dnode_get_uint32(args->dnode, NULL);
204
205 inst_type = BGP_INSTANCE_TYPE_DEFAULT;
206
207 vrf_dnode = yang_dnode_get_parent(args->dnode,
208 "control-plane-protocol");
209 vrf_name = yang_dnode_get_string(vrf_dnode, "./vrf");
210
211 if (strmatch(vrf_name, VRF_DEFAULT_NAME)) {
212 name = NULL;
213 } else {
214 name = vrf_name;
215 inst_type = BGP_INSTANCE_TYPE_VRF;
216 }
217
218 is_view_inst = yang_dnode_get_bool(args->dnode,
219 "../instance-type-view");
220 if (is_view_inst)
221 inst_type = BGP_INSTANCE_TYPE_VIEW;
222
223 ret = bgp_lookup_by_as_name_type(&bgp, &as, name, inst_type);
224 if (ret == BGP_ERR_INSTANCE_MISMATCH) {
225 snprintf(
226 args->errmsg, args->errmsg_len,
227 "BGP instance name and AS number mismatch\nBGP instance is already running; input-as %u",
228 as);
229
230 return NB_ERR_VALIDATION;
231 }
232
233 break;
234 case NB_EV_PREPARE:
235 case NB_EV_ABORT:
236 return NB_OK;
237 case NB_EV_APPLY:
238 /* NOTE: handled in bgp_global_create callback, the as change
239 * will be rejected in validate phase.
240 */
241 as = yang_dnode_get_uint32(args->dnode, NULL);
242 bgp = nb_running_get_entry(args->dnode, NULL, true);
243 if (bgp->as != as) {
244 snprintf(args->errmsg, args->errmsg_len,
245 "BGP instance is already running; AS is %u",
246 bgp->as);
247 return NB_ERR_INCONSISTENCY;
248 }
249 break;
250 }
251
252 return NB_OK;
253 }
254
255 /*
256 * XPath:
257 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/router-id
258 */
259 int bgp_global_router_id_modify(struct nb_cb_modify_args *args)
260 {
261 if (args->event != NB_EV_APPLY)
262 return NB_OK;
263
264 struct bgp *bgp;
265 struct in_addr router_id;
266
267 bgp = nb_running_get_entry(args->dnode, NULL, true);
268 yang_dnode_get_ipv4(&router_id, args->dnode, NULL);
269 bgp_router_id_static_set(bgp, router_id);
270
271 return NB_OK;
272 }
273
274 int bgp_global_router_id_destroy(struct nb_cb_destroy_args *args)
275 {
276 if (args->event != NB_EV_APPLY)
277 return NB_OK;
278
279 struct bgp *bgp;
280 struct in_addr router_id;
281
282 bgp = nb_running_get_entry(args->dnode, NULL, true);
283
284 router_id.s_addr = INADDR_ANY;
285 bgp_router_id_static_set(bgp, router_id);
286
287 return NB_OK;
288 }
289
290 /*
291 * XPath:
292 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/confederation/identifier
293 */
294 int bgp_global_confederation_identifier_modify(struct nb_cb_modify_args *args)
295 {
296 struct bgp *bgp;
297 as_t as;
298
299 switch (args->event) {
300 case NB_EV_VALIDATE:
301 as = yang_dnode_get_uint32(args->dnode, NULL);
302 if (!as) {
303 snprintf(args->errmsg, args->errmsg_len, "Invalid AS.");
304 return NB_ERR_VALIDATION;
305 }
306
307 break;
308 case NB_EV_PREPARE:
309 case NB_EV_ABORT:
310 return NB_OK;
311 case NB_EV_APPLY:
312 bgp = nb_running_get_entry(args->dnode, NULL, true);
313
314 as = yang_dnode_get_uint32(args->dnode, NULL);
315
316 bgp_confederation_id_set(bgp, as);
317
318 break;
319 }
320
321 return NB_OK;
322 }
323
324 int bgp_global_confederation_identifier_destroy(struct nb_cb_destroy_args *args)
325 {
326 if (args->event != NB_EV_APPLY)
327 return NB_OK;
328
329 struct bgp *bgp;
330
331 bgp = nb_running_get_entry(args->dnode, NULL, true);
332
333 bgp_confederation_id_unset(bgp);
334
335 return NB_OK;
336 }
337
338 /*
339 * XPath:
340 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/confederation/member-as
341 */
342 int bgp_global_confederation_member_as_create(struct nb_cb_create_args *args)
343 {
344 as_t my_as, as;
345 struct bgp *bgp;
346 int ret;
347
348 switch (args->event) {
349 case NB_EV_VALIDATE:
350 my_as = yang_dnode_get_uint32(args->dnode,
351 "../../../global/local-as");
352 as = yang_dnode_get_uint32(args->dnode, NULL);
353 if (my_as == as) {
354 snprintf(
355 args->errmsg, args->errmsg_len,
356 "Local member-AS %u not allowed in confed peer list",
357 my_as);
358 return NB_ERR_VALIDATION;
359 }
360
361 break;
362 case NB_EV_PREPARE:
363 case NB_EV_ABORT:
364 return NB_OK;
365 case NB_EV_APPLY:
366 bgp = nb_running_get_entry(args->dnode, NULL, true);
367 as = yang_dnode_get_uint32(args->dnode, NULL);
368
369 ret = bgp_confederation_peers_add(bgp, as);
370 if (ret == BGP_ERR_INVALID_AS) {
371 snprintf(
372 args->errmsg, args->errmsg_len,
373 "Local member-AS not alloed in confed peer list");
374 return NB_ERR_INCONSISTENCY;
375 }
376
377 break;
378 }
379
380 return NB_OK;
381 }
382
383 int bgp_global_confederation_member_as_destroy(struct nb_cb_destroy_args *args)
384 {
385 if (args->event != NB_EV_APPLY)
386 return NB_OK;
387
388 as_t as;
389 struct bgp *bgp;
390
391 bgp = nb_running_get_entry(args->dnode, NULL, true);
392 as = yang_dnode_get_uint32(args->dnode, NULL);
393
394 bgp_confederation_peers_remove(bgp, as);
395
396 return NB_OK;
397 }
398
399 /*
400 * XPath:
401 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/med-config
402 */
403 void bgp_global_med_config_apply_finish(struct nb_cb_apply_finish_args *args)
404 {
405 struct bgp *bgp;
406
407 bgp = nb_running_get_entry(args->dnode, NULL, true);
408
409 bgp_maxmed_update(bgp);
410 }
411
412 /*
413 * XPath:
414 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/med-config/enable-med-admin
415 */
416 int bgp_global_med_config_enable_med_admin_modify(
417 struct nb_cb_modify_args *args)
418 {
419 if (args->event != NB_EV_APPLY)
420 return NB_OK;
421
422 struct bgp *bgp;
423
424 bgp = nb_running_get_entry(args->dnode, NULL, true);
425
426 bgp->v_maxmed_admin = yang_dnode_get_bool(args->dnode, NULL);
427
428 return NB_OK;
429 }
430
431 /*
432 * XPath:
433 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/med-config/max-med-admin
434 */
435 int bgp_global_med_config_max_med_admin_modify(struct nb_cb_modify_args *args)
436 {
437 struct bgp *bgp;
438 uint32_t med_admin_val;
439
440 switch (args->event) {
441 case NB_EV_VALIDATE:
442 med_admin_val = yang_dnode_get_uint32(args->dnode, NULL);
443
444 /* enable_med_admin is required to be enabled for max-med-admin
445 * non default value.
446 */
447 if (med_admin_val != BGP_MAXMED_VALUE_DEFAULT
448 && !yang_dnode_get_bool(args->dnode,
449 "../enable-med-admin")) {
450 snprintf(args->errmsg, args->errmsg_len,
451 "enable med admin is not set");
452 return NB_ERR_VALIDATION;
453 }
454
455 break;
456 case NB_EV_PREPARE:
457 case NB_EV_ABORT:
458 return NB_OK;
459 case NB_EV_APPLY:
460 bgp = nb_running_get_entry(args->dnode, NULL, true);
461
462 med_admin_val = yang_dnode_get_uint32(args->dnode, NULL);
463
464 bgp->maxmed_admin_value = med_admin_val;
465
466 break;
467 }
468
469 return NB_OK;
470 }
471
472 /*
473 * XPath:
474 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/med-config/max-med-onstart-up-time
475 */
476 int bgp_global_med_config_max_med_onstart_up_time_modify(
477 struct nb_cb_modify_args *args)
478 {
479 struct bgp *bgp;
480
481 switch (args->event) {
482 case NB_EV_VALIDATE:
483 case NB_EV_PREPARE:
484 case NB_EV_ABORT:
485 return NB_OK;
486 case NB_EV_APPLY:
487 bgp = nb_running_get_entry(args->dnode, NULL, true);
488
489 bgp->v_maxmed_onstartup =
490 yang_dnode_get_uint32(args->dnode, NULL);
491
492 break;
493 }
494
495 return NB_OK;
496 }
497
498 int bgp_global_med_config_max_med_onstart_up_time_destroy(
499 struct nb_cb_destroy_args *args)
500 {
501 struct bgp *bgp;
502
503 switch (args->event) {
504 case NB_EV_VALIDATE:
505 case NB_EV_PREPARE:
506 case NB_EV_ABORT:
507 return NB_OK;
508 case NB_EV_APPLY:
509 bgp = nb_running_get_entry(args->dnode, NULL, true);
510
511 /* Cancel max-med onstartup if its on */
512 if (bgp->t_maxmed_onstartup) {
513 THREAD_OFF(bgp->t_maxmed_onstartup);
514 bgp->maxmed_onstartup_over = 1;
515 }
516
517 bgp->v_maxmed_onstartup = BGP_MAXMED_ONSTARTUP_UNCONFIGURED;
518 /* Resetting onstartup value as part of dependent node is
519 * detroyed.
520 */
521 bgp->maxmed_onstartup_value = BGP_MAXMED_VALUE_DEFAULT;
522
523 break;
524 }
525
526 return NB_OK;
527 }
528
529 /*
530 * XPath:
531 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/med-config/max-med-onstart-up-value
532 */
533 int bgp_global_med_config_max_med_onstart_up_value_modify(
534 struct nb_cb_modify_args *args)
535 {
536 struct bgp *bgp;
537 uint32_t onstartup_val;
538
539 switch (args->event) {
540 case NB_EV_VALIDATE:
541 onstartup_val = yang_dnode_get_uint32(args->dnode, NULL);
542
543 if (!yang_dnode_exists(args->dnode,
544 "../max-med-onstart-up-time")
545 && onstartup_val != BGP_MAXMED_VALUE_DEFAULT) {
546 snprintf(args->errmsg, args->errmsg_len,
547 "max-med-onstart-up-time is not set.");
548 return NB_ERR_VALIDATION;
549 }
550
551 break;
552 case NB_EV_PREPARE:
553 case NB_EV_ABORT:
554 return NB_OK;
555 case NB_EV_APPLY:
556 bgp = nb_running_get_entry(args->dnode, NULL, true);
557
558 bgp->maxmed_onstartup_value =
559 yang_dnode_get_uint32(args->dnode, NULL);
560
561 break;
562 }
563
564 return NB_OK;
565 }
566
567 /*
568 * XPath:
569 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-reflector/route-reflector-cluster-id
570 */
571 int bgp_global_route_reflector_route_reflector_cluster_id_modify(
572 struct nb_cb_modify_args *args)
573 {
574 if (args->event != NB_EV_APPLY)
575 return NB_OK;
576
577 struct bgp *bgp;
578 struct in_addr cluster_id;
579 const struct lyd_node_leaf_list *dleaf;
580
581 bgp = nb_running_get_entry(args->dnode, NULL, true);
582
583 dleaf = (const struct lyd_node_leaf_list *)args->dnode;
584 if (dleaf->value_type == LY_TYPE_STRING)
585 yang_dnode_get_ipv4(&cluster_id, args->dnode, NULL);
586 else
587 (void)inet_aton(dleaf->value_str, &cluster_id);
588
589 bgp_cluster_id_set(bgp, &cluster_id);
590
591 if (bgp_clear_star_soft_out(bgp->name, args->errmsg, args->errmsg_len))
592 return NB_ERR_INCONSISTENCY;
593
594 return NB_OK;
595 }
596
597 int bgp_global_route_reflector_route_reflector_cluster_id_destroy(
598 struct nb_cb_destroy_args *args)
599 {
600 if (args->event != NB_EV_APPLY)
601 return NB_OK;
602
603 struct bgp *bgp;
604
605 bgp = nb_running_get_entry(args->dnode, NULL, true);
606
607 bgp_cluster_id_unset(bgp);
608
609 if (bgp_clear_star_soft_out(bgp->name, args->errmsg, args->errmsg_len))
610 return NB_ERR_INCONSISTENCY;
611
612 return NB_OK;
613 }
614
615 /*
616 * XPath:
617 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-reflector/no-client-reflect
618 */
619 int bgp_global_route_reflector_no_client_reflect_modify(
620 struct nb_cb_modify_args *args)
621 {
622 if (args->event != NB_EV_APPLY)
623 return NB_OK;
624
625 struct bgp *bgp;
626
627 bgp = nb_running_get_entry(args->dnode, NULL, true);
628
629 if (yang_dnode_get_bool(args->dnode, NULL))
630 SET_FLAG(bgp->flags, BGP_FLAG_NO_CLIENT_TO_CLIENT);
631 else
632 UNSET_FLAG(bgp->flags, BGP_FLAG_NO_CLIENT_TO_CLIENT);
633
634 if (bgp_clear_star_soft_out(bgp->name, args->errmsg, args->errmsg_len))
635 return NB_ERR_INCONSISTENCY;
636
637 return NB_OK;
638 }
639
640 /*
641 * XPath:
642 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-reflector/allow-outbound-policy
643 */
644 int bgp_global_route_reflector_allow_outbound_policy_modify(
645 struct nb_cb_modify_args *args)
646 {
647 if (args->event != NB_EV_APPLY)
648 return NB_OK;
649
650 struct bgp *bgp;
651
652 bgp = nb_running_get_entry(args->dnode, NULL, true);
653
654 if (yang_dnode_get_bool(args->dnode, NULL))
655 SET_FLAG(bgp->flags, BGP_FLAG_RR_ALLOW_OUTBOUND_POLICY);
656 else
657 UNSET_FLAG(bgp->flags, BGP_FLAG_RR_ALLOW_OUTBOUND_POLICY);
658
659 update_group_announce_rrclients(bgp);
660
661 if (bgp_clear_star_soft_out(bgp->name, args->errmsg, args->errmsg_len))
662 return NB_ERR_INCONSISTENCY;
663
664 return NB_OK;
665 }
666
667 /*
668 * XPath:
669 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options
670 */
671 void bgp_global_route_selection_options_apply_finish(
672 struct nb_cb_apply_finish_args *args)
673 {
674 struct bgp *bgp;
675
676 bgp = nb_running_get_entry(args->dnode, NULL, true);
677
678 bgp_recalculate_all_bestpaths(bgp);
679 }
680
681 /*
682 * XPath:
683 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/always-compare-med
684 */
685 int bgp_global_route_selection_options_always_compare_med_modify(
686 struct nb_cb_modify_args *args)
687 {
688 if (args->event != NB_EV_APPLY)
689 return NB_OK;
690
691 struct bgp *bgp;
692
693 bgp = nb_running_get_entry(args->dnode, NULL, true);
694
695 if (yang_dnode_get_bool(args->dnode, NULL))
696 SET_FLAG(bgp->flags, BGP_FLAG_ALWAYS_COMPARE_MED);
697 else
698 UNSET_FLAG(bgp->flags, BGP_FLAG_ALWAYS_COMPARE_MED);
699
700
701 return NB_OK;
702 }
703
704 /*
705 * XPath:
706 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/deterministic-med
707 */
708 int bgp_global_route_selection_options_deterministic_med_modify(
709 struct nb_cb_modify_args *args)
710 {
711 struct bgp *bgp;
712 int bestpath_per_as_used;
713 afi_t afi;
714 safi_t safi;
715 struct peer *peer;
716 struct listnode *node;
717
718 switch (args->event) {
719 case NB_EV_VALIDATE:
720 bgp = nb_running_get_entry(args->dnode, NULL, false);
721
722 if (!bgp)
723 return NB_OK;
724
725 /* for deconfiguring deterministic-med case */
726 if (!yang_dnode_get_bool(args->dnode, NULL)
727 && CHECK_FLAG(bgp->flags, BGP_FLAG_DETERMINISTIC_MED)) {
728 bestpath_per_as_used = 0;
729
730 for (ALL_LIST_ELEMENTS_RO(bgp->peer, node, peer)) {
731 FOREACH_AFI_SAFI (afi, safi)
732 if (bgp_addpath_dmed_required(
733 peer->addpath_type[afi]
734 [safi])) {
735 bestpath_per_as_used = 1;
736 break;
737 }
738
739 if (bestpath_per_as_used)
740 break;
741 }
742
743 if (bestpath_per_as_used) {
744 snprintf(
745 args->errmsg, args->errmsg_len,
746 "bgp deterministic-med cannot be disabled while addpath-tx-bestpath-per-AS is in use");
747 return NB_ERR_VALIDATION;
748 }
749 }
750
751 break;
752 case NB_EV_PREPARE:
753 case NB_EV_ABORT:
754 return NB_OK;
755 case NB_EV_APPLY:
756 bgp = nb_running_get_entry(args->dnode, NULL, true);
757
758 if (yang_dnode_get_bool(args->dnode, NULL))
759 SET_FLAG(bgp->flags, BGP_FLAG_DETERMINISTIC_MED);
760 else
761 UNSET_FLAG(bgp->flags, BGP_FLAG_DETERMINISTIC_MED);
762
763 break;
764 }
765
766 return NB_OK;
767 }
768
769 /*
770 * XPath:
771 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/confed-med
772 */
773 int bgp_global_route_selection_options_confed_med_modify(
774 struct nb_cb_modify_args *args)
775 {
776 if (args->event != NB_EV_APPLY)
777 return NB_OK;
778
779 struct bgp *bgp;
780
781 bgp = nb_running_get_entry(args->dnode, NULL, true);
782
783 if (yang_dnode_get_bool(args->dnode, NULL))
784 SET_FLAG(bgp->flags, BGP_FLAG_MED_CONFED);
785 else
786 UNSET_FLAG(bgp->flags, BGP_FLAG_MED_CONFED);
787
788 return NB_OK;
789 }
790
791 /*
792 * XPath:
793 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/missing-as-worst-med
794 */
795 int bgp_global_route_selection_options_missing_as_worst_med_modify(
796 struct nb_cb_modify_args *args)
797 {
798 if (args->event != NB_EV_APPLY)
799 return NB_OK;
800
801 struct bgp *bgp;
802
803 bgp = nb_running_get_entry(args->dnode, NULL, true);
804
805 if (yang_dnode_get_bool(args->dnode, NULL))
806 SET_FLAG(bgp->flags, BGP_FLAG_MED_MISSING_AS_WORST);
807 else
808 UNSET_FLAG(bgp->flags, BGP_FLAG_MED_MISSING_AS_WORST);
809
810 return NB_OK;
811 }
812
813 /*
814 * XPath:
815 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/aspath-confed
816 */
817 int bgp_global_route_selection_options_aspath_confed_modify(
818 struct nb_cb_modify_args *args)
819 {
820 switch (args->event) {
821 case NB_EV_VALIDATE:
822 case NB_EV_PREPARE:
823 case NB_EV_ABORT:
824 case NB_EV_APPLY:
825 /* TODO: implement me. */
826 break;
827 }
828
829 return NB_OK;
830 }
831
832 /*
833 * XPath:
834 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/ignore-as-path-length
835 */
836 int bgp_global_route_selection_options_ignore_as_path_length_modify(
837 struct nb_cb_modify_args *args)
838 {
839 if (args->event != NB_EV_APPLY)
840 return NB_OK;
841
842 struct bgp *bgp;
843
844 bgp = nb_running_get_entry(args->dnode, NULL, true);
845
846 if (yang_dnode_get_bool(args->dnode, NULL))
847 SET_FLAG(bgp->flags, BGP_FLAG_ASPATH_IGNORE);
848 else
849 UNSET_FLAG(bgp->flags, BGP_FLAG_ASPATH_IGNORE);
850
851 return NB_OK;
852 }
853
854 /*
855 * XPath:
856 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/external-compare-router-id
857 */
858 int bgp_global_route_selection_options_external_compare_router_id_modify(
859 struct nb_cb_modify_args *args)
860 {
861 if (args->event != NB_EV_APPLY)
862 return NB_OK;
863
864 struct bgp *bgp;
865
866 bgp = nb_running_get_entry(args->dnode, NULL, true);
867
868 if (yang_dnode_get_bool(args->dnode, NULL))
869 SET_FLAG(bgp->flags, BGP_FLAG_COMPARE_ROUTER_ID);
870 else
871 UNSET_FLAG(bgp->flags, BGP_FLAG_COMPARE_ROUTER_ID);
872
873 return NB_OK;
874 }
875
876 /*
877 * XPath:
878 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/allow-multiple-as
879 */
880 int bgp_global_route_selection_options_allow_multiple_as_modify(
881 struct nb_cb_modify_args *args)
882 {
883 struct bgp *bgp;
884
885 switch (args->event) {
886 case NB_EV_VALIDATE:
887 case NB_EV_PREPARE:
888 case NB_EV_ABORT:
889 return NB_OK;
890 case NB_EV_APPLY:
891 bgp = nb_running_get_entry(args->dnode, NULL, true);
892
893 if (yang_dnode_get_bool(args->dnode, NULL)) {
894 SET_FLAG(bgp->flags, BGP_FLAG_ASPATH_MULTIPATH_RELAX);
895 if (yang_dnode_get_bool(args->dnode,
896 "../multi-path-as-set")) {
897 SET_FLAG(bgp->flags,
898 BGP_FLAG_MULTIPATH_RELAX_AS_SET);
899 } else {
900 UNSET_FLAG(bgp->flags,
901 BGP_FLAG_MULTIPATH_RELAX_AS_SET);
902 }
903 } else {
904 UNSET_FLAG(bgp->flags, BGP_FLAG_ASPATH_MULTIPATH_RELAX);
905 /* unset as-set */
906 UNSET_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET);
907 }
908
909 break;
910 }
911
912 return NB_OK;
913 }
914
915 /*
916 * XPath:
917 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/route-selection-options/multi-path-as-set
918 */
919 int bgp_global_route_selection_options_multi_path_as_set_modify(
920 struct nb_cb_modify_args *args)
921 {
922 struct bgp *bgp;
923
924 switch (args->event) {
925 case NB_EV_VALIDATE:
926 case NB_EV_PREPARE:
927 case NB_EV_ABORT:
928 return NB_OK;
929 case NB_EV_APPLY:
930 bgp = nb_running_get_entry(args->dnode, NULL, true);
931 if (yang_dnode_get_bool(args->dnode, NULL))
932 SET_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET);
933 else
934 UNSET_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET);
935 break;
936 }
937
938 return NB_OK;
939 }
940
941 int bgp_global_route_selection_options_multi_path_as_set_destroy(
942 struct nb_cb_destroy_args *args)
943 {
944 struct bgp *bgp;
945
946 switch (args->event) {
947 case NB_EV_VALIDATE:
948 case NB_EV_PREPARE:
949 case NB_EV_ABORT:
950 return NB_OK;
951 case NB_EV_APPLY:
952 bgp = nb_running_get_entry(args->dnode, NULL, true);
953 /* Only unset if it set, it is possible allow_multiple_as_modify
954 * unset this.
955 */
956 if (CHECK_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET)) {
957 UNSET_FLAG(bgp->flags, BGP_FLAG_MULTIPATH_RELAX_AS_SET);
958
959 bgp_recalculate_all_bestpaths(bgp);
960 }
961
962 break;
963 }
964
965 return NB_OK;
966 }
967
968 /*
969 * XPath:
970 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-neighbor-config/dynamic-neighbors-limit
971 */
972 int bgp_global_global_neighbor_config_dynamic_neighbors_limit_modify(
973 struct nb_cb_modify_args *args)
974 {
975 if (args->event != NB_EV_APPLY)
976 return NB_OK;
977
978 struct bgp *bgp;
979 uint32_t listen_limit;
980
981 bgp = nb_running_get_entry(args->dnode, NULL, true);
982
983 listen_limit = yang_dnode_get_uint32(args->dnode, NULL);
984
985 bgp_listen_limit_set(bgp, listen_limit);
986
987 return NB_OK;
988 }
989
990 int bgp_global_global_neighbor_config_dynamic_neighbors_limit_destroy(
991 struct nb_cb_destroy_args *args)
992 {
993 if (args->event != NB_EV_APPLY)
994 return NB_OK;
995
996 struct bgp *bgp;
997
998 bgp = nb_running_get_entry(args->dnode, NULL, true);
999
1000 bgp_listen_limit_unset(bgp);
1001
1002 return NB_OK;
1003 }
1004
1005 /*
1006 * XPath:
1007 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-neighbor-config/log-neighbor-changes
1008 */
1009 int bgp_global_global_neighbor_config_log_neighbor_changes_modify(
1010 struct nb_cb_modify_args *args)
1011 {
1012 if (args->event != NB_EV_APPLY)
1013 return NB_OK;
1014
1015 struct bgp *bgp;
1016
1017 bgp = nb_running_get_entry(args->dnode, NULL, true);
1018
1019 if (yang_dnode_get_bool(args->dnode, NULL))
1020 SET_FLAG(bgp->flags, BGP_FLAG_LOG_NEIGHBOR_CHANGES);
1021 else
1022 UNSET_FLAG(bgp->flags, BGP_FLAG_LOG_NEIGHBOR_CHANGES);
1023
1024 return NB_OK;
1025 }
1026
1027 /*
1028 * XPath:
1029 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-neighbor-config/packet-quanta-config/wpkt-quanta
1030 */
1031 int bgp_global_global_neighbor_config_packet_quanta_config_wpkt_quanta_modify(
1032 struct nb_cb_modify_args *args)
1033 {
1034 if (args->event != NB_EV_APPLY)
1035 return NB_OK;
1036
1037 struct bgp *bgp;
1038 uint32_t quanta;
1039
1040 bgp = nb_running_get_entry(args->dnode, NULL, true);
1041
1042 quanta = yang_dnode_get_uint32(args->dnode, NULL);
1043
1044 if (atomic_load_explicit(&bgp->wpkt_quanta, memory_order_relaxed)
1045 == BGP_WRITE_PACKET_MAX)
1046 bgp_wpkt_quanta_config_vty(bgp, quanta, true);
1047 else
1048 bgp_wpkt_quanta_config_vty(bgp, quanta, false);
1049
1050 return NB_OK;
1051 }
1052
1053 /*
1054 * XPath:
1055 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-neighbor-config/packet-quanta-config/rpkt-quanta
1056 */
1057 int bgp_global_global_neighbor_config_packet_quanta_config_rpkt_quanta_modify(
1058 struct nb_cb_modify_args *args)
1059 {
1060 if (args->event != NB_EV_APPLY)
1061 return NB_OK;
1062
1063 struct bgp *bgp;
1064 uint32_t quanta;
1065
1066 bgp = nb_running_get_entry(args->dnode, NULL, true);
1067
1068 quanta = yang_dnode_get_uint32(args->dnode, NULL);
1069
1070 if (atomic_load_explicit(&bgp->rpkt_quanta, memory_order_relaxed)
1071 == BGP_READ_PACKET_MAX)
1072 bgp_rpkt_quanta_config_vty(bgp, quanta, true);
1073 else
1074 bgp_rpkt_quanta_config_vty(bgp, quanta, false);
1075
1076 return NB_OK;
1077 }
1078
1079 /*
1080 * XPath:
1081 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/enabled
1082 */
1083 int bgp_global_graceful_restart_enabled_modify(struct nb_cb_modify_args *args)
1084 {
1085 switch (args->event) {
1086 case NB_EV_VALIDATE:
1087 case NB_EV_PREPARE:
1088 case NB_EV_ABORT:
1089 case NB_EV_APPLY:
1090 /* TODO: implement me. */
1091 break;
1092 }
1093
1094 return NB_OK;
1095 }
1096
1097 int bgp_global_graceful_restart_enabled_destroy(struct nb_cb_destroy_args *args)
1098 {
1099 switch (args->event) {
1100 case NB_EV_VALIDATE:
1101 case NB_EV_PREPARE:
1102 case NB_EV_ABORT:
1103 case NB_EV_APPLY:
1104 /* TODO: implement me. */
1105 break;
1106 }
1107
1108 return NB_OK;
1109 }
1110
1111 /*
1112 * XPath:
1113 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/graceful-restart-disable
1114 */
1115 int bgp_global_graceful_restart_graceful_restart_disable_modify(
1116 struct nb_cb_modify_args *args)
1117 {
1118 switch (args->event) {
1119 case NB_EV_VALIDATE:
1120 case NB_EV_PREPARE:
1121 case NB_EV_ABORT:
1122 case NB_EV_APPLY:
1123 /* TODO: implement me. */
1124 break;
1125 }
1126
1127 return NB_OK;
1128 }
1129
1130 int bgp_global_graceful_restart_graceful_restart_disable_destroy(
1131 struct nb_cb_destroy_args *args)
1132 {
1133 switch (args->event) {
1134 case NB_EV_VALIDATE:
1135 case NB_EV_PREPARE:
1136 case NB_EV_ABORT:
1137 case NB_EV_APPLY:
1138 /* TODO: implement me. */
1139 break;
1140 }
1141
1142 return NB_OK;
1143 }
1144
1145 /*
1146 * XPath:
1147 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/preserve-fw-entry
1148 */
1149 int bgp_global_graceful_restart_preserve_fw_entry_modify(
1150 struct nb_cb_modify_args *args)
1151 {
1152 switch (args->event) {
1153 case NB_EV_VALIDATE:
1154 case NB_EV_PREPARE:
1155 case NB_EV_ABORT:
1156 case NB_EV_APPLY:
1157 /* TODO: implement me. */
1158 break;
1159 }
1160
1161 return NB_OK;
1162 }
1163
1164 /*
1165 * XPath:
1166 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/restart-time
1167 */
1168 int bgp_global_graceful_restart_restart_time_modify(
1169 struct nb_cb_modify_args *args)
1170 {
1171 switch (args->event) {
1172 case NB_EV_VALIDATE:
1173 case NB_EV_PREPARE:
1174 case NB_EV_ABORT:
1175 case NB_EV_APPLY:
1176 /* TODO: implement me. */
1177 break;
1178 }
1179
1180 return NB_OK;
1181 }
1182
1183 /*
1184 * XPath:
1185 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/stale-routes-time
1186 */
1187 int bgp_global_graceful_restart_stale_routes_time_modify(
1188 struct nb_cb_modify_args *args)
1189 {
1190 switch (args->event) {
1191 case NB_EV_VALIDATE:
1192 case NB_EV_PREPARE:
1193 case NB_EV_ABORT:
1194 case NB_EV_APPLY:
1195 /* TODO: implement me. */
1196 break;
1197 }
1198
1199 return NB_OK;
1200 }
1201
1202 /*
1203 * XPath:
1204 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/selection-deferral-time
1205 */
1206 int bgp_global_graceful_restart_selection_deferral_time_modify(
1207 struct nb_cb_modify_args *args)
1208 {
1209 switch (args->event) {
1210 case NB_EV_VALIDATE:
1211 case NB_EV_PREPARE:
1212 case NB_EV_ABORT:
1213 case NB_EV_APPLY:
1214 /* TODO: implement me. */
1215 break;
1216 }
1217
1218 return NB_OK;
1219 }
1220
1221 /*
1222 * XPath:
1223 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-restart/rib-stale-time
1224 */
1225 int bgp_global_graceful_restart_rib_stale_time_modify(
1226 struct nb_cb_modify_args *args)
1227 {
1228 switch (args->event) {
1229 case NB_EV_VALIDATE:
1230 case NB_EV_PREPARE:
1231 case NB_EV_ABORT:
1232 case NB_EV_APPLY:
1233 /* TODO: implement me. */
1234 break;
1235 }
1236
1237 return NB_OK;
1238 }
1239
1240 /*
1241 * XPath:
1242 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-update-group-config/subgroup-pkt-queue-size
1243 */
1244 int bgp_global_global_update_group_config_subgroup_pkt_queue_size_modify(
1245 struct nb_cb_modify_args *args)
1246 {
1247 if (args->event != NB_EV_APPLY)
1248 return NB_OK;
1249
1250 struct bgp *bgp;
1251 uint32_t max_size;
1252
1253 bgp = nb_running_get_entry(args->dnode, NULL, true);
1254
1255 max_size = yang_dnode_get_uint32(args->dnode, NULL);
1256
1257 bgp_default_subgroup_pkt_queue_max_set(bgp, max_size);
1258
1259 return NB_OK;
1260 }
1261
1262 /*
1263 * XPath:
1264 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-update-group-config/coalesce-time
1265 */
1266 int bgp_global_global_update_group_config_coalesce_time_modify(
1267 struct nb_cb_modify_args *args)
1268 {
1269 if (args->event != NB_EV_APPLY)
1270 return NB_OK;
1271
1272 struct bgp *bgp;
1273 uint32_t coalesce_time;
1274
1275 bgp = nb_running_get_entry(args->dnode, NULL, true);
1276
1277 coalesce_time = yang_dnode_get_uint32(args->dnode, NULL);
1278
1279 if (coalesce_time != BGP_DEFAULT_SUBGROUP_COALESCE_TIME) {
1280 bgp->heuristic_coalesce = false;
1281 bgp->coalesce_time = coalesce_time;
1282 } else {
1283 bgp->heuristic_coalesce = true;
1284 bgp->coalesce_time = BGP_DEFAULT_SUBGROUP_COALESCE_TIME;
1285 }
1286
1287 return NB_OK;
1288 }
1289
1290 /*
1291 * XPath:
1292 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/rmap-delay-time
1293 */
1294 int bgp_global_global_config_timers_rmap_delay_time_modify(
1295 struct nb_cb_modify_args *args)
1296 {
1297 switch (args->event) {
1298 case NB_EV_VALIDATE:
1299 case NB_EV_PREPARE:
1300 case NB_EV_ABORT:
1301 case NB_EV_APPLY:
1302 /* TODO: implement me. */
1303 break;
1304 }
1305
1306 return NB_OK;
1307 }
1308
1309 /*
1310 * XPath:
1311 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/update-delay-time
1312 */
1313 int bgp_global_global_config_timers_update_delay_time_modify(
1314 struct nb_cb_modify_args *args)
1315 {
1316 switch (args->event) {
1317 case NB_EV_VALIDATE:
1318 case NB_EV_PREPARE:
1319 case NB_EV_ABORT:
1320 case NB_EV_APPLY:
1321 /* TODO: implement me. */
1322 break;
1323 }
1324
1325 return NB_OK;
1326 }
1327
1328 int bgp_global_global_config_timers_update_delay_time_destroy(
1329 struct nb_cb_destroy_args *args)
1330 {
1331 switch (args->event) {
1332 case NB_EV_VALIDATE:
1333 case NB_EV_PREPARE:
1334 case NB_EV_ABORT:
1335 case NB_EV_APPLY:
1336 /* TODO: implement me. */
1337 break;
1338 }
1339
1340 return NB_OK;
1341 }
1342
1343 /*
1344 * XPath:
1345 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/establish-wait-time
1346 */
1347 int bgp_global_global_config_timers_establish_wait_time_modify(
1348 struct nb_cb_modify_args *args)
1349 {
1350 switch (args->event) {
1351 case NB_EV_VALIDATE:
1352 case NB_EV_PREPARE:
1353 case NB_EV_ABORT:
1354 case NB_EV_APPLY:
1355 /* TODO: implement me. */
1356 break;
1357 }
1358
1359 return NB_OK;
1360 }
1361
1362 int bgp_global_global_config_timers_establish_wait_time_destroy(
1363 struct nb_cb_destroy_args *args)
1364 {
1365 switch (args->event) {
1366 case NB_EV_VALIDATE:
1367 case NB_EV_PREPARE:
1368 case NB_EV_ABORT:
1369 case NB_EV_APPLY:
1370 /* TODO: implement me. */
1371 break;
1372 }
1373
1374 return NB_OK;
1375 }
1376
1377 /*
1378 * XPath:
1379 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/connect-retry-interval
1380 */
1381 int bgp_global_global_config_timers_connect_retry_interval_modify(
1382 struct nb_cb_modify_args *args)
1383 {
1384 switch (args->event) {
1385 case NB_EV_VALIDATE:
1386 case NB_EV_PREPARE:
1387 case NB_EV_ABORT:
1388 case NB_EV_APPLY:
1389 /* TODO: implement me. */
1390 break;
1391 }
1392
1393 return NB_OK;
1394 }
1395
1396 /*
1397 * XPath:
1398 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/hold-time
1399 */
1400 int bgp_global_global_config_timers_hold_time_modify(
1401 struct nb_cb_modify_args *args)
1402 {
1403 struct bgp *bgp;
1404 unsigned long keepalive = 0;
1405 unsigned long holdtime = 0;
1406
1407 switch (args->event) {
1408 case NB_EV_VALIDATE:
1409 holdtime = yang_dnode_get_uint16(args->dnode, NULL);
1410 /* Holdtime value check. */
1411 if (holdtime < 3 && holdtime != 0) {
1412 snprintf(
1413 args->errmsg, args->errmsg_len,
1414 "hold time value must be either 0 or greater than 3");
1415 return NB_ERR_VALIDATION;
1416 }
1417
1418 break;
1419 case NB_EV_PREPARE:
1420 case NB_EV_ABORT:
1421 return NB_OK;
1422 case NB_EV_APPLY:
1423 bgp = nb_running_get_entry(args->dnode, NULL, true);
1424
1425 keepalive = yang_dnode_get_uint16(args->dnode, "../keepalive");
1426 holdtime = yang_dnode_get_uint16(args->dnode, NULL);
1427
1428 bgp_timers_set(bgp, keepalive, holdtime, DFLT_BGP_CONNECT_RETRY,
1429 BGP_DEFAULT_DELAYOPEN);
1430
1431 break;
1432 }
1433
1434 return NB_OK;
1435 }
1436
1437 /*
1438 * XPath:
1439 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/global-config-timers/keepalive
1440 */
1441 int bgp_global_global_config_timers_keepalive_modify(
1442 struct nb_cb_modify_args *args)
1443 {
1444 struct bgp *bgp;
1445 unsigned long keepalive = 0;
1446 unsigned long holdtime = 0;
1447
1448 switch (args->event) {
1449 case NB_EV_VALIDATE:
1450 holdtime = yang_dnode_get_uint16(args->dnode, "../hold-time");
1451 /* Holdtime value check. */
1452 if (holdtime < 3 && holdtime != 0) {
1453 snprintf(
1454 args->errmsg, args->errmsg_len,
1455 "hold time value must be either 0 or greater than 3");
1456 return NB_ERR_VALIDATION;
1457 }
1458
1459 break;
1460 case NB_EV_PREPARE:
1461 case NB_EV_ABORT:
1462 return NB_OK;
1463 case NB_EV_APPLY:
1464 bgp = nb_running_get_entry(args->dnode, NULL, true);
1465
1466 keepalive = yang_dnode_get_uint16(args->dnode, NULL);
1467 holdtime = yang_dnode_get_uint16(args->dnode, "../hold-time");
1468
1469 bgp_timers_set(bgp, keepalive, holdtime, DFLT_BGP_CONNECT_RETRY,
1470 BGP_DEFAULT_DELAYOPEN);
1471
1472 break;
1473 }
1474
1475 return NB_OK;
1476 }
1477
1478 /*
1479 * XPath:
1480 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/instance-type-view
1481 */
1482 int bgp_global_instance_type_view_modify(struct nb_cb_modify_args *args)
1483 {
1484 switch (args->event) {
1485 case NB_EV_VALIDATE:
1486 case NB_EV_PREPARE:
1487 case NB_EV_ABORT:
1488 case NB_EV_APPLY:
1489 /* TODO: implement me. */
1490 break;
1491 }
1492
1493 return NB_OK;
1494 }
1495
1496 /*
1497 * XPath:
1498 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/ebgp-multihop-connected-route-check
1499 */
1500 int bgp_global_ebgp_multihop_connected_route_check_modify(
1501 struct nb_cb_modify_args *args)
1502 {
1503 if (args->event != NB_EV_APPLY)
1504 return NB_OK;
1505
1506 struct bgp *bgp;
1507
1508 bgp = nb_running_get_entry(args->dnode, NULL, true);
1509
1510 if (yang_dnode_get_bool(args->dnode, NULL))
1511 SET_FLAG(bgp->flags, BGP_FLAG_DISABLE_NH_CONNECTED_CHK);
1512 else
1513 UNSET_FLAG(bgp->flags, BGP_FLAG_DISABLE_NH_CONNECTED_CHK);
1514
1515 if (bgp_clear_star_soft_in(bgp->name, args->errmsg, args->errmsg_len))
1516 return NB_ERR_INCONSISTENCY;
1517
1518 return NB_OK;
1519 }
1520
1521 /*
1522 * XPath:
1523 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/fast-external-failover
1524 */
1525 int bgp_global_fast_external_failover_modify(struct nb_cb_modify_args *args)
1526 {
1527 if (args->event != NB_EV_APPLY)
1528 return NB_OK;
1529 struct bgp *bgp;
1530
1531 bgp = nb_running_get_entry(args->dnode, NULL, true);
1532 if (!yang_dnode_get_bool(args->dnode, NULL)) {
1533 SET_FLAG(bgp->flags, BGP_FLAG_NO_FAST_EXT_FAILOVER);
1534 } else
1535 UNSET_FLAG(bgp->flags, BGP_FLAG_NO_FAST_EXT_FAILOVER);
1536
1537 return NB_OK;
1538 }
1539
1540 /*
1541 * XPath:
1542 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/local-pref
1543 */
1544 int bgp_global_local_pref_modify(struct nb_cb_modify_args *args)
1545 {
1546 if (args->event != NB_EV_APPLY)
1547 return NB_OK;
1548 struct bgp *bgp;
1549 uint32_t local_pref;
1550
1551 bgp = nb_running_get_entry(args->dnode, NULL, true);
1552 local_pref = yang_dnode_get_uint32(args->dnode, NULL);
1553
1554 bgp_default_local_preference_set(bgp, local_pref);
1555
1556 if (bgp_clear_star_soft_in(bgp->name, args->errmsg, args->errmsg_len))
1557 return NB_ERR_INCONSISTENCY;
1558
1559 return NB_OK;
1560 }
1561
1562 /*
1563 * XPath:
1564 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/default-shutdown
1565 */
1566 int bgp_global_default_shutdown_modify(struct nb_cb_modify_args *args)
1567 {
1568 if (args->event != NB_EV_APPLY)
1569 return NB_OK;
1570
1571 struct bgp *bgp;
1572
1573 bgp = nb_running_get_entry(args->dnode, NULL, true);
1574 bgp->autoshutdown = yang_dnode_get_bool(args->dnode, NULL);
1575
1576 return NB_OK;
1577 }
1578
1579 /*
1580 * XPath:
1581 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/ebgp-requires-policy
1582 */
1583 int bgp_global_ebgp_requires_policy_modify(struct nb_cb_modify_args *args)
1584 {
1585 if (args->event != NB_EV_APPLY)
1586 return NB_OK;
1587
1588 struct bgp *bgp;
1589
1590 bgp = nb_running_get_entry(args->dnode, NULL, true);
1591
1592 if (yang_dnode_get_bool(args->dnode, NULL))
1593 SET_FLAG(bgp->flags, BGP_FLAG_EBGP_REQUIRES_POLICY);
1594 else
1595 UNSET_FLAG(bgp->flags, BGP_FLAG_EBGP_REQUIRES_POLICY);
1596
1597 return NB_OK;
1598 }
1599
1600 /*
1601 * XPath:
1602 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/suppress-duplicates
1603 */
1604 int bgp_global_suppress_duplicates_modify(struct nb_cb_modify_args *args)
1605 {
1606 if (args->event != NB_EV_APPLY)
1607 return NB_OK;
1608
1609 struct bgp *bgp;
1610
1611 bgp = nb_running_get_entry(args->dnode, NULL, true);
1612
1613 if (yang_dnode_get_bool(args->dnode, NULL))
1614 SET_FLAG(bgp->flags, BGP_FLAG_SUPPRESS_DUPLICATES);
1615 else
1616 UNSET_FLAG(bgp->flags, BGP_FLAG_SUPPRESS_DUPLICATES);
1617
1618 return NB_OK;
1619 }
1620
1621 /*
1622 * XPath:
1623 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/show-hostname
1624 */
1625 int bgp_global_show_hostname_modify(struct nb_cb_modify_args *args)
1626 {
1627 if (args->event != NB_EV_APPLY)
1628 return NB_OK;
1629
1630 struct bgp *bgp;
1631
1632 bgp = nb_running_get_entry(args->dnode, NULL, true);
1633
1634 if (yang_dnode_get_bool(args->dnode, NULL))
1635 SET_FLAG(bgp->flags, BGP_FLAG_SHOW_HOSTNAME);
1636 else
1637 UNSET_FLAG(bgp->flags, BGP_FLAG_SHOW_HOSTNAME);
1638
1639 return NB_OK;
1640 }
1641
1642 /*
1643 * XPath:
1644 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/show-nexthop-hostname
1645 */
1646 int bgp_global_show_nexthop_hostname_modify(struct nb_cb_modify_args *args)
1647 {
1648 if (args->event != NB_EV_APPLY)
1649 return NB_OK;
1650
1651 struct bgp *bgp;
1652
1653 bgp = nb_running_get_entry(args->dnode, NULL, true);
1654
1655 if (yang_dnode_get_bool(args->dnode, NULL))
1656 SET_FLAG(bgp->flags, BGP_FLAG_SHOW_NEXTHOP_HOSTNAME);
1657 else
1658 UNSET_FLAG(bgp->flags, BGP_FLAG_SHOW_NEXTHOP_HOSTNAME);
1659
1660 return NB_OK;
1661 }
1662
1663 /*
1664 * XPath:
1665 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/import-check
1666 */
1667 int bgp_global_import_check_modify(struct nb_cb_modify_args *args)
1668 {
1669 if (args->event != NB_EV_APPLY)
1670 return NB_OK;
1671
1672 struct bgp *bgp;
1673
1674 bgp = nb_running_get_entry(args->dnode, NULL, true);
1675
1676 if (yang_dnode_get_bool(args->dnode, NULL))
1677 SET_FLAG(bgp->flags, BGP_FLAG_IMPORT_CHECK);
1678 else
1679 UNSET_FLAG(bgp->flags, BGP_FLAG_IMPORT_CHECK);
1680
1681 bgp_static_redo_import_check(bgp);
1682
1683 return NB_OK;
1684 }
1685
1686 /*
1687 * XPath:
1688 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/graceful-shutdown/enable
1689 */
1690 int bgp_global_graceful_shutdown_enable_modify(struct nb_cb_modify_args *args)
1691 {
1692 struct bgp *bgp;
1693
1694 switch (args->event) {
1695 case NB_EV_VALIDATE:
1696 if (CHECK_FLAG(bm->flags, BM_FLAG_GRACEFUL_SHUTDOWN)) {
1697 snprintf(
1698 args->errmsg, args->errmsg_len,
1699 "%%Failed: per-vrf graceful-shutdown config not permitted with global graceful-shutdown");
1700 return NB_ERR_VALIDATION;
1701 }
1702
1703 break;
1704 case NB_EV_PREPARE:
1705 case NB_EV_ABORT:
1706 return NB_OK;
1707 case NB_EV_APPLY:
1708 bgp = nb_running_get_entry(args->dnode, NULL, true);
1709
1710 if (yang_dnode_get_bool(args->dnode, NULL))
1711 SET_FLAG(bgp->flags, BGP_FLAG_GRACEFUL_SHUTDOWN);
1712 else
1713 UNSET_FLAG(bgp->flags, BGP_FLAG_GRACEFUL_SHUTDOWN);
1714
1715 bgp_static_redo_import_check(bgp);
1716 bgp_redistribute_redo(bgp);
1717
1718 if (bgp_clear_star_soft_out(bgp->name, args->errmsg,
1719 args->errmsg_len))
1720 return NB_ERR_INCONSISTENCY;
1721
1722 if (bgp_clear_star_soft_in(bgp->name, args->errmsg,
1723 args->errmsg_len))
1724 return NB_ERR_INCONSISTENCY;
1725
1726 break;
1727 }
1728
1729 return NB_OK;
1730 }
1731
1732 /*
1733 * XPath:
1734 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list
1735 */
1736 int bgp_global_bmp_config_target_list_create(struct nb_cb_create_args *args)
1737 {
1738 switch (args->event) {
1739 case NB_EV_VALIDATE:
1740 case NB_EV_PREPARE:
1741 case NB_EV_ABORT:
1742 case NB_EV_APPLY:
1743 /* TODO: implement me. */
1744 break;
1745 }
1746
1747 return NB_OK;
1748 }
1749
1750 int bgp_global_bmp_config_target_list_destroy(struct nb_cb_destroy_args *args)
1751 {
1752 switch (args->event) {
1753 case NB_EV_VALIDATE:
1754 case NB_EV_PREPARE:
1755 case NB_EV_ABORT:
1756 case NB_EV_APPLY:
1757 /* TODO: implement me. */
1758 break;
1759 }
1760
1761 return NB_OK;
1762 }
1763
1764 /*
1765 * XPath:
1766 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/incoming-session/session-list
1767 */
1768 int bgp_global_bmp_config_target_list_incoming_session_session_list_create(
1769 struct nb_cb_create_args *args)
1770 {
1771 switch (args->event) {
1772 case NB_EV_VALIDATE:
1773 case NB_EV_PREPARE:
1774 case NB_EV_ABORT:
1775 case NB_EV_APPLY:
1776 /* TODO: implement me. */
1777 break;
1778 }
1779
1780 return NB_OK;
1781 }
1782
1783 int bgp_global_bmp_config_target_list_incoming_session_session_list_destroy(
1784 struct nb_cb_destroy_args *args)
1785 {
1786 switch (args->event) {
1787 case NB_EV_VALIDATE:
1788 case NB_EV_PREPARE:
1789 case NB_EV_ABORT:
1790 case NB_EV_APPLY:
1791 /* TODO: implement me. */
1792 break;
1793 }
1794
1795 return NB_OK;
1796 }
1797
1798 /*
1799 * XPath:
1800 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/outgoing-session/session-list
1801 */
1802 int bgp_global_bmp_config_target_list_outgoing_session_session_list_create(
1803 struct nb_cb_create_args *args)
1804 {
1805 switch (args->event) {
1806 case NB_EV_VALIDATE:
1807 case NB_EV_PREPARE:
1808 case NB_EV_ABORT:
1809 case NB_EV_APPLY:
1810 /* TODO: implement me. */
1811 break;
1812 }
1813
1814 return NB_OK;
1815 }
1816
1817 int bgp_global_bmp_config_target_list_outgoing_session_session_list_destroy(
1818 struct nb_cb_destroy_args *args)
1819 {
1820 switch (args->event) {
1821 case NB_EV_VALIDATE:
1822 case NB_EV_PREPARE:
1823 case NB_EV_ABORT:
1824 case NB_EV_APPLY:
1825 /* TODO: implement me. */
1826 break;
1827 }
1828
1829 return NB_OK;
1830 }
1831
1832 /*
1833 * XPath:
1834 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/outgoing-session/session-list/min-retry-time
1835 */
1836 int bgp_global_bmp_config_target_list_outgoing_session_session_list_min_retry_time_modify(
1837 struct nb_cb_modify_args *args)
1838 {
1839 switch (args->event) {
1840 case NB_EV_VALIDATE:
1841 case NB_EV_PREPARE:
1842 case NB_EV_ABORT:
1843 case NB_EV_APPLY:
1844 /* TODO: implement me. */
1845 break;
1846 }
1847
1848 return NB_OK;
1849 }
1850
1851 /*
1852 * XPath:
1853 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/outgoing-session/session-list/max-retry-time
1854 */
1855 int bgp_global_bmp_config_target_list_outgoing_session_session_list_max_retry_time_modify(
1856 struct nb_cb_modify_args *args)
1857 {
1858 switch (args->event) {
1859 case NB_EV_VALIDATE:
1860 case NB_EV_PREPARE:
1861 case NB_EV_ABORT:
1862 case NB_EV_APPLY:
1863 /* TODO: implement me. */
1864 break;
1865 }
1866
1867 return NB_OK;
1868 }
1869
1870 /*
1871 * XPath:
1872 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/mirror
1873 */
1874 int bgp_global_bmp_config_target_list_mirror_modify(
1875 struct nb_cb_modify_args *args)
1876 {
1877 switch (args->event) {
1878 case NB_EV_VALIDATE:
1879 case NB_EV_PREPARE:
1880 case NB_EV_ABORT:
1881 case NB_EV_APPLY:
1882 /* TODO: implement me. */
1883 break;
1884 }
1885
1886 return NB_OK;
1887 }
1888
1889 /*
1890 * XPath:
1891 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/stats-time
1892 */
1893 int bgp_global_bmp_config_target_list_stats_time_modify(
1894 struct nb_cb_modify_args *args)
1895 {
1896 switch (args->event) {
1897 case NB_EV_VALIDATE:
1898 case NB_EV_PREPARE:
1899 case NB_EV_ABORT:
1900 case NB_EV_APPLY:
1901 /* TODO: implement me. */
1902 break;
1903 }
1904
1905 return NB_OK;
1906 }
1907
1908 int bgp_global_bmp_config_target_list_stats_time_destroy(
1909 struct nb_cb_destroy_args *args)
1910 {
1911 switch (args->event) {
1912 case NB_EV_VALIDATE:
1913 case NB_EV_PREPARE:
1914 case NB_EV_ABORT:
1915 case NB_EV_APPLY:
1916 /* TODO: implement me. */
1917 break;
1918 }
1919
1920 return NB_OK;
1921 }
1922
1923 /*
1924 * XPath:
1925 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/ipv4-access-list
1926 */
1927 int bgp_global_bmp_config_target_list_ipv4_access_list_modify(
1928 struct nb_cb_modify_args *args)
1929 {
1930 switch (args->event) {
1931 case NB_EV_VALIDATE:
1932 case NB_EV_PREPARE:
1933 case NB_EV_ABORT:
1934 case NB_EV_APPLY:
1935 /* TODO: implement me. */
1936 break;
1937 }
1938
1939 return NB_OK;
1940 }
1941
1942 int bgp_global_bmp_config_target_list_ipv4_access_list_destroy(
1943 struct nb_cb_destroy_args *args)
1944 {
1945 switch (args->event) {
1946 case NB_EV_VALIDATE:
1947 case NB_EV_PREPARE:
1948 case NB_EV_ABORT:
1949 case NB_EV_APPLY:
1950 /* TODO: implement me. */
1951 break;
1952 }
1953
1954 return NB_OK;
1955 }
1956
1957 /*
1958 * XPath:
1959 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/ipv6-access-list
1960 */
1961 int bgp_global_bmp_config_target_list_ipv6_access_list_modify(
1962 struct nb_cb_modify_args *args)
1963 {
1964 switch (args->event) {
1965 case NB_EV_VALIDATE:
1966 case NB_EV_PREPARE:
1967 case NB_EV_ABORT:
1968 case NB_EV_APPLY:
1969 /* TODO: implement me. */
1970 break;
1971 }
1972
1973 return NB_OK;
1974 }
1975
1976 int bgp_global_bmp_config_target_list_ipv6_access_list_destroy(
1977 struct nb_cb_destroy_args *args)
1978 {
1979 switch (args->event) {
1980 case NB_EV_VALIDATE:
1981 case NB_EV_PREPARE:
1982 case NB_EV_ABORT:
1983 case NB_EV_APPLY:
1984 /* TODO: implement me. */
1985 break;
1986 }
1987
1988 return NB_OK;
1989 }
1990
1991 /*
1992 * XPath:
1993 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/target-list/afi-safis/afi-safi
1994 */
1995 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_create(
1996 struct nb_cb_create_args *args)
1997 {
1998 switch (args->event) {
1999 case NB_EV_VALIDATE:
2000 case NB_EV_PREPARE:
2001 case NB_EV_ABORT:
2002 case NB_EV_APPLY:
2003 /* TODO: implement me. */
2004 break;
2005 }
2006
2007 return NB_OK;
2008 }
2009
2010 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_destroy(
2011 struct nb_cb_destroy_args *args)
2012 {
2013 switch (args->event) {
2014 case NB_EV_VALIDATE:
2015 case NB_EV_PREPARE:
2016 case NB_EV_ABORT:
2017 case NB_EV_APPLY:
2018 /* TODO: implement me. */
2019 break;
2020 }
2021
2022 return NB_OK;
2023 }
2024
2025 /*
2026 * XPath:
2027 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/bmp-config/mirror-buffer-limit
2028 */
2029 int bgp_global_bmp_config_mirror_buffer_limit_modify(
2030 struct nb_cb_modify_args *args)
2031 {
2032 switch (args->event) {
2033 case NB_EV_VALIDATE:
2034 case NB_EV_PREPARE:
2035 case NB_EV_ABORT:
2036 case NB_EV_APPLY:
2037 /* TODO: implement me. */
2038 break;
2039 }
2040
2041 return NB_OK;
2042 }
2043
2044 int bgp_global_bmp_config_mirror_buffer_limit_destroy(
2045 struct nb_cb_destroy_args *args)
2046 {
2047 switch (args->event) {
2048 case NB_EV_VALIDATE:
2049 case NB_EV_PREPARE:
2050 case NB_EV_ABORT:
2051 case NB_EV_APPLY:
2052 /* TODO: implement me. */
2053 break;
2054 }
2055
2056 return NB_OK;
2057 }
2058
2059 /*
2060 * XPath:
2061 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi
2062 */
2063 int bgp_global_afi_safis_afi_safi_create(struct nb_cb_create_args *args)
2064 {
2065 const struct lyd_node *vrf_dnode;
2066 const char *vrf_name;
2067 const char *af_name;
2068 afi_t afi;
2069 safi_t safi;
2070
2071 switch (args->event) {
2072 case NB_EV_VALIDATE:
2073 vrf_dnode = yang_dnode_get_parent(args->dnode,
2074 "control-plane-protocol");
2075 vrf_name = yang_dnode_get_string(vrf_dnode, "./vrf");
2076 af_name = yang_dnode_get_string(args->dnode, "./afi-safi-name");
2077 yang_afi_safi_identity2value(af_name, &afi, &safi);
2078
2079 if ((!strmatch(vrf_name, VRF_DEFAULT_NAME))
2080 && safi != SAFI_UNICAST && safi != SAFI_MULTICAST
2081 && safi != SAFI_EVPN) {
2082 snprintf(
2083 args->errmsg, args->errmsg_len,
2084 "Only Unicast/Multicast/EVPN SAFIs supported in non-core instances.");
2085 return NB_ERR_VALIDATION;
2086 }
2087
2088 break;
2089 case NB_EV_PREPARE:
2090 case NB_EV_ABORT:
2091 case NB_EV_APPLY:
2092 /* TODO: implement me. */
2093 break;
2094 }
2095
2096 return NB_OK;
2097 }
2098
2099 int bgp_global_afi_safis_afi_safi_destroy(struct nb_cb_destroy_args *args)
2100 {
2101 switch (args->event) {
2102 case NB_EV_VALIDATE:
2103 case NB_EV_PREPARE:
2104 case NB_EV_ABORT:
2105 case NB_EV_APPLY:
2106 /* TODO: implement me. */
2107 break;
2108 }
2109
2110 return NB_OK;
2111 }
2112
2113 static struct peer *bgp_neighbor_peer_lookup(struct bgp *bgp,
2114 const char *peer_str, char *errmsg,
2115 size_t errmsg_len)
2116 {
2117 struct peer *peer = NULL;
2118 union sockunion su;
2119
2120 str2sockunion(peer_str, &su);
2121 peer = peer_lookup(bgp, &su);
2122 if (!peer) {
2123 snprintf(errmsg, errmsg_len,
2124 "Specify remote-as or peer-group commands first");
2125 return NULL;
2126 }
2127 if (peer_dynamic_neighbor(peer)) {
2128 snprintf(errmsg, errmsg_len,
2129 "Operation not allowed on a dynamic neighbor\n");
2130 return NULL;
2131 }
2132 return peer;
2133 }
2134
2135 /*
2136 * XPath:
2137 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor
2138 */
2139 int bgp_neighbors_neighbor_create(struct nb_cb_create_args *args)
2140 {
2141 struct bgp *bgp;
2142 const char *peer_str;
2143 union sockunion su;
2144
2145 switch (args->event) {
2146 case NB_EV_VALIDATE:
2147
2148 peer_str =
2149 yang_dnode_get_string(args->dnode, "./remote-address");
2150
2151 bgp = nb_running_get_entry(args->dnode, NULL, false);
2152 if (!bgp)
2153 return NB_OK;
2154
2155 str2sockunion(peer_str, &su);
2156 if (peer_address_self_check(bgp, &su)) {
2157 snprintf(
2158 args->errmsg, args->errmsg_len,
2159 "Can not configure the local system as neighbor");
2160 return NB_ERR_VALIDATION;
2161 }
2162
2163 break;
2164 case NB_EV_PREPARE:
2165 case NB_EV_ABORT:
2166 return NB_OK;
2167 case NB_EV_APPLY:
2168 /* Once bgp instance available check self peer addr */
2169 bgp = nb_running_get_entry(args->dnode, NULL, true);
2170
2171 peer_str =
2172 yang_dnode_get_string(args->dnode, "./remote-address");
2173 str2sockunion(peer_str, &su);
2174 if (peer_address_self_check(bgp, &su)) {
2175 snprintf(
2176 args->errmsg, args->errmsg_len,
2177 "Can not configure the local system as neighbor");
2178 return NB_ERR_INCONSISTENCY;
2179 }
2180 break;
2181 }
2182
2183 return NB_OK;
2184 }
2185
2186 int bgp_neighbors_neighbor_destroy(struct nb_cb_destroy_args *args)
2187 {
2188
2189 struct bgp *bgp;
2190 const char *peer_str;
2191 union sockunion su;
2192 struct peer *peer = NULL;
2193 struct peer *other;
2194
2195 switch (args->event) {
2196 case NB_EV_VALIDATE:
2197 bgp = nb_running_get_entry(args->dnode, NULL, false);
2198 if (!bgp)
2199 return NB_OK;
2200 peer_str =
2201 yang_dnode_get_string(args->dnode, "./remote-address");
2202 str2sockunion(peer_str, &su);
2203
2204 peer = peer_lookup(bgp, &su);
2205 if (peer) {
2206 if (peer_dynamic_neighbor(peer)) {
2207 snprintf(
2208 args->errmsg, args->errmsg_len,
2209 "Operation not allowed on a dynamic neighbor");
2210 return NB_ERR_VALIDATION;
2211 }
2212 }
2213 break;
2214 case NB_EV_PREPARE:
2215 case NB_EV_ABORT:
2216 return NB_OK;
2217 case NB_EV_APPLY:
2218
2219 bgp = nb_running_get_entry(args->dnode, NULL, true);
2220
2221 peer_str =
2222 yang_dnode_get_string(args->dnode, "./remote-address");
2223 str2sockunion(peer_str, &su);
2224
2225 peer = peer_lookup(bgp, &su);
2226 if (peer) {
2227 if (peer_dynamic_neighbor(peer)) {
2228 snprintf(
2229 args->errmsg, args->errmsg_len,
2230 "Operation not allowed on a dynamic neighbor");
2231 return NB_ERR_INCONSISTENCY;
2232 }
2233
2234 other = peer->doppelganger;
2235
2236 if (CHECK_FLAG(peer->flags, PEER_FLAG_CAPABILITY_ENHE))
2237 bgp_zebra_terminate_radv(peer->bgp, peer);
2238
2239 peer_notify_unconfig(peer);
2240 peer_delete(peer);
2241 if (other && other->status != Deleted) {
2242 peer_notify_unconfig(other);
2243 peer_delete(other);
2244 }
2245 }
2246
2247 break;
2248 }
2249
2250 return NB_OK;
2251 }
2252
2253 /*
2254 * XPath:
2255 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-interface
2256 */
2257 int bgp_neighbors_neighbor_local_interface_modify(
2258 struct nb_cb_modify_args *args)
2259 {
2260 struct bgp *bgp;
2261 const char *peer_str;
2262 const char *intf_str;
2263 struct peer *peer;
2264
2265 switch (args->event) {
2266 case NB_EV_VALIDATE:
2267 case NB_EV_PREPARE:
2268 case NB_EV_ABORT:
2269 return NB_OK;
2270 case NB_EV_APPLY:
2271 bgp = nb_running_get_entry(args->dnode, NULL, true);
2272 peer_str =
2273 yang_dnode_get_string(args->dnode, "../remote-address");
2274 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2275 args->errmsg_len);
2276 if (!peer) {
2277 snprintf(args->errmsg, args->errmsg_len,
2278 "BGP invalid peer %s", peer_str);
2279 return NB_ERR_INCONSISTENCY;
2280 }
2281
2282 if (peer->conf_if) {
2283 snprintf(args->errmsg, args->errmsg_len,
2284 "BGP invalid peer %s", peer_str);
2285 return NB_ERR_INCONSISTENCY;
2286 }
2287
2288 intf_str = yang_dnode_get_string(args->dnode, NULL);
2289
2290 peer_interface_set(peer, intf_str);
2291
2292 break;
2293 }
2294
2295 return NB_OK;
2296 }
2297
2298 int bgp_neighbors_neighbor_local_interface_destroy(
2299 struct nb_cb_destroy_args *args)
2300 {
2301 struct bgp *bgp;
2302 const char *peer_str;
2303 struct peer *peer;
2304
2305 switch (args->event) {
2306 case NB_EV_VALIDATE:
2307 case NB_EV_PREPARE:
2308 case NB_EV_ABORT:
2309 return NB_OK;
2310 case NB_EV_APPLY:
2311 bgp = nb_running_get_entry(args->dnode, NULL, true);
2312 peer_str =
2313 yang_dnode_get_string(args->dnode, "../remote-address");
2314 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2315 args->errmsg_len);
2316 if (!peer) {
2317 snprintf(args->errmsg, args->errmsg_len,
2318 "BGP invalid peer %s", peer_str);
2319 return NB_ERR_INCONSISTENCY;
2320 }
2321
2322 if (peer->conf_if) {
2323 snprintf(args->errmsg, args->errmsg_len,
2324 "BGP invalid peer %s", peer_str);
2325 return NB_ERR_INCONSISTENCY;
2326 }
2327
2328 peer_interface_unset(peer);
2329
2330 break;
2331 }
2332
2333 return NB_OK;
2334 }
2335
2336 /*
2337 * XPath:
2338 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-port
2339 */
2340 int bgp_neighbors_neighbor_local_port_modify(struct nb_cb_modify_args *args)
2341 {
2342 struct bgp *bgp;
2343 const char *peer_str;
2344 struct peer *peer;
2345 uint16_t port;
2346
2347 switch (args->event) {
2348 case NB_EV_VALIDATE:
2349 case NB_EV_PREPARE:
2350 case NB_EV_ABORT:
2351 return NB_OK;
2352 case NB_EV_APPLY:
2353 bgp = nb_running_get_entry(args->dnode, NULL, true);
2354 peer_str =
2355 yang_dnode_get_string(args->dnode, "../remote-address");
2356 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2357 args->errmsg_len);
2358 if (!peer) {
2359 snprintf(args->errmsg, args->errmsg_len,
2360 "BGP invalid peer %s", peer_str);
2361 return NB_ERR_INCONSISTENCY;
2362 }
2363
2364 port = yang_dnode_get_uint16(args->dnode, NULL);
2365 peer_port_set(peer, port);
2366
2367 break;
2368 }
2369
2370 return NB_OK;
2371 }
2372
2373 int bgp_neighbors_neighbor_local_port_destroy(struct nb_cb_destroy_args *args)
2374 {
2375 struct bgp *bgp;
2376 const char *peer_str;
2377 struct peer *peer;
2378 uint16_t port;
2379 struct servent *sp;
2380
2381 switch (args->event) {
2382 case NB_EV_VALIDATE:
2383 case NB_EV_PREPARE:
2384 case NB_EV_ABORT:
2385 return NB_OK;
2386 case NB_EV_APPLY:
2387 bgp = nb_running_get_entry(args->dnode, NULL, true);
2388 peer_str =
2389 yang_dnode_get_string(args->dnode, "../remote-address");
2390 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2391 args->errmsg_len);
2392 if (!peer) {
2393 snprintf(args->errmsg, args->errmsg_len,
2394 "BGP invalid peer %s", peer_str);
2395 return NB_ERR_INCONSISTENCY;
2396 }
2397
2398 sp = getservbyname("bgp", "tcp");
2399 port = (sp == NULL) ? BGP_PORT_DEFAULT : ntohs(sp->s_port);
2400 peer_port_set(peer, port);
2401
2402 break;
2403 }
2404
2405 return NB_OK;
2406 }
2407
2408 /*
2409 * XPath:
2410 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/peer-group
2411 */
2412 int bgp_neighbors_neighbor_peer_group_modify(struct nb_cb_modify_args *args)
2413 {
2414 struct bgp *bgp;
2415 const char *peer_str;
2416 const char *peer_grp_str;
2417 struct peer *peer;
2418 struct peer_group *group;
2419 union sockunion su;
2420 as_t as;
2421 int ret = 0;
2422 char prgrp_xpath[XPATH_MAXLEN];
2423 const struct lyd_node *bgp_dnode;
2424
2425 switch (args->event) {
2426 case NB_EV_VALIDATE:
2427 peer_grp_str = yang_dnode_get_string(args->dnode, NULL);
2428 bgp_dnode = yang_dnode_get_parent(args->dnode, "bgp");
2429 snprintf(prgrp_xpath, sizeof(prgrp_xpath),
2430 FRR_BGP_PEER_GROUP_XPATH, peer_grp_str, "");
2431
2432 if (!yang_dnode_exists(bgp_dnode, prgrp_xpath)) {
2433 snprintf(args->errmsg, args->errmsg_len,
2434 "Configure the peer-group first %s",
2435 peer_grp_str);
2436 return NB_ERR_VALIDATION;
2437 }
2438
2439 break;
2440 case NB_EV_PREPARE:
2441 case NB_EV_ABORT:
2442 return NB_OK;
2443 case NB_EV_APPLY:
2444 bgp = nb_running_get_entry(args->dnode, NULL, true);
2445 peer_str =
2446 yang_dnode_get_string(args->dnode, "../remote-address");
2447 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2448 args->errmsg_len);
2449
2450 str2sockunion(peer_str, &su);
2451
2452 peer_grp_str = yang_dnode_get_string(args->dnode, NULL);
2453 group = peer_group_lookup(bgp, peer_grp_str);
2454 if (!group) {
2455 snprintf(args->errmsg, args->errmsg_len,
2456 "Configure the peer-group first %s",
2457 peer_grp_str);
2458 return NB_ERR_INCONSISTENCY;
2459 }
2460
2461 ret = peer_group_bind(bgp, &su, peer, group, &as);
2462
2463 if (ret == BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT) {
2464 snprintf(
2465 args->errmsg, args->errmsg_len,
2466 "Peer with AS %u cannot be in this peer-group, members must be all internal or all external\n",
2467 as);
2468 return NB_ERR_INCONSISTENCY;
2469 }
2470
2471 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
2472 < 0)
2473 return NB_ERR_INCONSISTENCY;
2474
2475 break;
2476 }
2477
2478 return NB_OK;
2479 }
2480
2481 int bgp_neighbors_neighbor_peer_group_destroy(struct nb_cb_destroy_args *args)
2482 {
2483 struct bgp *bgp;
2484 const char *peer_str;
2485 struct peer *peer;
2486 int ret;
2487
2488 switch (args->event) {
2489 case NB_EV_VALIDATE:
2490 case NB_EV_PREPARE:
2491 case NB_EV_ABORT:
2492 return NB_OK;
2493 case NB_EV_APPLY:
2494 bgp = nb_running_get_entry(args->dnode, NULL, true);
2495 peer_str =
2496 yang_dnode_get_string(args->dnode, "../remote-address");
2497 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2498 args->errmsg_len);
2499
2500 if (CHECK_FLAG(peer->flags, PEER_FLAG_CAPABILITY_ENHE))
2501 bgp_zebra_terminate_radv(peer->bgp, peer);
2502
2503 peer_notify_unconfig(peer);
2504 ret = peer_delete(peer);
2505
2506 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
2507 < 0)
2508 return NB_ERR_INCONSISTENCY;
2509
2510 break;
2511 }
2512
2513 return NB_OK;
2514 }
2515
2516 /*
2517 * XPath:
2518 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/password
2519 */
2520 int bgp_neighbors_neighbor_password_modify(struct nb_cb_modify_args *args)
2521 {
2522 struct bgp *bgp;
2523 const char *peer_str;
2524 const char *passwrd_str;
2525 struct peer *peer;
2526
2527 switch (args->event) {
2528 case NB_EV_VALIDATE:
2529 case NB_EV_PREPARE:
2530 case NB_EV_ABORT:
2531 return NB_OK;
2532 case NB_EV_APPLY:
2533 bgp = nb_running_get_entry(args->dnode, NULL, true);
2534 peer_str =
2535 yang_dnode_get_string(args->dnode, "../remote-address");
2536 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2537 args->errmsg_len);
2538 if (!peer)
2539 return NB_ERR_INCONSISTENCY;
2540
2541 passwrd_str = yang_dnode_get_string(args->dnode, NULL);
2542
2543 peer_password_set(peer, passwrd_str);
2544
2545 break;
2546 }
2547
2548 return NB_OK;
2549 }
2550
2551 int bgp_neighbors_neighbor_password_destroy(struct nb_cb_destroy_args *args)
2552 {
2553 struct bgp *bgp;
2554 const char *peer_str;
2555 struct peer *peer;
2556
2557 switch (args->event) {
2558 case NB_EV_VALIDATE:
2559 case NB_EV_PREPARE:
2560 case NB_EV_ABORT:
2561 return NB_OK;
2562 case NB_EV_APPLY:
2563 bgp = nb_running_get_entry(args->dnode, NULL, true);
2564 peer_str =
2565 yang_dnode_get_string(args->dnode, "../remote-address");
2566 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2567 args->errmsg_len);
2568 if (!peer)
2569 return NB_ERR_INCONSISTENCY;
2570
2571 peer_password_unset(peer);
2572
2573 break;
2574 }
2575
2576 return NB_OK;
2577 }
2578
2579 /*
2580 * XPath:
2581 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/ttl-security
2582 */
2583 int bgp_neighbors_neighbor_ttl_security_modify(struct nb_cb_modify_args *args)
2584 {
2585 struct bgp *bgp;
2586 const char *peer_str;
2587 struct peer *peer;
2588 int ret;
2589 uint8_t gtsm_hops;
2590
2591 switch (args->event) {
2592 case NB_EV_VALIDATE:
2593 case NB_EV_PREPARE:
2594 case NB_EV_ABORT:
2595 return NB_OK;
2596 case NB_EV_APPLY:
2597 bgp = nb_running_get_entry(args->dnode, NULL, true);
2598 peer_str =
2599 yang_dnode_get_string(args->dnode, "../remote-address");
2600 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2601 args->errmsg_len);
2602 if (!peer)
2603 return NB_ERR_INCONSISTENCY;
2604
2605 gtsm_hops = yang_dnode_get_uint8(args->dnode, NULL);
2606 /*
2607 * If 'neighbor swpX', then this is for directly connected
2608 * peers, we should not accept a ttl-security hops value greater
2609 * than 1.
2610 */
2611 if (peer->conf_if && (gtsm_hops > BGP_GTSM_HOPS_CONNECTED)) {
2612 snprintf(
2613 args->errmsg, args->errmsg_len,
2614 "%d is directly connected peer, hops cannot exceed 1\n",
2615 gtsm_hops);
2616 return NB_ERR_INCONSISTENCY;
2617 }
2618
2619 ret = peer_ttl_security_hops_set(peer, gtsm_hops);
2620 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret))
2621 return NB_ERR_INCONSISTENCY;
2622
2623 break;
2624 }
2625
2626 return NB_OK;
2627 }
2628
2629 int bgp_neighbors_neighbor_ttl_security_destroy(struct nb_cb_destroy_args *args)
2630 {
2631 struct bgp *bgp;
2632 const char *peer_str;
2633 struct peer *peer;
2634 int ret;
2635
2636 switch (args->event) {
2637 case NB_EV_VALIDATE:
2638 case NB_EV_PREPARE:
2639 case NB_EV_ABORT:
2640 return NB_OK;
2641 case NB_EV_APPLY:
2642 bgp = nb_running_get_entry(args->dnode, NULL, true);
2643 peer_str =
2644 yang_dnode_get_string(args->dnode, "../remote-address");
2645 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2646 args->errmsg_len);
2647 if (!peer)
2648 return NB_ERR_INCONSISTENCY;
2649
2650 ret = peer_ttl_security_hops_unset(peer);
2651 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
2652 < 0)
2653 return NB_ERR_INCONSISTENCY;
2654
2655
2656 break;
2657 }
2658
2659 return NB_OK;
2660 }
2661
2662 /*
2663 * XPath:
2664 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/solo
2665 */
2666 int bgp_neighbors_neighbor_solo_modify(struct nb_cb_modify_args *args)
2667 {
2668 switch (args->event) {
2669 case NB_EV_VALIDATE:
2670 case NB_EV_PREPARE:
2671 case NB_EV_ABORT:
2672 case NB_EV_APPLY:
2673 /* TODO: implement me. */
2674 break;
2675 }
2676
2677 return NB_OK;
2678 }
2679
2680 /*
2681 * XPath:
2682 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/enforce-first-as
2683 */
2684 int bgp_neighbors_neighbor_enforce_first_as_modify(
2685 struct nb_cb_modify_args *args)
2686 {
2687 struct bgp *bgp;
2688 const char *peer_str;
2689 struct peer *peer;
2690 bool enable = false;
2691
2692 switch (args->event) {
2693 case NB_EV_VALIDATE:
2694 case NB_EV_PREPARE:
2695 case NB_EV_ABORT:
2696 return NB_OK;
2697 case NB_EV_APPLY:
2698 bgp = nb_running_get_entry(args->dnode, NULL, true);
2699 peer_str =
2700 yang_dnode_get_string(args->dnode, "../remote-address");
2701 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2702 args->errmsg_len);
2703
2704 enable = yang_dnode_get_bool(args->dnode, NULL);
2705
2706 peer_flag_modify_nb(bgp, peer_str, peer,
2707 PEER_FLAG_ENFORCE_FIRST_AS, enable,
2708 args->errmsg, args->errmsg_len);
2709 break;
2710 }
2711
2712 return NB_OK;
2713 }
2714
2715 /*
2716 * XPath:
2717 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/description
2718 */
2719 int bgp_neighbors_neighbor_description_modify(struct nb_cb_modify_args *args)
2720 {
2721 struct bgp *bgp;
2722 const char *peer_str;
2723 const char *desc_str;
2724 struct peer *peer;
2725
2726 switch (args->event) {
2727 case NB_EV_VALIDATE:
2728 case NB_EV_PREPARE:
2729 case NB_EV_ABORT:
2730 return NB_OK;
2731 case NB_EV_APPLY:
2732 bgp = nb_running_get_entry(args->dnode, NULL, true);
2733 peer_str =
2734 yang_dnode_get_string(args->dnode, "../remote-address");
2735
2736 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2737 args->errmsg_len);
2738 if (!peer)
2739 return NB_ERR_INCONSISTENCY;
2740
2741 desc_str = yang_dnode_get_string(args->dnode, NULL);
2742
2743 peer_description_set(peer, desc_str);
2744
2745 break;
2746 }
2747
2748 return NB_OK;
2749 }
2750
2751 int bgp_neighbors_neighbor_description_destroy(struct nb_cb_destroy_args *args)
2752 {
2753 struct bgp *bgp;
2754 const char *peer_str;
2755 struct peer *peer;
2756
2757 switch (args->event) {
2758 case NB_EV_VALIDATE:
2759 case NB_EV_PREPARE:
2760 case NB_EV_ABORT:
2761 return NB_OK;
2762 case NB_EV_APPLY:
2763 bgp = nb_running_get_entry(args->dnode, NULL, true);
2764 peer_str =
2765 yang_dnode_get_string(args->dnode, "../remote-address");
2766 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2767 args->errmsg_len);
2768 if (!peer)
2769 return NB_ERR_INCONSISTENCY;
2770
2771 peer_description_unset(peer);
2772
2773 break;
2774 }
2775
2776 return NB_OK;
2777 }
2778
2779 /*
2780 * XPath:
2781 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/passive-mode
2782 */
2783 int bgp_neighbors_neighbor_passive_mode_modify(struct nb_cb_modify_args *args)
2784 {
2785 struct bgp *bgp;
2786 const char *peer_str;
2787 struct peer *peer;
2788 bool set = false;
2789
2790 switch (args->event) {
2791 case NB_EV_VALIDATE:
2792 case NB_EV_PREPARE:
2793 case NB_EV_ABORT:
2794 return NB_OK;
2795 case NB_EV_APPLY:
2796 bgp = nb_running_get_entry(args->dnode, NULL, true);
2797 peer_str =
2798 yang_dnode_get_string(args->dnode, "../remote-address");
2799 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2800 args->errmsg_len);
2801 if (!peer)
2802 return NB_ERR_INCONSISTENCY;
2803
2804 set = yang_dnode_get_bool(args->dnode, NULL);
2805
2806 if (peer_flag_modify_nb(bgp, peer_str, peer, PEER_FLAG_PASSIVE,
2807 set, args->errmsg, args->errmsg_len)
2808 < 0)
2809 return NB_ERR_INCONSISTENCY;
2810
2811 break;
2812 }
2813
2814 return NB_OK;
2815 }
2816
2817 /*
2818 * XPath:
2819 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/capability-options/dynamic-capability
2820 */
2821 int bgp_neighbors_neighbor_capability_options_dynamic_capability_modify(
2822 struct nb_cb_modify_args *args)
2823 {
2824 struct bgp *bgp;
2825 const char *peer_str;
2826 struct peer *peer;
2827 bool enable = false;
2828
2829 switch (args->event) {
2830 case NB_EV_VALIDATE:
2831 case NB_EV_PREPARE:
2832 case NB_EV_ABORT:
2833 return NB_OK;
2834 case NB_EV_APPLY:
2835 bgp = nb_running_get_entry(args->dnode, NULL, true);
2836 peer_str = yang_dnode_get_string(args->dnode,
2837 "../../remote-address");
2838 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2839 args->errmsg_len);
2840
2841 enable = yang_dnode_get_bool(args->dnode, NULL);
2842
2843 peer_flag_modify_nb(bgp, peer_str, peer,
2844 PEER_FLAG_DYNAMIC_CAPABILITY, enable,
2845 args->errmsg, args->errmsg_len);
2846
2847 break;
2848 }
2849
2850 return NB_OK;
2851 }
2852
2853 /*
2854 * XPath:
2855 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/capability-options/strict-capability
2856 */
2857 int bgp_neighbors_neighbor_capability_options_strict_capability_modify(
2858 struct nb_cb_modify_args *args)
2859 {
2860 struct bgp *bgp;
2861 const char *peer_str;
2862 struct peer *peer;
2863 bool enable = false;
2864
2865 switch (args->event) {
2866 case NB_EV_VALIDATE:
2867 case NB_EV_PREPARE:
2868 case NB_EV_ABORT:
2869 return NB_OK;
2870 case NB_EV_APPLY:
2871 bgp = nb_running_get_entry(args->dnode, NULL, true);
2872 peer_str = yang_dnode_get_string(args->dnode,
2873 "../../remote-address");
2874 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2875 args->errmsg_len);
2876
2877 enable = yang_dnode_get_bool(args->dnode, NULL);
2878
2879 peer_flag_modify_nb(bgp, peer_str, peer,
2880 PEER_FLAG_STRICT_CAP_MATCH, enable,
2881 args->errmsg, args->errmsg_len);
2882
2883 break;
2884 }
2885
2886 return NB_OK;
2887 }
2888
2889 /*
2890 * XPath:
2891 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/capability-options/extended-nexthop-capability
2892 */
2893 int bgp_neighbors_neighbor_capability_options_extended_nexthop_capability_modify(
2894 struct nb_cb_modify_args *args)
2895 {
2896 struct bgp *bgp;
2897 const char *peer_str;
2898 struct peer *peer;
2899 bool enable = false;
2900
2901 switch (args->event) {
2902 case NB_EV_VALIDATE:
2903 case NB_EV_PREPARE:
2904 case NB_EV_ABORT:
2905 return NB_OK;
2906 case NB_EV_APPLY:
2907 bgp = nb_running_get_entry(args->dnode, NULL, true);
2908 peer_str = yang_dnode_get_string(args->dnode,
2909 "../../remote-address");
2910 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2911 args->errmsg_len);
2912
2913 enable = yang_dnode_get_bool(args->dnode, NULL);
2914
2915 peer_flag_modify_nb(bgp, peer_str, peer,
2916 PEER_FLAG_CAPABILITY_ENHE, enable,
2917 args->errmsg, args->errmsg_len);
2918
2919 break;
2920 }
2921
2922 return NB_OK;
2923 }
2924
2925 /*
2926 * XPath:
2927 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/capability-options/capability-negotiate
2928 */
2929 int bgp_neighbors_neighbor_capability_options_capability_negotiate_modify(
2930 struct nb_cb_modify_args *args)
2931 {
2932 switch (args->event) {
2933 case NB_EV_VALIDATE:
2934 case NB_EV_PREPARE:
2935 case NB_EV_ABORT:
2936 case NB_EV_APPLY:
2937 /* TODO: implement me. */
2938 break;
2939 }
2940
2941 return NB_OK;
2942 }
2943
2944 /*
2945 * XPath:
2946 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/capability-options/override-capability
2947 */
2948 int bgp_neighbors_neighbor_capability_options_override_capability_modify(
2949 struct nb_cb_modify_args *args)
2950 {
2951 struct bgp *bgp;
2952 const char *peer_str;
2953 struct peer *peer;
2954 bool enable = false;
2955
2956 switch (args->event) {
2957 case NB_EV_VALIDATE:
2958 case NB_EV_PREPARE:
2959 case NB_EV_ABORT:
2960 return NB_OK;
2961 case NB_EV_APPLY:
2962 bgp = nb_running_get_entry(args->dnode, NULL, true);
2963 peer_str = yang_dnode_get_string(args->dnode,
2964 "../../remote-address");
2965 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
2966 args->errmsg_len);
2967
2968 enable = yang_dnode_get_bool(args->dnode, NULL);
2969
2970 peer_flag_modify_nb(bgp, peer_str, peer,
2971 PEER_FLAG_OVERRIDE_CAPABILITY, enable,
2972 args->errmsg, args->errmsg_len);
2973
2974 break;
2975 }
2976
2977 return NB_OK;
2978 }
2979
2980 /*
2981 * XPath:
2982 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/update-source/ip
2983 */
2984 int bgp_neighbors_neighbor_update_source_ip_modify(
2985 struct nb_cb_modify_args *args)
2986 {
2987 struct bgp *bgp;
2988 const char *peer_str, *source_str;
2989 struct peer *peer;
2990 union sockunion su;
2991
2992 switch (args->event) {
2993 case NB_EV_VALIDATE:
2994 case NB_EV_PREPARE:
2995 case NB_EV_ABORT:
2996 return NB_OK;
2997 case NB_EV_APPLY:
2998 bgp = nb_running_get_entry(args->dnode, NULL, true);
2999 peer_str = yang_dnode_get_string(args->dnode,
3000 "../../remote-address");
3001 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3002 args->errmsg_len);
3003 if (!peer)
3004 return NB_ERR_INCONSISTENCY;
3005
3006 source_str = yang_dnode_get_string(args->dnode, NULL);
3007
3008 str2sockunion(source_str, &su);
3009 peer_update_source_addr_set(peer, &su);
3010
3011 break;
3012 }
3013
3014 return NB_OK;
3015 }
3016
3017 int bgp_neighbors_neighbor_update_source_ip_destroy(
3018 struct nb_cb_destroy_args *args)
3019 {
3020 struct bgp *bgp;
3021 const char *peer_str;
3022 struct peer *peer;
3023
3024 switch (args->event) {
3025 case NB_EV_VALIDATE:
3026 case NB_EV_PREPARE:
3027 case NB_EV_ABORT:
3028 return NB_OK;
3029 case NB_EV_APPLY:
3030 bgp = nb_running_get_entry(args->dnode, NULL, true);
3031 peer_str = yang_dnode_get_string(args->dnode,
3032 "../../remote-address");
3033 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3034 args->errmsg_len);
3035 if (!peer)
3036 return NB_ERR_INCONSISTENCY;
3037
3038 peer_update_source_unset(peer);
3039
3040 break;
3041 }
3042
3043 return NB_OK;
3044 }
3045
3046 /*
3047 * XPath:
3048 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/update-source/interface
3049 */
3050 int bgp_neighbors_neighbor_update_source_interface_modify(
3051 struct nb_cb_modify_args *args)
3052 {
3053 struct bgp *bgp;
3054 const char *peer_str, *source_str;
3055 struct peer *peer;
3056 struct prefix p;
3057
3058 switch (args->event) {
3059 case NB_EV_VALIDATE:
3060 source_str = yang_dnode_get_string(args->dnode, NULL);
3061 if (str2prefix(source_str, &p)) {
3062 snprintf(args->errmsg, args->errmsg_len,
3063 "Invalid update-source, remove prefix length");
3064 return NB_ERR_VALIDATION;
3065 }
3066 break;
3067 case NB_EV_PREPARE:
3068 case NB_EV_ABORT:
3069 return NB_OK;
3070 case NB_EV_APPLY:
3071 bgp = nb_running_get_entry(args->dnode, NULL, true);
3072 peer_str = yang_dnode_get_string(args->dnode,
3073 "../../remote-address");
3074 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3075 args->errmsg_len);
3076 if (!peer)
3077 return NB_ERR_INCONSISTENCY;
3078
3079 source_str = yang_dnode_get_string(args->dnode, NULL);
3080
3081 peer_update_source_if_set(peer, source_str);
3082
3083 break;
3084 }
3085
3086 return NB_OK;
3087 }
3088
3089 int bgp_neighbors_neighbor_update_source_interface_destroy(
3090 struct nb_cb_destroy_args *args)
3091 {
3092 struct bgp *bgp;
3093 const char *peer_str;
3094 struct peer *peer;
3095
3096 switch (args->event) {
3097 case NB_EV_VALIDATE:
3098 case NB_EV_PREPARE:
3099 case NB_EV_ABORT:
3100 return NB_OK;
3101 case NB_EV_APPLY:
3102 bgp = nb_running_get_entry(args->dnode, NULL, true);
3103 peer_str = yang_dnode_get_string(args->dnode,
3104 "../../remote-address");
3105 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
3106 args->errmsg_len);
3107 if (!peer)
3108 return NB_ERR_INCONSISTENCY;
3109
3110 peer_update_source_unset(peer);
3111
3112 break;
3113 }
3114
3115 return NB_OK;
3116 }
3117
3118 /*
3119 * XPath:
3120 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/neighbor-remote-as/remote-as-type
3121 */
3122 int bgp_neighbors_neighbor_neighbor_remote_as_remote_as_type_modify(
3123 struct nb_cb_modify_args *args)
3124 {
3125 struct bgp *bgp;
3126 const char *peer_str;
3127 int as_type = AS_SPECIFIED;
3128 union sockunion su;
3129 int ret;
3130 as_t as = 0;
3131
3132 switch (args->event) {
3133 case NB_EV_VALIDATE:
3134 case NB_EV_PREPARE:
3135 case NB_EV_ABORT:
3136 return NB_OK;
3137 case NB_EV_APPLY:
3138 bgp = nb_running_get_entry(args->dnode, NULL, true);
3139
3140 peer_str = yang_dnode_get_string(args->dnode,
3141 "../../remote-address");
3142 as_type = yang_dnode_get_enum(args->dnode, "../remote-as-type");
3143 /* When remote-as-type is as-specified, the peer will be
3144 * created in remote_as_modify callback */
3145 if (yang_dnode_exists(args->dnode, "../remote-as"))
3146 return NB_OK;
3147
3148 str2sockunion(peer_str, &su);
3149 ret = peer_remote_as(bgp, &su, NULL, &as, as_type);
3150 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
3151 < 0)
3152 return NB_ERR_INCONSISTENCY;
3153
3154
3155 break;
3156 }
3157
3158 return NB_OK;
3159 }
3160
3161 int bgp_neighbors_neighbor_neighbor_remote_as_remote_as_type_destroy(
3162 struct nb_cb_destroy_args *args)
3163 {
3164 switch (args->event) {
3165 case NB_EV_VALIDATE:
3166 case NB_EV_PREPARE:
3167 case NB_EV_ABORT:
3168 case NB_EV_APPLY:
3169 /* TODO: implement me. */
3170 break;
3171 }
3172
3173 return NB_OK;
3174 }
3175
3176 /*
3177 * XPath:
3178 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/neighbor-remote-as/remote-as
3179 */
3180 int bgp_neighbors_neighbor_neighbor_remote_as_remote_as_modify(
3181 struct nb_cb_modify_args *args)
3182 {
3183 struct bgp *bgp;
3184 const char *peer_str;
3185 int as_type = AS_SPECIFIED;
3186 union sockunion su;
3187 int ret;
3188 as_t as = 0;
3189
3190 switch (args->event) {
3191 case NB_EV_VALIDATE:
3192 case NB_EV_PREPARE:
3193 case NB_EV_ABORT:
3194 return NB_OK;
3195 case NB_EV_APPLY:
3196 bgp = nb_running_get_entry(args->dnode, NULL, true);
3197
3198 peer_str = yang_dnode_get_string(args->dnode,
3199 "../../remote-address");
3200 as_type = yang_dnode_get_enum(args->dnode, "../remote-as-type");
3201 as = yang_dnode_get_uint32(args->dnode, NULL);
3202
3203 str2sockunion(peer_str, &su);
3204 ret = peer_remote_as(bgp, &su, NULL, &as, as_type);
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, v6_only,
4372 peer_grp_str, as_type, as,
4373 args->errmsg, args->errmsg_len))
4374 return NB_ERR_INCONSISTENCY;
4375
4376 break;
4377 }
4378
4379 return NB_OK;
4380 }
4381
4382 int bgp_neighbors_unnumbered_neighbor_destroy(struct nb_cb_destroy_args *args)
4383 {
4384 struct bgp *bgp;
4385 const char *peer_str;
4386 struct peer *peer;
4387
4388 switch (args->event) {
4389 case NB_EV_VALIDATE:
4390 case NB_EV_PREPARE:
4391 case NB_EV_ABORT:
4392 return NB_OK;
4393 case NB_EV_APPLY:
4394 bgp = nb_running_get_entry(args->dnode, NULL, true);
4395
4396 peer_str = yang_dnode_get_string(args->dnode, "./interface");
4397 /* look up for neighbor by interface name config. */
4398 peer = peer_lookup_by_conf_if(bgp, peer_str);
4399 if (peer) {
4400 /* Request zebra to terminate IPv6 RAs on this
4401 * interface. */
4402 if (peer->ifp)
4403 bgp_zebra_terminate_radv(peer->bgp, peer);
4404 peer_notify_unconfig(peer);
4405 peer_delete(peer);
4406 } else {
4407 snprintf(args->errmsg, args->errmsg_len,
4408 "Create the peer-group first");
4409 return NB_ERR_INCONSISTENCY;
4410 }
4411
4412 break;
4413 }
4414
4415 return NB_OK;
4416 }
4417
4418 /*
4419 * XPath:
4420 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/v6only
4421 */
4422 int bgp_neighbors_unnumbered_neighbor_v6only_modify(
4423 struct nb_cb_modify_args *args)
4424 {
4425 struct bgp *bgp;
4426 const char *peer_str;
4427 bool v6_only = false;
4428
4429 switch (args->event) {
4430 case NB_EV_VALIDATE:
4431 case NB_EV_PREPARE:
4432 case NB_EV_ABORT:
4433 return NB_OK;
4434 case NB_EV_APPLY:
4435 bgp = nb_running_get_entry(args->dnode, NULL, true);
4436 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4437
4438 v6_only = yang_dnode_get_bool(args->dnode, NULL);
4439
4440 if (peer_conf_interface_create(bgp, peer_str, v6_only, NULL,
4441 AS_UNSPECIFIED, 0, args->errmsg,
4442 args->errmsg_len))
4443 return NB_ERR_INCONSISTENCY;
4444
4445 break;
4446 }
4447
4448 return NB_OK;
4449 }
4450
4451 /*
4452 * XPath:
4453 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/peer-group
4454 */
4455 int bgp_neighbors_unnumbered_neighbor_peer_group_modify(
4456 struct nb_cb_modify_args *args)
4457 {
4458 struct bgp *bgp;
4459 const char *peer_str;
4460 const char *peer_grp_str;
4461 struct peer *peer;
4462 struct peer_group *group;
4463 union sockunion su;
4464 as_t as;
4465 int ret = 0;
4466 char prgrp_xpath[XPATH_MAXLEN];
4467 const struct lyd_node *bgp_dnode;
4468
4469 switch (args->event) {
4470 case NB_EV_VALIDATE:
4471 peer_grp_str = yang_dnode_get_string(args->dnode, NULL);
4472 bgp_dnode = yang_dnode_get_parent(args->dnode, "bgp");
4473 snprintf(prgrp_xpath, sizeof(prgrp_xpath),
4474 FRR_BGP_PEER_GROUP_XPATH, peer_grp_str, "");
4475
4476 if (!yang_dnode_exists(bgp_dnode, prgrp_xpath)) {
4477 snprintf(args->errmsg, args->errmsg_len,
4478 "Configure the peer-group first %s",
4479 peer_grp_str);
4480 return NB_ERR_VALIDATION;
4481 }
4482
4483 break;
4484 case NB_EV_PREPARE:
4485 case NB_EV_ABORT:
4486 return NB_OK;
4487 case NB_EV_APPLY:
4488 bgp = nb_running_get_entry(args->dnode, NULL, true);
4489 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4490 peer = bgp_unnumbered_neighbor_peer_lookup(
4491 bgp, peer_str, args->errmsg, args->errmsg_len);
4492
4493 peer_grp_str = yang_dnode_get_string(args->dnode, NULL);
4494 group = peer_group_lookup(bgp, peer_grp_str);
4495 if (!group) {
4496 snprintf(args->errmsg, args->errmsg_len,
4497 "Configure the peer-group first\n");
4498 return NB_ERR_INCONSISTENCY;
4499 }
4500
4501 ret = peer_group_bind(bgp, &su, peer, group, &as);
4502 if (ret == BGP_ERR_PEER_GROUP_PEER_TYPE_DIFFERENT) {
4503 snprintf(
4504 args->errmsg, args->errmsg_len,
4505 "Peer with AS %u cannot be in this peer-group, members must be all internal or all external\n",
4506 as);
4507 return NB_ERR_INCONSISTENCY;
4508 }
4509
4510 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
4511
4512 break;
4513 }
4514
4515 return NB_OK;
4516 }
4517
4518 int bgp_neighbors_unnumbered_neighbor_peer_group_destroy(
4519 struct nb_cb_destroy_args *args)
4520 {
4521 struct bgp *bgp;
4522 const char *peer_str;
4523 struct peer *peer;
4524 int ret;
4525
4526 switch (args->event) {
4527 case NB_EV_VALIDATE:
4528 case NB_EV_PREPARE:
4529 case NB_EV_ABORT:
4530 return NB_OK;
4531 case NB_EV_APPLY:
4532 bgp = nb_running_get_entry(args->dnode, NULL, true);
4533 peer_str =
4534 yang_dnode_get_string(args->dnode, "../remote-address");
4535 peer = bgp_unnumbered_neighbor_peer_lookup(
4536 bgp, peer_str, args->errmsg, args->errmsg_len);
4537
4538 if (CHECK_FLAG(peer->flags, PEER_FLAG_CAPABILITY_ENHE))
4539 bgp_zebra_terminate_radv(peer->bgp, peer);
4540
4541 peer_notify_unconfig(peer);
4542 ret = peer_delete(peer);
4543
4544 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
4545 < 0)
4546 return NB_ERR_INCONSISTENCY;
4547
4548 break;
4549 }
4550
4551 return NB_OK;
4552 }
4553
4554 /*
4555 * XPath:
4556 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/password
4557 */
4558 int bgp_neighbors_unnumbered_neighbor_password_modify(
4559 struct nb_cb_modify_args *args)
4560 {
4561 struct bgp *bgp;
4562 const char *peer_str;
4563 const char *passwrd_str;
4564 struct peer *peer = NULL;
4565
4566 switch (args->event) {
4567 case NB_EV_VALIDATE:
4568 case NB_EV_PREPARE:
4569 case NB_EV_ABORT:
4570 return NB_OK;
4571 case NB_EV_APPLY:
4572 bgp = nb_running_get_entry(args->dnode, NULL, true);
4573 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4574 peer = bgp_unnumbered_neighbor_peer_lookup(
4575 bgp, peer_str, args->errmsg, args->errmsg_len);
4576 if (!peer)
4577 return NB_ERR_INCONSISTENCY;
4578
4579 passwrd_str = yang_dnode_get_string(args->dnode, NULL);
4580 peer_password_set(peer, passwrd_str);
4581
4582 break;
4583 }
4584
4585 return NB_OK;
4586 }
4587
4588 int bgp_neighbors_unnumbered_neighbor_password_destroy(
4589 struct nb_cb_destroy_args *args)
4590 {
4591 struct bgp *bgp;
4592 const char *peer_str;
4593 struct peer *peer = NULL;
4594
4595 switch (args->event) {
4596 case NB_EV_VALIDATE:
4597 case NB_EV_PREPARE:
4598 case NB_EV_ABORT:
4599 return NB_OK;
4600 case NB_EV_APPLY:
4601 bgp = nb_running_get_entry(args->dnode, NULL, true);
4602 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4603 peer = bgp_unnumbered_neighbor_peer_lookup(
4604 bgp, peer_str, args->errmsg, args->errmsg_len);
4605 if (!peer)
4606 return NB_ERR_INCONSISTENCY;
4607
4608 peer_password_unset(peer);
4609
4610 break;
4611 }
4612
4613 return NB_OK;
4614 }
4615
4616 /*
4617 * XPath:
4618 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/ttl-security
4619 */
4620 int bgp_neighbors_unnumbered_neighbor_ttl_security_modify(
4621 struct nb_cb_modify_args *args)
4622 {
4623 struct bgp *bgp;
4624 const char *peer_str;
4625 struct peer *peer;
4626 int ret;
4627 uint8_t gtsm_hops;
4628
4629 switch (args->event) {
4630 case NB_EV_VALIDATE:
4631 case NB_EV_PREPARE:
4632 case NB_EV_ABORT:
4633 return NB_OK;
4634 case NB_EV_APPLY:
4635 bgp = nb_running_get_entry(args->dnode, NULL, true);
4636 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4637 peer = bgp_unnumbered_neighbor_peer_lookup(
4638 bgp, peer_str, args->errmsg, args->errmsg_len);
4639 if (!peer)
4640 return NB_ERR_INCONSISTENCY;
4641
4642 gtsm_hops = yang_dnode_get_uint8(args->dnode, NULL);
4643 /*
4644 * If 'neighbor swpX', then this is for directly connected
4645 * peers, we should not accept a ttl-security hops value greater
4646 * than 1.
4647 */
4648 if (peer->conf_if && (gtsm_hops > BGP_GTSM_HOPS_CONNECTED)) {
4649 snprintf(
4650 args->errmsg, args->errmsg_len,
4651 "%d is directly connected peer, hops cannot exceed 1\n",
4652 gtsm_hops);
4653 return NB_ERR_INCONSISTENCY;
4654 }
4655
4656 ret = peer_ttl_security_hops_set(peer, gtsm_hops);
4657 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
4658 < 0)
4659 return NB_ERR_INCONSISTENCY;
4660
4661 break;
4662 }
4663
4664 return NB_OK;
4665 }
4666
4667 int bgp_neighbors_unnumbered_neighbor_ttl_security_destroy(
4668 struct nb_cb_destroy_args *args)
4669 {
4670 struct bgp *bgp;
4671 const char *peer_str;
4672 struct peer *peer;
4673 int ret;
4674
4675 switch (args->event) {
4676 case NB_EV_VALIDATE:
4677 case NB_EV_PREPARE:
4678 case NB_EV_ABORT:
4679 return NB_OK;
4680 case NB_EV_APPLY:
4681 bgp = nb_running_get_entry(args->dnode, NULL, true);
4682 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4683 peer = bgp_unnumbered_neighbor_peer_lookup(
4684 bgp, peer_str, args->errmsg, args->errmsg_len);
4685 if (!peer)
4686 return NB_ERR_INCONSISTENCY;
4687
4688 ret = peer_ttl_security_hops_unset(peer);
4689 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
4690
4691 break;
4692 }
4693
4694 return NB_OK;
4695 }
4696
4697 /*
4698 * XPath:
4699 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/solo
4700 */
4701 int bgp_neighbors_unnumbered_neighbor_solo_modify(
4702 struct nb_cb_modify_args *args)
4703 {
4704 switch (args->event) {
4705 case NB_EV_VALIDATE:
4706 case NB_EV_PREPARE:
4707 case NB_EV_ABORT:
4708 case NB_EV_APPLY:
4709 /* TODO: implement me. */
4710 break;
4711 }
4712
4713 return NB_OK;
4714 }
4715
4716 /*
4717 * XPath:
4718 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/enforce-first-as
4719 */
4720 int bgp_neighbors_unnumbered_neighbor_enforce_first_as_modify(
4721 struct nb_cb_modify_args *args)
4722 {
4723 struct bgp *bgp;
4724 const char *peer_str;
4725 struct peer *peer;
4726 bool enable = false;
4727
4728 switch (args->event) {
4729 case NB_EV_VALIDATE:
4730 case NB_EV_PREPARE:
4731 case NB_EV_ABORT:
4732 return NB_OK;
4733 case NB_EV_APPLY:
4734 bgp = nb_running_get_entry(args->dnode, NULL, true);
4735 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4736 peer = bgp_unnumbered_neighbor_peer_lookup(
4737 bgp, peer_str, args->errmsg, args->errmsg_len);
4738
4739 enable = yang_dnode_get_bool(args->dnode, NULL);
4740
4741 peer_flag_modify_nb(bgp, peer_str, peer,
4742 PEER_FLAG_ENFORCE_FIRST_AS, enable,
4743 args->errmsg, args->errmsg_len);
4744
4745 break;
4746 }
4747
4748 return NB_OK;
4749 }
4750
4751 /*
4752 * XPath:
4753 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/description
4754 */
4755 int bgp_neighbors_unnumbered_neighbor_description_modify(
4756 struct nb_cb_modify_args *args)
4757 {
4758 struct bgp *bgp;
4759 const char *peer_str;
4760 const char *desc_str;
4761 struct peer *peer = NULL;
4762
4763 switch (args->event) {
4764 case NB_EV_VALIDATE:
4765 case NB_EV_PREPARE:
4766 case NB_EV_ABORT:
4767 return NB_OK;
4768 case NB_EV_APPLY:
4769 bgp = nb_running_get_entry(args->dnode, NULL, true);
4770 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4771
4772 peer = bgp_unnumbered_neighbor_peer_lookup(
4773 bgp, peer_str, args->errmsg, args->errmsg_len);
4774 if (!peer)
4775 return NB_ERR_INCONSISTENCY;
4776
4777 desc_str = yang_dnode_get_string(args->dnode, NULL);
4778
4779 peer_description_set(peer, desc_str);
4780
4781 break;
4782 }
4783
4784 return NB_OK;
4785 }
4786
4787 int bgp_neighbors_unnumbered_neighbor_description_destroy(
4788 struct nb_cb_destroy_args *args)
4789 {
4790 struct bgp *bgp;
4791 const char *peer_str;
4792 struct peer *peer = NULL;
4793
4794 switch (args->event) {
4795 case NB_EV_VALIDATE:
4796 case NB_EV_PREPARE:
4797 case NB_EV_ABORT:
4798 return NB_OK;
4799 case NB_EV_APPLY:
4800 bgp = nb_running_get_entry(args->dnode, NULL, true);
4801 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4802
4803 peer = bgp_unnumbered_neighbor_peer_lookup(
4804 bgp, peer_str, args->errmsg, args->errmsg_len);
4805 if (!peer)
4806 return NB_ERR_INCONSISTENCY;
4807
4808 peer_description_unset(peer);
4809
4810 break;
4811 }
4812
4813 return NB_OK;
4814 }
4815
4816 /*
4817 * XPath:
4818 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/passive-mode
4819 */
4820 int bgp_neighbors_unnumbered_neighbor_passive_mode_modify(
4821 struct nb_cb_modify_args *args)
4822 {
4823 struct bgp *bgp;
4824 const char *peer_str;
4825 struct peer *peer;
4826 bool set = false;
4827
4828 switch (args->event) {
4829 case NB_EV_VALIDATE:
4830 case NB_EV_PREPARE:
4831 case NB_EV_ABORT:
4832 return NB_OK;
4833 case NB_EV_APPLY:
4834 bgp = nb_running_get_entry(args->dnode, NULL, true);
4835 peer_str = yang_dnode_get_string(args->dnode, "../interface");
4836 peer = bgp_unnumbered_neighbor_peer_lookup(
4837 bgp, peer_str, args->errmsg, args->errmsg_len);
4838 if (!peer)
4839 return NB_ERR_INCONSISTENCY;
4840
4841 set = yang_dnode_get_bool(args->dnode, NULL);
4842
4843 if (peer_flag_modify_nb(bgp, peer_str, peer, PEER_FLAG_PASSIVE,
4844 set, args->errmsg, args->errmsg_len)
4845 < 0)
4846 return NB_ERR_INCONSISTENCY;
4847
4848 break;
4849 }
4850
4851 return NB_OK;
4852 }
4853
4854 /*
4855 * XPath:
4856 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/capability-options/dynamic-capability
4857 */
4858 int bgp_neighbors_unnumbered_neighbor_capability_options_dynamic_capability_modify(
4859 struct nb_cb_modify_args *args)
4860 {
4861 struct bgp *bgp;
4862 const char *peer_str;
4863 struct peer *peer;
4864 bool enable = false;
4865
4866 switch (args->event) {
4867 case NB_EV_VALIDATE:
4868 case NB_EV_PREPARE:
4869 case NB_EV_ABORT:
4870 return NB_OK;
4871 case NB_EV_APPLY:
4872 bgp = nb_running_get_entry(args->dnode, NULL, true);
4873 peer_str =
4874 yang_dnode_get_string(args->dnode, "../../interface");
4875 peer = bgp_unnumbered_neighbor_peer_lookup(
4876 bgp, peer_str, args->errmsg, args->errmsg_len);
4877 if (!peer)
4878 return NB_ERR_INCONSISTENCY;
4879
4880 enable = yang_dnode_get_bool(args->dnode, NULL);
4881
4882 peer_flag_modify_nb(bgp, peer_str, peer,
4883 PEER_FLAG_DYNAMIC_CAPABILITY, enable,
4884 args->errmsg, args->errmsg_len);
4885
4886 break;
4887 }
4888
4889 return NB_OK;
4890 }
4891
4892 /*
4893 * XPath:
4894 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/capability-options/strict-capability
4895 */
4896 int bgp_neighbors_unnumbered_neighbor_capability_options_strict_capability_modify(
4897 struct nb_cb_modify_args *args)
4898 {
4899 struct bgp *bgp;
4900 const char *peer_str;
4901 struct peer *peer;
4902 bool enable = false;
4903
4904 switch (args->event) {
4905 case NB_EV_VALIDATE:
4906 case NB_EV_PREPARE:
4907 case NB_EV_ABORT:
4908 return NB_OK;
4909 case NB_EV_APPLY:
4910 bgp = nb_running_get_entry(args->dnode, NULL, true);
4911 peer_str =
4912 yang_dnode_get_string(args->dnode, "../../interface");
4913 peer = bgp_unnumbered_neighbor_peer_lookup(
4914 bgp, peer_str, args->errmsg, args->errmsg_len);
4915 if (!peer)
4916 return NB_ERR_INCONSISTENCY;
4917
4918 enable = yang_dnode_get_bool(args->dnode, NULL);
4919
4920 peer_flag_modify_nb(bgp, peer_str, peer,
4921 PEER_FLAG_STRICT_CAP_MATCH, enable,
4922 args->errmsg, args->errmsg_len);
4923
4924 break;
4925 }
4926
4927 return NB_OK;
4928 }
4929
4930 /*
4931 * XPath:
4932 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/capability-options/extended-nexthop-capability
4933 */
4934 int bgp_neighbors_unnumbered_neighbor_capability_options_extended_nexthop_capability_modify(
4935 struct nb_cb_modify_args *args)
4936 {
4937 struct bgp *bgp;
4938 const char *peer_str;
4939 struct peer *peer;
4940 bool enable = false;
4941
4942 switch (args->event) {
4943 case NB_EV_VALIDATE:
4944 case NB_EV_PREPARE:
4945 case NB_EV_ABORT:
4946 return NB_OK;
4947 case NB_EV_APPLY:
4948 bgp = nb_running_get_entry(args->dnode, NULL, true);
4949 peer_str =
4950 yang_dnode_get_string(args->dnode, "../../interface");
4951 peer = bgp_unnumbered_neighbor_peer_lookup(
4952 bgp, peer_str, args->errmsg, args->errmsg_len);
4953 if (!peer)
4954 return NB_ERR_INCONSISTENCY;
4955
4956 enable = yang_dnode_get_bool(args->dnode, NULL);
4957
4958 peer_flag_modify_nb(bgp, peer_str, peer,
4959 PEER_FLAG_CAPABILITY_ENHE, enable,
4960 args->errmsg, args->errmsg_len);
4961
4962 break;
4963 }
4964
4965 return NB_OK;
4966 }
4967
4968 /*
4969 * XPath:
4970 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/capability-options/capability-negotiate
4971 */
4972 int bgp_neighbors_unnumbered_neighbor_capability_options_capability_negotiate_modify(
4973 struct nb_cb_modify_args *args)
4974 {
4975 switch (args->event) {
4976 case NB_EV_VALIDATE:
4977 case NB_EV_PREPARE:
4978 case NB_EV_ABORT:
4979 case NB_EV_APPLY:
4980 /* TODO: implement me. */
4981 break;
4982 }
4983
4984 return NB_OK;
4985 }
4986
4987 /*
4988 * XPath:
4989 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/capability-options/override-capability
4990 */
4991 int bgp_neighbors_unnumbered_neighbor_capability_options_override_capability_modify(
4992 struct nb_cb_modify_args *args)
4993 {
4994 struct bgp *bgp;
4995 const char *peer_str;
4996 struct peer *peer;
4997 bool enable = false;
4998
4999 switch (args->event) {
5000 case NB_EV_VALIDATE:
5001 case NB_EV_PREPARE:
5002 case NB_EV_ABORT:
5003 return NB_OK;
5004 case NB_EV_APPLY:
5005 bgp = nb_running_get_entry(args->dnode, NULL, true);
5006 peer_str =
5007 yang_dnode_get_string(args->dnode, "../../interface");
5008 peer = bgp_unnumbered_neighbor_peer_lookup(
5009 bgp, peer_str, args->errmsg, args->errmsg_len);
5010
5011 enable = yang_dnode_get_bool(args->dnode, NULL);
5012
5013 peer_flag_modify_nb(bgp, peer_str, peer,
5014 PEER_FLAG_OVERRIDE_CAPABILITY, enable,
5015 args->errmsg, args->errmsg_len);
5016
5017 break;
5018 }
5019
5020 return NB_OK;
5021 }
5022
5023 /*
5024 * XPath:
5025 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/update-source/ip
5026 */
5027 int bgp_neighbors_unnumbered_neighbor_update_source_ip_modify(
5028 struct nb_cb_modify_args *args)
5029 {
5030 struct bgp *bgp;
5031 const char *peer_str, *source_str;
5032 struct peer *peer;
5033 union sockunion su;
5034
5035 switch (args->event) {
5036 case NB_EV_VALIDATE:
5037 case NB_EV_PREPARE:
5038 case NB_EV_ABORT:
5039 return NB_OK;
5040 case NB_EV_APPLY:
5041 bgp = nb_running_get_entry(args->dnode, NULL, true);
5042 peer_str =
5043 yang_dnode_get_string(args->dnode, "../../interface");
5044 peer = bgp_unnumbered_neighbor_peer_lookup(
5045 bgp, peer_str, args->errmsg, args->errmsg_len);
5046 if (!peer)
5047 return NB_ERR_INCONSISTENCY;
5048
5049 source_str = yang_dnode_get_string(args->dnode, NULL);
5050
5051 str2sockunion(source_str, &su);
5052 peer_update_source_addr_set(peer, &su);
5053
5054 break;
5055 }
5056
5057 return NB_OK;
5058 }
5059
5060 int bgp_neighbors_unnumbered_neighbor_update_source_ip_destroy(
5061 struct nb_cb_destroy_args *args)
5062 {
5063 struct bgp *bgp;
5064 const char *peer_str;
5065 struct peer *peer;
5066
5067 switch (args->event) {
5068 case NB_EV_VALIDATE:
5069 case NB_EV_PREPARE:
5070 case NB_EV_ABORT:
5071 return NB_OK;
5072 case NB_EV_APPLY:
5073 bgp = nb_running_get_entry(args->dnode, NULL, true);
5074 peer_str =
5075 yang_dnode_get_string(args->dnode, "../../interface");
5076 peer = bgp_unnumbered_neighbor_peer_lookup(
5077 bgp, peer_str, args->errmsg, args->errmsg_len);
5078 if (!peer)
5079 return NB_ERR_INCONSISTENCY;
5080
5081 peer_update_source_unset(peer);
5082
5083 break;
5084 }
5085
5086 return NB_OK;
5087 }
5088
5089 /*
5090 * XPath:
5091 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/update-source/interface
5092 */
5093 int bgp_neighbors_unnumbered_neighbor_update_source_interface_modify(
5094 struct nb_cb_modify_args *args)
5095 {
5096 struct bgp *bgp;
5097 const char *peer_str, *source_str;
5098 struct peer *peer;
5099 struct prefix p;
5100
5101 switch (args->event) {
5102 case NB_EV_VALIDATE:
5103 source_str = yang_dnode_get_string(args->dnode, NULL);
5104 if (str2prefix(source_str, &p)) {
5105 snprintf(args->errmsg, args->errmsg_len,
5106 "Invalid update-source, remove prefix length");
5107 return NB_ERR_VALIDATION;
5108 }
5109 break;
5110 case NB_EV_PREPARE:
5111 case NB_EV_ABORT:
5112 return NB_OK;
5113 case NB_EV_APPLY:
5114 bgp = nb_running_get_entry(args->dnode, NULL, true);
5115 peer_str =
5116 yang_dnode_get_string(args->dnode, "../../interface");
5117 peer = bgp_unnumbered_neighbor_peer_lookup(
5118 bgp, peer_str, args->errmsg, args->errmsg_len);
5119 if (!peer)
5120 return NB_ERR_INCONSISTENCY;
5121
5122 source_str = yang_dnode_get_string(args->dnode, NULL);
5123
5124 peer_update_source_if_set(peer, source_str);
5125
5126 break;
5127 }
5128
5129 return NB_OK;
5130 }
5131
5132 int bgp_neighbors_unnumbered_neighbor_update_source_interface_destroy(
5133 struct nb_cb_destroy_args *args)
5134 {
5135 struct bgp *bgp;
5136 const char *peer_str;
5137 struct peer *peer;
5138
5139 switch (args->event) {
5140 case NB_EV_VALIDATE:
5141 case NB_EV_PREPARE:
5142 case NB_EV_ABORT:
5143 return NB_OK;
5144 case NB_EV_APPLY:
5145 bgp = nb_running_get_entry(args->dnode, NULL, true);
5146 peer_str =
5147 yang_dnode_get_string(args->dnode, "../../interface");
5148 peer = bgp_unnumbered_neighbor_peer_lookup(
5149 bgp, peer_str, args->errmsg, args->errmsg_len);
5150 if (!peer)
5151 return NB_ERR_INCONSISTENCY;
5152
5153 peer_update_source_unset(peer);
5154
5155 break;
5156 }
5157
5158 return NB_OK;
5159 }
5160
5161 /*
5162 * XPath:
5163 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/neighbor-remote-as
5164 */
5165 void bgp_neighbors_unnumbered_neighbor_neighbor_remote_as_apply_finish(
5166 struct nb_cb_apply_finish_args *args)
5167 {
5168 struct bgp *bgp;
5169 const char *peer_str;
5170 int as_type = AS_SPECIFIED;
5171 int ret;
5172 as_t as = 0;
5173 struct peer *peer = NULL;
5174
5175 bgp = nb_running_get_entry(args->dnode, NULL, true);
5176 peer_str = yang_dnode_get_string(args->dnode, "../interface");
5177 as_type = yang_dnode_get_enum(args->dnode, "./remote-as-type");
5178 if (yang_dnode_exists(args->dnode, "./remote-as"))
5179 as = yang_dnode_get_uint32(args->dnode, "./remote-as");
5180
5181 peer = peer_lookup_by_conf_if(bgp, peer_str);
5182
5183 ret = peer_remote_as(bgp, NULL, peer_str, &as, as_type);
5184
5185 if (ret < 0 && !peer) {
5186 snprintf(args->errmsg, args->errmsg_len,
5187 "Create the peer-group or interface first");
5188 return;
5189 }
5190
5191 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5192 }
5193
5194 /*
5195 * XPath:
5196 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/neighbor-remote-as/remote-as-type
5197 */
5198 int bgp_neighbors_unnumbered_neighbor_neighbor_remote_as_remote_as_type_modify(
5199 struct nb_cb_modify_args *args)
5200 {
5201 switch (args->event) {
5202 case NB_EV_VALIDATE:
5203 case NB_EV_PREPARE:
5204 case NB_EV_ABORT:
5205 case NB_EV_APPLY:
5206 /* TODO: implement me. */
5207 break;
5208 }
5209
5210 return NB_OK;
5211 }
5212
5213 int bgp_neighbors_unnumbered_neighbor_neighbor_remote_as_remote_as_type_destroy(
5214 struct nb_cb_destroy_args *args)
5215 {
5216 struct bgp *bgp;
5217 const char *peer_str;
5218 struct peer *peer;
5219
5220 switch (args->event) {
5221 case NB_EV_VALIDATE:
5222 case NB_EV_PREPARE:
5223 case NB_EV_ABORT:
5224 return NB_OK;
5225 case NB_EV_APPLY:
5226 bgp = nb_running_get_entry(args->dnode, NULL, true);
5227 peer_str =
5228 yang_dnode_get_string(args->dnode, "../../interface");
5229 peer = peer_lookup_by_conf_if(bgp, peer_str);
5230
5231 /* remote-as set to 0 and as_type to unspecified */
5232 if (peer)
5233 peer_as_change(peer, 0, AS_UNSPECIFIED);
5234
5235 break;
5236 }
5237
5238 return NB_OK;
5239 }
5240
5241 /*
5242 * XPath:
5243 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/neighbor-remote-as/remote-as
5244 */
5245 int bgp_neighbors_unnumbered_neighbor_neighbor_remote_as_remote_as_modify(
5246 struct nb_cb_modify_args *args)
5247 {
5248 switch (args->event) {
5249 case NB_EV_VALIDATE:
5250 case NB_EV_PREPARE:
5251 case NB_EV_ABORT:
5252 case NB_EV_APPLY:
5253 /* TODO: implement me. */
5254 break;
5255 }
5256
5257 return NB_OK;
5258 }
5259
5260 int bgp_neighbors_unnumbered_neighbor_neighbor_remote_as_remote_as_destroy(
5261 struct nb_cb_destroy_args *args)
5262 {
5263 switch (args->event) {
5264 case NB_EV_VALIDATE:
5265 case NB_EV_PREPARE:
5266 case NB_EV_ABORT:
5267 case NB_EV_APPLY:
5268 /* TODO: implement me. */
5269 break;
5270 }
5271
5272 return NB_OK;
5273 }
5274
5275 /*
5276 * XPath:
5277 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/ebgp-multihop/enabled
5278 */
5279 int bgp_neighbors_unnumbered_neighbor_ebgp_multihop_enabled_modify(
5280 struct nb_cb_modify_args *args)
5281 {
5282 struct bgp *bgp;
5283 const char *peer_str;
5284 struct peer *peer;
5285 bool set = false;
5286 int ret = 0;
5287 uint8_t ttl = MAXTTL;
5288
5289 switch (args->event) {
5290 case NB_EV_VALIDATE:
5291 case NB_EV_PREPARE:
5292 case NB_EV_ABORT:
5293 return NB_OK;
5294 case NB_EV_APPLY:
5295 bgp = nb_running_get_entry(args->dnode, NULL, true);
5296 peer_str =
5297 yang_dnode_get_string(args->dnode, "../../interface");
5298 peer = peer_lookup_by_conf_if(bgp, peer_str);
5299 if (!peer)
5300 return NB_ERR_INCONSISTENCY;
5301
5302 if (peer->conf_if) {
5303 ret = BGP_ERR_INVALID_FOR_DIRECT_PEER;
5304 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len,
5305 ret);
5306 return NB_ERR_INCONSISTENCY;
5307 }
5308
5309 set = yang_dnode_get_bool(args->dnode, NULL);
5310
5311 if (set)
5312 ret = peer_ebgp_multihop_set(peer, ttl);
5313 else
5314 ret = peer_ebgp_multihop_unset(peer);
5315
5316 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5317
5318 break;
5319 }
5320
5321 return NB_OK;
5322 }
5323
5324 int bgp_neighbors_unnumbered_neighbor_ebgp_multihop_enabled_destroy(
5325 struct nb_cb_destroy_args *args)
5326 {
5327 struct bgp *bgp;
5328 const char *peer_str;
5329 struct peer *peer;
5330 int ret = 0;
5331
5332 switch (args->event) {
5333 case NB_EV_VALIDATE:
5334 case NB_EV_PREPARE:
5335 case NB_EV_ABORT:
5336 return NB_OK;
5337 case NB_EV_APPLY:
5338 bgp = nb_running_get_entry(args->dnode, NULL, true);
5339 peer_str =
5340 yang_dnode_get_string(args->dnode, "../../interface");
5341 peer = peer_lookup_by_conf_if(bgp, peer_str);
5342 if (!peer)
5343 return NB_ERR_INCONSISTENCY;
5344
5345 ret = peer_ebgp_multihop_unset(peer);
5346
5347 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5348
5349 break;
5350 }
5351
5352 return NB_OK;
5353 }
5354
5355 /*
5356 * XPath:
5357 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/ebgp-multihop/multihop-ttl
5358 */
5359 int bgp_neighbors_unnumbered_neighbor_ebgp_multihop_multihop_ttl_modify(
5360 struct nb_cb_modify_args *args)
5361 {
5362 struct bgp *bgp;
5363 const char *peer_str;
5364 struct peer *peer;
5365 int ret = 0;
5366 uint8_t ttl = MAXTTL;
5367
5368 switch (args->event) {
5369 case NB_EV_VALIDATE:
5370 case NB_EV_PREPARE:
5371 case NB_EV_ABORT:
5372 return NB_OK;
5373 case NB_EV_APPLY:
5374 bgp = nb_running_get_entry(args->dnode, NULL, true);
5375 peer_str =
5376 yang_dnode_get_string(args->dnode, "../../interface");
5377 peer = peer_lookup_by_conf_if(bgp, peer_str);
5378 if (!peer)
5379 return NB_ERR_INCONSISTENCY;
5380
5381 if (peer->conf_if) {
5382 ret = BGP_ERR_INVALID_FOR_DIRECT_PEER;
5383 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len,
5384 ret);
5385 return NB_ERR_INCONSISTENCY;
5386 }
5387
5388 ttl = yang_dnode_get_uint8(args->dnode, NULL);
5389
5390 ret = peer_ebgp_multihop_set(peer, ttl);
5391
5392 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5393
5394 break;
5395 }
5396
5397 return NB_OK;
5398 }
5399
5400 int bgp_neighbors_unnumbered_neighbor_ebgp_multihop_multihop_ttl_destroy(
5401 struct nb_cb_destroy_args *args)
5402 {
5403 struct bgp *bgp;
5404 const char *peer_str;
5405 struct peer *peer;
5406 int ret = 0;
5407
5408 switch (args->event) {
5409 case NB_EV_VALIDATE:
5410 case NB_EV_PREPARE:
5411 case NB_EV_ABORT:
5412 return NB_OK;
5413 case NB_EV_APPLY:
5414 bgp = nb_running_get_entry(args->dnode, NULL, true);
5415 peer_str =
5416 yang_dnode_get_string(args->dnode, "../../interface");
5417 peer = peer_lookup_by_conf_if(bgp, peer_str);
5418 if (!peer)
5419 return NB_ERR_INCONSISTENCY;
5420
5421 ret = peer_ebgp_multihop_unset(peer);
5422
5423 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5424
5425 break;
5426 }
5427
5428 return NB_OK;
5429 }
5430
5431 /*
5432 * XPath:
5433 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/ebgp-multihop/disable-connected-check
5434 */
5435 int bgp_neighbors_unnumbered_neighbor_ebgp_multihop_disable_connected_check_modify(
5436 struct nb_cb_modify_args *args)
5437 {
5438 struct bgp *bgp;
5439 const char *peer_str;
5440 struct peer *peer;
5441 bool set = false;
5442
5443 switch (args->event) {
5444 case NB_EV_VALIDATE:
5445 case NB_EV_PREPARE:
5446 case NB_EV_ABORT:
5447 return NB_OK;
5448 case NB_EV_APPLY:
5449 bgp = nb_running_get_entry(args->dnode, NULL, true);
5450 peer_str =
5451 yang_dnode_get_string(args->dnode, "../../interface");
5452 peer = peer_lookup_by_conf_if(bgp, peer_str);
5453 if (!peer)
5454 return NB_ERR_INCONSISTENCY;
5455
5456 set = yang_dnode_get_bool(args->dnode, NULL);
5457
5458 if (peer_flag_modify_nb(bgp, peer_str, peer,
5459 PEER_FLAG_DISABLE_CONNECTED_CHECK, set,
5460 args->errmsg, args->errmsg_len)
5461 < 0)
5462 return NB_ERR_INCONSISTENCY;
5463
5464 break;
5465 }
5466
5467 return NB_OK;
5468 }
5469
5470 /*
5471 * XPath:
5472 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/local-as
5473 */
5474 void bgp_neighbors_unnumbered_neighbor_local_as_apply_finish(
5475 struct nb_cb_apply_finish_args *args)
5476 {
5477 struct bgp *bgp;
5478 int ret;
5479 as_t as = 0;
5480 const char *peer_str;
5481 struct peer *peer = NULL;
5482 bool no_prepend = 0;
5483 bool replace_as = 0;
5484
5485 bgp = nb_running_get_entry(args->dnode, NULL, true);
5486 peer_str = yang_dnode_get_string(args->dnode, "../interface");
5487
5488 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
5489 args->errmsg_len);
5490
5491 if (yang_dnode_exists(args->dnode, "./local-as"))
5492 as = yang_dnode_get_uint32(args->dnode, "./local-as");
5493 if (yang_dnode_exists(args->dnode, "./no-prepend"))
5494 no_prepend = yang_dnode_get_bool(args->dnode, "./no-prepend");
5495 if (yang_dnode_exists(args->dnode, "./no-replace-as"))
5496 replace_as =
5497 yang_dnode_get_bool(args->dnode, "./no-replace-as");
5498
5499 if (!as && !no_prepend && !replace_as)
5500 ret = peer_local_as_unset(peer);
5501 else
5502 ret = peer_local_as_set(peer, as, no_prepend, replace_as);
5503
5504 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
5505 }
5506
5507 /*
5508 * XPath:
5509 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/local-as/local-as
5510 */
5511 int bgp_neighbors_unnumbered_neighbor_local_as_local_as_modify(
5512 struct nb_cb_modify_args *args)
5513 {
5514 switch (args->event) {
5515 case NB_EV_VALIDATE:
5516 case NB_EV_PREPARE:
5517 case NB_EV_ABORT:
5518 case NB_EV_APPLY:
5519 /* TODO: implement me. */
5520 break;
5521 }
5522
5523 return NB_OK;
5524 }
5525
5526 int bgp_neighbors_unnumbered_neighbor_local_as_local_as_destroy(
5527 struct nb_cb_destroy_args *args)
5528 {
5529 switch (args->event) {
5530 case NB_EV_VALIDATE:
5531 case NB_EV_PREPARE:
5532 case NB_EV_ABORT:
5533 case NB_EV_APPLY:
5534 /* TODO: implement me. */
5535 break;
5536 }
5537
5538 return NB_OK;
5539 }
5540
5541 /*
5542 * XPath:
5543 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/local-as/no-prepend
5544 */
5545 int bgp_neighbors_unnumbered_neighbor_local_as_no_prepend_modify(
5546 struct nb_cb_modify_args *args)
5547 {
5548 switch (args->event) {
5549 case NB_EV_VALIDATE:
5550 case NB_EV_PREPARE:
5551 case NB_EV_ABORT:
5552 case NB_EV_APPLY:
5553 /* TODO: implement me. */
5554 break;
5555 }
5556
5557 return NB_OK;
5558 }
5559
5560 int bgp_neighbors_unnumbered_neighbor_local_as_no_prepend_destroy(
5561 struct nb_cb_destroy_args *args)
5562 {
5563 switch (args->event) {
5564 case NB_EV_VALIDATE:
5565 case NB_EV_PREPARE:
5566 case NB_EV_ABORT:
5567 case NB_EV_APPLY:
5568 /* TODO: implement me. */
5569 break;
5570 }
5571
5572 return NB_OK;
5573 }
5574
5575 /*
5576 * XPath:
5577 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/local-as/no-replace-as
5578 */
5579 int bgp_neighbors_unnumbered_neighbor_local_as_no_replace_as_modify(
5580 struct nb_cb_modify_args *args)
5581 {
5582 switch (args->event) {
5583 case NB_EV_VALIDATE:
5584 case NB_EV_PREPARE:
5585 case NB_EV_ABORT:
5586 case NB_EV_APPLY:
5587 /* TODO: implement me. */
5588 break;
5589 }
5590
5591 return NB_OK;
5592 }
5593
5594 /*
5595 * XPath:
5596 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/enable
5597 */
5598 int bgp_neighbors_unnumbered_neighbor_bfd_options_enable_modify(
5599 struct nb_cb_modify_args *args)
5600 {
5601 switch (args->event) {
5602 case NB_EV_VALIDATE:
5603 case NB_EV_PREPARE:
5604 case NB_EV_ABORT:
5605 case NB_EV_APPLY:
5606 /* TODO: implement me. */
5607 break;
5608 }
5609
5610 return NB_OK;
5611 }
5612
5613 /*
5614 * XPath:
5615 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/detect-multiplier
5616 */
5617 int bgp_neighbors_unnumbered_neighbor_bfd_options_detect_multiplier_modify(
5618 struct nb_cb_modify_args *args)
5619 {
5620 switch (args->event) {
5621 case NB_EV_VALIDATE:
5622 case NB_EV_PREPARE:
5623 case NB_EV_ABORT:
5624 case NB_EV_APPLY:
5625 /* TODO: implement me. */
5626 break;
5627 }
5628
5629 return NB_OK;
5630 }
5631
5632 int bgp_neighbors_unnumbered_neighbor_bfd_options_detect_multiplier_destroy(
5633 struct nb_cb_destroy_args *args)
5634 {
5635 switch (args->event) {
5636 case NB_EV_VALIDATE:
5637 case NB_EV_PREPARE:
5638 case NB_EV_ABORT:
5639 case NB_EV_APPLY:
5640 /* TODO: implement me. */
5641 break;
5642 }
5643
5644 return NB_OK;
5645 }
5646
5647 /*
5648 * XPath:
5649 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/required-min-rx
5650 */
5651 int bgp_neighbors_unnumbered_neighbor_bfd_options_required_min_rx_modify(
5652 struct nb_cb_modify_args *args)
5653 {
5654 switch (args->event) {
5655 case NB_EV_VALIDATE:
5656 case NB_EV_PREPARE:
5657 case NB_EV_ABORT:
5658 case NB_EV_APPLY:
5659 /* TODO: implement me. */
5660 break;
5661 }
5662
5663 return NB_OK;
5664 }
5665
5666 int bgp_neighbors_unnumbered_neighbor_bfd_options_required_min_rx_destroy(
5667 struct nb_cb_destroy_args *args)
5668 {
5669 switch (args->event) {
5670 case NB_EV_VALIDATE:
5671 case NB_EV_PREPARE:
5672 case NB_EV_ABORT:
5673 case NB_EV_APPLY:
5674 /* TODO: implement me. */
5675 break;
5676 }
5677
5678 return NB_OK;
5679 }
5680
5681 /*
5682 * XPath:
5683 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/desired-min-tx
5684 */
5685 int bgp_neighbors_unnumbered_neighbor_bfd_options_desired_min_tx_modify(
5686 struct nb_cb_modify_args *args)
5687 {
5688 switch (args->event) {
5689 case NB_EV_VALIDATE:
5690 case NB_EV_PREPARE:
5691 case NB_EV_ABORT:
5692 case NB_EV_APPLY:
5693 /* TODO: implement me. */
5694 break;
5695 }
5696
5697 return NB_OK;
5698 }
5699
5700 int bgp_neighbors_unnumbered_neighbor_bfd_options_desired_min_tx_destroy(
5701 struct nb_cb_destroy_args *args)
5702 {
5703 switch (args->event) {
5704 case NB_EV_VALIDATE:
5705 case NB_EV_PREPARE:
5706 case NB_EV_ABORT:
5707 case NB_EV_APPLY:
5708 /* TODO: implement me. */
5709 break;
5710 }
5711
5712 return NB_OK;
5713 }
5714
5715 /*
5716 * XPath:
5717 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/session-type
5718 */
5719 int bgp_neighbors_unnumbered_neighbor_bfd_options_session_type_modify(
5720 struct nb_cb_modify_args *args)
5721 {
5722 switch (args->event) {
5723 case NB_EV_VALIDATE:
5724 case NB_EV_PREPARE:
5725 case NB_EV_ABORT:
5726 case NB_EV_APPLY:
5727 /* TODO: implement me. */
5728 break;
5729 }
5730
5731 return NB_OK;
5732 }
5733
5734 int bgp_neighbors_unnumbered_neighbor_bfd_options_session_type_destroy(
5735 struct nb_cb_destroy_args *args)
5736 {
5737 switch (args->event) {
5738 case NB_EV_VALIDATE:
5739 case NB_EV_PREPARE:
5740 case NB_EV_ABORT:
5741 case NB_EV_APPLY:
5742 /* TODO: implement me. */
5743 break;
5744 }
5745
5746 return NB_OK;
5747 }
5748
5749 /*
5750 * XPath:
5751 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/bfd-options/check-cp-failure
5752 */
5753 int bgp_neighbors_unnumbered_neighbor_bfd_options_check_cp_failure_modify(
5754 struct nb_cb_modify_args *args)
5755 {
5756 switch (args->event) {
5757 case NB_EV_VALIDATE:
5758 case NB_EV_PREPARE:
5759 case NB_EV_ABORT:
5760 case NB_EV_APPLY:
5761 /* TODO: implement me. */
5762 break;
5763 }
5764
5765 return NB_OK;
5766 }
5767
5768 int bgp_neighbors_unnumbered_neighbor_bfd_options_check_cp_failure_destroy(
5769 struct nb_cb_destroy_args *args)
5770 {
5771 switch (args->event) {
5772 case NB_EV_VALIDATE:
5773 case NB_EV_PREPARE:
5774 case NB_EV_ABORT:
5775 case NB_EV_APPLY:
5776 /* TODO: implement me. */
5777 break;
5778 }
5779
5780 return NB_OK;
5781 }
5782
5783 /*
5784 * XPath:
5785 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/admin-shutdown
5786 */
5787 void bgp_neighbors_unnumbered_neighbor_admin_shutdown_apply_finish(
5788 struct nb_cb_apply_finish_args *args)
5789 {
5790 struct bgp *bgp;
5791 const char *peer_str;
5792 struct peer *peer;
5793 bool enable = false;
5794 const char *message;
5795
5796 bgp = nb_running_get_entry(args->dnode, NULL, true);
5797 peer_str = yang_dnode_get_string(args->dnode, "../interface");
5798 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
5799 args->errmsg_len);
5800
5801 if (yang_dnode_exists(args->dnode, "./message")) {
5802 message = yang_dnode_get_string(args->dnode, "./message");
5803 peer_tx_shutdown_message_set(peer, message);
5804 }
5805 enable = yang_dnode_get_bool(args->dnode, "./enable");
5806
5807 peer_flag_modify_nb(bgp, peer_str, peer, PEER_FLAG_SHUTDOWN, enable,
5808 args->errmsg, args->errmsg_len);
5809 }
5810
5811 /*
5812 * XPath:
5813 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/admin-shutdown/enable
5814 */
5815 int bgp_neighbors_unnumbered_neighbor_admin_shutdown_enable_modify(
5816 struct nb_cb_modify_args *args)
5817 {
5818 switch (args->event) {
5819 case NB_EV_VALIDATE:
5820 case NB_EV_PREPARE:
5821 case NB_EV_ABORT:
5822 case NB_EV_APPLY:
5823 /* TODO: implement me. */
5824 break;
5825 }
5826
5827 return NB_OK;
5828 }
5829
5830 int bgp_neighbors_unnumbered_neighbor_admin_shutdown_enable_destroy(
5831 struct nb_cb_destroy_args *args)
5832 {
5833 switch (args->event) {
5834 case NB_EV_VALIDATE:
5835 case NB_EV_PREPARE:
5836 case NB_EV_ABORT:
5837 case NB_EV_APPLY:
5838 /* TODO: implement me. */
5839 break;
5840 }
5841
5842 return NB_OK;
5843 }
5844
5845 /*
5846 * XPath:
5847 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/admin-shutdown/message
5848 */
5849 int bgp_neighbors_unnumbered_neighbor_admin_shutdown_message_modify(
5850 struct nb_cb_modify_args *args)
5851 {
5852 switch (args->event) {
5853 case NB_EV_VALIDATE:
5854 case NB_EV_PREPARE:
5855 case NB_EV_ABORT:
5856 case NB_EV_APPLY:
5857 /* TODO: implement me. */
5858 break;
5859 }
5860
5861 return NB_OK;
5862 }
5863
5864 int bgp_neighbors_unnumbered_neighbor_admin_shutdown_message_destroy(
5865 struct nb_cb_destroy_args *args)
5866 {
5867 switch (args->event) {
5868 case NB_EV_VALIDATE:
5869 case NB_EV_PREPARE:
5870 case NB_EV_ABORT:
5871 case NB_EV_APPLY:
5872 /* TODO: implement me. */
5873 break;
5874 }
5875
5876 return NB_OK;
5877 }
5878
5879 /*
5880 * XPath:
5881 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/graceful-restart/enable
5882 */
5883 int bgp_neighbors_unnumbered_neighbor_graceful_restart_enable_modify(
5884 struct nb_cb_modify_args *args)
5885 {
5886 switch (args->event) {
5887 case NB_EV_VALIDATE:
5888 case NB_EV_PREPARE:
5889 case NB_EV_ABORT:
5890 case NB_EV_APPLY:
5891 /* TODO: implement me. */
5892 break;
5893 }
5894
5895 return NB_OK;
5896 }
5897
5898 int bgp_neighbors_unnumbered_neighbor_graceful_restart_enable_destroy(
5899 struct nb_cb_destroy_args *args)
5900 {
5901 switch (args->event) {
5902 case NB_EV_VALIDATE:
5903 case NB_EV_PREPARE:
5904 case NB_EV_ABORT:
5905 case NB_EV_APPLY:
5906 /* TODO: implement me. */
5907 break;
5908 }
5909
5910 return NB_OK;
5911 }
5912
5913 /*
5914 * XPath:
5915 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/graceful-restart/graceful-restart-helper
5916 */
5917 int bgp_neighbors_unnumbered_neighbor_graceful_restart_graceful_restart_helper_modify(
5918 struct nb_cb_modify_args *args)
5919 {
5920 switch (args->event) {
5921 case NB_EV_VALIDATE:
5922 case NB_EV_PREPARE:
5923 case NB_EV_ABORT:
5924 case NB_EV_APPLY:
5925 /* TODO: implement me. */
5926 break;
5927 }
5928
5929 return NB_OK;
5930 }
5931
5932 int bgp_neighbors_unnumbered_neighbor_graceful_restart_graceful_restart_helper_destroy(
5933 struct nb_cb_destroy_args *args)
5934 {
5935 switch (args->event) {
5936 case NB_EV_VALIDATE:
5937 case NB_EV_PREPARE:
5938 case NB_EV_ABORT:
5939 case NB_EV_APPLY:
5940 /* TODO: implement me. */
5941 break;
5942 }
5943
5944 return NB_OK;
5945 }
5946
5947 /*
5948 * XPath:
5949 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/graceful-restart/graceful-restart-disable
5950 */
5951 int bgp_neighbors_unnumbered_neighbor_graceful_restart_graceful_restart_disable_modify(
5952 struct nb_cb_modify_args *args)
5953 {
5954 switch (args->event) {
5955 case NB_EV_VALIDATE:
5956 case NB_EV_PREPARE:
5957 case NB_EV_ABORT:
5958 case NB_EV_APPLY:
5959 /* TODO: implement me. */
5960 break;
5961 }
5962
5963 return NB_OK;
5964 }
5965
5966 int bgp_neighbors_unnumbered_neighbor_graceful_restart_graceful_restart_disable_destroy(
5967 struct nb_cb_destroy_args *args)
5968 {
5969 switch (args->event) {
5970 case NB_EV_VALIDATE:
5971 case NB_EV_PREPARE:
5972 case NB_EV_ABORT:
5973 case NB_EV_APPLY:
5974 /* TODO: implement me. */
5975 break;
5976 }
5977
5978 return NB_OK;
5979 }
5980
5981 /*
5982 * XPath:
5983 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/timers/advertise-interval
5984 */
5985 int bgp_neighbors_unnumbered_neighbor_timers_advertise_interval_modify(
5986 struct nb_cb_modify_args *args)
5987 {
5988 struct bgp *bgp;
5989 const char *peer_str;
5990 struct peer *peer;
5991 uint16_t routeadv;
5992 int ret;
5993
5994 switch (args->event) {
5995 case NB_EV_VALIDATE:
5996 case NB_EV_PREPARE:
5997 case NB_EV_ABORT:
5998 return NB_OK;
5999 case NB_EV_APPLY:
6000 bgp = nb_running_get_entry(args->dnode, NULL, true);
6001 peer_str =
6002 yang_dnode_get_string(args->dnode, "../../interface");
6003 peer = bgp_unnumbered_neighbor_peer_lookup(
6004 bgp, peer_str, args->errmsg, args->errmsg_len);
6005 routeadv = yang_dnode_get_uint16(args->dnode, NULL);
6006
6007 ret = peer_advertise_interval_set(peer, routeadv);
6008 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
6009
6010 break;
6011 }
6012
6013 return NB_OK;
6014 }
6015
6016 int bgp_neighbors_unnumbered_neighbor_timers_advertise_interval_destroy(
6017 struct nb_cb_destroy_args *args)
6018 {
6019 struct bgp *bgp;
6020 const char *peer_str;
6021 struct peer *peer;
6022 int ret;
6023
6024 switch (args->event) {
6025 case NB_EV_VALIDATE:
6026 case NB_EV_PREPARE:
6027 case NB_EV_ABORT:
6028 return NB_OK;
6029 case NB_EV_APPLY:
6030 bgp = nb_running_get_entry(args->dnode, NULL, true);
6031 peer_str =
6032 yang_dnode_get_string(args->dnode, "../../interface");
6033 peer = bgp_unnumbered_neighbor_peer_lookup(
6034 bgp, peer_str, args->errmsg, args->errmsg_len);
6035
6036 ret = peer_advertise_interval_unset(peer);
6037 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
6038
6039 break;
6040 }
6041
6042 return NB_OK;
6043 }
6044
6045 /*
6046 * XPath:
6047 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/timers/connect-time
6048 */
6049 int bgp_neighbors_unnumbered_neighbor_timers_connect_time_modify(
6050 struct nb_cb_modify_args *args)
6051 {
6052 struct bgp *bgp;
6053 const char *peer_str;
6054 struct peer *peer;
6055 uint16_t connect;
6056 int ret;
6057
6058 switch (args->event) {
6059 case NB_EV_VALIDATE:
6060 case NB_EV_PREPARE:
6061 case NB_EV_ABORT:
6062 return NB_OK;
6063 case NB_EV_APPLY:
6064 bgp = nb_running_get_entry(args->dnode, NULL, true);
6065 peer_str =
6066 yang_dnode_get_string(args->dnode, "../../interface");
6067 peer = bgp_unnumbered_neighbor_peer_lookup(
6068 bgp, peer_str, args->errmsg, args->errmsg_len);
6069 connect = yang_dnode_get_uint16(args->dnode, NULL);
6070
6071 ret = peer_timers_connect_set(peer, connect);
6072 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
6073
6074 break;
6075 }
6076
6077 return NB_OK;
6078 }
6079
6080 int bgp_neighbors_unnumbered_neighbor_timers_connect_time_destroy(
6081 struct nb_cb_destroy_args *args)
6082 {
6083 struct bgp *bgp;
6084 const char *peer_str;
6085 struct peer *peer;
6086 int ret;
6087
6088 switch (args->event) {
6089 case NB_EV_VALIDATE:
6090 case NB_EV_PREPARE:
6091 case NB_EV_ABORT:
6092 return NB_OK;
6093 case NB_EV_APPLY:
6094 bgp = nb_running_get_entry(args->dnode, NULL, true);
6095 peer_str =
6096 yang_dnode_get_string(args->dnode, "../../interface");
6097 peer = bgp_unnumbered_neighbor_peer_lookup(
6098 bgp, peer_str, args->errmsg, args->errmsg_len);
6099 ret = peer_timers_connect_unset(peer);
6100 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6101 < 0)
6102 return NB_ERR_INCONSISTENCY;
6103
6104 break;
6105 }
6106
6107 return NB_OK;
6108 }
6109
6110 /*
6111 * XPath:
6112 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/timers/hold-time
6113 */
6114 int bgp_neighbors_unnumbered_neighbor_timers_hold_time_modify(
6115 struct nb_cb_modify_args *args)
6116 {
6117 struct bgp *bgp;
6118 const char *peer_str;
6119 struct peer *peer;
6120 uint16_t keepalive = 0;
6121 uint16_t holdtime = 0;
6122 int ret = 0;
6123
6124 switch (args->event) {
6125 case NB_EV_VALIDATE:
6126 case NB_EV_PREPARE:
6127 case NB_EV_ABORT:
6128 return NB_OK;
6129 case NB_EV_APPLY:
6130 bgp = nb_running_get_entry(args->dnode, NULL, true);
6131 peer_str =
6132 yang_dnode_get_string(args->dnode, "../../interface");
6133 peer = bgp_unnumbered_neighbor_peer_lookup(
6134 bgp, peer_str, args->errmsg, args->errmsg_len);
6135
6136 keepalive = yang_dnode_get_uint16(args->dnode, "../keepalive");
6137 holdtime = yang_dnode_get_uint16(args->dnode, NULL);
6138
6139 if (keepalive != BGP_DEFAULT_KEEPALIVE
6140 && holdtime != BGP_DEFAULT_HOLDTIME) {
6141 ret = peer_timers_set(peer, keepalive, holdtime);
6142 } else
6143 ret = peer_timers_unset(peer);
6144
6145 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6146 < 0)
6147 return NB_ERR_INCONSISTENCY;
6148
6149 break;
6150 }
6151
6152 return NB_OK;
6153 }
6154
6155 /*
6156 * XPath:
6157 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/timers/keepalive
6158 */
6159 int bgp_neighbors_unnumbered_neighbor_timers_keepalive_modify(
6160 struct nb_cb_modify_args *args)
6161 {
6162 struct bgp *bgp;
6163 const char *peer_str;
6164 struct peer *peer;
6165 uint16_t keepalive = 0, curr_keep = 0;
6166 uint16_t holdtime = 0;
6167 int ret = 0;
6168
6169 switch (args->event) {
6170 case NB_EV_VALIDATE:
6171 case NB_EV_PREPARE:
6172 case NB_EV_ABORT:
6173 return NB_OK;
6174 case NB_EV_APPLY:
6175 bgp = nb_running_get_entry(args->dnode, NULL, true);
6176 peer_str =
6177 yang_dnode_get_string(args->dnode, "../../interface");
6178 peer = bgp_unnumbered_neighbor_peer_lookup(
6179 bgp, peer_str, args->errmsg, args->errmsg_len);
6180
6181 keepalive = yang_dnode_get_uint16(args->dnode, NULL);
6182 holdtime = yang_dnode_get_uint16(args->dnode, "../hold-time");
6183
6184 if (keepalive != BGP_DEFAULT_KEEPALIVE
6185 && holdtime != BGP_DEFAULT_HOLDTIME) {
6186 if (peer->holdtime == holdtime) {
6187 curr_keep = (keepalive < holdtime / 3
6188 ? keepalive
6189 : holdtime / 3);
6190 if (curr_keep == keepalive)
6191 return NB_OK;
6192 }
6193 ret = peer_timers_set(peer, keepalive, holdtime);
6194 } else
6195 ret = peer_timers_unset(peer);
6196
6197 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6198 < 0)
6199 return NB_ERR_INCONSISTENCY;
6200
6201 break;
6202 }
6203
6204 return NB_OK;
6205 }
6206
6207 /*
6208 * XPath:
6209 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi
6210 */
6211 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_create(
6212 struct nb_cb_create_args *args)
6213 {
6214 switch (args->event) {
6215 case NB_EV_VALIDATE:
6216 case NB_EV_PREPARE:
6217 case NB_EV_ABORT:
6218 case NB_EV_APPLY:
6219 /* TODO: implement me. */
6220 break;
6221 }
6222
6223 return NB_OK;
6224 }
6225
6226 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_destroy(
6227 struct nb_cb_destroy_args *args)
6228 {
6229 switch (args->event) {
6230 case NB_EV_VALIDATE:
6231 case NB_EV_PREPARE:
6232 case NB_EV_ABORT:
6233 case NB_EV_APPLY:
6234 /* TODO: implement me. */
6235 break;
6236 }
6237
6238 return NB_OK;
6239 }
6240
6241 /*
6242 * XPath:
6243 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/enabled
6244 */
6245 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_enabled_modify(
6246 struct nb_cb_modify_args *args)
6247 {
6248 struct bgp *bgp;
6249 const char *peer_str;
6250 const char *af_name;
6251 afi_t afi;
6252 safi_t safi;
6253 bool activate = false;
6254 int ret = 0;
6255 struct peer *peer;
6256
6257 switch (args->event) {
6258 case NB_EV_VALIDATE:
6259 case NB_EV_PREPARE:
6260 case NB_EV_ABORT:
6261 return NB_OK;
6262 case NB_EV_APPLY:
6263 bgp = nb_running_get_entry(args->dnode, NULL, true);
6264 af_name =
6265 yang_dnode_get_string(args->dnode, "../afi-safi-name");
6266 yang_afi_safi_identity2value(af_name, &afi, &safi);
6267 peer_str = yang_dnode_get_string(args->dnode,
6268 "../../../interface");
6269
6270 peer = bgp_unnumbered_neighbor_peer_lookup(
6271 bgp, peer_str, args->errmsg, args->errmsg_len);
6272
6273 activate = yang_dnode_get_bool(args->dnode, NULL);
6274
6275 if (activate)
6276 ret = peer_activate(peer, afi, safi);
6277 else
6278 ret = peer_deactivate(peer, afi, safi);
6279
6280 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6281 < 0)
6282 return NB_ERR_INCONSISTENCY;
6283
6284 break;
6285 }
6286
6287 return NB_OK;
6288 }
6289
6290 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_enabled_destroy(
6291 struct nb_cb_destroy_args *args)
6292 {
6293 switch (args->event) {
6294 case NB_EV_VALIDATE:
6295 case NB_EV_PREPARE:
6296 case NB_EV_ABORT:
6297 case NB_EV_APPLY:
6298 /* TODO: implement me. */
6299 break;
6300 }
6301
6302 return NB_OK;
6303 }
6304
6305 static struct peer *bgp_peer_group_peer_lookup(struct bgp *bgp,
6306 const char *peer_str)
6307 {
6308 struct peer_group *group = NULL;
6309
6310 group = peer_group_lookup(bgp, peer_str);
6311
6312 if (group)
6313 return group->conf;
6314
6315 return NULL;
6316 }
6317
6318 /*
6319 * XPath:
6320 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group
6321 */
6322 int bgp_peer_groups_peer_group_create(struct nb_cb_create_args *args)
6323 {
6324 const char *peer_grp_str;
6325 struct peer *peer;
6326 struct peer_group *group;
6327 struct bgp *bgp;
6328 char unnbr_xpath[XPATH_MAXLEN];
6329 const struct lyd_node *bgp_dnode;
6330
6331 switch (args->event) {
6332 case NB_EV_VALIDATE:
6333 peer_grp_str =
6334 yang_dnode_get_string(args->dnode, "./peer-group-name");
6335 bgp_dnode = yang_dnode_get_parent(args->dnode, "bgp");
6336 snprintf(unnbr_xpath, sizeof(unnbr_xpath),
6337 FRR_BGP_NEIGHBOR_UNNUM_XPATH, peer_grp_str, "");
6338
6339 if (yang_dnode_exists(bgp_dnode, unnbr_xpath)) {
6340 snprintf(args->errmsg, args->errmsg_len,
6341 "Name conflict with interface: %s",
6342 peer_grp_str);
6343 return NB_ERR_VALIDATION;
6344 }
6345
6346 break;
6347 case NB_EV_PREPARE:
6348 case NB_EV_ABORT:
6349 return NB_OK;
6350 case NB_EV_APPLY:
6351 bgp = nb_running_get_entry(args->dnode, NULL, true);
6352 peer_grp_str =
6353 yang_dnode_get_string(args->dnode, "./peer-group-name");
6354 peer = peer_lookup_by_conf_if(bgp, peer_grp_str);
6355 if (peer) {
6356 snprintf(args->errmsg, args->errmsg_len,
6357 "Name conflict with interface:");
6358 return NB_ERR_INCONSISTENCY;
6359 }
6360
6361 group = peer_group_get(bgp, peer_grp_str);
6362 if (!group) {
6363 snprintf(args->errmsg, args->errmsg_len,
6364 "BGP failed to find or create peer-group");
6365 return NB_ERR_INCONSISTENCY;
6366 }
6367 break;
6368 }
6369
6370 return NB_OK;
6371 }
6372
6373 int bgp_peer_groups_peer_group_destroy(struct nb_cb_destroy_args *args)
6374 {
6375 const char *peer_grp_str;
6376 struct peer_group *group;
6377 struct bgp *bgp;
6378
6379 switch (args->event) {
6380 case NB_EV_VALIDATE:
6381 case NB_EV_PREPARE:
6382 case NB_EV_ABORT:
6383 return NB_OK;
6384 case NB_EV_APPLY:
6385 bgp = nb_running_get_entry(args->dnode, NULL, true);
6386 peer_grp_str =
6387 yang_dnode_get_string(args->dnode, "./peer-group-name");
6388
6389 group = peer_group_lookup(bgp, peer_grp_str);
6390 if (group) {
6391 peer_group_notify_unconfig(group);
6392 peer_group_delete(group);
6393 }
6394
6395 break;
6396 }
6397
6398 return NB_OK;
6399 }
6400
6401 /*
6402 * XPath:
6403 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ipv4-listen-range
6404 */
6405 int bgp_peer_groups_peer_group_ipv4_listen_range_create(
6406 struct nb_cb_create_args *args)
6407 {
6408 switch (args->event) {
6409 case NB_EV_VALIDATE:
6410 case NB_EV_PREPARE:
6411 case NB_EV_ABORT:
6412 case NB_EV_APPLY:
6413 /* TODO: implement me. */
6414 break;
6415 }
6416
6417 return NB_OK;
6418 }
6419
6420 int bgp_peer_groups_peer_group_ipv4_listen_range_destroy(
6421 struct nb_cb_destroy_args *args)
6422 {
6423 switch (args->event) {
6424 case NB_EV_VALIDATE:
6425 case NB_EV_PREPARE:
6426 case NB_EV_ABORT:
6427 case NB_EV_APPLY:
6428 /* TODO: implement me. */
6429 break;
6430 }
6431
6432 return NB_OK;
6433 }
6434
6435 /*
6436 * XPath:
6437 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ipv6-listen-range
6438 */
6439 int bgp_peer_groups_peer_group_ipv6_listen_range_create(
6440 struct nb_cb_create_args *args)
6441 {
6442 switch (args->event) {
6443 case NB_EV_VALIDATE:
6444 case NB_EV_PREPARE:
6445 case NB_EV_ABORT:
6446 case NB_EV_APPLY:
6447 /* TODO: implement me. */
6448 break;
6449 }
6450
6451 return NB_OK;
6452 }
6453
6454 int bgp_peer_groups_peer_group_ipv6_listen_range_destroy(
6455 struct nb_cb_destroy_args *args)
6456 {
6457 switch (args->event) {
6458 case NB_EV_VALIDATE:
6459 case NB_EV_PREPARE:
6460 case NB_EV_ABORT:
6461 case NB_EV_APPLY:
6462 /* TODO: implement me. */
6463 break;
6464 }
6465
6466 return NB_OK;
6467 }
6468
6469 /*
6470 * XPath:
6471 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/password
6472 */
6473 int bgp_peer_groups_peer_group_password_modify(struct nb_cb_modify_args *args)
6474 {
6475 struct bgp *bgp;
6476 const char *peer_str;
6477 const char *passwrd_str;
6478 struct peer *peer = NULL;
6479
6480 switch (args->event) {
6481 case NB_EV_VALIDATE:
6482 case NB_EV_PREPARE:
6483 case NB_EV_ABORT:
6484 return NB_OK;
6485 case NB_EV_APPLY:
6486 bgp = nb_running_get_entry(args->dnode, NULL, true);
6487 peer_str = yang_dnode_get_string(args->dnode,
6488 "../peer-group-name");
6489 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6490
6491 passwrd_str = yang_dnode_get_string(args->dnode, NULL);
6492 peer_password_set(peer, passwrd_str);
6493
6494 break;
6495 }
6496
6497 return NB_OK;
6498 }
6499
6500 int bgp_peer_groups_peer_group_password_destroy(struct nb_cb_destroy_args *args)
6501 {
6502 struct bgp *bgp;
6503 const char *peer_str;
6504 struct peer *peer = NULL;
6505
6506 switch (args->event) {
6507 case NB_EV_VALIDATE:
6508 case NB_EV_PREPARE:
6509 case NB_EV_ABORT:
6510 return NB_OK;
6511 case NB_EV_APPLY:
6512 bgp = nb_running_get_entry(args->dnode, NULL, true);
6513 peer_str = yang_dnode_get_string(args->dnode,
6514 "../peer-group-name");
6515 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6516
6517 peer_password_unset(peer);
6518
6519 break;
6520 }
6521
6522 return NB_OK;
6523 }
6524
6525 /*
6526 * XPath:
6527 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ttl-security
6528 */
6529 int bgp_peer_groups_peer_group_ttl_security_modify(
6530 struct nb_cb_modify_args *args)
6531 {
6532 struct bgp *bgp;
6533 const char *peer_str;
6534 struct peer *peer;
6535 int ret;
6536 uint8_t gtsm_hops;
6537
6538 switch (args->event) {
6539 case NB_EV_VALIDATE:
6540 case NB_EV_PREPARE:
6541 case NB_EV_ABORT:
6542 return NB_OK;
6543 case NB_EV_APPLY:
6544 bgp = nb_running_get_entry(args->dnode, NULL, true);
6545 peer_str = yang_dnode_get_string(args->dnode,
6546 "../peer-group-name");
6547 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6548 if (!peer)
6549 return NB_ERR_INCONSISTENCY;
6550
6551 gtsm_hops = yang_dnode_get_uint8(args->dnode, NULL);
6552 /*
6553 * If 'neighbor swpX', then this is for directly connected
6554 * peers, we should not accept a ttl-security hops value greater
6555 * than 1.
6556 */
6557 if (peer->conf_if && (gtsm_hops > BGP_GTSM_HOPS_CONNECTED)) {
6558 snprintf(
6559 args->errmsg, args->errmsg_len,
6560 "%d is directly connected peer, hops cannot exceed 1\n",
6561 gtsm_hops);
6562 return NB_ERR_INCONSISTENCY;
6563 }
6564
6565 ret = peer_ttl_security_hops_set(peer, gtsm_hops);
6566 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6567 < 0)
6568 return NB_ERR_INCONSISTENCY;
6569
6570 break;
6571 }
6572
6573 return NB_OK;
6574 }
6575
6576 int bgp_peer_groups_peer_group_ttl_security_destroy(
6577 struct nb_cb_destroy_args *args)
6578 {
6579 struct bgp *bgp;
6580 const char *peer_str;
6581 struct peer *peer;
6582 int ret;
6583
6584 switch (args->event) {
6585 case NB_EV_VALIDATE:
6586 case NB_EV_PREPARE:
6587 case NB_EV_ABORT:
6588 return NB_OK;
6589 case NB_EV_APPLY:
6590 bgp = nb_running_get_entry(args->dnode, NULL, true);
6591 peer_str = yang_dnode_get_string(args->dnode,
6592 "../peer-group-name");
6593 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6594 if (!peer)
6595 return NB_ERR_INCONSISTENCY;
6596
6597 ret = peer_ttl_security_hops_unset(peer);
6598 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
6599 < 0)
6600 return NB_ERR_INCONSISTENCY;
6601
6602 break;
6603 }
6604
6605 return NB_OK;
6606 }
6607
6608 /*
6609 * XPath:
6610 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/solo
6611 */
6612 int bgp_peer_groups_peer_group_solo_modify(struct nb_cb_modify_args *args)
6613 {
6614 switch (args->event) {
6615 case NB_EV_VALIDATE:
6616 case NB_EV_PREPARE:
6617 case NB_EV_ABORT:
6618 case NB_EV_APPLY:
6619 /* TODO: implement me. */
6620 break;
6621 }
6622
6623 return NB_OK;
6624 }
6625
6626 /*
6627 * XPath:
6628 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/enforce-first-as
6629 */
6630 int bgp_peer_groups_peer_group_enforce_first_as_modify(
6631 struct nb_cb_modify_args *args)
6632 {
6633 struct bgp *bgp;
6634 const char *peer_str;
6635 struct peer *peer;
6636 bool enable = false;
6637
6638 switch (args->event) {
6639 case NB_EV_VALIDATE:
6640 case NB_EV_PREPARE:
6641 case NB_EV_ABORT:
6642 return NB_OK;
6643 case NB_EV_APPLY:
6644 bgp = nb_running_get_entry(args->dnode, NULL, true);
6645 peer_str = yang_dnode_get_string(args->dnode,
6646 "../peer-group-name");
6647 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6648
6649 enable = yang_dnode_get_bool(args->dnode, NULL);
6650
6651 peer_flag_modify_nb(bgp, peer_str, peer,
6652 PEER_FLAG_ENFORCE_FIRST_AS, enable,
6653 args->errmsg, args->errmsg_len);
6654
6655 break;
6656 }
6657
6658 return NB_OK;
6659 }
6660
6661 /*
6662 * XPath:
6663 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/description
6664 */
6665 int bgp_peer_groups_peer_group_description_modify(
6666 struct nb_cb_modify_args *args)
6667 {
6668 struct bgp *bgp;
6669 const char *peer_str;
6670 const char *desc_str;
6671 struct peer *peer = NULL;
6672
6673 switch (args->event) {
6674 case NB_EV_VALIDATE:
6675 case NB_EV_PREPARE:
6676 case NB_EV_ABORT:
6677 return NB_OK;
6678 case NB_EV_APPLY:
6679 bgp = nb_running_get_entry(args->dnode, NULL, true);
6680 peer_str = yang_dnode_get_string(args->dnode,
6681 "../peer-group-name");
6682 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6683
6684 desc_str = yang_dnode_get_string(args->dnode, NULL);
6685
6686 peer_description_set(peer, desc_str);
6687
6688 break;
6689 }
6690
6691 return NB_OK;
6692 }
6693
6694 int bgp_peer_groups_peer_group_description_destroy(
6695 struct nb_cb_destroy_args *args)
6696 {
6697 struct bgp *bgp;
6698 const char *peer_str;
6699 struct peer *peer = NULL;
6700
6701 switch (args->event) {
6702 case NB_EV_VALIDATE:
6703 case NB_EV_PREPARE:
6704 case NB_EV_ABORT:
6705 return NB_OK;
6706 case NB_EV_APPLY:
6707 bgp = nb_running_get_entry(args->dnode, NULL, true);
6708 peer_str = yang_dnode_get_string(args->dnode,
6709 "../peer-group-name");
6710 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6711 if (!peer)
6712 return NB_ERR_INCONSISTENCY;
6713
6714 peer_description_unset(peer);
6715
6716 break;
6717 }
6718
6719 return NB_OK;
6720 }
6721
6722 /*
6723 * XPath:
6724 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/passive-mode
6725 */
6726 int bgp_peer_groups_peer_group_passive_mode_modify(
6727 struct nb_cb_modify_args *args)
6728 {
6729 struct bgp *bgp;
6730 const char *peer_str;
6731 struct peer *peer;
6732 bool set = false;
6733
6734 switch (args->event) {
6735 case NB_EV_VALIDATE:
6736 case NB_EV_PREPARE:
6737 case NB_EV_ABORT:
6738 return NB_OK;
6739 case NB_EV_APPLY:
6740 bgp = nb_running_get_entry(args->dnode, NULL, true);
6741 peer_str = yang_dnode_get_string(args->dnode,
6742 "../peer-group-name");
6743 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6744 if (!peer)
6745 return NB_ERR_INCONSISTENCY;
6746
6747 set = yang_dnode_get_bool(args->dnode, NULL);
6748
6749 if (peer_flag_modify_nb(bgp, peer_str, peer, PEER_FLAG_PASSIVE,
6750 set, args->errmsg, args->errmsg_len)
6751 < 0)
6752 return NB_ERR_INCONSISTENCY;
6753
6754 break;
6755 }
6756
6757 return NB_OK;
6758 }
6759
6760 /*
6761 * XPath:
6762 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/capability-options/dynamic-capability
6763 */
6764 int bgp_peer_groups_peer_group_capability_options_dynamic_capability_modify(
6765 struct nb_cb_modify_args *args)
6766 {
6767 struct bgp *bgp;
6768 const char *peer_str;
6769 struct peer *peer;
6770 bool enable = false;
6771
6772 switch (args->event) {
6773 case NB_EV_VALIDATE:
6774 case NB_EV_PREPARE:
6775 case NB_EV_ABORT:
6776 return NB_OK;
6777 case NB_EV_APPLY:
6778 bgp = nb_running_get_entry(args->dnode, NULL, true);
6779 peer_str = yang_dnode_get_string(args->dnode,
6780 "../../peer-group-name");
6781 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6782 if (!peer)
6783 return NB_ERR_INCONSISTENCY;
6784
6785 enable = yang_dnode_get_bool(args->dnode, NULL);
6786
6787 peer_flag_modify_nb(bgp, peer_str, peer,
6788 PEER_FLAG_DYNAMIC_CAPABILITY, enable,
6789 args->errmsg, args->errmsg_len);
6790
6791 break;
6792 }
6793
6794 return NB_OK;
6795 }
6796
6797 /*
6798 * XPath:
6799 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/capability-options/strict-capability
6800 */
6801 int bgp_peer_groups_peer_group_capability_options_strict_capability_modify(
6802 struct nb_cb_modify_args *args)
6803 {
6804 struct bgp *bgp;
6805 const char *peer_str;
6806 struct peer *peer;
6807 bool enable = false;
6808
6809 switch (args->event) {
6810 case NB_EV_VALIDATE:
6811 case NB_EV_PREPARE:
6812 case NB_EV_ABORT:
6813 return NB_OK;
6814 case NB_EV_APPLY:
6815 bgp = nb_running_get_entry(args->dnode, NULL, true);
6816 peer_str = yang_dnode_get_string(args->dnode,
6817 "../../peer-group-name");
6818 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6819 if (!peer)
6820 return NB_ERR_INCONSISTENCY;
6821
6822 enable = yang_dnode_get_bool(args->dnode, NULL);
6823
6824 peer_flag_modify_nb(bgp, peer_str, peer,
6825 PEER_FLAG_STRICT_CAP_MATCH, enable,
6826 args->errmsg, args->errmsg_len);
6827
6828 break;
6829 }
6830
6831 return NB_OK;
6832 }
6833
6834 /*
6835 * XPath:
6836 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/capability-options/extended-nexthop-capability
6837 */
6838 int bgp_peer_groups_peer_group_capability_options_extended_nexthop_capability_modify(
6839 struct nb_cb_modify_args *args)
6840 {
6841 struct bgp *bgp;
6842 const char *peer_str;
6843 struct peer *peer;
6844 bool enable = false;
6845
6846 switch (args->event) {
6847 case NB_EV_VALIDATE:
6848 case NB_EV_PREPARE:
6849 case NB_EV_ABORT:
6850 return NB_OK;
6851 case NB_EV_APPLY:
6852 bgp = nb_running_get_entry(args->dnode, NULL, true);
6853 peer_str = yang_dnode_get_string(args->dnode,
6854 "../../peer-group-name");
6855 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6856 if (!peer)
6857 return NB_ERR_INCONSISTENCY;
6858
6859 enable = yang_dnode_get_bool(args->dnode, NULL);
6860
6861 peer_flag_modify_nb(bgp, peer_str, peer,
6862 PEER_FLAG_CAPABILITY_ENHE, enable,
6863 args->errmsg, args->errmsg_len);
6864
6865 break;
6866 }
6867
6868 return NB_OK;
6869 }
6870
6871 /*
6872 * XPath:
6873 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/capability-options/capability-negotiate
6874 */
6875 int bgp_peer_groups_peer_group_capability_options_capability_negotiate_modify(
6876 struct nb_cb_modify_args *args)
6877 {
6878 switch (args->event) {
6879 case NB_EV_VALIDATE:
6880 case NB_EV_PREPARE:
6881 case NB_EV_ABORT:
6882 case NB_EV_APPLY:
6883 /* TODO: implement me. */
6884 break;
6885 }
6886
6887 return NB_OK;
6888 }
6889
6890 /*
6891 * XPath:
6892 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/capability-options/override-capability
6893 */
6894 int bgp_peer_groups_peer_group_capability_options_override_capability_modify(
6895 struct nb_cb_modify_args *args)
6896 {
6897 struct bgp *bgp;
6898 const char *peer_str;
6899 struct peer *peer;
6900 bool enable = false;
6901
6902 switch (args->event) {
6903 case NB_EV_VALIDATE:
6904 case NB_EV_PREPARE:
6905 case NB_EV_ABORT:
6906 return NB_OK;
6907 case NB_EV_APPLY:
6908 bgp = nb_running_get_entry(args->dnode, NULL, true);
6909 peer_str = yang_dnode_get_string(args->dnode,
6910 "../../peer-group-name");
6911 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6912 if (!peer)
6913 return NB_ERR_INCONSISTENCY;
6914
6915 enable = yang_dnode_get_bool(args->dnode, NULL);
6916
6917 peer_flag_modify_nb(bgp, peer_str, peer,
6918 PEER_FLAG_OVERRIDE_CAPABILITY, enable,
6919 args->errmsg, args->errmsg_len);
6920
6921 break;
6922 }
6923
6924 return NB_OK;
6925 }
6926
6927 /*
6928 * XPath:
6929 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/update-source/ip
6930 */
6931 int bgp_peer_groups_peer_group_update_source_ip_modify(
6932 struct nb_cb_modify_args *args)
6933 {
6934 struct bgp *bgp;
6935 const char *peer_str, *source_str;
6936 struct peer *peer;
6937 union sockunion su;
6938
6939 switch (args->event) {
6940 case NB_EV_VALIDATE:
6941 case NB_EV_PREPARE:
6942 case NB_EV_ABORT:
6943 return NB_OK;
6944 case NB_EV_APPLY:
6945 bgp = nb_running_get_entry(args->dnode, NULL, true);
6946 peer_str = yang_dnode_get_string(args->dnode,
6947 "../../peer-group-name");
6948 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6949 if (!peer)
6950 return NB_ERR_INCONSISTENCY;
6951
6952 source_str = yang_dnode_get_string(args->dnode, NULL);
6953
6954 str2sockunion(source_str, &su);
6955 peer_update_source_addr_set(peer, &su);
6956
6957 break;
6958 }
6959
6960 return NB_OK;
6961 }
6962
6963 int bgp_peer_groups_peer_group_update_source_ip_destroy(
6964 struct nb_cb_destroy_args *args)
6965 {
6966 struct bgp *bgp;
6967 const char *peer_str;
6968 struct peer *peer;
6969
6970 switch (args->event) {
6971 case NB_EV_VALIDATE:
6972 case NB_EV_PREPARE:
6973 case NB_EV_ABORT:
6974 return NB_OK;
6975 case NB_EV_APPLY:
6976 bgp = nb_running_get_entry(args->dnode, NULL, true);
6977 peer_str = yang_dnode_get_string(args->dnode,
6978 "../../peer-group-name");
6979 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
6980 if (!peer)
6981 return NB_ERR_INCONSISTENCY;
6982
6983 peer_update_source_unset(peer);
6984
6985 break;
6986 }
6987
6988 return NB_OK;
6989 }
6990
6991 /*
6992 * XPath:
6993 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/update-source/interface
6994 */
6995 int bgp_peer_groups_peer_group_update_source_interface_modify(
6996 struct nb_cb_modify_args *args)
6997 {
6998 struct bgp *bgp;
6999 const char *peer_str, *source_str;
7000 struct peer *peer;
7001 struct prefix p;
7002
7003 switch (args->event) {
7004 case NB_EV_VALIDATE:
7005 source_str = yang_dnode_get_string(args->dnode, NULL);
7006 if (str2prefix(source_str, &p)) {
7007 snprintf(args->errmsg, args->errmsg_len,
7008 "Invalid update-source, remove prefix length");
7009 return NB_ERR_VALIDATION;
7010 }
7011 break;
7012 case NB_EV_PREPARE:
7013 case NB_EV_ABORT:
7014 return NB_OK;
7015 case NB_EV_APPLY:
7016 bgp = nb_running_get_entry(args->dnode, NULL, true);
7017 peer_str = yang_dnode_get_string(args->dnode,
7018 "../../peer-group-name");
7019 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7020 if (!peer)
7021 return NB_ERR_INCONSISTENCY;
7022
7023 source_str = yang_dnode_get_string(args->dnode, NULL);
7024
7025 peer_update_source_if_set(peer, source_str);
7026
7027 break;
7028 }
7029
7030 return NB_OK;
7031 }
7032
7033 int bgp_peer_groups_peer_group_update_source_interface_destroy(
7034 struct nb_cb_destroy_args *args)
7035 {
7036 struct bgp *bgp;
7037 const char *peer_str;
7038 struct peer *peer;
7039
7040 switch (args->event) {
7041 case NB_EV_VALIDATE:
7042 case NB_EV_PREPARE:
7043 case NB_EV_ABORT:
7044 return NB_OK;
7045 case NB_EV_APPLY:
7046 bgp = nb_running_get_entry(args->dnode, NULL, true);
7047 peer_str = yang_dnode_get_string(args->dnode,
7048 "../../peer-group-name");
7049 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7050 if (!peer)
7051 return NB_ERR_INCONSISTENCY;
7052
7053 peer_update_source_unset(peer);
7054
7055 break;
7056 }
7057
7058 return NB_OK;
7059 }
7060
7061 /*
7062 * XPath:
7063 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/neighbor-remote-as
7064 */
7065 void bgp_peer_group_neighbor_remote_as_apply_finish(
7066 struct nb_cb_apply_finish_args *args)
7067 {
7068 struct bgp *bgp;
7069 const char *peer_str;
7070 int as_type = AS_SPECIFIED;
7071 int ret;
7072 as_t as = 0;
7073
7074 bgp = nb_running_get_entry(args->dnode, NULL, true);
7075 peer_str = yang_dnode_get_string(args->dnode, "../peer-group-name");
7076 as_type = yang_dnode_get_enum(args->dnode, "./remote-as-type");
7077 if (yang_dnode_exists(args->dnode, "./remote-as"))
7078 as = yang_dnode_get_uint32(args->dnode, "./remote-as");
7079
7080 ret = peer_group_remote_as(bgp, peer_str, &as, as_type);
7081 if (ret < 0) {
7082 snprintf(args->errmsg, args->errmsg_len,
7083 "Create the peer-group or interface first");
7084 return;
7085 }
7086 }
7087
7088 /*
7089 * XPath:
7090 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/neighbor-remote-as/remote-as-type
7091 */
7092 int bgp_peer_groups_peer_group_neighbor_remote_as_remote_as_type_modify(
7093 struct nb_cb_modify_args *args)
7094 {
7095 switch (args->event) {
7096 case NB_EV_VALIDATE:
7097 case NB_EV_PREPARE:
7098 case NB_EV_ABORT:
7099 case NB_EV_APPLY:
7100 /* TODO: implement me. */
7101 break;
7102 }
7103
7104 return NB_OK;
7105 }
7106
7107 int bgp_peer_groups_peer_group_neighbor_remote_as_remote_as_type_destroy(
7108 struct nb_cb_destroy_args *args)
7109 {
7110 struct bgp *bgp;
7111 const char *peer_str;
7112 struct peer_group *group;
7113
7114 switch (args->event) {
7115 case NB_EV_VALIDATE:
7116 case NB_EV_PREPARE:
7117 case NB_EV_ABORT:
7118 return NB_OK;
7119 case NB_EV_APPLY:
7120 bgp = nb_running_get_entry(args->dnode, NULL, true);
7121 peer_str = yang_dnode_get_string(args->dnode,
7122 "../../peer-group-name");
7123 group = peer_group_lookup(bgp, peer_str);
7124 if (group)
7125 peer_group_remote_as_delete(group);
7126
7127 break;
7128 }
7129
7130 return NB_OK;
7131 }
7132
7133 /*
7134 * XPath:
7135 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/neighbor-remote-as/remote-as
7136 */
7137 int bgp_peer_groups_peer_group_neighbor_remote_as_remote_as_modify(
7138 struct nb_cb_modify_args *args)
7139 {
7140 switch (args->event) {
7141 case NB_EV_VALIDATE:
7142 case NB_EV_PREPARE:
7143 case NB_EV_ABORT:
7144 case NB_EV_APPLY:
7145 /* TODO: implement me. */
7146 break;
7147 }
7148
7149 return NB_OK;
7150 }
7151
7152 int bgp_peer_groups_peer_group_neighbor_remote_as_remote_as_destroy(
7153 struct nb_cb_destroy_args *args)
7154 {
7155 switch (args->event) {
7156 case NB_EV_VALIDATE:
7157 case NB_EV_PREPARE:
7158 case NB_EV_ABORT:
7159 case NB_EV_APPLY:
7160 /* TODO: implement me. */
7161 break;
7162 }
7163
7164 return NB_OK;
7165 }
7166
7167 /*
7168 * XPath:
7169 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ebgp-multihop/enabled
7170 */
7171 int bgp_peer_groups_peer_group_ebgp_multihop_enabled_modify(
7172 struct nb_cb_modify_args *args)
7173 {
7174 struct bgp *bgp;
7175 const char *peer_str;
7176 struct peer *peer;
7177 bool set = false;
7178 int ret = 0;
7179 uint8_t ttl = MAXTTL;
7180
7181 switch (args->event) {
7182 case NB_EV_VALIDATE:
7183 case NB_EV_PREPARE:
7184 case NB_EV_ABORT:
7185 return NB_OK;
7186 case NB_EV_APPLY:
7187 bgp = nb_running_get_entry(args->dnode, NULL, true);
7188 peer_str = yang_dnode_get_string(args->dnode,
7189 "../../peer-group-name");
7190 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7191 if (!peer)
7192 return NB_ERR_INCONSISTENCY;
7193
7194 if (peer->conf_if) {
7195 ret = BGP_ERR_INVALID_FOR_DIRECT_PEER;
7196 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len,
7197 ret);
7198 return NB_ERR_INCONSISTENCY;
7199 }
7200
7201 set = yang_dnode_get_bool(args->dnode, NULL);
7202
7203 if (set)
7204 ret = peer_ebgp_multihop_set(peer, ttl);
7205 else
7206 ret = peer_ebgp_multihop_unset(peer);
7207
7208 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7209 < 0)
7210 return NB_ERR_INCONSISTENCY;
7211
7212 break;
7213 }
7214
7215 return NB_OK;
7216 }
7217
7218 int bgp_peer_groups_peer_group_ebgp_multihop_enabled_destroy(
7219 struct nb_cb_destroy_args *args)
7220 {
7221 struct bgp *bgp;
7222 const char *peer_str;
7223 struct peer *peer;
7224 int ret = 0;
7225
7226 switch (args->event) {
7227 case NB_EV_VALIDATE:
7228 case NB_EV_PREPARE:
7229 case NB_EV_ABORT:
7230 return NB_OK;
7231 case NB_EV_APPLY:
7232 bgp = nb_running_get_entry(args->dnode, NULL, true);
7233 peer_str = yang_dnode_get_string(args->dnode,
7234 "../../peer-group-name");
7235 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7236 if (!peer)
7237 return NB_ERR_INCONSISTENCY;
7238
7239 ret = peer_ebgp_multihop_unset(peer);
7240
7241 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7242 < 0)
7243 return NB_ERR_INCONSISTENCY;
7244
7245 break;
7246 }
7247
7248 return NB_OK;
7249 }
7250
7251 /*
7252 * XPath:
7253 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ebgp-multihop/multihop-ttl
7254 */
7255 int bgp_peer_groups_peer_group_ebgp_multihop_multihop_ttl_modify(
7256 struct nb_cb_modify_args *args)
7257 {
7258 struct bgp *bgp;
7259 const char *peer_str;
7260 struct peer *peer;
7261 int ret = 0;
7262 uint8_t ttl = MAXTTL;
7263
7264 switch (args->event) {
7265 case NB_EV_VALIDATE:
7266 case NB_EV_PREPARE:
7267 case NB_EV_ABORT:
7268 return NB_OK;
7269 case NB_EV_APPLY:
7270 bgp = nb_running_get_entry(args->dnode, NULL, true);
7271 peer_str = yang_dnode_get_string(args->dnode,
7272 "../../peer-group-name");
7273 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7274 if (!peer)
7275 return NB_ERR_INCONSISTENCY;
7276
7277 if (peer->conf_if) {
7278 ret = BGP_ERR_INVALID_FOR_DIRECT_PEER;
7279 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len,
7280 ret);
7281 return NB_ERR_INCONSISTENCY;
7282 }
7283
7284 ttl = yang_dnode_get_uint8(args->dnode, NULL);
7285
7286 ret = peer_ebgp_multihop_set(peer, ttl);
7287
7288 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7289 < 0)
7290 return NB_ERR_INCONSISTENCY;
7291
7292 break;
7293 }
7294
7295 return NB_OK;
7296 }
7297
7298 int bgp_peer_groups_peer_group_ebgp_multihop_multihop_ttl_destroy(
7299 struct nb_cb_destroy_args *args)
7300 {
7301 struct bgp *bgp;
7302 const char *peer_str;
7303 struct peer *peer;
7304 int ret = 0;
7305
7306 switch (args->event) {
7307 case NB_EV_VALIDATE:
7308 case NB_EV_PREPARE:
7309 case NB_EV_ABORT:
7310 return NB_OK;
7311 case NB_EV_APPLY:
7312 bgp = nb_running_get_entry(args->dnode, NULL, true);
7313 peer_str = yang_dnode_get_string(args->dnode,
7314 "../../peer-group-name");
7315 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7316 if (!peer)
7317 return NB_ERR_INCONSISTENCY;
7318
7319 ret = peer_ebgp_multihop_unset(peer);
7320
7321 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7322 < 0)
7323 return NB_ERR_INCONSISTENCY;
7324
7325 break;
7326 }
7327
7328 return NB_OK;
7329 }
7330
7331 /*
7332 * XPath:
7333 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/ebgp-multihop/disable-connected-check
7334 */
7335 int bgp_peer_groups_peer_group_ebgp_multihop_disable_connected_check_modify(
7336 struct nb_cb_modify_args *args)
7337 {
7338 struct bgp *bgp;
7339 const char *peer_str;
7340 struct peer *peer;
7341 bool set = false;
7342
7343 switch (args->event) {
7344 case NB_EV_VALIDATE:
7345 case NB_EV_PREPARE:
7346 case NB_EV_ABORT:
7347 return NB_OK;
7348 case NB_EV_APPLY:
7349 bgp = nb_running_get_entry(args->dnode, NULL, true);
7350 peer_str = yang_dnode_get_string(args->dnode,
7351 "../../peer-group-name");
7352 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7353 if (!peer)
7354 return NB_ERR_INCONSISTENCY;
7355
7356 set = yang_dnode_get_bool(args->dnode, NULL);
7357
7358 if (peer_flag_modify_nb(bgp, peer_str, peer,
7359 PEER_FLAG_DISABLE_CONNECTED_CHECK, set,
7360 args->errmsg, args->errmsg_len)
7361 < 0)
7362 return NB_ERR_INCONSISTENCY;
7363
7364 break;
7365 }
7366
7367 return NB_OK;
7368 }
7369
7370 /*
7371 * XPath:
7372 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/local-as
7373 */
7374 void bgp_peer_groups_peer_group_local_as_apply_finish(
7375 struct nb_cb_apply_finish_args *args)
7376 {
7377 struct bgp *bgp;
7378 int ret;
7379 as_t as = 0;
7380 const char *peer_str;
7381 struct peer *peer = NULL;
7382 bool no_prepend = false;
7383 bool replace_as = false;
7384
7385 bgp = nb_running_get_entry(args->dnode, NULL, true);
7386 peer_str = yang_dnode_get_string(args->dnode, "../peer-group-name");
7387
7388 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7389
7390 if (yang_dnode_exists(args->dnode, "./local-as"))
7391 as = yang_dnode_get_uint32(args->dnode, "./local-as");
7392
7393 if (yang_dnode_exists(args->dnode, "./local-as"))
7394 as = yang_dnode_get_uint32(args->dnode, "./local-as");
7395 if (yang_dnode_exists(args->dnode, "./no-prepend"))
7396 no_prepend = yang_dnode_get_bool(args->dnode, "./no-prepend");
7397 if (yang_dnode_exists(args->dnode, "./no-replace-as"))
7398 replace_as =
7399 yang_dnode_get_bool(args->dnode, "./no-replace-as");
7400
7401 if (!as && !no_prepend && !replace_as)
7402 ret = peer_local_as_unset(peer);
7403 else
7404 ret = peer_local_as_set(peer, as, no_prepend, replace_as);
7405
7406 bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
7407 }
7408
7409 /*
7410 * XPath:
7411 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/local-as/local-as
7412 */
7413 int bgp_peer_groups_peer_group_local_as_local_as_modify(
7414 struct nb_cb_modify_args *args)
7415 {
7416 switch (args->event) {
7417 case NB_EV_VALIDATE:
7418 case NB_EV_PREPARE:
7419 case NB_EV_ABORT:
7420 case NB_EV_APPLY:
7421 /* TODO: implement me. */
7422 break;
7423 }
7424
7425 return NB_OK;
7426 }
7427
7428 int bgp_peer_groups_peer_group_local_as_local_as_destroy(
7429 struct nb_cb_destroy_args *args)
7430 {
7431 struct bgp *bgp;
7432 const char *peer_str;
7433 struct peer *peer;
7434 int ret;
7435
7436 switch (args->event) {
7437 case NB_EV_VALIDATE:
7438 case NB_EV_PREPARE:
7439 case NB_EV_ABORT:
7440 return NB_OK;
7441 case NB_EV_APPLY:
7442 bgp = nb_running_get_entry(args->dnode, NULL, true);
7443 peer_str = yang_dnode_get_string(args->dnode,
7444 "../../peer-group-name");
7445 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7446
7447 ret = peer_local_as_unset(peer);
7448 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7449 < 0)
7450 return NB_ERR_INCONSISTENCY;
7451
7452 break;
7453 }
7454
7455 return NB_OK;
7456 }
7457
7458 /*
7459 * XPath:
7460 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/local-as/no-prepend
7461 */
7462 int bgp_peer_groups_peer_group_local_as_no_prepend_modify(
7463 struct nb_cb_modify_args *args)
7464 {
7465 switch (args->event) {
7466 case NB_EV_VALIDATE:
7467 case NB_EV_PREPARE:
7468 case NB_EV_ABORT:
7469 case NB_EV_APPLY:
7470 /* TODO: implement me. */
7471 break;
7472 }
7473
7474 return NB_OK;
7475 }
7476
7477 int bgp_peer_groups_peer_group_local_as_no_prepend_destroy(
7478 struct nb_cb_destroy_args *args)
7479 {
7480 switch (args->event) {
7481 case NB_EV_VALIDATE:
7482 case NB_EV_PREPARE:
7483 case NB_EV_ABORT:
7484 case NB_EV_APPLY:
7485 /* TODO: implement me. */
7486 break;
7487 }
7488
7489 return NB_OK;
7490 }
7491
7492 /*
7493 * XPath:
7494 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/local-as/no-replace-as
7495 */
7496 int bgp_peer_groups_peer_group_local_as_no_replace_as_modify(
7497 struct nb_cb_modify_args *args)
7498 {
7499 switch (args->event) {
7500 case NB_EV_VALIDATE:
7501 case NB_EV_PREPARE:
7502 case NB_EV_ABORT:
7503 case NB_EV_APPLY:
7504 /* TODO: implement me. */
7505 break;
7506 }
7507
7508 return NB_OK;
7509 }
7510
7511 /*
7512 * XPath:
7513 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/enable
7514 */
7515 int bgp_peer_groups_peer_group_bfd_options_enable_modify(
7516 struct nb_cb_modify_args *args)
7517 {
7518 switch (args->event) {
7519 case NB_EV_VALIDATE:
7520 case NB_EV_PREPARE:
7521 case NB_EV_ABORT:
7522 case NB_EV_APPLY:
7523 /* TODO: implement me. */
7524 break;
7525 }
7526
7527 return NB_OK;
7528 }
7529
7530 /*
7531 * XPath:
7532 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/detect-multiplier
7533 */
7534 int bgp_peer_groups_peer_group_bfd_options_detect_multiplier_modify(
7535 struct nb_cb_modify_args *args)
7536 {
7537 switch (args->event) {
7538 case NB_EV_VALIDATE:
7539 case NB_EV_PREPARE:
7540 case NB_EV_ABORT:
7541 case NB_EV_APPLY:
7542 /* TODO: implement me. */
7543 break;
7544 }
7545
7546 return NB_OK;
7547 }
7548
7549 int bgp_peer_groups_peer_group_bfd_options_detect_multiplier_destroy(
7550 struct nb_cb_destroy_args *args)
7551 {
7552 switch (args->event) {
7553 case NB_EV_VALIDATE:
7554 case NB_EV_PREPARE:
7555 case NB_EV_ABORT:
7556 case NB_EV_APPLY:
7557 /* TODO: implement me. */
7558 break;
7559 }
7560
7561 return NB_OK;
7562 }
7563
7564 /*
7565 * XPath:
7566 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/required-min-rx
7567 */
7568 int bgp_peer_groups_peer_group_bfd_options_required_min_rx_modify(
7569 struct nb_cb_modify_args *args)
7570 {
7571 switch (args->event) {
7572 case NB_EV_VALIDATE:
7573 case NB_EV_PREPARE:
7574 case NB_EV_ABORT:
7575 case NB_EV_APPLY:
7576 /* TODO: implement me. */
7577 break;
7578 }
7579
7580 return NB_OK;
7581 }
7582
7583 int bgp_peer_groups_peer_group_bfd_options_required_min_rx_destroy(
7584 struct nb_cb_destroy_args *args)
7585 {
7586 switch (args->event) {
7587 case NB_EV_VALIDATE:
7588 case NB_EV_PREPARE:
7589 case NB_EV_ABORT:
7590 case NB_EV_APPLY:
7591 /* TODO: implement me. */
7592 break;
7593 }
7594
7595 return NB_OK;
7596 }
7597
7598 /*
7599 * XPath:
7600 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/desired-min-tx
7601 */
7602 int bgp_peer_groups_peer_group_bfd_options_desired_min_tx_modify(
7603 struct nb_cb_modify_args *args)
7604 {
7605 switch (args->event) {
7606 case NB_EV_VALIDATE:
7607 case NB_EV_PREPARE:
7608 case NB_EV_ABORT:
7609 case NB_EV_APPLY:
7610 /* TODO: implement me. */
7611 break;
7612 }
7613
7614 return NB_OK;
7615 }
7616
7617 int bgp_peer_groups_peer_group_bfd_options_desired_min_tx_destroy(
7618 struct nb_cb_destroy_args *args)
7619 {
7620 switch (args->event) {
7621 case NB_EV_VALIDATE:
7622 case NB_EV_PREPARE:
7623 case NB_EV_ABORT:
7624 case NB_EV_APPLY:
7625 /* TODO: implement me. */
7626 break;
7627 }
7628
7629 return NB_OK;
7630 }
7631
7632 /*
7633 * XPath:
7634 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/session-type
7635 */
7636 int bgp_peer_groups_peer_group_bfd_options_session_type_modify(
7637 struct nb_cb_modify_args *args)
7638 {
7639 switch (args->event) {
7640 case NB_EV_VALIDATE:
7641 case NB_EV_PREPARE:
7642 case NB_EV_ABORT:
7643 case NB_EV_APPLY:
7644 /* TODO: implement me. */
7645 break;
7646 }
7647
7648 return NB_OK;
7649 }
7650
7651 int bgp_peer_groups_peer_group_bfd_options_session_type_destroy(
7652 struct nb_cb_destroy_args *args)
7653 {
7654 switch (args->event) {
7655 case NB_EV_VALIDATE:
7656 case NB_EV_PREPARE:
7657 case NB_EV_ABORT:
7658 case NB_EV_APPLY:
7659 /* TODO: implement me. */
7660 break;
7661 }
7662
7663 return NB_OK;
7664 }
7665
7666 /*
7667 * XPath:
7668 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/bfd-options/check-cp-failure
7669 */
7670 int bgp_peer_groups_peer_group_bfd_options_check_cp_failure_modify(
7671 struct nb_cb_modify_args *args)
7672 {
7673 switch (args->event) {
7674 case NB_EV_VALIDATE:
7675 case NB_EV_PREPARE:
7676 case NB_EV_ABORT:
7677 case NB_EV_APPLY:
7678 /* TODO: implement me. */
7679 break;
7680 }
7681
7682 return NB_OK;
7683 }
7684
7685 int bgp_peer_groups_peer_group_bfd_options_check_cp_failure_destroy(
7686 struct nb_cb_destroy_args *args)
7687 {
7688 switch (args->event) {
7689 case NB_EV_VALIDATE:
7690 case NB_EV_PREPARE:
7691 case NB_EV_ABORT:
7692 case NB_EV_APPLY:
7693 /* TODO: implement me. */
7694 break;
7695 }
7696
7697 return NB_OK;
7698 }
7699
7700 /*
7701 * XPath:
7702 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/admin-shutdown
7703 */
7704 void bgp_peer_groups_peer_group_admin_shutdown_apply_finish(
7705 struct nb_cb_apply_finish_args *args)
7706 {
7707 struct bgp *bgp;
7708 const char *peer_str;
7709 struct peer *peer;
7710 bool enable = false;
7711 const char *message;
7712
7713 bgp = nb_running_get_entry(args->dnode, NULL, true);
7714 peer_str = yang_dnode_get_string(args->dnode, "../peer-group-name");
7715 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7716
7717 if (yang_dnode_exists(args->dnode, "./message")) {
7718 message = yang_dnode_get_string(args->dnode, "./message");
7719 peer_tx_shutdown_message_set(peer, message);
7720 }
7721 enable = yang_dnode_get_bool(args->dnode, "./enable");
7722
7723 peer_flag_modify_nb(bgp, peer_str, peer, PEER_FLAG_SHUTDOWN, enable,
7724 args->errmsg, args->errmsg_len);
7725 }
7726
7727 /*
7728 * XPath:
7729 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/admin-shutdown/enable
7730 */
7731 int bgp_peer_groups_peer_group_admin_shutdown_enable_modify(
7732 struct nb_cb_modify_args *args)
7733 {
7734 switch (args->event) {
7735 case NB_EV_VALIDATE:
7736 case NB_EV_PREPARE:
7737 case NB_EV_ABORT:
7738 case NB_EV_APPLY:
7739 /* TODO: implement me. */
7740 break;
7741 }
7742
7743 return NB_OK;
7744 }
7745
7746 int bgp_peer_groups_peer_group_admin_shutdown_enable_destroy(
7747 struct nb_cb_destroy_args *args)
7748 {
7749 switch (args->event) {
7750 case NB_EV_VALIDATE:
7751 case NB_EV_PREPARE:
7752 case NB_EV_ABORT:
7753 case NB_EV_APPLY:
7754 /* TODO: implement me. */
7755 break;
7756 }
7757
7758 return NB_OK;
7759 }
7760
7761 /*
7762 * XPath:
7763 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/admin-shutdown/message
7764 */
7765 int bgp_peer_groups_peer_group_admin_shutdown_message_modify(
7766 struct nb_cb_modify_args *args)
7767 {
7768 switch (args->event) {
7769 case NB_EV_VALIDATE:
7770 case NB_EV_PREPARE:
7771 case NB_EV_ABORT:
7772 case NB_EV_APPLY:
7773 /* TODO: implement me. */
7774 break;
7775 }
7776
7777 return NB_OK;
7778 }
7779
7780 int bgp_peer_groups_peer_group_admin_shutdown_message_destroy(
7781 struct nb_cb_destroy_args *args)
7782 {
7783 switch (args->event) {
7784 case NB_EV_VALIDATE:
7785 case NB_EV_PREPARE:
7786 case NB_EV_ABORT:
7787 case NB_EV_APPLY:
7788 /* TODO: implement me. */
7789 break;
7790 }
7791
7792 return NB_OK;
7793 }
7794
7795 /*
7796 * XPath:
7797 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/graceful-restart/enable
7798 */
7799 int bgp_peer_groups_peer_group_graceful_restart_enable_modify(
7800 struct nb_cb_modify_args *args)
7801 {
7802 switch (args->event) {
7803 case NB_EV_VALIDATE:
7804 case NB_EV_PREPARE:
7805 case NB_EV_ABORT:
7806 case NB_EV_APPLY:
7807 /* TODO: implement me. */
7808 break;
7809 }
7810
7811 return NB_OK;
7812 }
7813
7814 int bgp_peer_groups_peer_group_graceful_restart_enable_destroy(
7815 struct nb_cb_destroy_args *args)
7816 {
7817 switch (args->event) {
7818 case NB_EV_VALIDATE:
7819 case NB_EV_PREPARE:
7820 case NB_EV_ABORT:
7821 case NB_EV_APPLY:
7822 /* TODO: implement me. */
7823 break;
7824 }
7825
7826 return NB_OK;
7827 }
7828
7829 /*
7830 * XPath:
7831 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/graceful-restart/graceful-restart-helper
7832 */
7833 int bgp_peer_groups_peer_group_graceful_restart_graceful_restart_helper_modify(
7834 struct nb_cb_modify_args *args)
7835 {
7836 switch (args->event) {
7837 case NB_EV_VALIDATE:
7838 case NB_EV_PREPARE:
7839 case NB_EV_ABORT:
7840 case NB_EV_APPLY:
7841 /* TODO: implement me. */
7842 break;
7843 }
7844
7845 return NB_OK;
7846 }
7847
7848 int bgp_peer_groups_peer_group_graceful_restart_graceful_restart_helper_destroy(
7849 struct nb_cb_destroy_args *args)
7850 {
7851 switch (args->event) {
7852 case NB_EV_VALIDATE:
7853 case NB_EV_PREPARE:
7854 case NB_EV_ABORT:
7855 case NB_EV_APPLY:
7856 /* TODO: implement me. */
7857 break;
7858 }
7859
7860 return NB_OK;
7861 }
7862
7863 /*
7864 * XPath:
7865 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/graceful-restart/graceful-restart-disable
7866 */
7867 int bgp_peer_groups_peer_group_graceful_restart_graceful_restart_disable_modify(
7868 struct nb_cb_modify_args *args)
7869 {
7870 switch (args->event) {
7871 case NB_EV_VALIDATE:
7872 case NB_EV_PREPARE:
7873 case NB_EV_ABORT:
7874 case NB_EV_APPLY:
7875 /* TODO: implement me. */
7876 break;
7877 }
7878
7879 return NB_OK;
7880 }
7881
7882 int bgp_peer_groups_peer_group_graceful_restart_graceful_restart_disable_destroy(
7883 struct nb_cb_destroy_args *args)
7884 {
7885 switch (args->event) {
7886 case NB_EV_VALIDATE:
7887 case NB_EV_PREPARE:
7888 case NB_EV_ABORT:
7889 case NB_EV_APPLY:
7890 /* TODO: implement me. */
7891 break;
7892 }
7893
7894 return NB_OK;
7895 }
7896
7897 /*
7898 * XPath:
7899 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/timers/advertise-interval
7900 */
7901 int bgp_peer_groups_peer_group_timers_advertise_interval_modify(
7902 struct nb_cb_modify_args *args)
7903 {
7904 struct bgp *bgp;
7905 const char *peer_str;
7906 struct peer *peer;
7907 uint16_t routeadv;
7908 int ret;
7909
7910 switch (args->event) {
7911 case NB_EV_VALIDATE:
7912 case NB_EV_PREPARE:
7913 case NB_EV_ABORT:
7914 return NB_OK;
7915 case NB_EV_APPLY:
7916 bgp = nb_running_get_entry(args->dnode, NULL, true);
7917 peer_str = yang_dnode_get_string(args->dnode,
7918 "../../peer-group-name");
7919 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7920 routeadv = yang_dnode_get_uint16(args->dnode, NULL);
7921
7922 ret = peer_advertise_interval_set(peer, routeadv);
7923 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7924 < 0)
7925 return NB_ERR_INCONSISTENCY;
7926
7927 break;
7928 }
7929
7930 return NB_OK;
7931 }
7932
7933 int bgp_peer_groups_peer_group_timers_advertise_interval_destroy(
7934 struct nb_cb_destroy_args *args)
7935 {
7936 struct bgp *bgp;
7937 const char *peer_str;
7938 struct peer *peer;
7939 int ret;
7940
7941 switch (args->event) {
7942 case NB_EV_VALIDATE:
7943 case NB_EV_PREPARE:
7944 case NB_EV_ABORT:
7945 return NB_OK;
7946 case NB_EV_APPLY:
7947 bgp = nb_running_get_entry(args->dnode, NULL, true);
7948 peer_str = yang_dnode_get_string(args->dnode,
7949 "../../peer-group-name");
7950 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7951
7952 ret = peer_advertise_interval_unset(peer);
7953 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7954 < 0)
7955 return NB_ERR_INCONSISTENCY;
7956
7957 break;
7958 }
7959
7960 return NB_OK;
7961 }
7962
7963 /*
7964 * XPath:
7965 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/timers/connect-time
7966 */
7967 int bgp_peer_groups_peer_group_timers_connect_time_modify(
7968 struct nb_cb_modify_args *args)
7969 {
7970 struct bgp *bgp;
7971 const char *peer_str;
7972 struct peer *peer;
7973 uint16_t connect;
7974 int ret;
7975
7976 switch (args->event) {
7977 case NB_EV_VALIDATE:
7978 case NB_EV_PREPARE:
7979 case NB_EV_ABORT:
7980 return NB_OK;
7981 case NB_EV_APPLY:
7982 bgp = nb_running_get_entry(args->dnode, NULL, true);
7983 peer_str = yang_dnode_get_string(args->dnode,
7984 "../../peer-group-name");
7985 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
7986 connect = yang_dnode_get_uint16(args->dnode, NULL);
7987
7988 ret = peer_timers_connect_set(peer, connect);
7989 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
7990 < 0)
7991 return NB_ERR_INCONSISTENCY;
7992
7993 break;
7994 }
7995
7996 return NB_OK;
7997 }
7998
7999 int bgp_peer_groups_peer_group_timers_connect_time_destroy(
8000 struct nb_cb_destroy_args *args)
8001 {
8002 struct bgp *bgp;
8003 const char *peer_str;
8004 struct peer *peer;
8005 int ret;
8006
8007 switch (args->event) {
8008 case NB_EV_VALIDATE:
8009 case NB_EV_PREPARE:
8010 case NB_EV_ABORT:
8011 return NB_OK;
8012 case NB_EV_APPLY:
8013 bgp = nb_running_get_entry(args->dnode, NULL, true);
8014 peer_str = yang_dnode_get_string(args->dnode,
8015 "../../peer-group-name");
8016 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
8017
8018 ret = peer_timers_connect_unset(peer);
8019 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
8020 < 0)
8021 return NB_ERR_INCONSISTENCY;
8022
8023 break;
8024 }
8025
8026 return NB_OK;
8027 }
8028
8029 /*
8030 * XPath:
8031 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/timers/hold-time
8032 */
8033 int bgp_peer_groups_peer_group_timers_hold_time_modify(
8034 struct nb_cb_modify_args *args)
8035 {
8036 struct bgp *bgp;
8037 const char *peer_str;
8038 struct peer *peer;
8039 uint16_t keepalive = 0;
8040 uint16_t holdtime = 0;
8041 int ret = 0;
8042
8043 switch (args->event) {
8044 case NB_EV_VALIDATE:
8045 case NB_EV_PREPARE:
8046 case NB_EV_ABORT:
8047 return NB_OK;
8048 case NB_EV_APPLY:
8049 bgp = nb_running_get_entry(args->dnode, NULL, true);
8050 peer_str = yang_dnode_get_string(args->dnode,
8051 "../../peer-group-name");
8052 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
8053
8054 keepalive = yang_dnode_get_uint16(args->dnode, "../keepalive");
8055 holdtime = yang_dnode_get_uint16(args->dnode, NULL);
8056
8057 if (keepalive != BGP_DEFAULT_KEEPALIVE
8058 && holdtime != BGP_DEFAULT_HOLDTIME) {
8059 ret = peer_timers_set(peer, keepalive, holdtime);
8060 } else
8061 ret = peer_timers_unset(peer);
8062
8063 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
8064 < 0)
8065 return NB_ERR_INCONSISTENCY;
8066
8067 break;
8068 }
8069
8070 return NB_OK;
8071 }
8072
8073 /*
8074 * XPath:
8075 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/timers/keepalive
8076 */
8077 int bgp_peer_groups_peer_group_timers_keepalive_modify(
8078 struct nb_cb_modify_args *args)
8079 {
8080 struct bgp *bgp;
8081 const char *peer_str;
8082 struct peer *peer;
8083 uint16_t keepalive = 0, curr_keep = 0;
8084 uint16_t holdtime = 0;
8085 int ret = 0;
8086
8087 switch (args->event) {
8088 case NB_EV_VALIDATE:
8089 case NB_EV_PREPARE:
8090 case NB_EV_ABORT:
8091 return NB_OK;
8092 case NB_EV_APPLY:
8093 bgp = nb_running_get_entry(args->dnode, NULL, true);
8094 peer_str = yang_dnode_get_string(args->dnode,
8095 "../../peer-group-name");
8096 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
8097
8098 keepalive = yang_dnode_get_uint16(args->dnode, NULL);
8099 holdtime = yang_dnode_get_uint16(args->dnode, "../hold-time");
8100
8101 if (keepalive != BGP_DEFAULT_KEEPALIVE
8102 && holdtime != BGP_DEFAULT_HOLDTIME) {
8103 if (peer->holdtime == holdtime) {
8104 curr_keep = (keepalive < holdtime / 3
8105 ? keepalive
8106 : holdtime / 3);
8107 if (curr_keep == keepalive) {
8108 // zlog_debug("%s holdtime %u keepalive
8109 // %u value is already set, skipping
8110 // update.",
8111 // __func__, holdtime, keepalive);
8112 return NB_OK;
8113 }
8114 }
8115 ret = peer_timers_set(peer, keepalive, holdtime);
8116 } else
8117 ret = peer_timers_unset(peer);
8118
8119 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
8120 < 0)
8121 return NB_ERR_INCONSISTENCY;
8122
8123 break;
8124 }
8125
8126 return NB_OK;
8127 }
8128
8129 /*
8130 * XPath:
8131 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi
8132 */
8133 int bgp_peer_groups_peer_group_afi_safis_afi_safi_create(
8134 struct nb_cb_create_args *args)
8135 {
8136 switch (args->event) {
8137 case NB_EV_VALIDATE:
8138 case NB_EV_PREPARE:
8139 case NB_EV_ABORT:
8140 case NB_EV_APPLY:
8141 /* TODO: implement me. */
8142 break;
8143 }
8144
8145 return NB_OK;
8146 }
8147
8148 int bgp_peer_groups_peer_group_afi_safis_afi_safi_destroy(
8149 struct nb_cb_destroy_args *args)
8150 {
8151 switch (args->event) {
8152 case NB_EV_VALIDATE:
8153 case NB_EV_PREPARE:
8154 case NB_EV_ABORT:
8155 case NB_EV_APPLY:
8156 /* TODO: implement me. */
8157 break;
8158 }
8159
8160 return NB_OK;
8161 }
8162
8163 /*
8164 * XPath:
8165 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/enabled
8166 */
8167 int bgp_peer_groups_peer_group_afi_safis_afi_safi_enabled_modify(
8168 struct nb_cb_modify_args *args)
8169 {
8170 struct bgp *bgp;
8171 const char *peer_str;
8172 const char *af_name;
8173 afi_t afi;
8174 safi_t safi;
8175 bool activate = false;
8176 int ret = 0;
8177 struct peer *peer;
8178
8179 switch (args->event) {
8180 case NB_EV_VALIDATE:
8181 case NB_EV_PREPARE:
8182 case NB_EV_ABORT:
8183 return NB_OK;
8184 case NB_EV_APPLY:
8185 bgp = nb_running_get_entry(args->dnode, NULL, true);
8186 af_name =
8187 yang_dnode_get_string(args->dnode, "../afi-safi-name");
8188 yang_afi_safi_identity2value(af_name, &afi, &safi);
8189 peer_str = yang_dnode_get_string(args->dnode,
8190 "../../../peer-group-name");
8191 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
8192
8193 activate = yang_dnode_get_bool(args->dnode, NULL);
8194 if (activate)
8195 ret = peer_activate(peer, afi, safi);
8196 else
8197 ret = peer_deactivate(peer, afi, safi);
8198
8199 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret)
8200 < 0)
8201 return NB_ERR_INCONSISTENCY;
8202
8203 break;
8204 }
8205
8206 return NB_OK;
8207 }
8208
8209 int bgp_peer_groups_peer_group_afi_safis_afi_safi_enabled_destroy(
8210 struct nb_cb_destroy_args *args)
8211 {
8212 switch (args->event) {
8213 case NB_EV_VALIDATE:
8214 case NB_EV_PREPARE:
8215 case NB_EV_ABORT:
8216 case NB_EV_APPLY:
8217 /* TODO: implement me. */
8218 break;
8219 }
8220
8221 return NB_OK;
8222 }
8223
8224 void bgp_global_afi_safis_afi_safi_network_config_apply_finish(
8225 struct nb_cb_apply_finish_args *args)
8226 {
8227 const struct lyd_node *af_dnode;
8228 struct bgp *bgp;
8229 const char *af_name;
8230 struct prefix prefix;
8231 bool is_backdoor = false;
8232 uint32_t label_index = BGP_INVALID_LABEL_INDEX;
8233 const char *rmap_name = NULL;
8234 afi_t afi;
8235 safi_t safi;
8236
8237 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8238 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8239 yang_afi_safi_identity2value(af_name, &afi, &safi);
8240 bgp = nb_running_get_entry(af_dnode, NULL, true);
8241
8242 yang_dnode_get_prefix(&prefix, args->dnode, "./prefix");
8243
8244 is_backdoor = yang_dnode_get_bool(args->dnode, "./backdoor");
8245
8246 if (yang_dnode_exists(args->dnode, "./label-index"))
8247 label_index =
8248 yang_dnode_get_uint32(args->dnode, "./label-index");
8249
8250 if (yang_dnode_exists(args->dnode, "./rmap-policy-export"))
8251 rmap_name = yang_dnode_get_string(args->dnode,
8252 "./rmap-policy-export");
8253
8254 bgp_static_set(bgp, NULL, &prefix, afi, safi, rmap_name, is_backdoor,
8255 label_index, args->errmsg, args->errmsg_len);
8256 }
8257
8258 static int bgp_global_afi_safis_afi_safi_network_config_destroy(
8259 struct nb_cb_destroy_args *args)
8260 {
8261 const struct lyd_node *af_dnode;
8262 struct bgp *bgp;
8263 const char *af_name;
8264 struct prefix prefix;
8265 uint32_t label_index = BGP_INVALID_LABEL_INDEX;
8266 const char *rmap_name = NULL;
8267 bool is_backdoor = false;
8268 afi_t afi;
8269 safi_t safi;
8270 int ret;
8271
8272 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8273 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8274 yang_afi_safi_identity2value(af_name, &afi, &safi);
8275 bgp = nb_running_get_entry(af_dnode, NULL, true);
8276
8277 yang_dnode_get_prefix(&prefix, args->dnode, "./prefix");
8278
8279 if (yang_dnode_exists(args->dnode, "./rmap-policy-export"))
8280 rmap_name = yang_dnode_get_string(args->dnode,
8281 "./rmap-policy-export");
8282
8283 if (yang_dnode_exists(args->dnode, "./label-index"))
8284 label_index =
8285 yang_dnode_get_uint32(args->dnode, "./label-index");
8286
8287 if (yang_dnode_exists(args->dnode, "./backdoor"))
8288 is_backdoor = yang_dnode_get_bool(args->dnode, "./backdoor");
8289
8290 ret = bgp_static_set(bgp, "no", &prefix, afi, safi, rmap_name,
8291 is_backdoor, label_index, args->errmsg,
8292 args->errmsg_len);
8293 if (ret < 0)
8294 return NB_ERR_INCONSISTENCY;
8295
8296 return NB_OK;
8297 }
8298
8299 /*
8300 * XPath:
8301 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/network-config
8302 */
8303 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_create(
8304 struct nb_cb_create_args *args)
8305 {
8306 /* Handled in network_config_apply_finish callback */
8307
8308 return NB_OK;
8309 }
8310
8311 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_destroy(
8312 struct nb_cb_destroy_args *args)
8313 {
8314 switch (args->event) {
8315 case NB_EV_VALIDATE:
8316 case NB_EV_PREPARE:
8317 case NB_EV_ABORT:
8318 return NB_OK;
8319 case NB_EV_APPLY:
8320 return bgp_global_afi_safis_afi_safi_network_config_destroy(
8321 args);
8322
8323 break;
8324 }
8325
8326 return NB_OK;
8327 }
8328
8329 /*
8330 * XPath:
8331 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/network-config/backdoor
8332 */
8333 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_backdoor_modify(
8334 struct nb_cb_modify_args *args)
8335 {
8336 /* Handled in unicast_network_config_apply_finish callback */
8337
8338 return NB_OK;
8339 }
8340
8341 /*
8342 * XPath:
8343 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/network-config/label-index
8344 */
8345 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_label_index_modify(
8346 struct nb_cb_modify_args *args)
8347 {
8348 const struct lyd_node *af_dnode;
8349 struct bgp *bgp;
8350 const char *af_name;
8351 struct prefix prefix;
8352 uint32_t label_index;
8353 afi_t afi;
8354 safi_t safi;
8355 struct bgp_dest *dest;
8356 struct bgp_static *bgp_static;
8357
8358 switch (args->event) {
8359 case NB_EV_VALIDATE:
8360 bgp = nb_running_get_entry(args->dnode, NULL, false);
8361 if (!bgp)
8362 return NB_OK;
8363
8364 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8365 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8366 yang_afi_safi_identity2value(af_name, &afi, &safi);
8367 yang_dnode_get_prefix(&prefix, args->dnode, "../prefix");
8368 apply_mask(&prefix);
8369
8370 label_index = yang_dnode_get_uint32(args->dnode, NULL);
8371
8372 dest = bgp_node_get(bgp->route[afi][safi], &prefix);
8373 bgp_static = bgp_dest_get_bgp_static_info(dest);
8374 if (bgp_static) {
8375 if (bgp_static->label_index != label_index) {
8376 snprintf(
8377 args->errmsg, args->errmsg_len,
8378 "Cannot change label-index: curr %u input %u\n",
8379 bgp_static->label_index, label_index);
8380 return NB_ERR_VALIDATION;
8381 }
8382 }
8383
8384 break;
8385 case NB_EV_PREPARE:
8386 case NB_EV_ABORT:
8387 case NB_EV_APPLY:
8388 break;
8389 }
8390
8391 return NB_OK;
8392 }
8393
8394 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_label_index_destroy(
8395 struct nb_cb_destroy_args *args)
8396 {
8397 /* Handled in unicast_network_config_apply_finish callback */
8398
8399 return NB_OK;
8400 }
8401
8402 /*
8403 * XPath:
8404 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/network-config/rmap-policy-export
8405 */
8406 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_rmap_policy_export_modify(
8407 struct nb_cb_modify_args *args)
8408 {
8409 /* Handled in unicast_network_config_apply_finish callback */
8410
8411 return NB_OK;
8412 }
8413
8414 int bgp_global_afi_safis_afi_safi_ipv4_unicast_network_config_rmap_policy_export_destroy(
8415 struct nb_cb_destroy_args *args)
8416 {
8417 /* rmap destory alone is not supported by backend, the entire network
8418 * config needs to be destroyed.
8419 */
8420 switch (args->event) {
8421 case NB_EV_VALIDATE:
8422 case NB_EV_PREPARE:
8423 case NB_EV_ABORT:
8424 case NB_EV_APPLY:
8425 /* TODO: implement me. */
8426 break;
8427 }
8428
8429 return NB_OK;
8430 }
8431
8432 void bgp_global_afi_safi_aggregate_route_apply_finish(
8433 struct nb_cb_apply_finish_args *args)
8434 {
8435 const struct lyd_node *af_dnode;
8436 struct bgp *bgp;
8437 const char *af_name;
8438 struct prefix prefix;
8439 const char *rmap_name = NULL;
8440 afi_t afi;
8441 safi_t safi;
8442 uint8_t as_set = 0;
8443 int summary_only = 0;
8444 uint8_t origin = BGP_ORIGIN_UNSPECIFIED;
8445 bool match_med = false;
8446 const char *suppress_map = NULL;
8447
8448 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8449 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8450 yang_afi_safi_identity2value(af_name, &afi, &safi);
8451 bgp = nb_running_get_entry(af_dnode, NULL, true);
8452
8453 yang_dnode_get_prefix(&prefix, args->dnode, "./prefix");
8454
8455 if (yang_dnode_exists(args->dnode, "./as-set"))
8456 as_set = yang_dnode_get_bool(args->dnode, "./as-set");
8457
8458 summary_only = yang_dnode_get_bool(args->dnode, "./summary-only");
8459
8460 if (yang_dnode_exists(args->dnode, "./rmap-policy-export"))
8461 rmap_name = yang_dnode_get_string(args->dnode,
8462 "./rmap-policy-export");
8463
8464 origin = yang_dnode_get_enum(args->dnode, "./origin");
8465 match_med = yang_dnode_get_bool(args->dnode, "./match-med");
8466 if (yang_dnode_exists(args->dnode, "./suppress-map"))
8467 suppress_map =
8468 yang_dnode_get_string(args->dnode, "./suppress-map");
8469
8470 bgp_aggregate_set(bgp, &prefix, afi, safi, rmap_name, summary_only,
8471 as_set, origin, match_med, suppress_map, args->errmsg,
8472 args->errmsg_len);
8473 }
8474
8475 static int
8476 bgp_global_afi_safi_aggregate_route_destroy(struct nb_cb_destroy_args *args)
8477 {
8478 const struct lyd_node *af_dnode;
8479 struct bgp *bgp;
8480 const char *af_name;
8481 struct prefix prefix;
8482 afi_t afi;
8483 safi_t safi;
8484 int ret;
8485
8486 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8487 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8488 yang_afi_safi_identity2value(af_name, &afi, &safi);
8489 bgp = nb_running_get_entry(af_dnode, NULL, true);
8490
8491 yang_dnode_get_prefix(&prefix, args->dnode, "./prefix");
8492
8493 ret = bgp_aggregate_unset(bgp, &prefix, afi, safi, args->errmsg,
8494 args->errmsg_len);
8495
8496 if (ret < 0)
8497 return NB_ERR_INCONSISTENCY;
8498
8499 return NB_OK;
8500 }
8501
8502 /*
8503 * XPath:
8504 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route
8505 */
8506 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_create(
8507 struct nb_cb_create_args *args)
8508 {
8509 switch (args->event) {
8510 case NB_EV_VALIDATE:
8511 case NB_EV_PREPARE:
8512 case NB_EV_ABORT:
8513 case NB_EV_APPLY:
8514 /* TODO: implement me. */
8515 break;
8516 }
8517
8518 return NB_OK;
8519 }
8520
8521 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_destroy(
8522 struct nb_cb_destroy_args *args)
8523 {
8524 switch (args->event) {
8525 case NB_EV_VALIDATE:
8526 case NB_EV_PREPARE:
8527 case NB_EV_ABORT:
8528 return NB_OK;
8529 case NB_EV_APPLY:
8530 return bgp_global_afi_safi_aggregate_route_destroy(args);
8531 }
8532
8533 return NB_OK;
8534 }
8535
8536 /*
8537 * XPath:
8538 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/as-set
8539 */
8540 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_as_set_modify(
8541 struct nb_cb_modify_args *args)
8542 {
8543 switch (args->event) {
8544 case NB_EV_VALIDATE:
8545 case NB_EV_PREPARE:
8546 case NB_EV_ABORT:
8547 case NB_EV_APPLY:
8548 /* TODO: implement me. */
8549 break;
8550 }
8551
8552 return NB_OK;
8553 }
8554
8555 /*
8556 * XPath:
8557 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/summary-only
8558 */
8559 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_summary_only_modify(
8560 struct nb_cb_modify_args *args)
8561 {
8562 switch (args->event) {
8563 case NB_EV_VALIDATE:
8564 case NB_EV_PREPARE:
8565 case NB_EV_ABORT:
8566 case NB_EV_APPLY:
8567 /* TODO: implement me. */
8568 break;
8569 }
8570
8571 return NB_OK;
8572 }
8573
8574 /*
8575 * XPath:
8576 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/rmap-policy-export
8577 */
8578 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_rmap_policy_export_modify(
8579 struct nb_cb_modify_args *args)
8580 {
8581 switch (args->event) {
8582 case NB_EV_VALIDATE:
8583 case NB_EV_PREPARE:
8584 case NB_EV_ABORT:
8585 case NB_EV_APPLY:
8586 /* TODO: implement me. */
8587 break;
8588 }
8589
8590 return NB_OK;
8591 }
8592
8593 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_rmap_policy_export_destroy(
8594 struct nb_cb_destroy_args *args)
8595 {
8596 switch (args->event) {
8597 case NB_EV_VALIDATE:
8598 case NB_EV_PREPARE:
8599 case NB_EV_ABORT:
8600 case NB_EV_APPLY:
8601 /* TODO: implement me. */
8602 break;
8603 }
8604
8605 return NB_OK;
8606 }
8607
8608 /*
8609 * XPath:
8610 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/origin
8611 */
8612 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_origin_modify(
8613 struct nb_cb_modify_args *args)
8614 {
8615 switch (args->event) {
8616 case NB_EV_VALIDATE:
8617 case NB_EV_PREPARE:
8618 case NB_EV_ABORT:
8619 case NB_EV_APPLY:
8620 /* TODO: implement me. */
8621 break;
8622 }
8623
8624 return NB_OK;
8625 }
8626
8627 /*
8628 * XPath:
8629 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/match-med
8630 */
8631 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_match_med_modify(
8632 struct nb_cb_modify_args *args)
8633 {
8634 switch (args->event) {
8635 case NB_EV_VALIDATE:
8636 case NB_EV_PREPARE:
8637 case NB_EV_ABORT:
8638 case NB_EV_APPLY:
8639 /* TODO: implement me. */
8640 break;
8641 }
8642
8643 return NB_OK;
8644 }
8645
8646 /*
8647 * XPath:
8648 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/aggregate-route/suppress-map
8649 */
8650 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_suppress_map_modify(
8651 struct nb_cb_modify_args *args)
8652 {
8653 switch (args->event) {
8654 case NB_EV_VALIDATE:
8655 case NB_EV_PREPARE:
8656 case NB_EV_ABORT:
8657 case NB_EV_APPLY:
8658 /* TODO: implement me. */
8659 break;
8660 }
8661
8662 return NB_OK;
8663 }
8664
8665 int bgp_global_afi_safis_afi_safi_ipv4_unicast_aggregate_route_suppress_map_destroy(
8666 struct nb_cb_destroy_args *args)
8667 {
8668 switch (args->event) {
8669 case NB_EV_VALIDATE:
8670 case NB_EV_PREPARE:
8671 case NB_EV_ABORT:
8672 case NB_EV_APPLY:
8673 /* TODO: implement me. */
8674 break;
8675 }
8676
8677 return NB_OK;
8678 }
8679
8680 void bgp_global_afi_safi_admin_distance_route_apply_finish(
8681 struct nb_cb_apply_finish_args *args)
8682 {
8683 const struct lyd_node *af_dnode;
8684 const char *af_name;
8685 const char *prefix_str = NULL;
8686 const char *access_list_str = NULL;
8687 uint8_t distance;
8688 afi_t afi;
8689 safi_t safi;
8690
8691 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8692 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8693 yang_afi_safi_identity2value(af_name, &afi, &safi);
8694
8695 prefix_str = yang_dnode_get_string(args->dnode, "./prefix");
8696 distance = yang_dnode_get_uint8(args->dnode, "./distance");
8697 if (yang_dnode_exists(args->dnode, "./access-list-policy-export"))
8698 access_list_str = yang_dnode_get_string(
8699 args->dnode, "./access-list-policy-export");
8700
8701 bgp_distance_set(distance, prefix_str, access_list_str, afi, safi,
8702 args->errmsg, args->errmsg_len);
8703 }
8704
8705 static int bgp_global_afi_safi_admin_distance_route_destroy(
8706 struct nb_cb_destroy_args *args)
8707 {
8708 const struct lyd_node *af_dnode;
8709 const char *af_name;
8710 const char *prefix_str = NULL;
8711 const char *access_list_str = NULL;
8712 uint8_t distance;
8713 afi_t afi;
8714 safi_t safi;
8715
8716 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8717 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8718 yang_afi_safi_identity2value(af_name, &afi, &safi);
8719
8720 prefix_str = yang_dnode_get_string(args->dnode, "./prefix");
8721 distance = yang_dnode_get_uint8(args->dnode, "./distance");
8722 if (yang_dnode_exists(args->dnode, "./access-list-policy-export"))
8723 access_list_str = yang_dnode_get_string(
8724 args->dnode, "./access-list-policy-export");
8725
8726 if (bgp_distance_unset(distance, prefix_str, access_list_str, afi, safi,
8727 args->errmsg, args->errmsg_len)
8728 != CMD_SUCCESS)
8729 return NB_ERR_INCONSISTENCY;
8730
8731 return NB_OK;
8732 }
8733
8734 /*
8735 * XPath:
8736 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance-route
8737 */
8738 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_route_create(
8739 struct nb_cb_create_args *args)
8740 {
8741 switch (args->event) {
8742 case NB_EV_VALIDATE:
8743 case NB_EV_PREPARE:
8744 case NB_EV_ABORT:
8745 case NB_EV_APPLY:
8746 /* TODO: implement me. */
8747 break;
8748 }
8749
8750 return NB_OK;
8751 }
8752
8753 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_route_destroy(
8754 struct nb_cb_destroy_args *args)
8755 {
8756 switch (args->event) {
8757 case NB_EV_VALIDATE:
8758 case NB_EV_PREPARE:
8759 case NB_EV_ABORT:
8760 return NB_OK;
8761 case NB_EV_APPLY:
8762 return bgp_global_afi_safi_admin_distance_route_destroy(args);
8763 }
8764
8765 return NB_OK;
8766 }
8767
8768 /*
8769 * XPath:
8770 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance-route/distance
8771 */
8772 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_route_distance_modify(
8773 struct nb_cb_modify_args *args)
8774 {
8775 switch (args->event) {
8776 case NB_EV_VALIDATE:
8777 case NB_EV_PREPARE:
8778 case NB_EV_ABORT:
8779 case NB_EV_APPLY:
8780 /* TODO: implement me. */
8781 break;
8782 }
8783
8784 return NB_OK;
8785 }
8786
8787 /*
8788 * XPath:
8789 * /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
8790 */
8791 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_route_access_list_policy_export_modify(
8792 struct nb_cb_modify_args *args)
8793 {
8794 switch (args->event) {
8795 case NB_EV_VALIDATE:
8796 case NB_EV_PREPARE:
8797 case NB_EV_ABORT:
8798 case NB_EV_APPLY:
8799 /* TODO: implement me. */
8800 break;
8801 }
8802
8803 return NB_OK;
8804 }
8805
8806 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_route_access_list_policy_export_destroy(
8807 struct nb_cb_destroy_args *args)
8808 {
8809 switch (args->event) {
8810 case NB_EV_VALIDATE:
8811 case NB_EV_PREPARE:
8812 case NB_EV_ABORT:
8813 case NB_EV_APPLY:
8814 /* TODO: implement me. */
8815 break;
8816 }
8817
8818 return NB_OK;
8819 }
8820
8821 void bgp_global_afi_safis_afi_safi_route_flap_dampening_apply_finish(
8822 struct nb_cb_apply_finish_args *args)
8823 {
8824 const struct lyd_node *af_dnode;
8825 struct bgp *bgp;
8826 const char *af_name;
8827 afi_t afi;
8828 safi_t safi;
8829 int half = DEFAULT_HALF_LIFE * 60;
8830 int reuse = DEFAULT_REUSE;
8831 int suppress = DEFAULT_SUPPRESS;
8832 int max;
8833 char ab_xpath[XPATH_MAXLEN];
8834
8835 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
8836 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
8837 yang_afi_safi_identity2value(af_name, &afi, &safi);
8838 bgp = nb_running_get_entry(af_dnode, NULL, true);
8839
8840 if (!yang_dnode_get_bool(args->dnode, "./enable")) {
8841 bgp_damp_disable(bgp, afi, safi);
8842 } else {
8843 half = yang_dnode_get_uint8(args->dnode, "./reach-decay");
8844 half *= 60;
8845 reuse = yang_dnode_get_uint16(args->dnode, "./reuse-above");
8846
8847 suppress =
8848 yang_dnode_get_uint16(args->dnode, "./suppress-above");
8849
8850 max = yang_dnode_get_uint8(args->dnode, "./unreach-decay");
8851 yang_dnode_get_path(args->dnode, ab_xpath, sizeof(ab_xpath));
8852 strlcat(ab_xpath, "/unreach-decay", sizeof(ab_xpath));
8853 if (yang_get_default_uint8(ab_xpath) == max)
8854 max = half * 4;
8855 else
8856 max *= 60;
8857
8858 bgp_damp_enable(bgp, afi, safi, half, reuse, suppress, max);
8859 }
8860 }
8861
8862 static int
8863 bgp_global_afi_safi_route_flap_validation(struct nb_cb_modify_args *args)
8864 {
8865 int reuse;
8866 int suppress;
8867
8868 if (yang_dnode_exists(args->dnode, "../suppress-above")
8869 && yang_dnode_exists(args->dnode, "../reuse-above")) {
8870 suppress =
8871 yang_dnode_get_uint16(args->dnode, "../suppress-above");
8872 reuse = yang_dnode_get_uint16(args->dnode, "../reuse-above");
8873 if (suppress < reuse) {
8874 snprintf(
8875 args->errmsg, args->errmsg_len,
8876 "Suppress value cannot be less than reuse value \n");
8877 return NB_ERR_VALIDATION;
8878 }
8879 }
8880 return NB_OK;
8881 }
8882
8883 /*
8884 * XPath:
8885 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/route-flap-dampening/enable
8886 */
8887 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_enable_modify(
8888 struct nb_cb_modify_args *args)
8889 {
8890 switch (args->event) {
8891 case NB_EV_VALIDATE:
8892 return bgp_global_afi_safi_route_flap_validation(args);
8893 case NB_EV_PREPARE:
8894 case NB_EV_ABORT:
8895 case NB_EV_APPLY:
8896 break;
8897 }
8898
8899 return NB_OK;
8900 }
8901
8902 /*
8903 * XPath:
8904 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/route-flap-dampening/reach-decay
8905 */
8906 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_reach_decay_modify(
8907 struct nb_cb_modify_args *args)
8908 {
8909 switch (args->event) {
8910 case NB_EV_VALIDATE:
8911 case NB_EV_PREPARE:
8912 case NB_EV_ABORT:
8913 case NB_EV_APPLY:
8914 /* TODO: implement me. */
8915 break;
8916 }
8917
8918 return NB_OK;
8919 }
8920
8921 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_reach_decay_destroy(
8922 struct nb_cb_destroy_args *args)
8923 {
8924 switch (args->event) {
8925 case NB_EV_VALIDATE:
8926 case NB_EV_PREPARE:
8927 case NB_EV_ABORT:
8928 case NB_EV_APPLY:
8929 /* TODO: implement me. */
8930 break;
8931 }
8932
8933 return NB_OK;
8934 }
8935
8936 /*
8937 * XPath:
8938 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/route-flap-dampening/reuse-above
8939 */
8940 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_reuse_above_modify(
8941 struct nb_cb_modify_args *args)
8942 {
8943 int reuse = DEFAULT_REUSE;
8944 int suppress = DEFAULT_SUPPRESS;
8945
8946 switch (args->event) {
8947 case NB_EV_VALIDATE:
8948 if (yang_dnode_exists(args->dnode, "../suppress-above"))
8949 suppress = yang_dnode_get_uint16(args->dnode,
8950 "../suppress-above");
8951 reuse = yang_dnode_get_uint16(args->dnode, "../reuse-above");
8952 if (suppress < reuse) {
8953 snprintf(
8954 args->errmsg, args->errmsg_len,
8955 "Suppress value cannot be less than reuse value \n");
8956 return NB_ERR_VALIDATION;
8957 }
8958 break;
8959 case NB_EV_PREPARE:
8960 case NB_EV_ABORT:
8961 case NB_EV_APPLY:
8962 /* TODO: implement me. */
8963 break;
8964 }
8965
8966 return NB_OK;
8967 }
8968
8969 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_reuse_above_destroy(
8970 struct nb_cb_destroy_args *args)
8971 {
8972 switch (args->event) {
8973 case NB_EV_VALIDATE:
8974 case NB_EV_PREPARE:
8975 case NB_EV_ABORT:
8976 case NB_EV_APPLY:
8977 /* TODO: implement me. */
8978 break;
8979 }
8980
8981 return NB_OK;
8982 }
8983
8984 /*
8985 * XPath:
8986 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/route-flap-dampening/suppress-above
8987 */
8988 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_suppress_above_modify(
8989 struct nb_cb_modify_args *args)
8990 {
8991 switch (args->event) {
8992 case NB_EV_VALIDATE:
8993 case NB_EV_PREPARE:
8994 case NB_EV_ABORT:
8995 case NB_EV_APPLY:
8996 /* TODO: implement me. */
8997 break;
8998 }
8999
9000 return NB_OK;
9001 }
9002
9003 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_suppress_above_destroy(
9004 struct nb_cb_destroy_args *args)
9005 {
9006 switch (args->event) {
9007 case NB_EV_VALIDATE:
9008 case NB_EV_PREPARE:
9009 case NB_EV_ABORT:
9010 case NB_EV_APPLY:
9011 /* TODO: implement me. */
9012 break;
9013 }
9014
9015 return NB_OK;
9016 }
9017
9018 /*
9019 * XPath:
9020 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/route-flap-dampening/unreach-decay
9021 */
9022 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_unreach_decay_modify(
9023 struct nb_cb_modify_args *args)
9024 {
9025 switch (args->event) {
9026 case NB_EV_VALIDATE:
9027 case NB_EV_PREPARE:
9028 case NB_EV_ABORT:
9029 case NB_EV_APPLY:
9030 /* TODO: implement me. */
9031 break;
9032 }
9033
9034 return NB_OK;
9035 }
9036
9037 int bgp_global_afi_safis_afi_safi_ipv4_unicast_route_flap_dampening_unreach_decay_destroy(
9038 struct nb_cb_destroy_args *args)
9039 {
9040 switch (args->event) {
9041 case NB_EV_VALIDATE:
9042 case NB_EV_PREPARE:
9043 case NB_EV_ABORT:
9044 case NB_EV_APPLY:
9045 /* TODO: implement me. */
9046 break;
9047 }
9048
9049 return NB_OK;
9050 }
9051
9052 static int
9053 bgp_global_afi_safi_ip_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
9054 struct nb_cb_modify_args *args)
9055 {
9056 const struct lyd_node *af_dnode;
9057 struct bgp *bgp;
9058 const char *af_name;
9059 afi_t afi;
9060 safi_t safi;
9061 uint16_t maxpaths, default_maxpaths;
9062 int ret;
9063 char xpath[XPATH_MAXLEN];
9064 char afi_xpath[XPATH_MAXLEN];
9065
9066 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9067 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9068 yang_afi_safi_identity2value(af_name, &afi, &safi);
9069 bgp = nb_running_get_entry(af_dnode, NULL, true);
9070 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
9071
9072 snprintf(xpath, sizeof(xpath), FRR_BGP_GLOBAL_XPATH, "frr-bgp:bgp",
9073 "bgp", bgp->name ? bgp->name : VRF_DEFAULT_NAME);
9074 snprintf(
9075 afi_xpath, sizeof(afi_xpath),
9076 "/global/afi-safis/afi-safi[afi-safi-name='%s']/%s/use-multiple-paths/ebgp/maximum-paths",
9077 yang_afi_safi_value2identity(afi, safi),
9078 bgp_afi_safi_get_container_str(afi, safi));
9079 strlcat(xpath, afi_xpath, sizeof(xpath));
9080 default_maxpaths = yang_get_default_uint16(xpath);
9081
9082 ret = bgp_maxpaths_config_vty(bgp, afi, safi, BGP_PEER_EBGP, maxpaths,
9083 0, maxpaths != default_maxpaths ? 1 : 0,
9084 args->errmsg, args->errmsg_len);
9085 if (ret != CMD_SUCCESS)
9086 return NB_ERR_INCONSISTENCY;
9087
9088 return NB_OK;
9089 }
9090
9091 /*
9092 * XPath:
9093 * /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
9094 */
9095 int bgp_global_afi_safis_afi_safi_ipv4_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
9096 struct nb_cb_modify_args *args)
9097 {
9098 uint16_t maxpaths;
9099
9100 switch (args->event) {
9101 case NB_EV_VALIDATE:
9102 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
9103 if (maxpaths > multipath_num) {
9104 snprintf(args->errmsg, args->errmsg_len,
9105 "maxpaths %u is out of range %u", maxpaths,
9106 multipath_num);
9107 return NB_ERR_VALIDATION;
9108 }
9109 break;
9110 case NB_EV_PREPARE:
9111 case NB_EV_ABORT:
9112 return NB_OK;
9113 case NB_EV_APPLY:
9114 return bgp_global_afi_safi_ip_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
9115 args);
9116 }
9117
9118 return NB_OK;
9119 }
9120
9121 /*
9122 * XPath:
9123 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/use-multiple-paths/ibgp
9124 */
9125 void bgp_global_afi_safi_ip_unicast_use_multiple_paths_ibgp_maximum_paths_apply_finish(
9126 struct nb_cb_apply_finish_args *args)
9127 {
9128 const struct lyd_node *af_dnode;
9129 struct bgp *bgp;
9130 const char *af_name;
9131 afi_t afi;
9132 safi_t safi;
9133 uint16_t maxpaths, default_maxpaths;
9134 char xpath[XPATH_MAXLEN];
9135 char afi_xpath[XPATH_MAXLEN];
9136 uint16_t options = 0;
9137
9138 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9139 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9140 yang_afi_safi_identity2value(af_name, &afi, &safi);
9141 bgp = nb_running_get_entry(af_dnode, NULL, true);
9142
9143 maxpaths = yang_dnode_get_uint16(args->dnode, "./maximum-paths");
9144 if (yang_dnode_get_bool(args->dnode, "./cluster-length-list"))
9145 options = BGP_FLAG_IBGP_MULTIPATH_SAME_CLUSTERLEN;
9146
9147 snprintf(xpath, sizeof(xpath), FRR_BGP_GLOBAL_XPATH, "frr-bgp:bgp",
9148 "bgp", bgp->name ? bgp->name : VRF_DEFAULT_NAME);
9149 snprintf(
9150 afi_xpath, sizeof(afi_xpath),
9151 "/global/afi-safis/afi-safi[afi-safi-name='%s']/%s/use-multiple-paths/ibgp/maximum-paths",
9152 yang_afi_safi_value2identity(afi, safi),
9153 bgp_afi_safi_get_container_str(afi, safi));
9154 strlcat(xpath, afi_xpath, sizeof(xpath));
9155 default_maxpaths = yang_get_default_uint16(xpath);
9156
9157 bgp_maxpaths_config_vty(bgp, afi, safi, BGP_PEER_IBGP, maxpaths,
9158 options, maxpaths != default_maxpaths ? 1 : 0,
9159 args->errmsg, args->errmsg_len);
9160 }
9161
9162 /*
9163 * XPath:
9164 * /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
9165 */
9166 int bgp_global_afi_safis_afi_safi_ipv4_unicast_use_multiple_paths_ibgp_maximum_paths_modify(
9167 struct nb_cb_modify_args *args)
9168 {
9169 uint16_t maxpaths;
9170
9171 switch (args->event) {
9172 case NB_EV_VALIDATE:
9173 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
9174 if (maxpaths > multipath_num) {
9175 snprintf(args->errmsg, args->errmsg_len,
9176 "maxpaths %u is out of range %u", maxpaths,
9177 multipath_num);
9178 return NB_ERR_VALIDATION;
9179 }
9180 break;
9181 case NB_EV_PREPARE:
9182 case NB_EV_ABORT:
9183 return NB_OK;
9184 case NB_EV_APPLY:
9185 break;
9186 }
9187
9188 return NB_OK;
9189 }
9190
9191 /*
9192 * XPath:
9193 * /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
9194 */
9195 int bgp_global_afi_safis_afi_safi_ipv4_unicast_use_multiple_paths_ibgp_cluster_length_list_modify(
9196 struct nb_cb_modify_args *args)
9197 {
9198 switch (args->event) {
9199 case NB_EV_VALIDATE:
9200 case NB_EV_PREPARE:
9201 case NB_EV_ABORT:
9202 case NB_EV_APPLY:
9203 /* TODO: implement me. */
9204 break;
9205 }
9206
9207 return NB_OK;
9208 }
9209
9210 int bgp_global_afi_safis_afi_safi_ipv4_unicast_use_multiple_paths_ibgp_cluster_length_list_destroy(
9211 struct nb_cb_destroy_args *args)
9212 {
9213 switch (args->event) {
9214 case NB_EV_VALIDATE:
9215 case NB_EV_PREPARE:
9216 case NB_EV_ABORT:
9217 case NB_EV_APPLY:
9218 /* TODO: implement me. */
9219 break;
9220 }
9221
9222 return NB_OK;
9223 }
9224
9225 void bgp_global_afi_safi_ip_unicast_redistribution_list_apply_finish(
9226 struct nb_cb_apply_finish_args *args)
9227 {
9228 const struct lyd_node *af_dnode;
9229 struct bgp *bgp;
9230 const char *af_name;
9231 afi_t afi;
9232 safi_t safi;
9233 int route_type;
9234 int route_instance;
9235 struct bgp_redist *red;
9236 bool changed = false;
9237 struct route_map *route_map = NULL;
9238 const char *rmap_name = NULL;
9239 uint32_t metric = 0;
9240
9241 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9242 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9243 yang_afi_safi_identity2value(af_name, &afi, &safi);
9244 bgp = nb_running_get_entry(af_dnode, NULL, true);
9245
9246 route_type = yang_dnode_get_enum(args->dnode, "./route-type");
9247 route_instance = yang_dnode_get_uint16(args->dnode, "./route-instance");
9248
9249 red = bgp_redist_add(bgp, afi, route_type, route_instance);
9250
9251 if (yang_dnode_exists(args->dnode, "./rmap-policy-import")) {
9252 rmap_name = yang_dnode_get_string(args->dnode,
9253 "./rmap-policy-import");
9254 route_map = route_map_lookup_by_name(rmap_name);
9255
9256 changed = bgp_redistribute_rmap_set(red, rmap_name, route_map);
9257 }
9258
9259 if (yang_dnode_exists(args->dnode, "./metric")) {
9260 metric = yang_dnode_get_uint32(args->dnode, "./metric");
9261 changed |= bgp_redistribute_metric_set(bgp, red, afi,
9262 route_type, metric);
9263 }
9264
9265 bgp_redistribute_set(bgp, afi, route_type, route_instance, changed);
9266 }
9267
9268 /*
9269 * XPath:
9270 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/redistribution-list
9271 */
9272 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_create(
9273 struct nb_cb_create_args *args)
9274 {
9275 switch (args->event) {
9276 case NB_EV_VALIDATE:
9277 case NB_EV_PREPARE:
9278 case NB_EV_ABORT:
9279 case NB_EV_APPLY:
9280 /* TODO: implement me. */
9281 break;
9282 }
9283
9284 return NB_OK;
9285 }
9286
9287 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_destroy(
9288 struct nb_cb_destroy_args *args)
9289 {
9290 const struct lyd_node *af_dnode;
9291 struct bgp *bgp;
9292 const char *af_name;
9293 afi_t afi;
9294 safi_t safi;
9295 int route_type;
9296 int route_instance;
9297
9298 switch (args->event) {
9299 case NB_EV_VALIDATE:
9300 case NB_EV_PREPARE:
9301 case NB_EV_ABORT:
9302 return NB_OK;
9303 case NB_EV_APPLY:
9304 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9305 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9306 yang_afi_safi_identity2value(af_name, &afi, &safi);
9307 bgp = nb_running_get_entry(af_dnode, NULL, true);
9308
9309 route_type = yang_dnode_get_enum(args->dnode, "./route-type");
9310 route_instance =
9311 yang_dnode_get_uint16(args->dnode, "./route-instance");
9312
9313 bgp_redistribute_unset(bgp, afi, route_type, route_instance);
9314
9315 break;
9316 }
9317
9318 return NB_OK;
9319 }
9320
9321 /*
9322 * XPath:
9323 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/redistribution-list/metric
9324 */
9325 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_metric_modify(
9326 struct nb_cb_modify_args *args)
9327 {
9328 switch (args->event) {
9329 case NB_EV_VALIDATE:
9330 case NB_EV_PREPARE:
9331 case NB_EV_ABORT:
9332 case NB_EV_APPLY:
9333 /* TODO: implement me. */
9334 break;
9335 }
9336
9337 return NB_OK;
9338 }
9339
9340 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_metric_destroy(
9341 struct nb_cb_destroy_args *args)
9342 {
9343 switch (args->event) {
9344 case NB_EV_VALIDATE:
9345 case NB_EV_PREPARE:
9346 case NB_EV_ABORT:
9347 case NB_EV_APPLY:
9348 /* TODO: implement me. */
9349 break;
9350 }
9351
9352 return NB_OK;
9353 }
9354
9355 /*
9356 * XPath:
9357 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/redistribution-list/rmap-policy-import
9358 */
9359 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_rmap_policy_import_modify(
9360 struct nb_cb_modify_args *args)
9361 {
9362 switch (args->event) {
9363 case NB_EV_VALIDATE:
9364 case NB_EV_PREPARE:
9365 case NB_EV_ABORT:
9366 case NB_EV_APPLY:
9367 /* TODO: implement me. */
9368 break;
9369 }
9370
9371 return NB_OK;
9372 }
9373
9374 int bgp_global_afi_safis_afi_safi_ipv4_unicast_redistribution_list_rmap_policy_import_destroy(
9375 struct nb_cb_destroy_args *args)
9376 {
9377 switch (args->event) {
9378 case NB_EV_VALIDATE:
9379 case NB_EV_PREPARE:
9380 case NB_EV_ABORT:
9381 case NB_EV_APPLY:
9382 /* TODO: implement me. */
9383 break;
9384 }
9385
9386 return NB_OK;
9387 }
9388
9389 static int
9390 bgp_global_afi_safis_admin_distance_modify(struct nb_cb_apply_finish_args *args)
9391 {
9392 struct bgp *bgp;
9393 const struct lyd_node *af_dnode;
9394 const char *af_name;
9395 afi_t afi;
9396 safi_t safi;
9397 uint8_t distance_ebgp, distance_ibgp, distance_local;
9398
9399 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9400 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9401 yang_afi_safi_identity2value(af_name, &afi, &safi);
9402 bgp = nb_running_get_entry(af_dnode, NULL, true);
9403
9404 distance_ebgp = yang_dnode_get_uint8(args->dnode, "./external");
9405 distance_ibgp = yang_dnode_get_uint8(args->dnode, "./internal");
9406 distance_local = yang_dnode_get_uint8(args->dnode, "./local");
9407
9408 bgp->distance_ebgp[afi][safi] = distance_ebgp;
9409 bgp->distance_ibgp[afi][safi] = distance_ibgp;
9410 bgp->distance_local[afi][safi] = distance_local;
9411
9412 bgp_announce_routes_distance_update(bgp, afi, safi);
9413
9414 return NB_OK;
9415 }
9416
9417 /*
9418 * XPath:
9419 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance
9420 */
9421 void bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_apply_finish(
9422 struct nb_cb_apply_finish_args *args)
9423 {
9424 bgp_global_afi_safis_admin_distance_modify(args);
9425 }
9426
9427 /*
9428 * XPath:
9429 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance/external
9430 */
9431 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_external_modify(
9432 struct nb_cb_modify_args *args)
9433 {
9434 /* Handled in admin_distance_apply_finish callback */
9435
9436 return NB_OK;
9437 }
9438
9439 /*
9440 * XPath:
9441 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance/internal
9442 */
9443 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_internal_modify(
9444 struct nb_cb_modify_args *args)
9445 {
9446 /* Handled in admin_distance_apply_finish callback */
9447
9448 return NB_OK;
9449 }
9450
9451 /*
9452 * XPath:
9453 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/admin-distance/local
9454 */
9455 int bgp_global_afi_safis_afi_safi_ipv4_unicast_admin_distance_local_modify(
9456 struct nb_cb_modify_args *args)
9457 {
9458 /* Handled in admin_distance_apply_finish callback */
9459
9460 return NB_OK;
9461 }
9462
9463 /*
9464 * XPath:
9465 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/filter-config/rmap-export
9466 */
9467 int bgp_global_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_modify(
9468 struct nb_cb_modify_args *args)
9469 {
9470 switch (args->event) {
9471 case NB_EV_VALIDATE:
9472 case NB_EV_PREPARE:
9473 case NB_EV_ABORT:
9474 case NB_EV_APPLY:
9475 /* TODO: implement me. */
9476 break;
9477 }
9478
9479 return NB_OK;
9480 }
9481
9482 int bgp_global_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_destroy(
9483 struct nb_cb_destroy_args *args)
9484 {
9485 switch (args->event) {
9486 case NB_EV_VALIDATE:
9487 case NB_EV_PREPARE:
9488 case NB_EV_ABORT:
9489 case NB_EV_APPLY:
9490 /* TODO: implement me. */
9491 break;
9492 }
9493
9494 return NB_OK;
9495 }
9496
9497 static int bgp_global_afi_safi_ip_unicast_vpn_config_rd_modify(
9498 struct nb_cb_modify_args *args)
9499 {
9500 struct bgp *bgp;
9501 const struct lyd_node *af_dnode;
9502 const char *af_name;
9503 afi_t afi;
9504 safi_t safi;
9505 const char *rd_str = NULL;
9506 struct prefix_rd prd;
9507
9508 bgp = nb_running_get_entry(args->dnode, NULL, true);
9509
9510 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9511 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9512 yang_afi_safi_identity2value(af_name, &afi, &safi);
9513
9514 rd_str = yang_dnode_get_string(args->dnode, NULL);
9515 if (!str2prefix_rd(rd_str, &prd)) {
9516 snprintf(args->errmsg, args->errmsg_len, "Malformed rd %s\n",
9517 rd_str);
9518 return NB_ERR_INCONSISTENCY;
9519 }
9520
9521 /*
9522 * pre-change: un-export vpn routes (vpn->vrf routes unaffected)
9523 */
9524 vpn_leak_prechange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9525 bgp);
9526
9527 bgp->vpn_policy[afi].tovpn_rd = prd;
9528 SET_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_RD_SET);
9529
9530 /* post-change: re-export vpn routes */
9531 vpn_leak_postchange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9532 bgp);
9533
9534 return NB_OK;
9535 }
9536
9537 static int bgp_global_afi_safi_ip_unicast_vpn_config_rd_destroy(
9538 struct nb_cb_destroy_args *args)
9539 {
9540 struct bgp *bgp;
9541 const struct lyd_node *af_dnode;
9542 const char *af_name;
9543 afi_t afi;
9544 safi_t safi;
9545 const char *rd_str = NULL;
9546 struct prefix_rd prd;
9547
9548 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9549 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9550 yang_afi_safi_identity2value(af_name, &afi, &safi);
9551 bgp = nb_running_get_entry(af_dnode, NULL, true);
9552
9553 rd_str = yang_dnode_get_string(args->dnode, NULL);
9554 if (!str2prefix_rd(rd_str, &prd)) {
9555 snprintf(args->errmsg, args->errmsg_len, "Malformed rd %s \n",
9556 rd_str);
9557 return NB_ERR_INCONSISTENCY;
9558 }
9559
9560 /*
9561 * pre-change: un-export vpn routes (vpn->vrf routes unaffected)
9562 */
9563 vpn_leak_prechange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9564 bgp);
9565
9566 UNSET_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_RD_SET);
9567
9568 /* post-change: re-export vpn routes */
9569 vpn_leak_postchange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9570 bgp);
9571 return NB_OK;
9572 }
9573
9574 /*
9575 * XPath:
9576 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/rd
9577 */
9578 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rd_modify(
9579 struct nb_cb_modify_args *args)
9580 {
9581 struct bgp *bgp;
9582 const struct lyd_node *af_dnode;
9583 const char *af_name;
9584 afi_t afi;
9585 safi_t safi;
9586
9587 switch (args->event) {
9588 case NB_EV_VALIDATE:
9589 bgp = nb_running_get_entry(args->dnode, NULL, false);
9590 if (!bgp)
9591 return NB_OK;
9592
9593 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9594 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9595 yang_afi_safi_identity2value(af_name, &afi, &safi);
9596
9597 if (!vpn_policy_check_import(bgp, afi, safi, false,
9598 args->errmsg, args->errmsg_len))
9599 return NB_ERR_VALIDATION;
9600 break;
9601 case NB_EV_PREPARE:
9602 case NB_EV_ABORT:
9603 return NB_OK;
9604 case NB_EV_APPLY:
9605
9606 return bgp_global_afi_safi_ip_unicast_vpn_config_rd_modify(
9607 args);
9608
9609 break;
9610 }
9611
9612 return NB_OK;
9613 }
9614
9615 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rd_destroy(
9616 struct nb_cb_destroy_args *args)
9617 {
9618 switch (args->event) {
9619 case NB_EV_VALIDATE:
9620 case NB_EV_PREPARE:
9621 case NB_EV_ABORT:
9622 return NB_OK;
9623 case NB_EV_APPLY:
9624 return bgp_global_afi_safi_ip_unicast_vpn_config_rd_destroy(
9625 args);
9626 }
9627
9628 return NB_OK;
9629 }
9630
9631 /*
9632 * XPath:
9633 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/label
9634 */
9635 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_label_modify(
9636 struct nb_cb_modify_args *args)
9637 {
9638 switch (args->event) {
9639 case NB_EV_VALIDATE:
9640 case NB_EV_PREPARE:
9641 case NB_EV_ABORT:
9642 case NB_EV_APPLY:
9643 /* TODO: implement me. */
9644 break;
9645 }
9646
9647 return NB_OK;
9648 }
9649
9650 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_label_destroy(
9651 struct nb_cb_destroy_args *args)
9652 {
9653 switch (args->event) {
9654 case NB_EV_VALIDATE:
9655 case NB_EV_PREPARE:
9656 case NB_EV_ABORT:
9657 case NB_EV_APPLY:
9658 /* TODO: implement me. */
9659 break;
9660 }
9661
9662 return NB_OK;
9663 }
9664
9665 /*
9666 * XPath:
9667 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/label-auto
9668 */
9669 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_label_auto_modify(
9670 struct nb_cb_modify_args *args)
9671 {
9672 switch (args->event) {
9673 case NB_EV_VALIDATE:
9674 case NB_EV_PREPARE:
9675 case NB_EV_ABORT:
9676 case NB_EV_APPLY:
9677 /* TODO: implement me. */
9678 break;
9679 }
9680
9681 return NB_OK;
9682 }
9683
9684 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_label_auto_destroy(
9685 struct nb_cb_destroy_args *args)
9686 {
9687 switch (args->event) {
9688 case NB_EV_VALIDATE:
9689 case NB_EV_PREPARE:
9690 case NB_EV_ABORT:
9691 case NB_EV_APPLY:
9692 /* TODO: implement me. */
9693 break;
9694 }
9695
9696 return NB_OK;
9697 }
9698
9699 static int bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_modify(
9700 struct nb_cb_modify_args *args)
9701 {
9702 struct bgp *bgp;
9703 const struct lyd_node *af_dnode;
9704 const char *af_name;
9705 afi_t afi;
9706 safi_t safi;
9707 struct prefix p;
9708
9709 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9710 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9711 yang_afi_safi_identity2value(af_name, &afi, &safi);
9712 bgp = nb_running_get_entry(af_dnode, NULL, true);
9713
9714 yang_dnode_get_prefix(&p, args->dnode, NULL);
9715
9716 /*
9717 * pre-change: un-export vpn routes (vpn->vrf routes unaffected)
9718 */
9719 vpn_leak_prechange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9720 bgp);
9721
9722 bgp->vpn_policy[afi].tovpn_nexthop = p;
9723 SET_FLAG(bgp->vpn_policy[afi].flags, BGP_VPN_POLICY_TOVPN_NEXTHOP_SET);
9724
9725 /* post-change: re-export vpn routes */
9726 vpn_leak_postchange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9727 bgp);
9728
9729 return NB_OK;
9730 }
9731
9732 static int bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_destroy(
9733 struct nb_cb_destroy_args *args)
9734 {
9735 struct bgp *bgp;
9736 const struct lyd_node *af_dnode;
9737 const char *af_name;
9738 afi_t afi;
9739 safi_t safi;
9740 struct prefix p;
9741
9742 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9743 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9744 yang_afi_safi_identity2value(af_name, &afi, &safi);
9745 bgp = nb_running_get_entry(af_dnode, NULL, true);
9746
9747 yang_dnode_get_prefix(&p, args->dnode, NULL);
9748
9749 /*
9750 * pre-change: un-export vpn routes (vpn->vrf routes unaffected)
9751 */
9752 vpn_leak_prechange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9753 bgp);
9754 UNSET_FLAG(bgp->vpn_policy[afi].flags,
9755 BGP_VPN_POLICY_TOVPN_NEXTHOP_SET);
9756 /* post-change: re-export vpn routes */
9757 vpn_leak_postchange(BGP_VPN_POLICY_DIR_TOVPN, afi, bgp_get_default(),
9758 bgp);
9759 return NB_OK;
9760 }
9761
9762 /*
9763 * XPath:
9764 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/nexthop
9765 */
9766 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_nexthop_modify(
9767 struct nb_cb_modify_args *args)
9768 {
9769 struct bgp *bgp;
9770 const struct lyd_node *af_dnode;
9771 const char *af_name;
9772 afi_t afi;
9773 safi_t safi;
9774
9775 switch (args->event) {
9776 case NB_EV_VALIDATE:
9777 bgp = nb_running_get_entry(args->dnode, NULL, false);
9778 if (!bgp)
9779 return NB_OK;
9780 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9781 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9782 yang_afi_safi_identity2value(af_name, &afi, &safi);
9783
9784 if (!vpn_policy_check_import(bgp, afi, safi, false,
9785 args->errmsg, args->errmsg_len))
9786 return NB_ERR_VALIDATION;
9787
9788 break;
9789 case NB_EV_PREPARE:
9790 case NB_EV_ABORT:
9791 return NB_OK;
9792 case NB_EV_APPLY:
9793 return bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_modify(
9794 args);
9795 }
9796
9797 return NB_OK;
9798 }
9799
9800 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_nexthop_destroy(
9801 struct nb_cb_destroy_args *args)
9802 {
9803 switch (args->event) {
9804 case NB_EV_VALIDATE:
9805 case NB_EV_PREPARE:
9806 case NB_EV_ABORT:
9807 return NB_OK;
9808 case NB_EV_APPLY:
9809 return bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_destroy(
9810 args);
9811 }
9812
9813 return NB_OK;
9814 }
9815
9816 static int bgp_global_afi_safi_ip_unicast_vpn_config_import_export_vpn_modify(
9817 struct nb_cb_modify_args *args, const char *direction_str,
9818 bool is_enable)
9819 {
9820 struct bgp *bgp;
9821 const struct lyd_node *af_dnode;
9822 const char *af_name;
9823 afi_t afi;
9824 safi_t safi;
9825 int previous_state;
9826 int flag;
9827 vpn_policy_direction_t dir;
9828
9829 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9830 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9831 yang_afi_safi_identity2value(af_name, &afi, &safi);
9832 bgp = nb_running_get_entry(af_dnode, NULL, true);
9833
9834 if (!strcmp(direction_str, "import")) {
9835 flag = BGP_CONFIG_MPLSVPN_TO_VRF_IMPORT;
9836 dir = BGP_VPN_POLICY_DIR_FROMVPN;
9837 } else if (!strcmp(direction_str, "export")) {
9838 flag = BGP_CONFIG_VRF_TO_MPLSVPN_EXPORT;
9839 dir = BGP_VPN_POLICY_DIR_TOVPN;
9840 } else {
9841 snprintf(args->errmsg, args->errmsg_len,
9842 "unknown direction %s\n", direction_str);
9843 return NB_ERR_INCONSISTENCY;
9844 }
9845
9846 previous_state = CHECK_FLAG(bgp->af_flags[afi][safi], flag);
9847
9848 if (is_enable) {
9849 SET_FLAG(bgp->af_flags[afi][safi], flag);
9850 if (!previous_state) {
9851 /* trigger export current vrf */
9852 vpn_leak_postchange(dir, afi, bgp_get_default(), bgp);
9853 }
9854 } else {
9855 if (previous_state) {
9856 /* trigger un-export current vrf */
9857 vpn_leak_prechange(dir, afi, bgp_get_default(), bgp);
9858 }
9859 UNSET_FLAG(bgp->af_flags[afi][safi], flag);
9860 }
9861
9862 hook_call(bgp_snmp_init_stats, bgp);
9863 return NB_OK;
9864 }
9865
9866 /*
9867 * XPath:
9868 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/import-vpn
9869 */
9870 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_import_vpn_modify(
9871 struct nb_cb_modify_args *args)
9872 {
9873 bool is_enable = false;
9874 struct bgp *bgp;
9875
9876 switch (args->event) {
9877 case NB_EV_VALIDATE:
9878 bgp = nb_running_get_entry(args->dnode, NULL, false);
9879 if (!bgp)
9880 return NB_OK;
9881
9882 if (BGP_INSTANCE_TYPE_VRF != bgp->inst_type
9883 && BGP_INSTANCE_TYPE_DEFAULT != bgp->inst_type) {
9884 snprintf(
9885 args->errmsg, args->errmsg_len,
9886 "import|export vpn valid only for bgp vrf or default instance");
9887 return NB_ERR_VALIDATION;
9888 }
9889
9890 break;
9891 case NB_EV_PREPARE:
9892 case NB_EV_ABORT:
9893 return NB_OK;
9894 case NB_EV_APPLY:
9895 if (yang_dnode_get_bool(args->dnode, NULL))
9896 is_enable = true;
9897
9898 return bgp_global_afi_safi_ip_unicast_vpn_config_import_export_vpn_modify(
9899 args, "import", is_enable);
9900 }
9901
9902 return NB_OK;
9903 }
9904
9905 /*
9906 * XPath:
9907 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/export-vpn
9908 */
9909 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_export_vpn_modify(
9910 struct nb_cb_modify_args *args)
9911 {
9912 bool is_enable = false;
9913 struct bgp *bgp;
9914
9915 switch (args->event) {
9916 case NB_EV_VALIDATE:
9917 bgp = nb_running_get_entry(args->dnode, NULL, false);
9918 if (!bgp)
9919 return NB_OK;
9920
9921 if (BGP_INSTANCE_TYPE_VRF != bgp->inst_type
9922 && BGP_INSTANCE_TYPE_DEFAULT != bgp->inst_type) {
9923 snprintf(
9924 args->errmsg, args->errmsg_len,
9925 "import|export vpn valid only for bgp vrf or default instance");
9926 return NB_ERR_VALIDATION;
9927 }
9928 break;
9929 case NB_EV_PREPARE:
9930 case NB_EV_ABORT:
9931 return NB_OK;
9932 case NB_EV_APPLY:
9933 if (yang_dnode_get_bool(args->dnode, NULL))
9934 is_enable = true;
9935
9936 return bgp_global_afi_safi_ip_unicast_vpn_config_import_export_vpn_modify(
9937 args, "export", is_enable);
9938 }
9939
9940 return NB_OK;
9941 }
9942
9943
9944 static int bgp_global_afi_safi_ip_unicast_vpn_config_import_vrfs_create(
9945 struct nb_cb_create_args *args)
9946 {
9947 struct bgp *bgp;
9948 const struct lyd_node *af_dnode;
9949 const char *af_name;
9950 afi_t afi;
9951 safi_t safi;
9952 int ret = 0;
9953 as_t as;
9954 struct bgp *vrf_bgp, *bgp_default;
9955 const char *import_name;
9956 char *vname;
9957 enum bgp_instance_type bgp_type = BGP_INSTANCE_TYPE_VRF;
9958 struct listnode *node;
9959
9960 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
9961 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
9962 yang_afi_safi_identity2value(af_name, &afi, &safi);
9963 bgp = nb_running_get_entry(af_dnode, NULL, true);
9964
9965 as = bgp->as;
9966 import_name = yang_dnode_get_string(args->dnode, "./vrf");
9967
9968 if (((BGP_INSTANCE_TYPE_DEFAULT == bgp->inst_type)
9969 && (strcmp(import_name, VRF_DEFAULT_NAME) == 0))
9970 || (bgp->name && (strcmp(import_name, bgp->name) == 0))) {
9971 snprintf(args->errmsg, args->errmsg_len,
9972 "Cannot %s vrf %s into itself\n", "import",
9973 import_name);
9974 return NB_ERR_INCONSISTENCY;
9975 }
9976
9977 bgp_default = bgp_get_default();
9978 if (!bgp_default) {
9979 /* Auto-create assuming the same AS */
9980 ret = bgp_get_vty(&bgp_default, &as, NULL,
9981 BGP_INSTANCE_TYPE_DEFAULT);
9982
9983 if (ret) {
9984 snprintf(
9985 args->errmsg, args->errmsg_len,
9986 "VRF default is not configured as a bgp instance");
9987 return NB_ERR_INCONSISTENCY;
9988 }
9989 }
9990
9991 vrf_bgp = bgp_lookup_by_name(import_name);
9992 if (!vrf_bgp) {
9993 if (strcmp(import_name, VRF_DEFAULT_NAME) == 0)
9994 vrf_bgp = bgp_default;
9995 else
9996 /* Auto-create assuming the same AS */
9997 ret = bgp_get_vty(&vrf_bgp, &as, import_name, bgp_type);
9998
9999 if (ret) {
10000 snprintf(args->errmsg, args->errmsg_len,
10001 "VRF %s is not configured as a bgp instance\n",
10002 import_name);
10003 return NB_ERR_INCONSISTENCY;
10004 }
10005 }
10006
10007 /* Already importing from "import_vrf"? */
10008 for (ALL_LIST_ELEMENTS_RO(bgp->vpn_policy[afi].import_vrf, node,
10009 vname)) {
10010 if (strcmp(vname, import_name) == 0) {
10011 snprintf(args->errmsg, args->errmsg_len,
10012 "already importing from vrf %s", import_name);
10013 return NB_ERR_INCONSISTENCY;
10014 }
10015 }
10016
10017 vrf_import_from_vrf(bgp, vrf_bgp, afi, safi);
10018
10019 return NB_OK;
10020 }
10021
10022
10023 static int bgp_global_afi_safi_ip_unicast_vpn_config_import_vrf_list_destroy(
10024 struct nb_cb_destroy_args *args)
10025 {
10026 struct bgp *bgp;
10027 const struct lyd_node *af_dnode;
10028 const char *af_name;
10029 afi_t afi;
10030 safi_t safi;
10031 int ret = 0;
10032 as_t as;
10033 struct bgp *vrf_bgp, *bgp_default;
10034 const char *import_name;
10035 enum bgp_instance_type bgp_type = BGP_INSTANCE_TYPE_VRF;
10036
10037 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10038 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10039 yang_afi_safi_identity2value(af_name, &afi, &safi);
10040 bgp = nb_running_get_entry(af_dnode, NULL, true);
10041
10042 as = bgp->as;
10043 import_name = yang_dnode_get_string(args->dnode, "./vrf");
10044
10045 if (((BGP_INSTANCE_TYPE_DEFAULT == bgp->inst_type)
10046 && (strcmp(import_name, VRF_DEFAULT_NAME) == 0))
10047 || (bgp->name && (strcmp(import_name, bgp->name) == 0))) {
10048 snprintf(args->errmsg, args->errmsg_len,
10049 "Cannot %s vrf %s into itself\n", "unimport",
10050 import_name);
10051 return NB_ERR_INCONSISTENCY;
10052 }
10053
10054 bgp_default = bgp_get_default();
10055 if (!bgp_default) {
10056 /* Auto-create assuming the same AS */
10057 ret = bgp_get_vty(&bgp_default, &as, NULL,
10058 BGP_INSTANCE_TYPE_DEFAULT);
10059
10060 if (ret) {
10061 snprintf(
10062 args->errmsg, args->errmsg_len, "%s",
10063 "VRF default is not configured as a bgp instance");
10064 return NB_ERR_INCONSISTENCY;
10065 }
10066 }
10067
10068 vrf_bgp = bgp_lookup_by_name(import_name);
10069 if (!vrf_bgp) {
10070 if (strcmp(import_name, VRF_DEFAULT_NAME) == 0)
10071 vrf_bgp = bgp_default;
10072 else
10073 /* Auto-create assuming the same AS */
10074 ret = bgp_get_vty(&vrf_bgp, &as, import_name, bgp_type);
10075
10076 if (ret) {
10077 snprintf(args->errmsg, args->errmsg_len,
10078 "VRF %s is not configured as a bgp instance\n",
10079 import_name);
10080 return NB_ERR_INCONSISTENCY;
10081 }
10082 }
10083
10084 vrf_unimport_from_vrf(bgp, vrf_bgp, afi, safi);
10085
10086 return NB_OK;
10087 }
10088
10089
10090 /*
10091 * XPath:
10092 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/import-vrf-list
10093 */
10094 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_import_vrf_list_create(
10095 struct nb_cb_create_args *args)
10096 {
10097 struct bgp *bgp;
10098 const struct lyd_node *af_dnode;
10099 const char *af_name;
10100 afi_t afi;
10101 safi_t safi;
10102
10103 switch (args->event) {
10104 case NB_EV_VALIDATE:
10105 bgp = nb_running_get_entry(args->dnode, NULL, false);
10106 if (!bgp)
10107 return NB_OK;
10108 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10109 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10110 yang_afi_safi_identity2value(af_name, &afi, &safi);
10111
10112 if (!vpn_policy_check_import(bgp, afi, safi, true, args->errmsg,
10113 args->errmsg_len))
10114 return NB_ERR_VALIDATION;
10115
10116 break;
10117 case NB_EV_PREPARE:
10118 case NB_EV_ABORT:
10119 return NB_OK;
10120 case NB_EV_APPLY:
10121 return bgp_global_afi_safi_ip_unicast_vpn_config_import_vrfs_create(
10122 args);
10123 }
10124
10125 return NB_OK;
10126 }
10127
10128 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_import_vrf_list_destroy(
10129 struct nb_cb_destroy_args *args)
10130 {
10131 switch (args->event) {
10132 case NB_EV_VALIDATE:
10133 case NB_EV_PREPARE:
10134 case NB_EV_ABORT:
10135 return NB_OK;
10136 case NB_EV_APPLY:
10137 return bgp_global_afi_safi_ip_unicast_vpn_config_import_vrf_list_destroy(
10138 args);
10139 }
10140
10141 return NB_OK;
10142 }
10143
10144 static int bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_modify(
10145 struct nb_cb_modify_args *args, const char *dstr)
10146 {
10147 struct bgp *bgp;
10148 const struct lyd_node *af_dnode;
10149 const char *af_name;
10150 afi_t afi;
10151 safi_t safi;
10152 const char *rmap_str = NULL;
10153 int dodir[BGP_VPN_POLICY_DIR_MAX] = {0};
10154 vpn_policy_direction_t dir;
10155
10156 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10157 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10158 yang_afi_safi_identity2value(af_name, &afi, &safi);
10159 bgp = nb_running_get_entry(af_dnode, NULL, true);
10160
10161 if (!strcmp(dstr, "import")) {
10162 rmap_str = yang_dnode_get_string(args->dnode, NULL);
10163 dodir[BGP_VPN_POLICY_DIR_FROMVPN] = 1;
10164 } else if (!strcmp(dstr, "export")) {
10165 rmap_str = yang_dnode_get_string(args->dnode, NULL);
10166 dodir[BGP_VPN_POLICY_DIR_TOVPN] = 1;
10167 } else if (!strcmp(dstr, "both")) {
10168 dodir[BGP_VPN_POLICY_DIR_FROMVPN] = 1;
10169 dodir[BGP_VPN_POLICY_DIR_TOVPN] = 1;
10170 }
10171
10172 for (dir = 0; dir < BGP_VPN_POLICY_DIR_MAX; ++dir) {
10173 if (!dodir[dir])
10174 continue;
10175
10176 vpn_leak_prechange(dir, afi, bgp_get_default(), bgp);
10177
10178 if (bgp->vpn_policy[afi].rmap_name[dir])
10179 XFREE(MTYPE_ROUTE_MAP_NAME,
10180 bgp->vpn_policy[afi].rmap_name[dir]);
10181 bgp->vpn_policy[afi].rmap_name[dir] =
10182 XSTRDUP(MTYPE_ROUTE_MAP_NAME, rmap_str);
10183 bgp->vpn_policy[afi].rmap[dir] =
10184 route_map_lookup_by_name(rmap_str);
10185 if (!bgp->vpn_policy[afi].rmap[dir])
10186 return NB_OK;
10187
10188
10189 vpn_leak_postchange(dir, afi, bgp_get_default(), bgp);
10190 }
10191
10192 return NB_OK;
10193 }
10194
10195 static int bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_destroy(
10196 struct nb_cb_destroy_args *args, const char *dstr)
10197 {
10198 struct bgp *bgp;
10199 const struct lyd_node *af_dnode;
10200 const char *af_name;
10201 afi_t afi;
10202 safi_t safi;
10203 int dodir[BGP_VPN_POLICY_DIR_MAX] = {0};
10204 vpn_policy_direction_t dir;
10205
10206 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10207 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10208 yang_afi_safi_identity2value(af_name, &afi, &safi);
10209 bgp = nb_running_get_entry(af_dnode, NULL, true);
10210
10211 if (!strcmp(dstr, "import")) {
10212 dodir[BGP_VPN_POLICY_DIR_FROMVPN] = 1;
10213 } else if (!strcmp(dstr, "export")) {
10214 dodir[BGP_VPN_POLICY_DIR_TOVPN] = 1;
10215 } else if (!strcmp(dstr, "both")) {
10216 dodir[BGP_VPN_POLICY_DIR_FROMVPN] = 1;
10217 dodir[BGP_VPN_POLICY_DIR_TOVPN] = 1;
10218 }
10219
10220 for (dir = 0; dir < BGP_VPN_POLICY_DIR_MAX; ++dir) {
10221 if (!dodir[dir])
10222 continue;
10223
10224 vpn_leak_prechange(dir, afi, bgp_get_default(), bgp);
10225
10226 if (bgp->vpn_policy[afi].rmap_name[dir])
10227 XFREE(MTYPE_ROUTE_MAP_NAME,
10228 bgp->vpn_policy[afi].rmap_name[dir]);
10229 bgp->vpn_policy[afi].rmap_name[dir] = NULL;
10230 bgp->vpn_policy[afi].rmap[dir] = NULL;
10231
10232 vpn_leak_postchange(dir, afi, bgp_get_default(), bgp);
10233 }
10234
10235 return NB_OK;
10236 }
10237
10238 /*
10239 * XPath:
10240 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/rmap-import
10241 */
10242 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rmap_import_modify(
10243 struct nb_cb_modify_args *args)
10244 {
10245 struct bgp *bgp;
10246 const struct lyd_node *af_dnode;
10247 const char *af_name;
10248 afi_t afi;
10249 safi_t safi;
10250
10251 switch (args->event) {
10252 case NB_EV_VALIDATE:
10253 bgp = nb_running_get_entry(args->dnode, NULL, false);
10254 if (!bgp)
10255 return NB_OK;
10256 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10257 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10258 yang_afi_safi_identity2value(af_name, &afi, &safi);
10259
10260 if (!vpn_policy_check_import(bgp, afi, safi, false,
10261 args->errmsg, args->errmsg_len))
10262 return NB_ERR_VALIDATION;
10263 break;
10264 case NB_EV_PREPARE:
10265 case NB_EV_ABORT:
10266 return NB_OK;
10267 case NB_EV_APPLY:
10268 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_modify(
10269 args, "import");
10270 }
10271
10272 return NB_OK;
10273 }
10274
10275 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rmap_import_destroy(
10276 struct nb_cb_destroy_args *args)
10277 {
10278 struct bgp *bgp;
10279 const struct lyd_node *af_dnode;
10280 const char *af_name;
10281 afi_t afi;
10282 safi_t safi;
10283
10284 switch (args->event) {
10285 case NB_EV_VALIDATE:
10286 bgp = nb_running_get_entry(args->dnode, NULL, false);
10287 if (!bgp)
10288 return NB_OK;
10289 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
10290 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
10291 yang_afi_safi_identity2value(af_name, &afi, &safi);
10292
10293 if (!vpn_policy_check_import(bgp, afi, safi, false,
10294 args->errmsg, args->errmsg_len))
10295 return NB_ERR_VALIDATION;
10296 break;
10297 case NB_EV_PREPARE:
10298 case NB_EV_ABORT:
10299 return NB_OK;
10300 case NB_EV_APPLY:
10301 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_destroy(
10302 args, "import");
10303 }
10304
10305 return NB_OK;
10306 }
10307
10308 /*
10309 * XPath:
10310 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/rmap-export
10311 */
10312 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rmap_export_modify(
10313 struct nb_cb_modify_args *args)
10314 {
10315 switch (args->event) {
10316 case NB_EV_VALIDATE:
10317 case NB_EV_PREPARE:
10318 case NB_EV_ABORT:
10319 return NB_OK;
10320 case NB_EV_APPLY:
10321 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_modify(
10322 args, "export");
10323 }
10324
10325 return NB_OK;
10326 }
10327
10328 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rmap_export_destroy(
10329 struct nb_cb_destroy_args *args)
10330 {
10331 switch (args->event) {
10332 case NB_EV_VALIDATE:
10333 case NB_EV_PREPARE:
10334 case NB_EV_ABORT:
10335 return NB_OK;
10336 case NB_EV_APPLY:
10337 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_destroy(
10338 args, "export");
10339 break;
10340 }
10341
10342 return NB_OK;
10343 }
10344
10345 /*
10346 * XPath:
10347 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/redirect-rt
10348 */
10349 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_redirect_rt_modify(
10350 struct nb_cb_modify_args *args)
10351 {
10352 switch (args->event) {
10353 case NB_EV_VALIDATE:
10354 case NB_EV_PREPARE:
10355 case NB_EV_ABORT:
10356 case NB_EV_APPLY:
10357 /* TODO: implement me. */
10358 break;
10359 }
10360
10361 return NB_OK;
10362 }
10363
10364 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_redirect_rt_destroy(
10365 struct nb_cb_destroy_args *args)
10366 {
10367 switch (args->event) {
10368 case NB_EV_VALIDATE:
10369 case NB_EV_PREPARE:
10370 case NB_EV_ABORT:
10371 case NB_EV_APPLY:
10372 /* TODO: implement me. */
10373 break;
10374 }
10375
10376 return NB_OK;
10377 }
10378
10379 /*
10380 * XPath:
10381 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/import-rt-list
10382 */
10383 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_import_rt_list_create(
10384 struct nb_cb_create_args *args)
10385 {
10386 switch (args->event) {
10387 case NB_EV_VALIDATE:
10388 case NB_EV_PREPARE:
10389 case NB_EV_ABORT:
10390 case NB_EV_APPLY:
10391 /* TODO: implement me. */
10392 break;
10393 }
10394
10395 return NB_OK;
10396 }
10397
10398 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_import_rt_list_destroy(
10399 struct nb_cb_destroy_args *args)
10400 {
10401 switch (args->event) {
10402 case NB_EV_VALIDATE:
10403 case NB_EV_PREPARE:
10404 case NB_EV_ABORT:
10405 case NB_EV_APPLY:
10406 /* TODO: implement me. */
10407 break;
10408 }
10409
10410 return NB_OK;
10411 }
10412
10413 /*
10414 * XPath:
10415 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/export-rt-list
10416 */
10417 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_export_rt_list_create(
10418 struct nb_cb_create_args *args)
10419 {
10420 switch (args->event) {
10421 case NB_EV_VALIDATE:
10422 case NB_EV_PREPARE:
10423 case NB_EV_ABORT:
10424 case NB_EV_APPLY:
10425 /* TODO: implement me. */
10426 break;
10427 }
10428
10429 return NB_OK;
10430 }
10431
10432 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_export_rt_list_destroy(
10433 struct nb_cb_destroy_args *args)
10434 {
10435 switch (args->event) {
10436 case NB_EV_VALIDATE:
10437 case NB_EV_PREPARE:
10438 case NB_EV_ABORT:
10439 case NB_EV_APPLY:
10440 /* TODO: implement me. */
10441 break;
10442 }
10443
10444 return NB_OK;
10445 }
10446
10447 /*
10448 * XPath:
10449 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-unicast/vpn-config/rt-list
10450 */
10451 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rt_list_create(
10452 struct nb_cb_create_args *args)
10453 {
10454 switch (args->event) {
10455 case NB_EV_VALIDATE:
10456 case NB_EV_PREPARE:
10457 case NB_EV_ABORT:
10458 case NB_EV_APPLY:
10459 /* TODO: implement me. */
10460 break;
10461 }
10462
10463 return NB_OK;
10464 }
10465
10466 int bgp_global_afi_safis_afi_safi_ipv4_unicast_vpn_config_rt_list_destroy(
10467 struct nb_cb_destroy_args *args)
10468 {
10469 switch (args->event) {
10470 case NB_EV_VALIDATE:
10471 case NB_EV_PREPARE:
10472 case NB_EV_ABORT:
10473 case NB_EV_APPLY:
10474 /* TODO: implement me. */
10475 break;
10476 }
10477
10478 return NB_OK;
10479 }
10480
10481 /*
10482 * XPath:
10483 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/network-config
10484 */
10485 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_create(
10486 struct nb_cb_create_args *args)
10487 {
10488 /* Handled in network_config_apply_finish callback */
10489
10490 return NB_OK;
10491 }
10492
10493 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_destroy(
10494 struct nb_cb_destroy_args *args)
10495 {
10496 switch (args->event) {
10497 case NB_EV_VALIDATE:
10498 case NB_EV_PREPARE:
10499 case NB_EV_ABORT:
10500 return NB_OK;
10501 case NB_EV_APPLY:
10502 return bgp_global_afi_safis_afi_safi_network_config_destroy(
10503 args);
10504 break;
10505 }
10506
10507 return NB_OK;
10508 }
10509
10510 /*
10511 * XPath:
10512 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/network-config/backdoor
10513 */
10514 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_backdoor_modify(
10515 struct nb_cb_modify_args *args)
10516 {
10517 /* Handled in unicast_network_config_apply_finish callback */
10518
10519 return NB_OK;
10520 }
10521
10522 /*
10523 * XPath:
10524 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/network-config/label-index
10525 */
10526 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_label_index_modify(
10527 struct nb_cb_modify_args *args)
10528 {
10529 /* Handled in unicast_network_config_apply_finish callback */
10530
10531 return NB_OK;
10532 }
10533
10534 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_label_index_destroy(
10535 struct nb_cb_destroy_args *args)
10536 {
10537 switch (args->event) {
10538 case NB_EV_VALIDATE:
10539 case NB_EV_PREPARE:
10540 case NB_EV_ABORT:
10541 case NB_EV_APPLY:
10542 /* TODO: implement me. */
10543 break;
10544 }
10545
10546 return NB_OK;
10547 }
10548
10549 /*
10550 * XPath:
10551 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/network-config/rmap-policy-export
10552 */
10553 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_rmap_policy_export_modify(
10554 struct nb_cb_modify_args *args)
10555 {
10556 /* Handled in unicast_network_config_apply_finish callback */
10557
10558 return NB_OK;
10559 }
10560
10561 int bgp_global_afi_safis_afi_safi_ipv6_unicast_network_config_rmap_policy_export_destroy(
10562 struct nb_cb_destroy_args *args)
10563 {
10564 switch (args->event) {
10565 case NB_EV_VALIDATE:
10566 case NB_EV_PREPARE:
10567 case NB_EV_ABORT:
10568 case NB_EV_APPLY:
10569 /* TODO: implement me. */
10570 break;
10571 }
10572
10573 return NB_OK;
10574 }
10575
10576 /*
10577 * XPath:
10578 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route
10579 */
10580 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_create(
10581 struct nb_cb_create_args *args)
10582 {
10583 switch (args->event) {
10584 case NB_EV_VALIDATE:
10585 case NB_EV_PREPARE:
10586 case NB_EV_ABORT:
10587 case NB_EV_APPLY:
10588 /* TODO: implement me. */
10589 break;
10590 }
10591
10592 return NB_OK;
10593 }
10594
10595 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_destroy(
10596 struct nb_cb_destroy_args *args)
10597 {
10598 switch (args->event) {
10599 case NB_EV_VALIDATE:
10600 case NB_EV_PREPARE:
10601 case NB_EV_ABORT:
10602 return NB_OK;
10603 case NB_EV_APPLY:
10604 return bgp_global_afi_safi_aggregate_route_destroy(args);
10605 }
10606
10607 return NB_OK;
10608 }
10609
10610 /*
10611 * XPath:
10612 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/as-set
10613 */
10614 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_as_set_modify(
10615 struct nb_cb_modify_args *args)
10616 {
10617 switch (args->event) {
10618 case NB_EV_VALIDATE:
10619 case NB_EV_PREPARE:
10620 case NB_EV_ABORT:
10621 case NB_EV_APPLY:
10622 /* TODO: implement me. */
10623 break;
10624 }
10625
10626 return NB_OK;
10627 }
10628
10629 /*
10630 * XPath:
10631 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/summary-only
10632 */
10633 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_summary_only_modify(
10634 struct nb_cb_modify_args *args)
10635 {
10636 switch (args->event) {
10637 case NB_EV_VALIDATE:
10638 case NB_EV_PREPARE:
10639 case NB_EV_ABORT:
10640 case NB_EV_APPLY:
10641 /* TODO: implement me. */
10642 break;
10643 }
10644
10645 return NB_OK;
10646 }
10647
10648 /*
10649 * XPath:
10650 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/rmap-policy-export
10651 */
10652 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_rmap_policy_export_modify(
10653 struct nb_cb_modify_args *args)
10654 {
10655 switch (args->event) {
10656 case NB_EV_VALIDATE:
10657 case NB_EV_PREPARE:
10658 case NB_EV_ABORT:
10659 case NB_EV_APPLY:
10660 /* TODO: implement me. */
10661 break;
10662 }
10663
10664 return NB_OK;
10665 }
10666
10667 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_rmap_policy_export_destroy(
10668 struct nb_cb_destroy_args *args)
10669 {
10670 switch (args->event) {
10671 case NB_EV_VALIDATE:
10672 case NB_EV_PREPARE:
10673 case NB_EV_ABORT:
10674 case NB_EV_APPLY:
10675 /* TODO: implement me. */
10676 break;
10677 }
10678
10679 return NB_OK;
10680 }
10681
10682 /*
10683 * XPath:
10684 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/origin
10685 */
10686 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_origin_modify(
10687 struct nb_cb_modify_args *args)
10688 {
10689 switch (args->event) {
10690 case NB_EV_VALIDATE:
10691 case NB_EV_PREPARE:
10692 case NB_EV_ABORT:
10693 case NB_EV_APPLY:
10694 /* TODO: implement me. */
10695 break;
10696 }
10697
10698 return NB_OK;
10699 }
10700
10701 /*
10702 * XPath:
10703 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/match-med
10704 */
10705 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_match_med_modify(
10706 struct nb_cb_modify_args *args)
10707 {
10708 switch (args->event) {
10709 case NB_EV_VALIDATE:
10710 case NB_EV_PREPARE:
10711 case NB_EV_ABORT:
10712 case NB_EV_APPLY:
10713 /* TODO: implement me. */
10714 break;
10715 }
10716
10717 return NB_OK;
10718 }
10719
10720 /*
10721 * XPath:
10722 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/aggregate-route/suppress-map
10723 */
10724 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_suppress_map_modify(
10725 struct nb_cb_modify_args *args)
10726 {
10727 switch (args->event) {
10728 case NB_EV_VALIDATE:
10729 case NB_EV_PREPARE:
10730 case NB_EV_ABORT:
10731 case NB_EV_APPLY:
10732 /* TODO: implement me. */
10733 break;
10734 }
10735
10736 return NB_OK;
10737 }
10738
10739 int bgp_global_afi_safis_afi_safi_ipv6_unicast_aggregate_route_suppress_map_destroy(
10740 struct nb_cb_destroy_args *args)
10741 {
10742 switch (args->event) {
10743 case NB_EV_VALIDATE:
10744 case NB_EV_PREPARE:
10745 case NB_EV_ABORT:
10746 case NB_EV_APPLY:
10747 /* TODO: implement me. */
10748 break;
10749 }
10750
10751 return NB_OK;
10752 }
10753
10754 /*
10755 * XPath:
10756 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance-route
10757 */
10758 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_route_create(
10759 struct nb_cb_create_args *args)
10760 {
10761 switch (args->event) {
10762 case NB_EV_VALIDATE:
10763 case NB_EV_PREPARE:
10764 case NB_EV_ABORT:
10765 case NB_EV_APPLY:
10766 /* TODO: implement me. */
10767 break;
10768 }
10769
10770 return NB_OK;
10771 }
10772
10773 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_route_destroy(
10774 struct nb_cb_destroy_args *args)
10775 {
10776 switch (args->event) {
10777 case NB_EV_VALIDATE:
10778 case NB_EV_PREPARE:
10779 case NB_EV_ABORT:
10780 return NB_OK;
10781 case NB_EV_APPLY:
10782 return bgp_global_afi_safi_admin_distance_route_destroy(args);
10783 }
10784
10785 return NB_OK;
10786 }
10787
10788 /*
10789 * XPath:
10790 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance-route/distance
10791 */
10792 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_route_distance_modify(
10793 struct nb_cb_modify_args *args)
10794 {
10795 switch (args->event) {
10796 case NB_EV_VALIDATE:
10797 case NB_EV_PREPARE:
10798 case NB_EV_ABORT:
10799 case NB_EV_APPLY:
10800 /* TODO: implement me. */
10801 break;
10802 }
10803
10804 return NB_OK;
10805 }
10806
10807 /*
10808 * XPath:
10809 * /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
10810 */
10811 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_route_access_list_policy_export_modify(
10812 struct nb_cb_modify_args *args)
10813 {
10814 switch (args->event) {
10815 case NB_EV_VALIDATE:
10816 case NB_EV_PREPARE:
10817 case NB_EV_ABORT:
10818 case NB_EV_APPLY:
10819 /* TODO: implement me. */
10820 break;
10821 }
10822
10823 return NB_OK;
10824 }
10825
10826 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_route_access_list_policy_export_destroy(
10827 struct nb_cb_destroy_args *args)
10828 {
10829 switch (args->event) {
10830 case NB_EV_VALIDATE:
10831 case NB_EV_PREPARE:
10832 case NB_EV_ABORT:
10833 case NB_EV_APPLY:
10834 /* TODO: implement me. */
10835 break;
10836 }
10837
10838 return NB_OK;
10839 }
10840
10841 /*
10842 * XPath:
10843 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/route-flap-dampening/enable
10844 */
10845 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_enable_modify(
10846 struct nb_cb_modify_args *args)
10847 {
10848 switch (args->event) {
10849 case NB_EV_VALIDATE:
10850 return bgp_global_afi_safi_route_flap_validation(args);
10851 case NB_EV_PREPARE:
10852 case NB_EV_ABORT:
10853 case NB_EV_APPLY:
10854 break;
10855 }
10856
10857 return NB_OK;
10858 }
10859
10860 /*
10861 * XPath:
10862 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/route-flap-dampening/reach-decay
10863 */
10864 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_reach_decay_modify(
10865 struct nb_cb_modify_args *args)
10866 {
10867 switch (args->event) {
10868 case NB_EV_VALIDATE:
10869 case NB_EV_PREPARE:
10870 case NB_EV_ABORT:
10871 case NB_EV_APPLY:
10872 /* TODO: implement me. */
10873 break;
10874 }
10875
10876 return NB_OK;
10877 }
10878
10879 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_reach_decay_destroy(
10880 struct nb_cb_destroy_args *args)
10881 {
10882 switch (args->event) {
10883 case NB_EV_VALIDATE:
10884 case NB_EV_PREPARE:
10885 case NB_EV_ABORT:
10886 case NB_EV_APPLY:
10887 /* TODO: implement me. */
10888 break;
10889 }
10890
10891 return NB_OK;
10892 }
10893
10894 /*
10895 * XPath:
10896 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/route-flap-dampening/reuse-above
10897 */
10898 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_reuse_above_modify(
10899 struct nb_cb_modify_args *args)
10900 {
10901 int reuse = DEFAULT_REUSE;
10902 int suppress = DEFAULT_SUPPRESS;
10903
10904 switch (args->event) {
10905 case NB_EV_VALIDATE:
10906 if (yang_dnode_exists(args->dnode, "../suppress-above"))
10907 suppress = yang_dnode_get_uint16(args->dnode,
10908 "../suppress-above");
10909 reuse = yang_dnode_get_uint16(args->dnode, "../reuse-above");
10910 if (suppress < reuse) {
10911 snprintf(
10912 args->errmsg, args->errmsg_len,
10913 "Suppress value cannot be less than reuse value \n");
10914 return NB_ERR_VALIDATION;
10915 }
10916 break;
10917 case NB_EV_PREPARE:
10918 case NB_EV_ABORT:
10919 case NB_EV_APPLY:
10920 /* TODO: implement me. */
10921 break;
10922 }
10923
10924 return NB_OK;
10925 }
10926
10927 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_reuse_above_destroy(
10928 struct nb_cb_destroy_args *args)
10929 {
10930 switch (args->event) {
10931 case NB_EV_VALIDATE:
10932 case NB_EV_PREPARE:
10933 case NB_EV_ABORT:
10934 case NB_EV_APPLY:
10935 /* TODO: implement me. */
10936 break;
10937 }
10938
10939 return NB_OK;
10940 }
10941
10942 /*
10943 * XPath:
10944 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/route-flap-dampening/suppress-above
10945 */
10946 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_suppress_above_modify(
10947 struct nb_cb_modify_args *args)
10948 {
10949 switch (args->event) {
10950 case NB_EV_VALIDATE:
10951 case NB_EV_PREPARE:
10952 case NB_EV_ABORT:
10953 case NB_EV_APPLY:
10954 /* TODO: implement me. */
10955 break;
10956 }
10957
10958 return NB_OK;
10959 }
10960
10961 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_suppress_above_destroy(
10962 struct nb_cb_destroy_args *args)
10963 {
10964 switch (args->event) {
10965 case NB_EV_VALIDATE:
10966 case NB_EV_PREPARE:
10967 case NB_EV_ABORT:
10968 case NB_EV_APPLY:
10969 /* TODO: implement me. */
10970 break;
10971 }
10972
10973 return NB_OK;
10974 }
10975
10976 /*
10977 * XPath:
10978 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/route-flap-dampening/unreach-decay
10979 */
10980 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_unreach_decay_modify(
10981 struct nb_cb_modify_args *args)
10982 {
10983 switch (args->event) {
10984 case NB_EV_VALIDATE:
10985 case NB_EV_PREPARE:
10986 case NB_EV_ABORT:
10987 case NB_EV_APPLY:
10988 /* TODO: implement me. */
10989 break;
10990 }
10991
10992 return NB_OK;
10993 }
10994
10995 int bgp_global_afi_safis_afi_safi_ipv6_unicast_route_flap_dampening_unreach_decay_destroy(
10996 struct nb_cb_destroy_args *args)
10997 {
10998 switch (args->event) {
10999 case NB_EV_VALIDATE:
11000 case NB_EV_PREPARE:
11001 case NB_EV_ABORT:
11002 case NB_EV_APPLY:
11003 /* TODO: implement me. */
11004 break;
11005 }
11006
11007 return NB_OK;
11008 }
11009
11010 /*
11011 * XPath:
11012 * /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
11013 */
11014 int bgp_global_afi_safis_afi_safi_ipv6_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
11015 struct nb_cb_modify_args *args)
11016 {
11017 uint16_t maxpaths;
11018
11019 switch (args->event) {
11020 case NB_EV_VALIDATE:
11021 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
11022 if (maxpaths > multipath_num) {
11023 snprintf(args->errmsg, args->errmsg_len,
11024 "maxpaths %u is out of range %u", maxpaths,
11025 multipath_num);
11026 return NB_ERR_VALIDATION;
11027 }
11028 break;
11029 case NB_EV_PREPARE:
11030 case NB_EV_ABORT:
11031 return NB_OK;
11032 case NB_EV_APPLY:
11033 return bgp_global_afi_safi_ip_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
11034 args);
11035 }
11036
11037 return NB_OK;
11038 }
11039
11040 /*
11041 * XPath:
11042 * /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
11043 */
11044 int bgp_global_afi_safis_afi_safi_ipv6_unicast_use_multiple_paths_ibgp_maximum_paths_modify(
11045 struct nb_cb_modify_args *args)
11046 {
11047 switch (args->event) {
11048 case NB_EV_VALIDATE:
11049 case NB_EV_PREPARE:
11050 case NB_EV_ABORT:
11051 case NB_EV_APPLY:
11052 /* TODO: implement me. */
11053 break;
11054 }
11055
11056 return NB_OK;
11057 }
11058
11059 /*
11060 * XPath:
11061 * /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
11062 */
11063 int bgp_global_afi_safis_afi_safi_ipv6_unicast_use_multiple_paths_ibgp_cluster_length_list_modify(
11064 struct nb_cb_modify_args *args)
11065 {
11066 switch (args->event) {
11067 case NB_EV_VALIDATE:
11068 case NB_EV_PREPARE:
11069 case NB_EV_ABORT:
11070 case NB_EV_APPLY:
11071 /* TODO: implement me. */
11072 break;
11073 }
11074
11075 return NB_OK;
11076 }
11077
11078 int bgp_global_afi_safis_afi_safi_ipv6_unicast_use_multiple_paths_ibgp_cluster_length_list_destroy(
11079 struct nb_cb_destroy_args *args)
11080 {
11081 switch (args->event) {
11082 case NB_EV_VALIDATE:
11083 case NB_EV_PREPARE:
11084 case NB_EV_ABORT:
11085 case NB_EV_APPLY:
11086 /* TODO: implement me. */
11087 break;
11088 }
11089
11090 return NB_OK;
11091 }
11092
11093 /*
11094 * XPath:
11095 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/redistribution-list
11096 */
11097 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_create(
11098 struct nb_cb_create_args *args)
11099 {
11100 switch (args->event) {
11101 case NB_EV_VALIDATE:
11102 case NB_EV_PREPARE:
11103 case NB_EV_ABORT:
11104 case NB_EV_APPLY:
11105 /* TODO: implement me. */
11106 break;
11107 }
11108
11109 return NB_OK;
11110 }
11111
11112 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_destroy(
11113 struct nb_cb_destroy_args *args)
11114 {
11115 const struct lyd_node *af_dnode;
11116 struct bgp *bgp;
11117 const char *af_name;
11118 afi_t afi;
11119 safi_t safi;
11120 int route_type;
11121 int route_instance;
11122
11123 switch (args->event) {
11124 case NB_EV_VALIDATE:
11125 case NB_EV_PREPARE:
11126 case NB_EV_ABORT:
11127 return NB_OK;
11128 case NB_EV_APPLY:
11129 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
11130 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
11131 yang_afi_safi_identity2value(af_name, &afi, &safi);
11132 bgp = nb_running_get_entry(af_dnode, NULL, true);
11133
11134 route_type = yang_dnode_get_enum(args->dnode, "./route-type");
11135 route_instance =
11136 yang_dnode_get_uint16(args->dnode, "./route-instance");
11137
11138 bgp_redistribute_unset(bgp, afi, route_type, route_instance);
11139
11140 break;
11141 }
11142
11143 return NB_OK;
11144 }
11145
11146 /*
11147 * XPath:
11148 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/redistribution-list/metric
11149 */
11150 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_metric_modify(
11151 struct nb_cb_modify_args *args)
11152 {
11153 switch (args->event) {
11154 case NB_EV_VALIDATE:
11155 case NB_EV_PREPARE:
11156 case NB_EV_ABORT:
11157 case NB_EV_APPLY:
11158 /* TODO: implement me. */
11159 break;
11160 }
11161
11162 return NB_OK;
11163 }
11164
11165 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_metric_destroy(
11166 struct nb_cb_destroy_args *args)
11167 {
11168 switch (args->event) {
11169 case NB_EV_VALIDATE:
11170 case NB_EV_PREPARE:
11171 case NB_EV_ABORT:
11172 case NB_EV_APPLY:
11173 /* TODO: implement me. */
11174 break;
11175 }
11176
11177 return NB_OK;
11178 }
11179
11180 /*
11181 * XPath:
11182 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/redistribution-list/rmap-policy-import
11183 */
11184 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_rmap_policy_import_modify(
11185 struct nb_cb_modify_args *args)
11186 {
11187 switch (args->event) {
11188 case NB_EV_VALIDATE:
11189 case NB_EV_PREPARE:
11190 case NB_EV_ABORT:
11191 case NB_EV_APPLY:
11192 /* TODO: implement me. */
11193 break;
11194 }
11195
11196 return NB_OK;
11197 }
11198
11199 int bgp_global_afi_safis_afi_safi_ipv6_unicast_redistribution_list_rmap_policy_import_destroy(
11200 struct nb_cb_destroy_args *args)
11201 {
11202 switch (args->event) {
11203 case NB_EV_VALIDATE:
11204 case NB_EV_PREPARE:
11205 case NB_EV_ABORT:
11206 case NB_EV_APPLY:
11207 /* TODO: implement me. */
11208 break;
11209 }
11210
11211 return NB_OK;
11212 }
11213
11214 /*
11215 * XPath:
11216 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance
11217 */
11218 void bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_apply_finish(
11219 struct nb_cb_apply_finish_args *args)
11220 {
11221 bgp_global_afi_safis_admin_distance_modify(args);
11222 }
11223
11224 /*
11225 * XPath:
11226 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance/external
11227 */
11228 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_external_modify(
11229 struct nb_cb_modify_args *args)
11230 {
11231 /* Handled in admin_distance_apply_finish callback */
11232
11233 return NB_OK;
11234 }
11235
11236 /*
11237 * XPath:
11238 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance/internal
11239 */
11240 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_internal_modify(
11241 struct nb_cb_modify_args *args)
11242 {
11243 /* Handled in admin_distance_apply_finish callback */
11244
11245 return NB_OK;
11246 }
11247
11248 /*
11249 * XPath:
11250 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/admin-distance/local
11251 */
11252 int bgp_global_afi_safis_afi_safi_ipv6_unicast_admin_distance_local_modify(
11253 struct nb_cb_modify_args *args)
11254 {
11255 /* Handled in admin_distance_apply_finish callback */
11256
11257 return NB_OK;
11258 }
11259
11260 /*
11261 * XPath:
11262 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/filter-config/rmap-export
11263 */
11264 int bgp_global_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_modify(
11265 struct nb_cb_modify_args *args)
11266 {
11267 switch (args->event) {
11268 case NB_EV_VALIDATE:
11269 case NB_EV_PREPARE:
11270 case NB_EV_ABORT:
11271 case NB_EV_APPLY:
11272 /* TODO: implement me. */
11273 break;
11274 }
11275
11276 return NB_OK;
11277 }
11278
11279 int bgp_global_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_destroy(
11280 struct nb_cb_destroy_args *args)
11281 {
11282 switch (args->event) {
11283 case NB_EV_VALIDATE:
11284 case NB_EV_PREPARE:
11285 case NB_EV_ABORT:
11286 case NB_EV_APPLY:
11287 /* TODO: implement me. */
11288 break;
11289 }
11290
11291 return NB_OK;
11292 }
11293
11294 /*
11295 * XPath:
11296 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/rd
11297 */
11298 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rd_modify(
11299 struct nb_cb_modify_args *args)
11300 {
11301 struct bgp *bgp;
11302 const struct lyd_node *af_dnode;
11303 const char *af_name;
11304 afi_t afi;
11305 safi_t safi;
11306
11307 switch (args->event) {
11308 case NB_EV_VALIDATE:
11309 bgp = nb_running_get_entry(args->dnode, NULL, false);
11310 if (!bgp)
11311 return NB_OK;
11312
11313 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
11314 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
11315 yang_afi_safi_identity2value(af_name, &afi, &safi);
11316
11317 if (!vpn_policy_check_import(bgp, afi, safi, false,
11318 args->errmsg, args->errmsg_len))
11319 return NB_ERR_VALIDATION;
11320
11321 break;
11322 case NB_EV_PREPARE:
11323 case NB_EV_ABORT:
11324 return NB_OK;
11325 case NB_EV_APPLY:
11326 return bgp_global_afi_safi_ip_unicast_vpn_config_rd_modify(
11327 args);
11328 }
11329
11330 return NB_OK;
11331 }
11332
11333 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rd_destroy(
11334 struct nb_cb_destroy_args *args)
11335 {
11336 switch (args->event) {
11337 case NB_EV_VALIDATE:
11338 case NB_EV_PREPARE:
11339 case NB_EV_ABORT:
11340 return NB_OK;
11341 case NB_EV_APPLY:
11342 return bgp_global_afi_safi_ip_unicast_vpn_config_rd_destroy(
11343 args);
11344 }
11345
11346 return NB_OK;
11347 }
11348
11349 /*
11350 * XPath:
11351 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/label
11352 */
11353 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_label_modify(
11354 struct nb_cb_modify_args *args)
11355 {
11356 switch (args->event) {
11357 case NB_EV_VALIDATE:
11358 case NB_EV_PREPARE:
11359 case NB_EV_ABORT:
11360 case NB_EV_APPLY:
11361 /* TODO: implement me. */
11362 break;
11363 }
11364
11365 return NB_OK;
11366 }
11367
11368 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_label_destroy(
11369 struct nb_cb_destroy_args *args)
11370 {
11371 switch (args->event) {
11372 case NB_EV_VALIDATE:
11373 case NB_EV_PREPARE:
11374 case NB_EV_ABORT:
11375 case NB_EV_APPLY:
11376 /* TODO: implement me. */
11377 break;
11378 }
11379
11380 return NB_OK;
11381 }
11382
11383 /*
11384 * XPath:
11385 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/label-auto
11386 */
11387 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_label_auto_modify(
11388 struct nb_cb_modify_args *args)
11389 {
11390 switch (args->event) {
11391 case NB_EV_VALIDATE:
11392 case NB_EV_PREPARE:
11393 case NB_EV_ABORT:
11394 case NB_EV_APPLY:
11395 /* TODO: implement me. */
11396 break;
11397 }
11398
11399 return NB_OK;
11400 }
11401
11402 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_label_auto_destroy(
11403 struct nb_cb_destroy_args *args)
11404 {
11405 switch (args->event) {
11406 case NB_EV_VALIDATE:
11407 case NB_EV_PREPARE:
11408 case NB_EV_ABORT:
11409 case NB_EV_APPLY:
11410 /* TODO: implement me. */
11411 break;
11412 }
11413
11414 return NB_OK;
11415 }
11416
11417 /*
11418 * XPath:
11419 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/nexthop
11420 */
11421 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_nexthop_modify(
11422 struct nb_cb_modify_args *args)
11423 {
11424 struct bgp *bgp;
11425 const struct lyd_node *af_dnode;
11426 const char *af_name;
11427 afi_t afi;
11428 safi_t safi;
11429
11430 switch (args->event) {
11431 case NB_EV_VALIDATE:
11432 bgp = nb_running_get_entry(args->dnode, NULL, false);
11433 if (!bgp)
11434 return NB_OK;
11435
11436 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
11437 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
11438 yang_afi_safi_identity2value(af_name, &afi, &safi);
11439
11440 if (!vpn_policy_check_import(bgp, afi, safi, false,
11441 args->errmsg, args->errmsg_len))
11442 return NB_ERR_VALIDATION;
11443
11444 break;
11445 case NB_EV_PREPARE:
11446 case NB_EV_ABORT:
11447 return NB_OK;
11448 case NB_EV_APPLY:
11449 return bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_modify(
11450 args);
11451 }
11452
11453 return NB_OK;
11454 }
11455
11456 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_nexthop_destroy(
11457 struct nb_cb_destroy_args *args)
11458 {
11459 switch (args->event) {
11460 case NB_EV_VALIDATE:
11461 case NB_EV_PREPARE:
11462 case NB_EV_ABORT:
11463 return NB_OK;
11464 case NB_EV_APPLY:
11465 return bgp_global_afi_safi_ip_unicast_vpn_config_nexthop_destroy(
11466 args);
11467 }
11468
11469 return NB_OK;
11470 }
11471
11472 /*
11473 * XPath:
11474 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/import-vpn
11475 */
11476 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_import_vpn_modify(
11477 struct nb_cb_modify_args *args)
11478 {
11479 switch (args->event) {
11480 case NB_EV_VALIDATE:
11481 case NB_EV_PREPARE:
11482 case NB_EV_ABORT:
11483 case NB_EV_APPLY:
11484 /* TODO: implement me. */
11485 break;
11486 }
11487
11488 return NB_OK;
11489 }
11490
11491 /*
11492 * XPath:
11493 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/export-vpn
11494 */
11495 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_export_vpn_modify(
11496 struct nb_cb_modify_args *args)
11497 {
11498 switch (args->event) {
11499 case NB_EV_VALIDATE:
11500 case NB_EV_PREPARE:
11501 case NB_EV_ABORT:
11502 case NB_EV_APPLY:
11503 /* TODO: implement me. */
11504 break;
11505 }
11506
11507 return NB_OK;
11508 }
11509
11510 /*
11511 * XPath:
11512 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/import-vrf-list
11513 */
11514 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_import_vrf_list_create(
11515 struct nb_cb_create_args *args)
11516 {
11517 struct bgp *bgp;
11518 const struct lyd_node *af_dnode;
11519 const char *af_name;
11520 afi_t afi;
11521 safi_t safi;
11522
11523 switch (args->event) {
11524 case NB_EV_VALIDATE:
11525 bgp = nb_running_get_entry(args->dnode, NULL, false);
11526 if (!bgp)
11527 return NB_OK;
11528 af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
11529 af_name = yang_dnode_get_string(af_dnode, "./afi-safi-name");
11530 yang_afi_safi_identity2value(af_name, &afi, &safi);
11531
11532 if (!vpn_policy_check_import(bgp, afi, safi, true, args->errmsg,
11533 args->errmsg_len))
11534 return NB_ERR_VALIDATION;
11535
11536 break;
11537 case NB_EV_PREPARE:
11538 case NB_EV_ABORT:
11539 return NB_OK;
11540 case NB_EV_APPLY:
11541 return bgp_global_afi_safi_ip_unicast_vpn_config_import_vrfs_create(
11542 args);
11543 }
11544
11545 return NB_OK;
11546 }
11547
11548 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_import_vrf_list_destroy(
11549 struct nb_cb_destroy_args *args)
11550 {
11551 switch (args->event) {
11552 case NB_EV_VALIDATE:
11553 case NB_EV_PREPARE:
11554 case NB_EV_ABORT:
11555 return NB_OK;
11556 case NB_EV_APPLY:
11557 return bgp_global_afi_safi_ip_unicast_vpn_config_import_vrf_list_destroy(
11558 args);
11559 }
11560
11561 return NB_OK;
11562 }
11563
11564 /*
11565 * XPath:
11566 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/rmap-import
11567 */
11568 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rmap_import_modify(
11569 struct nb_cb_modify_args *args)
11570 {
11571 switch (args->event) {
11572 case NB_EV_VALIDATE:
11573 case NB_EV_PREPARE:
11574 case NB_EV_ABORT:
11575 return NB_OK;
11576 case NB_EV_APPLY:
11577 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_modify(
11578 args, "import");
11579 }
11580
11581 return NB_OK;
11582 }
11583
11584 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rmap_import_destroy(
11585 struct nb_cb_destroy_args *args)
11586 {
11587 switch (args->event) {
11588 case NB_EV_VALIDATE:
11589 case NB_EV_PREPARE:
11590 case NB_EV_ABORT:
11591 return NB_OK;
11592 case NB_EV_APPLY:
11593 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_destroy(
11594 args, "import");
11595 }
11596
11597 return NB_OK;
11598 }
11599
11600 /*
11601 * XPath:
11602 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/rmap-export
11603 */
11604 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rmap_export_modify(
11605 struct nb_cb_modify_args *args)
11606 {
11607 switch (args->event) {
11608 case NB_EV_VALIDATE:
11609 case NB_EV_PREPARE:
11610 case NB_EV_ABORT:
11611 return NB_OK;
11612 case NB_EV_APPLY:
11613 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_modify(
11614 args, "export");
11615 }
11616
11617 return NB_OK;
11618 }
11619
11620 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rmap_export_destroy(
11621 struct nb_cb_destroy_args *args)
11622 {
11623 switch (args->event) {
11624 case NB_EV_VALIDATE:
11625 case NB_EV_PREPARE:
11626 case NB_EV_ABORT:
11627 return NB_OK;
11628 case NB_EV_APPLY:
11629 return bgp_global_afi_safi_ip_unicast_vpn_config_rmap_import_destroy(
11630 args, "export");
11631 }
11632
11633 return NB_OK;
11634 }
11635
11636 /*
11637 * XPath:
11638 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/redirect-rt
11639 */
11640 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_redirect_rt_modify(
11641 struct nb_cb_modify_args *args)
11642 {
11643 switch (args->event) {
11644 case NB_EV_VALIDATE:
11645 case NB_EV_PREPARE:
11646 case NB_EV_ABORT:
11647 case NB_EV_APPLY:
11648 /* TODO: implement me. */
11649 break;
11650 }
11651
11652 return NB_OK;
11653 }
11654
11655 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_redirect_rt_destroy(
11656 struct nb_cb_destroy_args *args)
11657 {
11658 switch (args->event) {
11659 case NB_EV_VALIDATE:
11660 case NB_EV_PREPARE:
11661 case NB_EV_ABORT:
11662 case NB_EV_APPLY:
11663 /* TODO: implement me. */
11664 break;
11665 }
11666
11667 return NB_OK;
11668 }
11669
11670 /*
11671 * XPath:
11672 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/import-rt-list
11673 */
11674 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_import_rt_list_create(
11675 struct nb_cb_create_args *args)
11676 {
11677 switch (args->event) {
11678 case NB_EV_VALIDATE:
11679 case NB_EV_PREPARE:
11680 case NB_EV_ABORT:
11681 case NB_EV_APPLY:
11682 /* TODO: implement me. */
11683 break;
11684 }
11685
11686 return NB_OK;
11687 }
11688
11689 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_import_rt_list_destroy(
11690 struct nb_cb_destroy_args *args)
11691 {
11692 switch (args->event) {
11693 case NB_EV_VALIDATE:
11694 case NB_EV_PREPARE:
11695 case NB_EV_ABORT:
11696 case NB_EV_APPLY:
11697 /* TODO: implement me. */
11698 break;
11699 }
11700
11701 return NB_OK;
11702 }
11703
11704 /*
11705 * XPath:
11706 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/export-rt-list
11707 */
11708 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_export_rt_list_create(
11709 struct nb_cb_create_args *args)
11710 {
11711 switch (args->event) {
11712 case NB_EV_VALIDATE:
11713 case NB_EV_PREPARE:
11714 case NB_EV_ABORT:
11715 case NB_EV_APPLY:
11716 /* TODO: implement me. */
11717 break;
11718 }
11719
11720 return NB_OK;
11721 }
11722
11723 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_export_rt_list_destroy(
11724 struct nb_cb_destroy_args *args)
11725 {
11726 switch (args->event) {
11727 case NB_EV_VALIDATE:
11728 case NB_EV_PREPARE:
11729 case NB_EV_ABORT:
11730 case NB_EV_APPLY:
11731 /* TODO: implement me. */
11732 break;
11733 }
11734
11735 return NB_OK;
11736 }
11737
11738 /*
11739 * XPath:
11740 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-unicast/vpn-config/rt-list
11741 */
11742 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rt_list_create(
11743 struct nb_cb_create_args *args)
11744 {
11745 switch (args->event) {
11746 case NB_EV_VALIDATE:
11747 case NB_EV_PREPARE:
11748 case NB_EV_ABORT:
11749 case NB_EV_APPLY:
11750 /* TODO: implement me. */
11751 break;
11752 }
11753
11754 return NB_OK;
11755 }
11756
11757 int bgp_global_afi_safis_afi_safi_ipv6_unicast_vpn_config_rt_list_destroy(
11758 struct nb_cb_destroy_args *args)
11759 {
11760 switch (args->event) {
11761 case NB_EV_VALIDATE:
11762 case NB_EV_PREPARE:
11763 case NB_EV_ABORT:
11764 case NB_EV_APPLY:
11765 /* TODO: implement me. */
11766 break;
11767 }
11768
11769 return NB_OK;
11770 }
11771
11772 /*
11773 * XPath:
11774 * /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
11775 */
11776 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
11777 struct nb_cb_modify_args *args)
11778 {
11779 uint16_t maxpaths;
11780
11781 switch (args->event) {
11782 case NB_EV_VALIDATE:
11783 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
11784 if (maxpaths > multipath_num) {
11785 snprintf(args->errmsg, args->errmsg_len,
11786 "maxpaths %u is out of range %u", maxpaths,
11787 multipath_num);
11788 return NB_ERR_VALIDATION;
11789 }
11790 break;
11791 case NB_EV_PREPARE:
11792 case NB_EV_ABORT:
11793 return NB_OK;
11794 case NB_EV_APPLY:
11795 return bgp_global_afi_safi_ip_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
11796 args);
11797 }
11798
11799 return NB_OK;
11800 }
11801
11802 /*
11803 * XPath:
11804 * /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
11805 */
11806 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_use_multiple_paths_ibgp_maximum_paths_modify(
11807 struct nb_cb_modify_args *args)
11808 {
11809 switch (args->event) {
11810 case NB_EV_VALIDATE:
11811 case NB_EV_PREPARE:
11812 case NB_EV_ABORT:
11813 case NB_EV_APPLY:
11814 /* TODO: implement me. */
11815 break;
11816 }
11817
11818 return NB_OK;
11819 }
11820
11821 /*
11822 * XPath:
11823 * /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
11824 */
11825 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_use_multiple_paths_ibgp_cluster_length_list_modify(
11826 struct nb_cb_modify_args *args)
11827 {
11828 switch (args->event) {
11829 case NB_EV_VALIDATE:
11830 case NB_EV_PREPARE:
11831 case NB_EV_ABORT:
11832 case NB_EV_APPLY:
11833 /* TODO: implement me. */
11834 break;
11835 }
11836
11837 return NB_OK;
11838 }
11839
11840 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_use_multiple_paths_ibgp_cluster_length_list_destroy(
11841 struct nb_cb_destroy_args *args)
11842 {
11843 switch (args->event) {
11844 case NB_EV_VALIDATE:
11845 case NB_EV_PREPARE:
11846 case NB_EV_ABORT:
11847 case NB_EV_APPLY:
11848 /* TODO: implement me. */
11849 break;
11850 }
11851
11852 return NB_OK;
11853 }
11854
11855 /*
11856 * XPath:
11857 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-labeled-unicast/route-flap-dampening/enable
11858 */
11859 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_enable_modify(
11860 struct nb_cb_modify_args *args)
11861 {
11862 switch (args->event) {
11863 case NB_EV_VALIDATE:
11864 return bgp_global_afi_safi_route_flap_validation(args);
11865 case NB_EV_PREPARE:
11866 case NB_EV_ABORT:
11867 case NB_EV_APPLY:
11868 break;
11869 }
11870
11871 return NB_OK;
11872 }
11873
11874 /*
11875 * XPath:
11876 * /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
11877 */
11878 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_reach_decay_modify(
11879 struct nb_cb_modify_args *args)
11880 {
11881 switch (args->event) {
11882 case NB_EV_VALIDATE:
11883 case NB_EV_PREPARE:
11884 case NB_EV_ABORT:
11885 case NB_EV_APPLY:
11886 /* TODO: implement me. */
11887 break;
11888 }
11889
11890 return NB_OK;
11891 }
11892
11893 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_reach_decay_destroy(
11894 struct nb_cb_destroy_args *args)
11895 {
11896 switch (args->event) {
11897 case NB_EV_VALIDATE:
11898 case NB_EV_PREPARE:
11899 case NB_EV_ABORT:
11900 case NB_EV_APPLY:
11901 /* TODO: implement me. */
11902 break;
11903 }
11904
11905 return NB_OK;
11906 }
11907
11908 /*
11909 * XPath:
11910 * /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
11911 */
11912 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_reuse_above_modify(
11913 struct nb_cb_modify_args *args)
11914 {
11915 switch (args->event) {
11916 case NB_EV_VALIDATE:
11917 case NB_EV_PREPARE:
11918 case NB_EV_ABORT:
11919 case NB_EV_APPLY:
11920 /* TODO: implement me. */
11921 break;
11922 }
11923
11924 return NB_OK;
11925 }
11926
11927 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_reuse_above_destroy(
11928 struct nb_cb_destroy_args *args)
11929 {
11930 switch (args->event) {
11931 case NB_EV_VALIDATE:
11932 case NB_EV_PREPARE:
11933 case NB_EV_ABORT:
11934 case NB_EV_APPLY:
11935 /* TODO: implement me. */
11936 break;
11937 }
11938
11939 return NB_OK;
11940 }
11941
11942 /*
11943 * XPath:
11944 * /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
11945 */
11946 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_suppress_above_modify(
11947 struct nb_cb_modify_args *args)
11948 {
11949 switch (args->event) {
11950 case NB_EV_VALIDATE:
11951 case NB_EV_PREPARE:
11952 case NB_EV_ABORT:
11953 case NB_EV_APPLY:
11954 /* TODO: implement me. */
11955 break;
11956 }
11957
11958 return NB_OK;
11959 }
11960
11961 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_suppress_above_destroy(
11962 struct nb_cb_destroy_args *args)
11963 {
11964 switch (args->event) {
11965 case NB_EV_VALIDATE:
11966 case NB_EV_PREPARE:
11967 case NB_EV_ABORT:
11968 case NB_EV_APPLY:
11969 /* TODO: implement me. */
11970 break;
11971 }
11972
11973 return NB_OK;
11974 }
11975
11976 /*
11977 * XPath:
11978 * /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
11979 */
11980 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_unreach_decay_modify(
11981 struct nb_cb_modify_args *args)
11982 {
11983 switch (args->event) {
11984 case NB_EV_VALIDATE:
11985 case NB_EV_PREPARE:
11986 case NB_EV_ABORT:
11987 case NB_EV_APPLY:
11988 /* TODO: implement me. */
11989 break;
11990 }
11991
11992 return NB_OK;
11993 }
11994
11995 int bgp_global_afi_safis_afi_safi_ipv4_labeled_unicast_route_flap_dampening_unreach_decay_destroy(
11996 struct nb_cb_destroy_args *args)
11997 {
11998 switch (args->event) {
11999 case NB_EV_VALIDATE:
12000 case NB_EV_PREPARE:
12001 case NB_EV_ABORT:
12002 case NB_EV_APPLY:
12003 /* TODO: implement me. */
12004 break;
12005 }
12006
12007 return NB_OK;
12008 }
12009
12010 /*
12011 * XPath:
12012 * /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
12013 */
12014 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
12015 struct nb_cb_modify_args *args)
12016 {
12017 uint16_t maxpaths;
12018
12019 switch (args->event) {
12020 case NB_EV_VALIDATE:
12021 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
12022 if (maxpaths > multipath_num) {
12023 snprintf(args->errmsg, args->errmsg_len,
12024 "maxpaths %u is out of range %u", maxpaths,
12025 multipath_num);
12026 return NB_ERR_VALIDATION;
12027 }
12028 break;
12029 case NB_EV_PREPARE:
12030 case NB_EV_ABORT:
12031 return NB_OK;
12032 case NB_EV_APPLY:
12033 return bgp_global_afi_safi_ip_unicast_use_multiple_paths_ebgp_maximum_paths_modify(
12034 args);
12035 }
12036
12037 return NB_OK;
12038 }
12039
12040 /*
12041 * XPath:
12042 * /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
12043 */
12044 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_use_multiple_paths_ibgp_maximum_paths_modify(
12045 struct nb_cb_modify_args *args)
12046 {
12047 uint16_t maxpaths;
12048
12049 switch (args->event) {
12050 case NB_EV_VALIDATE:
12051 maxpaths = yang_dnode_get_uint16(args->dnode, NULL);
12052 if (maxpaths > multipath_num) {
12053 snprintf(args->errmsg, args->errmsg_len,
12054 "maxpaths %u is out of range %u", maxpaths,
12055 multipath_num);
12056 return NB_ERR_VALIDATION;
12057 }
12058 break;
12059 case NB_EV_PREPARE:
12060 case NB_EV_ABORT:
12061 case NB_EV_APPLY:
12062 /* TODO: implement me. */
12063 break;
12064 }
12065
12066 return NB_OK;
12067 }
12068
12069 /*
12070 * XPath:
12071 * /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
12072 */
12073 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_use_multiple_paths_ibgp_cluster_length_list_modify(
12074 struct nb_cb_modify_args *args)
12075 {
12076 switch (args->event) {
12077 case NB_EV_VALIDATE:
12078 case NB_EV_PREPARE:
12079 case NB_EV_ABORT:
12080 case NB_EV_APPLY:
12081 /* TODO: implement me. */
12082 break;
12083 }
12084
12085 return NB_OK;
12086 }
12087
12088 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_use_multiple_paths_ibgp_cluster_length_list_destroy(
12089 struct nb_cb_destroy_args *args)
12090 {
12091 switch (args->event) {
12092 case NB_EV_VALIDATE:
12093 case NB_EV_PREPARE:
12094 case NB_EV_ABORT:
12095 case NB_EV_APPLY:
12096 /* TODO: implement me. */
12097 break;
12098 }
12099
12100 return NB_OK;
12101 }
12102
12103 /*
12104 * XPath:
12105 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-labeled-unicast/route-flap-dampening/enable
12106 */
12107 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_enable_modify(
12108 struct nb_cb_modify_args *args)
12109 {
12110 switch (args->event) {
12111 case NB_EV_VALIDATE:
12112 return bgp_global_afi_safi_route_flap_validation(args);
12113 case NB_EV_PREPARE:
12114 case NB_EV_ABORT:
12115 case NB_EV_APPLY:
12116 break;
12117 }
12118
12119 return NB_OK;
12120 }
12121
12122 /*
12123 * XPath:
12124 * /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
12125 */
12126 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_reach_decay_modify(
12127 struct nb_cb_modify_args *args)
12128 {
12129 switch (args->event) {
12130 case NB_EV_VALIDATE:
12131 case NB_EV_PREPARE:
12132 case NB_EV_ABORT:
12133 case NB_EV_APPLY:
12134 /* TODO: implement me. */
12135 break;
12136 }
12137
12138 return NB_OK;
12139 }
12140
12141 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_reach_decay_destroy(
12142 struct nb_cb_destroy_args *args)
12143 {
12144 switch (args->event) {
12145 case NB_EV_VALIDATE:
12146 case NB_EV_PREPARE:
12147 case NB_EV_ABORT:
12148 case NB_EV_APPLY:
12149 /* TODO: implement me. */
12150 break;
12151 }
12152
12153 return NB_OK;
12154 }
12155
12156 /*
12157 * XPath:
12158 * /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
12159 */
12160 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_reuse_above_modify(
12161 struct nb_cb_modify_args *args)
12162 {
12163 switch (args->event) {
12164 case NB_EV_VALIDATE:
12165 case NB_EV_PREPARE:
12166 case NB_EV_ABORT:
12167 case NB_EV_APPLY:
12168 /* TODO: implement me. */
12169 break;
12170 }
12171
12172 return NB_OK;
12173 }
12174
12175 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_reuse_above_destroy(
12176 struct nb_cb_destroy_args *args)
12177 {
12178 switch (args->event) {
12179 case NB_EV_VALIDATE:
12180 case NB_EV_PREPARE:
12181 case NB_EV_ABORT:
12182 case NB_EV_APPLY:
12183 /* TODO: implement me. */
12184 break;
12185 }
12186
12187 return NB_OK;
12188 }
12189
12190 /*
12191 * XPath:
12192 * /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
12193 */
12194 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_suppress_above_modify(
12195 struct nb_cb_modify_args *args)
12196 {
12197 switch (args->event) {
12198 case NB_EV_VALIDATE:
12199 case NB_EV_PREPARE:
12200 case NB_EV_ABORT:
12201 case NB_EV_APPLY:
12202 /* TODO: implement me. */
12203 break;
12204 }
12205
12206 return NB_OK;
12207 }
12208
12209 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_suppress_above_destroy(
12210 struct nb_cb_destroy_args *args)
12211 {
12212 switch (args->event) {
12213 case NB_EV_VALIDATE:
12214 case NB_EV_PREPARE:
12215 case NB_EV_ABORT:
12216 case NB_EV_APPLY:
12217 /* TODO: implement me. */
12218 break;
12219 }
12220
12221 return NB_OK;
12222 }
12223
12224 /*
12225 * XPath:
12226 * /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
12227 */
12228 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_unreach_decay_modify(
12229 struct nb_cb_modify_args *args)
12230 {
12231 switch (args->event) {
12232 case NB_EV_VALIDATE:
12233 case NB_EV_PREPARE:
12234 case NB_EV_ABORT:
12235 case NB_EV_APPLY:
12236 /* TODO: implement me. */
12237 break;
12238 }
12239
12240 return NB_OK;
12241 }
12242
12243 int bgp_global_afi_safis_afi_safi_ipv6_labeled_unicast_route_flap_dampening_unreach_decay_destroy(
12244 struct nb_cb_destroy_args *args)
12245 {
12246 switch (args->event) {
12247 case NB_EV_VALIDATE:
12248 case NB_EV_PREPARE:
12249 case NB_EV_ABORT:
12250 case NB_EV_APPLY:
12251 /* TODO: implement me. */
12252 break;
12253 }
12254
12255 return NB_OK;
12256 }
12257
12258 /*
12259 * XPath:
12260 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/network-config
12261 */
12262 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_create(
12263 struct nb_cb_create_args *args)
12264 {
12265 /* Handled in network_config_apply_finish callback */
12266
12267 return NB_OK;
12268 }
12269
12270 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_destroy(
12271 struct nb_cb_destroy_args *args)
12272 {
12273 switch (args->event) {
12274 case NB_EV_VALIDATE:
12275 case NB_EV_PREPARE:
12276 case NB_EV_ABORT:
12277 return NB_OK;
12278 case NB_EV_APPLY:
12279 return bgp_global_afi_safis_afi_safi_network_config_destroy(
12280 args);
12281 break;
12282 }
12283
12284 return NB_OK;
12285 }
12286
12287 /*
12288 * XPath:
12289 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/network-config/backdoor
12290 */
12291 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_backdoor_modify(
12292 struct nb_cb_modify_args *args)
12293 {
12294 switch (args->event) {
12295 case NB_EV_VALIDATE:
12296 case NB_EV_PREPARE:
12297 case NB_EV_ABORT:
12298 case NB_EV_APPLY:
12299 /* TODO: implement me. */
12300 break;
12301 }
12302
12303 return NB_OK;
12304 }
12305
12306 /*
12307 * XPath:
12308 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/network-config/label-index
12309 */
12310 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_label_index_modify(
12311 struct nb_cb_modify_args *args)
12312 {
12313 switch (args->event) {
12314 case NB_EV_VALIDATE:
12315 case NB_EV_PREPARE:
12316 case NB_EV_ABORT:
12317 case NB_EV_APPLY:
12318 /* TODO: implement me. */
12319 break;
12320 }
12321
12322 return NB_OK;
12323 }
12324
12325 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_label_index_destroy(
12326 struct nb_cb_destroy_args *args)
12327 {
12328 switch (args->event) {
12329 case NB_EV_VALIDATE:
12330 case NB_EV_PREPARE:
12331 case NB_EV_ABORT:
12332 case NB_EV_APPLY:
12333 /* TODO: implement me. */
12334 break;
12335 }
12336
12337 return NB_OK;
12338 }
12339
12340 /*
12341 * XPath:
12342 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/network-config/rmap-policy-export
12343 */
12344 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_rmap_policy_export_modify(
12345 struct nb_cb_modify_args *args)
12346 {
12347 switch (args->event) {
12348 case NB_EV_VALIDATE:
12349 case NB_EV_PREPARE:
12350 case NB_EV_ABORT:
12351 case NB_EV_APPLY:
12352 /* TODO: implement me. */
12353 break;
12354 }
12355
12356 return NB_OK;
12357 }
12358
12359 int bgp_global_afi_safis_afi_safi_ipv4_multicast_network_config_rmap_policy_export_destroy(
12360 struct nb_cb_destroy_args *args)
12361 {
12362 switch (args->event) {
12363 case NB_EV_VALIDATE:
12364 case NB_EV_PREPARE:
12365 case NB_EV_ABORT:
12366 case NB_EV_APPLY:
12367 /* TODO: implement me. */
12368 break;
12369 }
12370
12371 return NB_OK;
12372 }
12373
12374 /*
12375 * XPath:
12376 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route
12377 */
12378 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_create(
12379 struct nb_cb_create_args *args)
12380 {
12381 switch (args->event) {
12382 case NB_EV_VALIDATE:
12383 case NB_EV_PREPARE:
12384 case NB_EV_ABORT:
12385 case NB_EV_APPLY:
12386 /* TODO: implement me. */
12387 break;
12388 }
12389
12390 return NB_OK;
12391 }
12392
12393 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_destroy(
12394 struct nb_cb_destroy_args *args)
12395 {
12396 switch (args->event) {
12397 case NB_EV_VALIDATE:
12398 case NB_EV_PREPARE:
12399 case NB_EV_ABORT:
12400 case NB_EV_APPLY:
12401 /* TODO: implement me. */
12402 break;
12403 }
12404
12405 return NB_OK;
12406 }
12407
12408 /*
12409 * XPath:
12410 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/as-set
12411 */
12412 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_as_set_modify(
12413 struct nb_cb_modify_args *args)
12414 {
12415 switch (args->event) {
12416 case NB_EV_VALIDATE:
12417 case NB_EV_PREPARE:
12418 case NB_EV_ABORT:
12419 case NB_EV_APPLY:
12420 /* TODO: implement me. */
12421 break;
12422 }
12423
12424 return NB_OK;
12425 }
12426
12427 /*
12428 * XPath:
12429 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/summary-only
12430 */
12431 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_summary_only_modify(
12432 struct nb_cb_modify_args *args)
12433 {
12434 switch (args->event) {
12435 case NB_EV_VALIDATE:
12436 case NB_EV_PREPARE:
12437 case NB_EV_ABORT:
12438 case NB_EV_APPLY:
12439 /* TODO: implement me. */
12440 break;
12441 }
12442
12443 return NB_OK;
12444 }
12445
12446 /*
12447 * XPath:
12448 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/rmap-policy-export
12449 */
12450 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_rmap_policy_export_modify(
12451 struct nb_cb_modify_args *args)
12452 {
12453 switch (args->event) {
12454 case NB_EV_VALIDATE:
12455 case NB_EV_PREPARE:
12456 case NB_EV_ABORT:
12457 case NB_EV_APPLY:
12458 /* TODO: implement me. */
12459 break;
12460 }
12461
12462 return NB_OK;
12463 }
12464
12465 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_rmap_policy_export_destroy(
12466 struct nb_cb_destroy_args *args)
12467 {
12468 switch (args->event) {
12469 case NB_EV_VALIDATE:
12470 case NB_EV_PREPARE:
12471 case NB_EV_ABORT:
12472 case NB_EV_APPLY:
12473 /* TODO: implement me. */
12474 break;
12475 }
12476
12477 return NB_OK;
12478 }
12479
12480 /*
12481 * XPath:
12482 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/origin
12483 */
12484 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_origin_modify(
12485 struct nb_cb_modify_args *args)
12486 {
12487 switch (args->event) {
12488 case NB_EV_VALIDATE:
12489 case NB_EV_PREPARE:
12490 case NB_EV_ABORT:
12491 case NB_EV_APPLY:
12492 /* TODO: implement me. */
12493 break;
12494 }
12495
12496 return NB_OK;
12497 }
12498
12499 /*
12500 * XPath:
12501 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/match-med
12502 */
12503 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_match_med_modify(
12504 struct nb_cb_modify_args *args)
12505 {
12506 switch (args->event) {
12507 case NB_EV_VALIDATE:
12508 case NB_EV_PREPARE:
12509 case NB_EV_ABORT:
12510 case NB_EV_APPLY:
12511 /* TODO: implement me. */
12512 break;
12513 }
12514
12515 return NB_OK;
12516 }
12517
12518 /*
12519 * XPath:
12520 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/aggregate-route/suppress-map
12521 */
12522 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_suppress_map_modify(
12523 struct nb_cb_modify_args *args)
12524 {
12525 switch (args->event) {
12526 case NB_EV_VALIDATE:
12527 case NB_EV_PREPARE:
12528 case NB_EV_ABORT:
12529 case NB_EV_APPLY:
12530 /* TODO: implement me. */
12531 break;
12532 }
12533
12534 return NB_OK;
12535 }
12536
12537 int bgp_global_afi_safis_afi_safi_ipv4_multicast_aggregate_route_suppress_map_destroy(
12538 struct nb_cb_destroy_args *args)
12539 {
12540 switch (args->event) {
12541 case NB_EV_VALIDATE:
12542 case NB_EV_PREPARE:
12543 case NB_EV_ABORT:
12544 case NB_EV_APPLY:
12545 /* TODO: implement me. */
12546 break;
12547 }
12548
12549 return NB_OK;
12550 }
12551
12552 /*
12553 * XPath:
12554 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance-route
12555 */
12556 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_route_create(
12557 struct nb_cb_create_args *args)
12558 {
12559 switch (args->event) {
12560 case NB_EV_VALIDATE:
12561 case NB_EV_PREPARE:
12562 case NB_EV_ABORT:
12563 case NB_EV_APPLY:
12564 /* TODO: implement me. */
12565 break;
12566 }
12567
12568 return NB_OK;
12569 }
12570
12571 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_route_destroy(
12572 struct nb_cb_destroy_args *args)
12573 {
12574 switch (args->event) {
12575 case NB_EV_VALIDATE:
12576 case NB_EV_PREPARE:
12577 case NB_EV_ABORT:
12578 return NB_OK;
12579 case NB_EV_APPLY:
12580 return bgp_global_afi_safi_admin_distance_route_destroy(args);
12581 }
12582
12583 return NB_OK;
12584 }
12585
12586 /*
12587 * XPath:
12588 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance-route/distance
12589 */
12590 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_route_distance_modify(
12591 struct nb_cb_modify_args *args)
12592 {
12593 switch (args->event) {
12594 case NB_EV_VALIDATE:
12595 case NB_EV_PREPARE:
12596 case NB_EV_ABORT:
12597 case NB_EV_APPLY:
12598 /* TODO: implement me. */
12599 break;
12600 }
12601
12602 return NB_OK;
12603 }
12604
12605 /*
12606 * XPath:
12607 * /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
12608 */
12609 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_route_access_list_policy_export_modify(
12610 struct nb_cb_modify_args *args)
12611 {
12612 switch (args->event) {
12613 case NB_EV_VALIDATE:
12614 case NB_EV_PREPARE:
12615 case NB_EV_ABORT:
12616 case NB_EV_APPLY:
12617 /* TODO: implement me. */
12618 break;
12619 }
12620
12621 return NB_OK;
12622 }
12623
12624 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_route_access_list_policy_export_destroy(
12625 struct nb_cb_destroy_args *args)
12626 {
12627 switch (args->event) {
12628 case NB_EV_VALIDATE:
12629 case NB_EV_PREPARE:
12630 case NB_EV_ABORT:
12631 case NB_EV_APPLY:
12632 /* TODO: implement me. */
12633 break;
12634 }
12635
12636 return NB_OK;
12637 }
12638
12639 /*
12640 * XPath:
12641 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/admin-distance-route/distance
12642 */
12643 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_route_distance_modify(
12644 struct nb_cb_modify_args *args)
12645 {
12646 switch (args->event) {
12647 case NB_EV_VALIDATE:
12648 case NB_EV_PREPARE:
12649 case NB_EV_ABORT:
12650 case NB_EV_APPLY:
12651 /* TODO: implement me. */
12652 break;
12653 }
12654
12655 return NB_OK;
12656 }
12657
12658 /*
12659 * XPath:
12660 * /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
12661 */
12662 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_route_access_list_policy_export_modify(
12663 struct nb_cb_modify_args *args)
12664 {
12665 switch (args->event) {
12666 case NB_EV_VALIDATE:
12667 case NB_EV_PREPARE:
12668 case NB_EV_ABORT:
12669 case NB_EV_APPLY:
12670 /* TODO: implement me. */
12671 break;
12672 }
12673
12674 return NB_OK;
12675 }
12676
12677 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_route_access_list_policy_export_destroy(
12678 struct nb_cb_destroy_args *args)
12679 {
12680 switch (args->event) {
12681 case NB_EV_VALIDATE:
12682 case NB_EV_PREPARE:
12683 case NB_EV_ABORT:
12684 case NB_EV_APPLY:
12685 /* TODO: implement me. */
12686 break;
12687 }
12688
12689 return NB_OK;
12690 }
12691
12692 /*
12693 * XPath:
12694 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/route-flap-dampening/enable
12695 */
12696 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_enable_modify(
12697 struct nb_cb_modify_args *args)
12698 {
12699 switch (args->event) {
12700 case NB_EV_VALIDATE:
12701 return bgp_global_afi_safi_route_flap_validation(args);
12702 case NB_EV_PREPARE:
12703 case NB_EV_ABORT:
12704 case NB_EV_APPLY:
12705 break;
12706 }
12707
12708 return NB_OK;
12709 }
12710
12711 /*
12712 * XPath:
12713 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/route-flap-dampening/reach-decay
12714 */
12715 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_reach_decay_modify(
12716 struct nb_cb_modify_args *args)
12717 {
12718 switch (args->event) {
12719 case NB_EV_VALIDATE:
12720 case NB_EV_PREPARE:
12721 case NB_EV_ABORT:
12722 case NB_EV_APPLY:
12723 /* TODO: implement me. */
12724 break;
12725 }
12726
12727 return NB_OK;
12728 }
12729
12730 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_reach_decay_destroy(
12731 struct nb_cb_destroy_args *args)
12732 {
12733 switch (args->event) {
12734 case NB_EV_VALIDATE:
12735 case NB_EV_PREPARE:
12736 case NB_EV_ABORT:
12737 case NB_EV_APPLY:
12738 /* TODO: implement me. */
12739 break;
12740 }
12741
12742 return NB_OK;
12743 }
12744
12745 /*
12746 * XPath:
12747 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/route-flap-dampening/reuse-above
12748 */
12749 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_reuse_above_modify(
12750 struct nb_cb_modify_args *args)
12751 {
12752 switch (args->event) {
12753 case NB_EV_VALIDATE:
12754 case NB_EV_PREPARE:
12755 case NB_EV_ABORT:
12756 case NB_EV_APPLY:
12757 /* TODO: implement me. */
12758 break;
12759 }
12760
12761 return NB_OK;
12762 }
12763
12764 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_reuse_above_destroy(
12765 struct nb_cb_destroy_args *args)
12766 {
12767 switch (args->event) {
12768 case NB_EV_VALIDATE:
12769 case NB_EV_PREPARE:
12770 case NB_EV_ABORT:
12771 case NB_EV_APPLY:
12772 /* TODO: implement me. */
12773 break;
12774 }
12775
12776 return NB_OK;
12777 }
12778
12779 /*
12780 * XPath:
12781 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/route-flap-dampening/suppress-above
12782 */
12783 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_suppress_above_modify(
12784 struct nb_cb_modify_args *args)
12785 {
12786 switch (args->event) {
12787 case NB_EV_VALIDATE:
12788 case NB_EV_PREPARE:
12789 case NB_EV_ABORT:
12790 case NB_EV_APPLY:
12791 /* TODO: implement me. */
12792 break;
12793 }
12794
12795 return NB_OK;
12796 }
12797
12798 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_suppress_above_destroy(
12799 struct nb_cb_destroy_args *args)
12800 {
12801 switch (args->event) {
12802 case NB_EV_VALIDATE:
12803 case NB_EV_PREPARE:
12804 case NB_EV_ABORT:
12805 case NB_EV_APPLY:
12806 /* TODO: implement me. */
12807 break;
12808 }
12809
12810 return NB_OK;
12811 }
12812
12813 /*
12814 * XPath:
12815 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/route-flap-dampening/unreach-decay
12816 */
12817 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_unreach_decay_modify(
12818 struct nb_cb_modify_args *args)
12819 {
12820 switch (args->event) {
12821 case NB_EV_VALIDATE:
12822 case NB_EV_PREPARE:
12823 case NB_EV_ABORT:
12824 case NB_EV_APPLY:
12825 /* TODO: implement me. */
12826 break;
12827 }
12828
12829 return NB_OK;
12830 }
12831
12832 int bgp_global_afi_safis_afi_safi_ipv6_multicast_route_flap_dampening_unreach_decay_destroy(
12833 struct nb_cb_destroy_args *args)
12834 {
12835 switch (args->event) {
12836 case NB_EV_VALIDATE:
12837 case NB_EV_PREPARE:
12838 case NB_EV_ABORT:
12839 case NB_EV_APPLY:
12840 /* TODO: implement me. */
12841 break;
12842 }
12843
12844 return NB_OK;
12845 }
12846
12847 /*
12848 * XPath:
12849 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance
12850 */
12851 void bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_apply_finish(
12852 struct nb_cb_apply_finish_args *args)
12853 {
12854 bgp_global_afi_safis_admin_distance_modify(args);
12855 }
12856
12857 /*
12858 * XPath:
12859 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance/external
12860 */
12861 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_external_modify(
12862 struct nb_cb_modify_args *args)
12863 {
12864 /* Handled in admin_distance_apply_finish callback */
12865
12866 return NB_OK;
12867 }
12868
12869 /*
12870 * XPath:
12871 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance/internal
12872 */
12873 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_internal_modify(
12874 struct nb_cb_modify_args *args)
12875 {
12876 /* Handled in admin_distance_apply_finish callback */
12877
12878 return NB_OK;
12879 }
12880
12881 /*
12882 * XPath:
12883 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance/local
12884 */
12885 int bgp_global_afi_safis_afi_safi_ipv4_multicast_admin_distance_local_modify(
12886 struct nb_cb_modify_args *args)
12887 {
12888 /* Handled in admin_distance_apply_finish callback */
12889
12890 return NB_OK;
12891 }
12892
12893 /*
12894 * XPath:
12895 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/route-flap-dampening/enable
12896 */
12897 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_enable_modify(
12898 struct nb_cb_modify_args *args)
12899 {
12900 switch (args->event) {
12901 case NB_EV_VALIDATE:
12902 return bgp_global_afi_safi_route_flap_validation(args);
12903 case NB_EV_PREPARE:
12904 case NB_EV_ABORT:
12905 case NB_EV_APPLY:
12906 break;
12907 }
12908
12909 return NB_OK;
12910 }
12911
12912 /*
12913 * XPath:
12914 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/route-flap-dampening/reach-decay
12915 */
12916 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_reach_decay_modify(
12917 struct nb_cb_modify_args *args)
12918 {
12919 switch (args->event) {
12920 case NB_EV_VALIDATE:
12921 case NB_EV_PREPARE:
12922 case NB_EV_ABORT:
12923 case NB_EV_APPLY:
12924 /* TODO: implement me. */
12925 break;
12926 }
12927
12928 return NB_OK;
12929 }
12930
12931 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_reach_decay_destroy(
12932 struct nb_cb_destroy_args *args)
12933 {
12934 switch (args->event) {
12935 case NB_EV_VALIDATE:
12936 case NB_EV_PREPARE:
12937 case NB_EV_ABORT:
12938 case NB_EV_APPLY:
12939 /* TODO: implement me. */
12940 break;
12941 }
12942
12943 return NB_OK;
12944 }
12945
12946 /*
12947 * XPath:
12948 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/route-flap-dampening/reuse-above
12949 */
12950 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_reuse_above_modify(
12951 struct nb_cb_modify_args *args)
12952 {
12953 switch (args->event) {
12954 case NB_EV_VALIDATE:
12955 case NB_EV_PREPARE:
12956 case NB_EV_ABORT:
12957 case NB_EV_APPLY:
12958 /* TODO: implement me. */
12959 break;
12960 }
12961
12962 return NB_OK;
12963 }
12964
12965 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_reuse_above_destroy(
12966 struct nb_cb_destroy_args *args)
12967 {
12968 switch (args->event) {
12969 case NB_EV_VALIDATE:
12970 case NB_EV_PREPARE:
12971 case NB_EV_ABORT:
12972 case NB_EV_APPLY:
12973 /* TODO: implement me. */
12974 break;
12975 }
12976
12977 return NB_OK;
12978 }
12979
12980 /*
12981 * XPath:
12982 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/route-flap-dampening/suppress-above
12983 */
12984 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_suppress_above_modify(
12985 struct nb_cb_modify_args *args)
12986 {
12987 switch (args->event) {
12988 case NB_EV_VALIDATE:
12989 case NB_EV_PREPARE:
12990 case NB_EV_ABORT:
12991 case NB_EV_APPLY:
12992 /* TODO: implement me. */
12993 break;
12994 }
12995
12996 return NB_OK;
12997 }
12998
12999 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_suppress_above_destroy(
13000 struct nb_cb_destroy_args *args)
13001 {
13002 switch (args->event) {
13003 case NB_EV_VALIDATE:
13004 case NB_EV_PREPARE:
13005 case NB_EV_ABORT:
13006 case NB_EV_APPLY:
13007 /* TODO: implement me. */
13008 break;
13009 }
13010
13011 return NB_OK;
13012 }
13013
13014 /*
13015 * XPath:
13016 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/route-flap-dampening/unreach-decay
13017 */
13018 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_unreach_decay_modify(
13019 struct nb_cb_modify_args *args)
13020 {
13021 switch (args->event) {
13022 case NB_EV_VALIDATE:
13023 case NB_EV_PREPARE:
13024 case NB_EV_ABORT:
13025 case NB_EV_APPLY:
13026 /* TODO: implement me. */
13027 break;
13028 }
13029
13030 return NB_OK;
13031 }
13032
13033 int bgp_global_afi_safis_afi_safi_ipv4_multicast_route_flap_dampening_unreach_decay_destroy(
13034 struct nb_cb_destroy_args *args)
13035 {
13036 switch (args->event) {
13037 case NB_EV_VALIDATE:
13038 case NB_EV_PREPARE:
13039 case NB_EV_ABORT:
13040 case NB_EV_APPLY:
13041 /* TODO: implement me. */
13042 break;
13043 }
13044
13045 return NB_OK;
13046 }
13047
13048 /*
13049 * XPath:
13050 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/filter-config/rmap-export
13051 */
13052 int bgp_global_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_modify(
13053 struct nb_cb_modify_args *args)
13054 {
13055 switch (args->event) {
13056 case NB_EV_VALIDATE:
13057 case NB_EV_PREPARE:
13058 case NB_EV_ABORT:
13059 case NB_EV_APPLY:
13060 /* TODO: implement me. */
13061 break;
13062 }
13063
13064 return NB_OK;
13065 }
13066
13067 int bgp_global_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_destroy(
13068 struct nb_cb_destroy_args *args)
13069 {
13070 switch (args->event) {
13071 case NB_EV_VALIDATE:
13072 case NB_EV_PREPARE:
13073 case NB_EV_ABORT:
13074 case NB_EV_APPLY:
13075 /* TODO: implement me. */
13076 break;
13077 }
13078
13079 return NB_OK;
13080 }
13081
13082 /*
13083 * XPath:
13084 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/network-config
13085 */
13086 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_create(
13087 struct nb_cb_create_args *args)
13088 {
13089 /* Handled in network_config_apply_finish callback */
13090
13091 return NB_OK;
13092 }
13093
13094 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_destroy(
13095 struct nb_cb_destroy_args *args)
13096 {
13097 switch (args->event) {
13098 case NB_EV_VALIDATE:
13099 case NB_EV_PREPARE:
13100 case NB_EV_ABORT:
13101 return NB_OK;
13102 case NB_EV_APPLY:
13103 return bgp_global_afi_safis_afi_safi_network_config_destroy(
13104 args);
13105
13106 break;
13107 }
13108
13109 return NB_OK;
13110 }
13111
13112 /*
13113 * XPath:
13114 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/network-config/backdoor
13115 */
13116 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_backdoor_modify(
13117 struct nb_cb_modify_args *args)
13118 {
13119 switch (args->event) {
13120 case NB_EV_VALIDATE:
13121 case NB_EV_PREPARE:
13122 case NB_EV_ABORT:
13123 case NB_EV_APPLY:
13124 /* TODO: implement me. */
13125 break;
13126 }
13127
13128 return NB_OK;
13129 }
13130
13131 /*
13132 * XPath:
13133 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/network-config/label-index
13134 */
13135 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_label_index_modify(
13136 struct nb_cb_modify_args *args)
13137 {
13138 switch (args->event) {
13139 case NB_EV_VALIDATE:
13140 case NB_EV_PREPARE:
13141 case NB_EV_ABORT:
13142 case NB_EV_APPLY:
13143 /* TODO: implement me. */
13144 break;
13145 }
13146
13147 return NB_OK;
13148 }
13149
13150 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_label_index_destroy(
13151 struct nb_cb_destroy_args *args)
13152 {
13153 switch (args->event) {
13154 case NB_EV_VALIDATE:
13155 case NB_EV_PREPARE:
13156 case NB_EV_ABORT:
13157 case NB_EV_APPLY:
13158 /* TODO: implement me. */
13159 break;
13160 }
13161
13162 return NB_OK;
13163 }
13164
13165 /*
13166 * XPath:
13167 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/network-config/rmap-policy-export
13168 */
13169 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_rmap_policy_export_modify(
13170 struct nb_cb_modify_args *args)
13171 {
13172 switch (args->event) {
13173 case NB_EV_VALIDATE:
13174 case NB_EV_PREPARE:
13175 case NB_EV_ABORT:
13176 case NB_EV_APPLY:
13177 /* TODO: implement me. */
13178 break;
13179 }
13180
13181 return NB_OK;
13182 }
13183
13184 int bgp_global_afi_safis_afi_safi_ipv6_multicast_network_config_rmap_policy_export_destroy(
13185 struct nb_cb_destroy_args *args)
13186 {
13187 switch (args->event) {
13188 case NB_EV_VALIDATE:
13189 case NB_EV_PREPARE:
13190 case NB_EV_ABORT:
13191 case NB_EV_APPLY:
13192 /* TODO: implement me. */
13193 break;
13194 }
13195
13196 return NB_OK;
13197 }
13198
13199 /*
13200 * XPath:
13201 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route
13202 */
13203 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_create(
13204 struct nb_cb_create_args *args)
13205 {
13206 switch (args->event) {
13207 case NB_EV_VALIDATE:
13208 case NB_EV_PREPARE:
13209 case NB_EV_ABORT:
13210 case NB_EV_APPLY:
13211 /* TODO: implement me. */
13212 break;
13213 }
13214
13215 return NB_OK;
13216 }
13217
13218 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_destroy(
13219 struct nb_cb_destroy_args *args)
13220 {
13221 switch (args->event) {
13222 case NB_EV_VALIDATE:
13223 case NB_EV_PREPARE:
13224 case NB_EV_ABORT:
13225 case NB_EV_APPLY:
13226 /* TODO: implement me. */
13227 break;
13228 }
13229
13230 return NB_OK;
13231 }
13232
13233 /*
13234 * XPath:
13235 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/as-set
13236 */
13237 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_as_set_modify(
13238 struct nb_cb_modify_args *args)
13239 {
13240 switch (args->event) {
13241 case NB_EV_VALIDATE:
13242 case NB_EV_PREPARE:
13243 case NB_EV_ABORT:
13244 case NB_EV_APPLY:
13245 /* TODO: implement me. */
13246 break;
13247 }
13248
13249 return NB_OK;
13250 }
13251
13252 /*
13253 * XPath:
13254 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/summary-only
13255 */
13256 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_summary_only_modify(
13257 struct nb_cb_modify_args *args)
13258 {
13259 switch (args->event) {
13260 case NB_EV_VALIDATE:
13261 case NB_EV_PREPARE:
13262 case NB_EV_ABORT:
13263 case NB_EV_APPLY:
13264 /* TODO: implement me. */
13265 break;
13266 }
13267
13268 return NB_OK;
13269 }
13270
13271 /*
13272 * XPath:
13273 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/rmap-policy-export
13274 */
13275 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_rmap_policy_export_modify(
13276 struct nb_cb_modify_args *args)
13277 {
13278 switch (args->event) {
13279 case NB_EV_VALIDATE:
13280 case NB_EV_PREPARE:
13281 case NB_EV_ABORT:
13282 case NB_EV_APPLY:
13283 /* TODO: implement me. */
13284 break;
13285 }
13286
13287 return NB_OK;
13288 }
13289
13290 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_rmap_policy_export_destroy(
13291 struct nb_cb_destroy_args *args)
13292 {
13293 switch (args->event) {
13294 case NB_EV_VALIDATE:
13295 case NB_EV_PREPARE:
13296 case NB_EV_ABORT:
13297 case NB_EV_APPLY:
13298 /* TODO: implement me. */
13299 break;
13300 }
13301
13302 return NB_OK;
13303 }
13304
13305 /*
13306 * XPath:
13307 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/origin
13308 */
13309 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_origin_modify(
13310 struct nb_cb_modify_args *args)
13311 {
13312 switch (args->event) {
13313 case NB_EV_VALIDATE:
13314 case NB_EV_PREPARE:
13315 case NB_EV_ABORT:
13316 case NB_EV_APPLY:
13317 /* TODO: implement me. */
13318 break;
13319 }
13320
13321 return NB_OK;
13322 }
13323
13324 /*
13325 * XPath:
13326 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/match-med
13327 */
13328 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_match_med_modify(
13329 struct nb_cb_modify_args *args)
13330 {
13331 switch (args->event) {
13332 case NB_EV_VALIDATE:
13333 case NB_EV_PREPARE:
13334 case NB_EV_ABORT:
13335 case NB_EV_APPLY:
13336 /* TODO: implement me. */
13337 break;
13338 }
13339
13340 return NB_OK;
13341 }
13342
13343 /*
13344 * XPath:
13345 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/aggregate-route/suppress-map
13346 */
13347 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_suppress_map_modify(
13348 struct nb_cb_modify_args *args)
13349 {
13350 switch (args->event) {
13351 case NB_EV_VALIDATE:
13352 case NB_EV_PREPARE:
13353 case NB_EV_ABORT:
13354 case NB_EV_APPLY:
13355 /* TODO: implement me. */
13356 break;
13357 }
13358
13359 return NB_OK;
13360 }
13361
13362 int bgp_global_afi_safis_afi_safi_ipv6_multicast_aggregate_route_suppress_map_destroy(
13363 struct nb_cb_destroy_args *args)
13364 {
13365 switch (args->event) {
13366 case NB_EV_VALIDATE:
13367 case NB_EV_PREPARE:
13368 case NB_EV_ABORT:
13369 case NB_EV_APPLY:
13370 /* TODO: implement me. */
13371 break;
13372 }
13373
13374 return NB_OK;
13375 }
13376
13377 /*
13378 * XPath:
13379 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/admin-distance-route
13380 */
13381 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_route_create(
13382 struct nb_cb_create_args *args)
13383 {
13384 switch (args->event) {
13385 case NB_EV_VALIDATE:
13386 case NB_EV_PREPARE:
13387 case NB_EV_ABORT:
13388 case NB_EV_APPLY:
13389 /* TODO: implement me. */
13390 break;
13391 }
13392
13393 return NB_OK;
13394 }
13395
13396 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_route_destroy(
13397 struct nb_cb_destroy_args *args)
13398 {
13399 switch (args->event) {
13400 case NB_EV_VALIDATE:
13401 case NB_EV_PREPARE:
13402 case NB_EV_ABORT:
13403 return NB_OK;
13404 case NB_EV_APPLY:
13405 return bgp_global_afi_safi_admin_distance_route_destroy(args);
13406 }
13407
13408 return NB_OK;
13409 }
13410
13411 /*
13412 * XPath:
13413 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-multicast/admin-distance
13414 */
13415 void bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_apply_finish(
13416 struct nb_cb_apply_finish_args *args)
13417 {
13418 bgp_global_afi_safis_admin_distance_modify(args);
13419 }
13420
13421 /*
13422 * XPath:
13423 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/admin-distance/external
13424 */
13425 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_external_modify(
13426 struct nb_cb_modify_args *args)
13427 {
13428 /* Handled in admin_distance_apply_finish callback */
13429
13430 return NB_OK;
13431 }
13432
13433 /*
13434 * XPath:
13435 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/admin-distance/internal
13436 */
13437 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_internal_modify(
13438 struct nb_cb_modify_args *args)
13439 {
13440 /* Handled in admin_distance_apply_finish callback */
13441
13442 return NB_OK;
13443 }
13444
13445 /*
13446 * XPath:
13447 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv6-multicast/admin-distance/local
13448 */
13449 int bgp_global_afi_safis_afi_safi_ipv6_multicast_admin_distance_local_modify(
13450 struct nb_cb_modify_args *args)
13451 {
13452 /* Handled in admin_distance_apply_finish callback */
13453
13454 return NB_OK;
13455 }
13456
13457 /*
13458 * XPath:
13459 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/ipv4-flowspec/flow-spec-config/interface
13460 */
13461 int bgp_global_afi_safis_afi_safi_ipv4_flowspec_flow_spec_config_interface_modify(
13462 struct nb_cb_modify_args *args)
13463 {
13464 switch (args->event) {
13465 case NB_EV_VALIDATE:
13466 case NB_EV_PREPARE:
13467 case NB_EV_ABORT:
13468 case NB_EV_APPLY:
13469 /* TODO: implement me. */
13470 break;
13471 }
13472
13473 return NB_OK;
13474 }
13475
13476 int bgp_global_afi_safis_afi_safi_ipv4_flowspec_flow_spec_config_interface_destroy(
13477 struct nb_cb_destroy_args *args)
13478 {
13479 switch (args->event) {
13480 case NB_EV_VALIDATE:
13481 case NB_EV_PREPARE:
13482 case NB_EV_ABORT:
13483 case NB_EV_APPLY:
13484 /* TODO: implement me. */
13485 break;
13486 }
13487
13488 return NB_OK;
13489 }
13490
13491 /*
13492 * XPath:
13493 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/network-config
13494 */
13495 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_create(
13496 struct nb_cb_create_args *args)
13497 {
13498 switch (args->event) {
13499 case NB_EV_VALIDATE:
13500 case NB_EV_PREPARE:
13501 case NB_EV_ABORT:
13502 case NB_EV_APPLY:
13503 /* TODO: implement me. */
13504 break;
13505 }
13506
13507 return NB_OK;
13508 }
13509
13510 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_destroy(
13511 struct nb_cb_destroy_args *args)
13512 {
13513 switch (args->event) {
13514 case NB_EV_VALIDATE:
13515 case NB_EV_PREPARE:
13516 case NB_EV_ABORT:
13517 case NB_EV_APPLY:
13518 /* TODO: implement me. */
13519 break;
13520 }
13521
13522 return NB_OK;
13523 }
13524
13525 /*
13526 * XPath:
13527 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv4-unicast/network-config/prefix-list
13528 */
13529 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_prefix_list_create(
13530 struct nb_cb_create_args *args)
13531 {
13532 switch (args->event) {
13533 case NB_EV_VALIDATE:
13534 case NB_EV_PREPARE:
13535 case NB_EV_ABORT:
13536 case NB_EV_APPLY:
13537 /* TODO: implement me. */
13538 break;
13539 }
13540
13541 return NB_OK;
13542 }
13543
13544 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_prefix_list_destroy(
13545 struct nb_cb_destroy_args *args)
13546 {
13547 switch (args->event) {
13548 case NB_EV_VALIDATE:
13549 case NB_EV_PREPARE:
13550 case NB_EV_ABORT:
13551 case NB_EV_APPLY:
13552 /* TODO: implement me. */
13553 break;
13554 }
13555
13556 return NB_OK;
13557 }
13558
13559 /*
13560 * XPath:
13561 * /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
13562 */
13563 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_prefix_list_label_index_modify(
13564 struct nb_cb_modify_args *args)
13565 {
13566 switch (args->event) {
13567 case NB_EV_VALIDATE:
13568 case NB_EV_PREPARE:
13569 case NB_EV_ABORT:
13570 case NB_EV_APPLY:
13571 /* TODO: implement me. */
13572 break;
13573 }
13574
13575 return NB_OK;
13576 }
13577
13578 /*
13579 * XPath:
13580 * /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
13581 */
13582 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_prefix_list_rmap_policy_export_modify(
13583 struct nb_cb_modify_args *args)
13584 {
13585 switch (args->event) {
13586 case NB_EV_VALIDATE:
13587 case NB_EV_PREPARE:
13588 case NB_EV_ABORT:
13589 case NB_EV_APPLY:
13590 /* TODO: implement me. */
13591 break;
13592 }
13593
13594 return NB_OK;
13595 }
13596
13597 int bgp_global_afi_safis_afi_safi_l3vpn_ipv4_unicast_network_config_prefix_list_rmap_policy_export_destroy(
13598 struct nb_cb_destroy_args *args)
13599 {
13600 switch (args->event) {
13601 case NB_EV_VALIDATE:
13602 case NB_EV_PREPARE:
13603 case NB_EV_ABORT:
13604 case NB_EV_APPLY:
13605 /* TODO: implement me. */
13606 break;
13607 }
13608
13609 return NB_OK;
13610 }
13611
13612 /*
13613 * XPath:
13614 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/network-config
13615 */
13616 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_create(
13617 struct nb_cb_create_args *args)
13618 {
13619 switch (args->event) {
13620 case NB_EV_VALIDATE:
13621 case NB_EV_PREPARE:
13622 case NB_EV_ABORT:
13623 case NB_EV_APPLY:
13624 /* TODO: implement me. */
13625 break;
13626 }
13627
13628 return NB_OK;
13629 }
13630
13631 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_destroy(
13632 struct nb_cb_destroy_args *args)
13633 {
13634 switch (args->event) {
13635 case NB_EV_VALIDATE:
13636 case NB_EV_PREPARE:
13637 case NB_EV_ABORT:
13638 case NB_EV_APPLY:
13639 /* TODO: implement me. */
13640 break;
13641 }
13642
13643 return NB_OK;
13644 }
13645
13646 /*
13647 * XPath:
13648 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global/afi-safis/afi-safi/l3vpn-ipv6-unicast/network-config/prefix-list
13649 */
13650 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_prefix_list_create(
13651 struct nb_cb_create_args *args)
13652 {
13653 switch (args->event) {
13654 case NB_EV_VALIDATE:
13655 case NB_EV_PREPARE:
13656 case NB_EV_ABORT:
13657 case NB_EV_APPLY:
13658 /* TODO: implement me. */
13659 break;
13660 }
13661
13662 return NB_OK;
13663 }
13664
13665 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_prefix_list_destroy(
13666 struct nb_cb_destroy_args *args)
13667 {
13668 switch (args->event) {
13669 case NB_EV_VALIDATE:
13670 case NB_EV_PREPARE:
13671 case NB_EV_ABORT:
13672 case NB_EV_APPLY:
13673 /* TODO: implement me. */
13674 break;
13675 }
13676
13677 return NB_OK;
13678 }
13679
13680 /*
13681 * XPath:
13682 * /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
13683 */
13684 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_prefix_list_label_index_modify(
13685 struct nb_cb_modify_args *args)
13686 {
13687 switch (args->event) {
13688 case NB_EV_VALIDATE:
13689 case NB_EV_PREPARE:
13690 case NB_EV_ABORT:
13691 case NB_EV_APPLY:
13692 /* TODO: implement me. */
13693 break;
13694 }
13695
13696 return NB_OK;
13697 }
13698
13699 /*
13700 * XPath:
13701 * /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
13702 */
13703 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_prefix_list_rmap_policy_export_modify(
13704 struct nb_cb_modify_args *args)
13705 {
13706 switch (args->event) {
13707 case NB_EV_VALIDATE:
13708 case NB_EV_PREPARE:
13709 case NB_EV_ABORT:
13710 case NB_EV_APPLY:
13711 /* TODO: implement me. */
13712 break;
13713 }
13714
13715 return NB_OK;
13716 }
13717
13718 int bgp_global_afi_safis_afi_safi_l3vpn_ipv6_unicast_network_config_prefix_list_rmap_policy_export_destroy(
13719 struct nb_cb_destroy_args *args)
13720 {
13721 switch (args->event) {
13722 case NB_EV_VALIDATE:
13723 case NB_EV_PREPARE:
13724 case NB_EV_ABORT:
13725 case NB_EV_APPLY:
13726 /* TODO: implement me. */
13727 break;
13728 }
13729
13730 return NB_OK;
13731 }
13732
13733 /*
13734 * XPath:
13735 * /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
13736 */
13737 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv4_unicast_common_config_pre_policy_modify(
13738 struct nb_cb_modify_args *args)
13739 {
13740 switch (args->event) {
13741 case NB_EV_VALIDATE:
13742 case NB_EV_PREPARE:
13743 case NB_EV_ABORT:
13744 case NB_EV_APPLY:
13745 /* TODO: implement me. */
13746 break;
13747 }
13748
13749 return NB_OK;
13750 }
13751
13752 /*
13753 * XPath:
13754 * /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
13755 */
13756 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv4_unicast_common_config_post_policy_modify(
13757 struct nb_cb_modify_args *args)
13758 {
13759 switch (args->event) {
13760 case NB_EV_VALIDATE:
13761 case NB_EV_PREPARE:
13762 case NB_EV_ABORT:
13763 case NB_EV_APPLY:
13764 /* TODO: implement me. */
13765 break;
13766 }
13767
13768 return NB_OK;
13769 }
13770
13771 /*
13772 * XPath:
13773 * /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
13774 */
13775 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv4_multicast_common_config_pre_policy_modify(
13776 struct nb_cb_modify_args *args)
13777 {
13778 switch (args->event) {
13779 case NB_EV_VALIDATE:
13780 case NB_EV_PREPARE:
13781 case NB_EV_ABORT:
13782 case NB_EV_APPLY:
13783 /* TODO: implement me. */
13784 break;
13785 }
13786
13787 return NB_OK;
13788 }
13789
13790 /*
13791 * XPath:
13792 * /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
13793 */
13794 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv4_multicast_common_config_post_policy_modify(
13795 struct nb_cb_modify_args *args)
13796 {
13797 switch (args->event) {
13798 case NB_EV_VALIDATE:
13799 case NB_EV_PREPARE:
13800 case NB_EV_ABORT:
13801 case NB_EV_APPLY:
13802 /* TODO: implement me. */
13803 break;
13804 }
13805
13806 return NB_OK;
13807 }
13808
13809 /*
13810 * XPath:
13811 * /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
13812 */
13813 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv6_unicast_common_config_pre_policy_modify(
13814 struct nb_cb_modify_args *args)
13815 {
13816 switch (args->event) {
13817 case NB_EV_VALIDATE:
13818 case NB_EV_PREPARE:
13819 case NB_EV_ABORT:
13820 case NB_EV_APPLY:
13821 /* TODO: implement me. */
13822 break;
13823 }
13824
13825 return NB_OK;
13826 }
13827
13828 /*
13829 * XPath:
13830 * /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
13831 */
13832 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv6_unicast_common_config_post_policy_modify(
13833 struct nb_cb_modify_args *args)
13834 {
13835 switch (args->event) {
13836 case NB_EV_VALIDATE:
13837 case NB_EV_PREPARE:
13838 case NB_EV_ABORT:
13839 case NB_EV_APPLY:
13840 /* TODO: implement me. */
13841 break;
13842 }
13843
13844 return NB_OK;
13845 }
13846
13847 /*
13848 * XPath:
13849 * /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
13850 */
13851 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv6_multicast_common_config_pre_policy_modify(
13852 struct nb_cb_modify_args *args)
13853 {
13854 switch (args->event) {
13855 case NB_EV_VALIDATE:
13856 case NB_EV_PREPARE:
13857 case NB_EV_ABORT:
13858 case NB_EV_APPLY:
13859 /* TODO: implement me. */
13860 break;
13861 }
13862
13863 return NB_OK;
13864 }
13865
13866 /*
13867 * XPath:
13868 * /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
13869 */
13870 int bgp_global_bmp_config_target_list_afi_safis_afi_safi_ipv6_multicast_common_config_post_policy_modify(
13871 struct nb_cb_modify_args *args)
13872 {
13873 switch (args->event) {
13874 case NB_EV_VALIDATE:
13875 case NB_EV_PREPARE:
13876 case NB_EV_ABORT:
13877 case NB_EV_APPLY:
13878 /* TODO: implement me. */
13879 break;
13880 }
13881
13882 return NB_OK;
13883 }
13884
13885 static int bgp_neighbor_afi_safi_flag_modify(struct nb_cb_modify_args *args,
13886 uint32_t flags, bool set)
13887 {
13888 struct bgp *bgp;
13889 const char *peer_str;
13890 struct peer *peer;
13891 const struct lyd_node *nbr_dnode;
13892 const struct lyd_node *nbr_af_dnode;
13893 const char *af_name;
13894 afi_t afi;
13895 safi_t safi;
13896
13897 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
13898 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
13899 yang_afi_safi_identity2value(af_name, &afi, &safi);
13900
13901 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
13902 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
13903 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
13904 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
13905 args->errmsg_len);
13906
13907 if (peer_af_flag_modify_nb(peer, afi, safi, flags, set, args->errmsg,
13908 args->errmsg_len)
13909 < 0)
13910 return NB_ERR_INCONSISTENCY;
13911
13912 return NB_OK;
13913 }
13914
13915 /*
13916 * XPath:
13917 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/add-paths/path-type
13918 */
13919 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_add_paths_path_type_modify(
13920 struct nb_cb_modify_args *args)
13921 {
13922 switch (args->event) {
13923 case NB_EV_VALIDATE:
13924 case NB_EV_PREPARE:
13925 case NB_EV_ABORT:
13926 case NB_EV_APPLY:
13927 /* TODO: implement me. */
13928 break;
13929 }
13930
13931 return NB_OK;
13932 }
13933
13934 /*
13935 * XPath:
13936 * /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
13937 */
13938 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_modify(
13939 struct nb_cb_modify_args *args)
13940 {
13941 switch (args->event) {
13942 case NB_EV_VALIDATE:
13943 case NB_EV_PREPARE:
13944 case NB_EV_ABORT:
13945 case NB_EV_APPLY:
13946 /* TODO: implement me. */
13947 break;
13948 }
13949
13950 return NB_OK;
13951 }
13952
13953 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_destroy(
13954 struct nb_cb_destroy_args *args)
13955 {
13956 switch (args->event) {
13957 case NB_EV_VALIDATE:
13958 case NB_EV_PREPARE:
13959 case NB_EV_ABORT:
13960 case NB_EV_APPLY:
13961 /* TODO: implement me. */
13962 break;
13963 }
13964
13965 return NB_OK;
13966 }
13967
13968 /*
13969 * XPath:
13970 * /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
13971 */
13972 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
13973 struct nb_cb_modify_args *args)
13974 {
13975 switch (args->event) {
13976 case NB_EV_VALIDATE:
13977 case NB_EV_PREPARE:
13978 case NB_EV_ABORT:
13979 case NB_EV_APPLY:
13980 /* TODO: implement me. */
13981 break;
13982 }
13983
13984 return NB_OK;
13985 }
13986
13987 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
13988 struct nb_cb_destroy_args *args)
13989 {
13990 switch (args->event) {
13991 case NB_EV_VALIDATE:
13992 case NB_EV_PREPARE:
13993 case NB_EV_ABORT:
13994 case NB_EV_APPLY:
13995 /* TODO: implement me. */
13996 break;
13997 }
13998
13999 return NB_OK;
14000 }
14001
14002 /*
14003 * XPath:
14004 * /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
14005 */
14006 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_replace_peer_as_modify(
14007 struct nb_cb_modify_args *args)
14008 {
14009 switch (args->event) {
14010 case NB_EV_VALIDATE:
14011 case NB_EV_PREPARE:
14012 case NB_EV_ABORT:
14013 return NB_OK;
14014 case NB_EV_APPLY:
14015 return bgp_neighbor_afi_safi_flag_modify(
14016 args, PEER_FLAG_AS_OVERRIDE,
14017 yang_dnode_get_bool(args->dnode, NULL));
14018
14019 break;
14020 }
14021
14022 return NB_OK;
14023 }
14024
14025 static int
14026 bgp_peer_afi_safi_default_originate_apply(struct nb_cb_apply_finish_args *args,
14027 struct peer *peer, afi_t afi,
14028 safi_t safi)
14029 {
14030 bool originate = false;
14031 int ret = 0;
14032 struct route_map *route_map = NULL;
14033 const char *rmap = NULL;
14034
14035 originate = yang_dnode_get_bool(args->dnode, "./originate");
14036
14037 if (yang_dnode_exists(args->dnode, "./route-map")) {
14038 rmap = yang_dnode_get_string(args->dnode, "./route-map");
14039 route_map = route_map_lookup_by_name(rmap);
14040 if (!route_map) {
14041 snprintf(args->errmsg, args->errmsg_len,
14042 "The route-map '%s' does not exist.", rmap);
14043 return -1;
14044 }
14045 }
14046
14047 // zlog_debug("%s: originate %u route-map %s", __func__, originate,
14048 // rmap);
14049 if (originate)
14050 ret = peer_default_originate_set(peer, afi, safi, rmap,
14051 route_map);
14052 else
14053 ret = peer_default_originate_unset(peer, afi, safi);
14054
14055 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
14056 }
14057
14058 /*
14059 * XPath:
14060 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate
14061 */
14062 void bgp_neighbor_afi_safi_default_originate_apply_finish(
14063 struct nb_cb_apply_finish_args *args)
14064 {
14065 struct bgp *bgp;
14066 const char *peer_str;
14067 struct peer *peer;
14068 const struct lyd_node *nbr_dnode;
14069 const struct lyd_node *nbr_af_dnode;
14070 const char *af_name;
14071 afi_t afi;
14072 safi_t safi;
14073
14074 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
14075 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
14076 yang_afi_safi_identity2value(af_name, &afi, &safi);
14077
14078 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
14079 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
14080 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
14081 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
14082 args->errmsg_len);
14083 if (!peer)
14084 return;
14085
14086 bgp_peer_afi_safi_default_originate_apply(args, peer, afi, safi);
14087 }
14088
14089 /*
14090 * XPath:
14091 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate/originate
14092 */
14093 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_originate_modify(
14094 struct nb_cb_modify_args *args)
14095 {
14096 switch (args->event) {
14097 case NB_EV_VALIDATE:
14098 case NB_EV_PREPARE:
14099 case NB_EV_ABORT:
14100 case NB_EV_APPLY:
14101 /* TODO: implement me. */
14102 break;
14103 }
14104
14105 return NB_OK;
14106 }
14107
14108 /*
14109 * XPath:
14110 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate/route-map
14111 */
14112 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_modify(
14113 struct nb_cb_modify_args *args)
14114 {
14115 switch (args->event) {
14116 case NB_EV_VALIDATE:
14117 case NB_EV_PREPARE:
14118 case NB_EV_ABORT:
14119 case NB_EV_APPLY:
14120 /* TODO: implement me. */
14121 break;
14122 }
14123
14124 return NB_OK;
14125 }
14126
14127 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_destroy(
14128 struct nb_cb_destroy_args *args)
14129 {
14130 switch (args->event) {
14131 case NB_EV_VALIDATE:
14132 case NB_EV_PREPARE:
14133 case NB_EV_ABORT:
14134 case NB_EV_APPLY:
14135 /* TODO: implement me. */
14136 break;
14137 }
14138
14139 return NB_OK;
14140 }
14141
14142 static int
14143 bgp_neighbor_afi_safi_prefix_limit_list_destroy(struct nb_cb_destroy_args *args)
14144 {
14145 struct bgp *bgp;
14146 const char *peer_str;
14147 struct peer *peer;
14148 const struct lyd_node *nbr_dnode;
14149 const struct lyd_node *nbr_af_dnode;
14150 const char *af_name;
14151 afi_t afi;
14152 safi_t safi;
14153 int direction;
14154
14155 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
14156 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
14157 yang_afi_safi_identity2value(af_name, &afi, &safi);
14158
14159 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
14160 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
14161 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
14162 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
14163 args->errmsg_len);
14164 if (!peer)
14165 return NB_ERR_INCONSISTENCY;
14166
14167 direction = yang_dnode_get_enum(args->dnode, "./direction");
14168
14169 switch (direction) {
14170 case 1:
14171 peer_maximum_prefix_unset(peer, afi, safi);
14172 break;
14173 case 2:
14174 UNSET_FLAG(peer->af_flags[afi][safi], PEER_FLAG_MAX_PREFIX_OUT);
14175 peer->pmax_out[afi][safi] = 0;
14176 break;
14177 }
14178
14179 return NB_OK;
14180 }
14181
14182 /*
14183 * XPath:
14184 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/prefix-limit/direction-list
14185 */
14186 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_create(
14187 struct nb_cb_create_args *args)
14188 {
14189 switch (args->event) {
14190 case NB_EV_VALIDATE:
14191 case NB_EV_PREPARE:
14192 case NB_EV_ABORT:
14193 case NB_EV_APPLY:
14194 /* TODO: implement me. */
14195 break;
14196 }
14197
14198 return NB_OK;
14199 }
14200
14201 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_destroy(
14202 struct nb_cb_destroy_args *args)
14203 {
14204 switch (args->event) {
14205 case NB_EV_VALIDATE:
14206 case NB_EV_PREPARE:
14207 case NB_EV_ABORT:
14208 return NB_OK;
14209 case NB_EV_APPLY:
14210 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
14211 }
14212
14213 return NB_OK;
14214 }
14215
14216 static void
14217 bgp_peer_afi_safi_maximum_prefix_set(struct nb_cb_apply_finish_args *args,
14218 struct peer *peer, afi_t afi, safi_t safi)
14219 {
14220 int direction;
14221 uint32_t max;
14222 uint8_t threshold = MAXIMUM_PREFIX_THRESHOLD_DEFAULT;
14223 uint16_t restart = 0;
14224 bool warning = false;
14225 bool force;
14226
14227 max = yang_dnode_get_uint32(args->dnode, "./max-prefixes");
14228 direction = yang_dnode_get_enum(args->dnode, "./direction");
14229 switch (direction) {
14230 case 1:
14231 force = yang_dnode_get_bool(args->dnode, "./force-check");
14232
14233 if (yang_dnode_exists(args->dnode,
14234 "./options/shutdown-threshold-pct"))
14235 threshold = yang_dnode_get_uint8(
14236 args->dnode,
14237 "./options/shutdown-threshold-pct");
14238 if (yang_dnode_exists(args->dnode,
14239 "./options/tw-shutdown-threshold-pct"))
14240 threshold = yang_dnode_get_uint8(
14241 args->dnode,
14242 "./options/tw-shutdown-threshold-pct");
14243 if (yang_dnode_exists(args->dnode,
14244 "./options/tr-shutdown-threshold-pct"))
14245 threshold = yang_dnode_get_uint8(
14246 args->dnode,
14247 "./options/tr-shutdown-threshold-pct");
14248
14249 if (yang_dnode_exists(args->dnode, "./options/warning-only"))
14250 warning = yang_dnode_get_bool(args->dnode,
14251 "./options/warning-only");
14252 if (yang_dnode_exists(args->dnode, "./options/tw-warning-only"))
14253 warning = yang_dnode_get_bool(
14254 args->dnode, "./options/tw-warning-only");
14255
14256 if (yang_dnode_exists(args->dnode, "./options/restart-timer"))
14257 restart = yang_dnode_get_uint16(
14258 args->dnode, "./options/restart-timer");
14259 if (yang_dnode_exists(args->dnode,
14260 "./options/tr-restart-timer"))
14261 restart = yang_dnode_get_uint16(
14262 args->dnode, "./options/tr-restart-timer");
14263
14264 peer_maximum_prefix_set(peer, afi, safi, max, threshold,
14265 warning, restart, force);
14266
14267 break;
14268 case 2:
14269 SET_FLAG(peer->af_flags[afi][safi], PEER_FLAG_MAX_PREFIX_OUT);
14270 peer->pmax_out[afi][safi] = max;
14271
14272 break;
14273 }
14274 }
14275
14276 void bgp_neighbors_neighbor_afi_safi_prefix_limit_apply_finish(
14277 struct nb_cb_apply_finish_args *args)
14278 {
14279 struct bgp *bgp;
14280 const char *peer_str;
14281 struct peer *peer;
14282 const struct lyd_node *nbr_dnode;
14283 const struct lyd_node *nbr_af_dnode;
14284 const char *af_name;
14285 afi_t afi;
14286 safi_t safi;
14287
14288 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
14289 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
14290 yang_afi_safi_identity2value(af_name, &afi, &safi);
14291
14292 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
14293 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
14294 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
14295 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
14296 args->errmsg_len);
14297 if (!peer)
14298 return;
14299
14300 bgp_peer_afi_safi_maximum_prefix_set(args, peer, afi, safi);
14301 }
14302
14303 /*
14304 * XPath:
14305 * /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
14306 */
14307 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
14308 struct nb_cb_modify_args *args)
14309 {
14310 switch (args->event) {
14311 case NB_EV_VALIDATE:
14312 case NB_EV_PREPARE:
14313 case NB_EV_ABORT:
14314 case NB_EV_APPLY:
14315 /* TODO: implement me. */
14316 break;
14317 }
14318
14319 return NB_OK;
14320 }
14321
14322 /*
14323 * XPath:
14324 * /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
14325 */
14326 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
14327 struct nb_cb_modify_args *args)
14328 {
14329 switch (args->event) {
14330 case NB_EV_VALIDATE:
14331 case NB_EV_PREPARE:
14332 case NB_EV_ABORT:
14333 case NB_EV_APPLY:
14334 /* TODO: implement me. */
14335 break;
14336 }
14337
14338 return NB_OK;
14339 }
14340
14341 /*
14342 * XPath:
14343 * /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
14344 */
14345 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
14346 struct nb_cb_modify_args *args)
14347 {
14348 switch (args->event) {
14349 case NB_EV_VALIDATE:
14350 case NB_EV_PREPARE:
14351 case NB_EV_ABORT:
14352 case NB_EV_APPLY:
14353 /* TODO: implement me. */
14354 break;
14355 }
14356
14357 return NB_OK;
14358 }
14359
14360 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
14361 struct nb_cb_destroy_args *args)
14362 {
14363 switch (args->event) {
14364 case NB_EV_VALIDATE:
14365 case NB_EV_PREPARE:
14366 case NB_EV_ABORT:
14367 case NB_EV_APPLY:
14368 /* TODO: implement me. */
14369 break;
14370 }
14371
14372 return NB_OK;
14373 }
14374
14375 /*
14376 * XPath:
14377 * /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
14378 */
14379 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
14380 struct nb_cb_modify_args *args)
14381 {
14382 switch (args->event) {
14383 case NB_EV_VALIDATE:
14384 case NB_EV_PREPARE:
14385 case NB_EV_ABORT:
14386 case NB_EV_APPLY:
14387 /* TODO: implement me. */
14388 break;
14389 }
14390
14391 return NB_OK;
14392 }
14393
14394 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
14395 struct nb_cb_destroy_args *args)
14396 {
14397 switch (args->event) {
14398 case NB_EV_VALIDATE:
14399 case NB_EV_PREPARE:
14400 case NB_EV_ABORT:
14401 case NB_EV_APPLY:
14402 /* TODO: implement me. */
14403 break;
14404 }
14405
14406 return NB_OK;
14407 }
14408
14409 /*
14410 * XPath:
14411 * /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
14412 */
14413 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
14414 struct nb_cb_modify_args *args)
14415 {
14416 switch (args->event) {
14417 case NB_EV_VALIDATE:
14418 case NB_EV_PREPARE:
14419 case NB_EV_ABORT:
14420 case NB_EV_APPLY:
14421 /* TODO: implement me. */
14422 break;
14423 }
14424
14425 return NB_OK;
14426 }
14427
14428 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
14429 struct nb_cb_destroy_args *args)
14430 {
14431 switch (args->event) {
14432 case NB_EV_VALIDATE:
14433 case NB_EV_PREPARE:
14434 case NB_EV_ABORT:
14435 case NB_EV_APPLY:
14436 /* TODO: implement me. */
14437 break;
14438 }
14439
14440 return NB_OK;
14441 }
14442
14443 /*
14444 * XPath:
14445 * /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
14446 */
14447 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
14448 struct nb_cb_modify_args *args)
14449 {
14450 switch (args->event) {
14451 case NB_EV_VALIDATE:
14452 case NB_EV_PREPARE:
14453 case NB_EV_ABORT:
14454 case NB_EV_APPLY:
14455 /* TODO: implement me. */
14456 break;
14457 }
14458
14459 return NB_OK;
14460 }
14461
14462 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
14463 struct nb_cb_destroy_args *args)
14464 {
14465 switch (args->event) {
14466 case NB_EV_VALIDATE:
14467 case NB_EV_PREPARE:
14468 case NB_EV_ABORT:
14469 case NB_EV_APPLY:
14470 /* TODO: implement me. */
14471 break;
14472 }
14473
14474 return NB_OK;
14475 }
14476
14477 /*
14478 * XPath:
14479 * /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
14480 */
14481 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
14482 struct nb_cb_modify_args *args)
14483 {
14484 switch (args->event) {
14485 case NB_EV_VALIDATE:
14486 case NB_EV_PREPARE:
14487 case NB_EV_ABORT:
14488 case NB_EV_APPLY:
14489 /* TODO: implement me. */
14490 break;
14491 }
14492
14493 return NB_OK;
14494 }
14495
14496 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
14497 struct nb_cb_destroy_args *args)
14498 {
14499 switch (args->event) {
14500 case NB_EV_VALIDATE:
14501 case NB_EV_PREPARE:
14502 case NB_EV_ABORT:
14503 case NB_EV_APPLY:
14504 /* TODO: implement me. */
14505 break;
14506 }
14507
14508 return NB_OK;
14509 }
14510
14511 /*
14512 * XPath:
14513 * /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
14514 */
14515 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
14516 struct nb_cb_modify_args *args)
14517 {
14518 switch (args->event) {
14519 case NB_EV_VALIDATE:
14520 case NB_EV_PREPARE:
14521 case NB_EV_ABORT:
14522 case NB_EV_APPLY:
14523 /* TODO: implement me. */
14524 break;
14525 }
14526
14527 return NB_OK;
14528 }
14529
14530 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
14531 struct nb_cb_destroy_args *args)
14532 {
14533 switch (args->event) {
14534 case NB_EV_VALIDATE:
14535 case NB_EV_PREPARE:
14536 case NB_EV_ABORT:
14537 case NB_EV_APPLY:
14538 /* TODO: implement me. */
14539 break;
14540 }
14541
14542 return NB_OK;
14543 }
14544
14545 /*
14546 * XPath:
14547 * /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
14548 */
14549 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
14550 struct nb_cb_modify_args *args)
14551 {
14552 switch (args->event) {
14553 case NB_EV_VALIDATE:
14554 case NB_EV_PREPARE:
14555 case NB_EV_ABORT:
14556 case NB_EV_APPLY:
14557 /* TODO: implement me. */
14558 break;
14559 }
14560
14561 return NB_OK;
14562 }
14563
14564 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
14565 struct nb_cb_destroy_args *args)
14566 {
14567 switch (args->event) {
14568 case NB_EV_VALIDATE:
14569 case NB_EV_PREPARE:
14570 case NB_EV_ABORT:
14571 case NB_EV_APPLY:
14572 /* TODO: implement me. */
14573 break;
14574 }
14575
14576 return NB_OK;
14577 }
14578
14579 /*
14580 * XPath:
14581 * /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
14582 */
14583 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_modify(
14584 struct nb_cb_modify_args *args)
14585 {
14586 switch (args->event) {
14587 case NB_EV_VALIDATE:
14588 case NB_EV_PREPARE:
14589 case NB_EV_ABORT:
14590 return NB_OK;
14591 case NB_EV_APPLY:
14592 return bgp_neighbor_afi_safi_flag_modify(
14593 args, PEER_FLAG_NEXTHOP_SELF,
14594 yang_dnode_get_bool(args->dnode, NULL));
14595
14596 break;
14597 }
14598
14599 return NB_OK;
14600 }
14601
14602 /*
14603 * XPath:
14604 * /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
14605 */
14606 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
14607 struct nb_cb_modify_args *args)
14608 {
14609 switch (args->event) {
14610 case NB_EV_VALIDATE:
14611 case NB_EV_PREPARE:
14612 case NB_EV_ABORT:
14613 return NB_OK;
14614 case NB_EV_APPLY:
14615 return bgp_neighbor_afi_safi_flag_modify(
14616 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
14617 yang_dnode_get_bool(args->dnode, NULL));
14618
14619 break;
14620 }
14621
14622 return NB_OK;
14623 }
14624
14625 /*
14626 * XPath:
14627 * /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
14628 */
14629 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_modify(
14630 struct nb_cb_modify_args *args)
14631 {
14632 switch (args->event) {
14633 case NB_EV_VALIDATE:
14634 case NB_EV_PREPARE:
14635 case NB_EV_ABORT:
14636 return NB_OK;
14637 case NB_EV_APPLY:
14638 return bgp_neighbor_afi_safi_flag_modify(
14639 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
14640 yang_dnode_get_bool(args->dnode, NULL));
14641
14642 break;
14643 }
14644
14645 return NB_OK;
14646 }
14647
14648 /*
14649 * XPath:
14650 * /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
14651 */
14652 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
14653 struct nb_cb_modify_args *args)
14654 {
14655 switch (args->event) {
14656 case NB_EV_VALIDATE:
14657 case NB_EV_PREPARE:
14658 case NB_EV_ABORT:
14659 return NB_OK;
14660 case NB_EV_APPLY:
14661 return bgp_neighbor_afi_safi_flag_modify(
14662 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
14663 yang_dnode_get_bool(args->dnode, NULL));
14664
14665 break;
14666 }
14667
14668 return NB_OK;
14669 }
14670
14671 /*
14672 * XPath:
14673 * /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
14674 */
14675 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_modify(
14676 struct nb_cb_modify_args *args)
14677 {
14678 switch (args->event) {
14679 case NB_EV_VALIDATE:
14680 case NB_EV_PREPARE:
14681 case NB_EV_ABORT:
14682 return NB_OK;
14683 case NB_EV_APPLY:
14684 return bgp_neighbor_afi_safi_flag_modify(
14685 args, PEER_FLAG_REMOVE_PRIVATE_AS,
14686 yang_dnode_get_bool(args->dnode, NULL));
14687
14688 break;
14689 }
14690
14691 return NB_OK;
14692 }
14693
14694 /*
14695 * XPath:
14696 * /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
14697 */
14698 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_replace_modify(
14699 struct nb_cb_modify_args *args)
14700 {
14701 switch (args->event) {
14702 case NB_EV_VALIDATE:
14703 case NB_EV_PREPARE:
14704 case NB_EV_ABORT:
14705 return NB_OK;
14706 case NB_EV_APPLY:
14707 return bgp_neighbor_afi_safi_flag_modify(
14708 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
14709 yang_dnode_get_bool(args->dnode, NULL));
14710
14711 break;
14712 }
14713
14714 return NB_OK;
14715 }
14716
14717 static int bgp_neighbor_afi_safi_weight_modify(struct nb_cb_modify_args *args)
14718 {
14719 struct bgp *bgp;
14720 const char *peer_str;
14721 struct peer *peer;
14722 const struct lyd_node *nbr_dnode;
14723 const struct lyd_node *nbr_af_dnode;
14724 const char *af_name;
14725 uint16_t weight;
14726 afi_t afi;
14727 safi_t safi;
14728 int ret;
14729
14730 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
14731 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
14732 yang_afi_safi_identity2value(af_name, &afi, &safi);
14733
14734 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
14735 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
14736 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
14737 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
14738 args->errmsg_len);
14739
14740 weight = yang_dnode_get_uint16(args->dnode, NULL);
14741
14742 ret = peer_weight_set(peer, afi, safi, weight);
14743 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
14744 return NB_ERR_INCONSISTENCY;
14745
14746 return NB_OK;
14747 }
14748
14749 static int bgp_neighbor_afi_safi_weight_destroy(struct nb_cb_destroy_args *args)
14750 {
14751 struct bgp *bgp;
14752 const char *peer_str;
14753 struct peer *peer;
14754 const struct lyd_node *nbr_dnode;
14755 const struct lyd_node *nbr_af_dnode;
14756 const char *af_name;
14757 afi_t afi;
14758 safi_t safi;
14759 int ret;
14760
14761 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
14762 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
14763 yang_afi_safi_identity2value(af_name, &afi, &safi);
14764
14765 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
14766 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
14767 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
14768 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
14769 args->errmsg_len);
14770
14771 ret = peer_weight_unset(peer, afi, safi);
14772 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
14773 return NB_ERR_INCONSISTENCY;
14774
14775 return NB_OK;
14776 }
14777
14778 /*
14779 * XPath:
14780 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/weight/weight-attribute
14781 */
14782 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_modify(
14783 struct nb_cb_modify_args *args)
14784 {
14785 switch (args->event) {
14786 case NB_EV_VALIDATE:
14787 case NB_EV_PREPARE:
14788 case NB_EV_ABORT:
14789 return NB_OK;
14790 case NB_EV_APPLY:
14791 return bgp_neighbor_afi_safi_weight_modify(args);
14792
14793 break;
14794 }
14795
14796 return NB_OK;
14797 }
14798
14799 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_destroy(
14800 struct nb_cb_destroy_args *args)
14801 {
14802 switch (args->event) {
14803 case NB_EV_VALIDATE:
14804 case NB_EV_PREPARE:
14805 case NB_EV_ABORT:
14806 return NB_OK;
14807 case NB_EV_APPLY:
14808 return bgp_neighbor_afi_safi_weight_destroy(args);
14809
14810 break;
14811 }
14812
14813 return NB_OK;
14814 }
14815
14816 /*
14817 * XPath:
14818 * /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
14819 */
14820 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_route_reflector_route_reflector_client_modify(
14821 struct nb_cb_modify_args *args)
14822 {
14823 switch (args->event) {
14824 case NB_EV_VALIDATE:
14825 case NB_EV_PREPARE:
14826 case NB_EV_ABORT:
14827 return NB_OK;
14828 case NB_EV_APPLY:
14829 return bgp_neighbor_afi_safi_flag_modify(
14830 args, PEER_FLAG_REFLECTOR_CLIENT,
14831 yang_dnode_get_bool(args->dnode, NULL));
14832
14833 break;
14834 }
14835
14836 return NB_OK;
14837 }
14838
14839 /*
14840 * XPath:
14841 * /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
14842 */
14843 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_route_server_route_server_client_modify(
14844 struct nb_cb_modify_args *args)
14845 {
14846 switch (args->event) {
14847 case NB_EV_VALIDATE:
14848 case NB_EV_PREPARE:
14849 case NB_EV_ABORT:
14850 return NB_OK;
14851 case NB_EV_APPLY:
14852 return bgp_neighbor_afi_safi_flag_modify(
14853 args, PEER_FLAG_RSERVER_CLIENT,
14854 yang_dnode_get_bool(args->dnode, NULL));
14855
14856 break;
14857 }
14858
14859 return NB_OK;
14860 }
14861
14862 /*
14863 * XPath:
14864 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/send-community/send-community
14865 */
14866 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_community_modify(
14867 struct nb_cb_modify_args *args)
14868 {
14869 switch (args->event) {
14870 case NB_EV_VALIDATE:
14871 case NB_EV_PREPARE:
14872 case NB_EV_ABORT:
14873 return NB_OK;
14874 case NB_EV_APPLY:
14875 return bgp_neighbor_afi_safi_flag_modify(
14876 args, PEER_FLAG_SEND_COMMUNITY,
14877 yang_dnode_get_bool(args->dnode, NULL));
14878
14879 break;
14880 }
14881
14882 return NB_OK;
14883 }
14884
14885 /*
14886 * XPath:
14887 * /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
14888 */
14889 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_ext_community_modify(
14890 struct nb_cb_modify_args *args)
14891 {
14892 switch (args->event) {
14893 case NB_EV_VALIDATE:
14894 case NB_EV_PREPARE:
14895 case NB_EV_ABORT:
14896 return NB_OK;
14897 case NB_EV_APPLY:
14898 return bgp_neighbor_afi_safi_flag_modify(
14899 args, PEER_FLAG_SEND_EXT_COMMUNITY,
14900 yang_dnode_get_bool(args->dnode, NULL));
14901
14902 break;
14903 }
14904
14905 return NB_OK;
14906 }
14907
14908 /*
14909 * XPath:
14910 * /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
14911 */
14912 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_large_community_modify(
14913 struct nb_cb_modify_args *args)
14914 {
14915 switch (args->event) {
14916 case NB_EV_VALIDATE:
14917 case NB_EV_PREPARE:
14918 case NB_EV_ABORT:
14919 return NB_OK;
14920 case NB_EV_APPLY:
14921 return bgp_neighbor_afi_safi_flag_modify(
14922 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
14923 yang_dnode_get_bool(args->dnode, NULL));
14924
14925 break;
14926 }
14927
14928 return NB_OK;
14929 }
14930
14931 /*
14932 * XPath:
14933 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/soft-reconfiguration
14934 */
14935 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_soft_reconfiguration_modify(
14936 struct nb_cb_modify_args *args)
14937 {
14938 switch (args->event) {
14939 case NB_EV_VALIDATE:
14940 case NB_EV_PREPARE:
14941 case NB_EV_ABORT:
14942 return NB_OK;
14943 case NB_EV_APPLY:
14944 return bgp_neighbor_afi_safi_flag_modify(
14945 args, PEER_FLAG_SOFT_RECONFIG,
14946 yang_dnode_get_bool(args->dnode, NULL));
14947
14948 break;
14949 }
14950
14951 return NB_OK;
14952 }
14953
14954 /*
14955 * XPath:
14956 * /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
14957 */
14958 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
14959 struct nb_cb_modify_args *args)
14960 {
14961 switch (args->event) {
14962 case NB_EV_VALIDATE:
14963 case NB_EV_PREPARE:
14964 case NB_EV_ABORT:
14965 return NB_OK;
14966 case NB_EV_APPLY:
14967 return bgp_neighbor_afi_safi_flag_modify(
14968 args, PEER_FLAG_AS_PATH_UNCHANGED,
14969 yang_dnode_get_bool(args->dnode, NULL));
14970
14971 break;
14972 }
14973
14974 return NB_OK;
14975 }
14976
14977 /*
14978 * XPath:
14979 * /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
14980 */
14981 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
14982 struct nb_cb_modify_args *args)
14983 {
14984 switch (args->event) {
14985 case NB_EV_VALIDATE:
14986 case NB_EV_PREPARE:
14987 case NB_EV_ABORT:
14988 return NB_OK;
14989 case NB_EV_APPLY:
14990 return bgp_neighbor_afi_safi_flag_modify(
14991 args, PEER_FLAG_NEXTHOP_UNCHANGED,
14992 yang_dnode_get_bool(args->dnode, NULL));
14993
14994 break;
14995 }
14996
14997 return NB_OK;
14998 }
14999
15000 /*
15001 * XPath:
15002 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/attr-unchanged/med-unchanged
15003 */
15004 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_med_unchanged_modify(
15005 struct nb_cb_modify_args *args)
15006 {
15007 switch (args->event) {
15008 case NB_EV_VALIDATE:
15009 case NB_EV_PREPARE:
15010 case NB_EV_ABORT:
15011 return NB_OK;
15012 case NB_EV_APPLY:
15013 return bgp_neighbor_afi_safi_flag_modify(
15014 args, PEER_FLAG_MED_UNCHANGED,
15015 yang_dnode_get_bool(args->dnode, NULL));
15016
15017 break;
15018 }
15019
15020 return NB_OK;
15021 }
15022
15023 /*
15024 * XPath:
15025 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-send
15026 */
15027 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_modify(
15028 struct nb_cb_modify_args *args)
15029 {
15030 switch (args->event) {
15031 case NB_EV_VALIDATE:
15032 case NB_EV_PREPARE:
15033 case NB_EV_ABORT:
15034 case NB_EV_APPLY:
15035 /* TODO: implement me. */
15036 break;
15037 }
15038
15039 return NB_OK;
15040 }
15041
15042 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_destroy(
15043 struct nb_cb_destroy_args *args)
15044 {
15045 switch (args->event) {
15046 case NB_EV_VALIDATE:
15047 case NB_EV_PREPARE:
15048 case NB_EV_ABORT:
15049 case NB_EV_APPLY:
15050 /* TODO: implement me. */
15051 break;
15052 }
15053
15054 return NB_OK;
15055 }
15056
15057 /*
15058 * XPath:
15059 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-receive
15060 */
15061 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_modify(
15062 struct nb_cb_modify_args *args)
15063 {
15064 switch (args->event) {
15065 case NB_EV_VALIDATE:
15066 case NB_EV_PREPARE:
15067 case NB_EV_ABORT:
15068 case NB_EV_APPLY:
15069 /* TODO: implement me. */
15070 break;
15071 }
15072
15073 return NB_OK;
15074 }
15075
15076 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_destroy(
15077 struct nb_cb_destroy_args *args)
15078 {
15079 switch (args->event) {
15080 case NB_EV_VALIDATE:
15081 case NB_EV_PREPARE:
15082 case NB_EV_ABORT:
15083 case NB_EV_APPLY:
15084 /* TODO: implement me. */
15085 break;
15086 }
15087
15088 return NB_OK;
15089 }
15090
15091 /*
15092 * XPath:
15093 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/orf-capability/orf-both
15094 */
15095 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_modify(
15096 struct nb_cb_modify_args *args)
15097 {
15098 switch (args->event) {
15099 case NB_EV_VALIDATE:
15100 case NB_EV_PREPARE:
15101 case NB_EV_ABORT:
15102 case NB_EV_APPLY:
15103 /* TODO: implement me. */
15104 break;
15105 }
15106
15107 return NB_OK;
15108 }
15109
15110 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_destroy(
15111 struct nb_cb_destroy_args *args)
15112 {
15113 switch (args->event) {
15114 case NB_EV_VALIDATE:
15115 case NB_EV_PREPARE:
15116 case NB_EV_ABORT:
15117 case NB_EV_APPLY:
15118 /* TODO: implement me. */
15119 break;
15120 }
15121
15122 return NB_OK;
15123 }
15124
15125 static int bgp_neighbor_afi_safi_rmap_modify(struct nb_cb_modify_args *args,
15126 int direct)
15127 {
15128 struct bgp *bgp;
15129 const char *peer_str;
15130 struct peer *peer;
15131 const struct lyd_node *nbr_dnode;
15132 const struct lyd_node *nbr_af_dnode;
15133 const char *af_name;
15134 afi_t afi;
15135 safi_t safi;
15136 const char *name_str;
15137 struct route_map *route_map;
15138 int ret;
15139
15140 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
15141 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
15142 yang_afi_safi_identity2value(af_name, &afi, &safi);
15143
15144 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
15145 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
15146 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
15147 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
15148 args->errmsg_len);
15149
15150 name_str = yang_dnode_get_string(args->dnode, NULL);
15151 route_map = route_map_lookup_by_name(name_str);
15152 ret = peer_route_map_set(peer, afi, safi, direct, name_str, route_map);
15153
15154 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
15155 }
15156
15157 static int bgp_neighbor_afi_safi_rmap_destroy(struct nb_cb_destroy_args *args,
15158 int direct)
15159 {
15160 struct bgp *bgp;
15161 const char *peer_str;
15162 struct peer *peer;
15163 const struct lyd_node *nbr_dnode;
15164 const struct lyd_node *nbr_af_dnode;
15165 const char *af_name;
15166 afi_t afi;
15167 safi_t safi;
15168 int ret;
15169
15170 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
15171 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
15172 yang_afi_safi_identity2value(af_name, &afi, &safi);
15173
15174 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
15175 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
15176 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
15177 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
15178 args->errmsg_len);
15179
15180 ret = peer_route_map_unset(peer, afi, safi, direct);
15181
15182 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
15183 }
15184
15185 /*
15186 * XPath:
15187 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/rmap-import
15188 */
15189 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_modify(
15190 struct nb_cb_modify_args *args)
15191 {
15192 switch (args->event) {
15193 case NB_EV_VALIDATE:
15194 case NB_EV_PREPARE:
15195 case NB_EV_ABORT:
15196 break;
15197 case NB_EV_APPLY:
15198 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
15199 }
15200
15201 return NB_OK;
15202 }
15203
15204 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_destroy(
15205 struct nb_cb_destroy_args *args)
15206 {
15207 switch (args->event) {
15208 case NB_EV_VALIDATE:
15209 case NB_EV_PREPARE:
15210 case NB_EV_ABORT:
15211 break;
15212 case NB_EV_APPLY:
15213 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
15214 }
15215
15216 return NB_OK;
15217 }
15218
15219 /*
15220 * XPath:
15221 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/rmap-export
15222 */
15223 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_modify(
15224 struct nb_cb_modify_args *args)
15225 {
15226 switch (args->event) {
15227 case NB_EV_VALIDATE:
15228 case NB_EV_PREPARE:
15229 case NB_EV_ABORT:
15230 break;
15231 case NB_EV_APPLY:
15232 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
15233 }
15234
15235 return NB_OK;
15236 }
15237
15238 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_destroy(
15239 struct nb_cb_destroy_args *args)
15240 {
15241 switch (args->event) {
15242 case NB_EV_VALIDATE:
15243 case NB_EV_PREPARE:
15244 case NB_EV_ABORT:
15245 break;
15246 case NB_EV_APPLY:
15247 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
15248 }
15249
15250 return NB_OK;
15251 }
15252
15253 static int bgp_neighbor_afi_safi_plist_modify(struct nb_cb_modify_args *args,
15254 int direct)
15255 {
15256 struct bgp *bgp;
15257 const char *peer_str;
15258 struct peer *peer;
15259 const struct lyd_node *nbr_dnode;
15260 const struct lyd_node *nbr_af_dnode;
15261 const char *af_name;
15262 afi_t afi;
15263 safi_t safi;
15264 const char *name_str;
15265
15266 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
15267 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
15268 yang_afi_safi_identity2value(af_name, &afi, &safi);
15269
15270 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
15271 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
15272 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
15273 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
15274 args->errmsg_len);
15275
15276 name_str = yang_dnode_get_string(args->dnode, NULL);
15277 if (peer_prefix_list_set(peer, afi, safi, direct, name_str) < 0)
15278 return NB_ERR_INCONSISTENCY;
15279
15280 return NB_OK;
15281 }
15282
15283 static int bgp_neighbor_afi_safi_plist_destroy(struct nb_cb_destroy_args *args,
15284 int direct)
15285 {
15286 struct bgp *bgp;
15287 const char *peer_str;
15288 struct peer *peer;
15289 const struct lyd_node *nbr_dnode;
15290 const struct lyd_node *nbr_af_dnode;
15291 const char *af_name;
15292 afi_t afi;
15293 safi_t safi;
15294
15295 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
15296 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
15297 yang_afi_safi_identity2value(af_name, &afi, &safi);
15298
15299 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "neighbor");
15300 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
15301 peer_str = yang_dnode_get_string(nbr_dnode, "./remote-address");
15302 peer = bgp_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
15303 args->errmsg_len);
15304
15305 if (peer_prefix_list_unset(peer, afi, safi, direct) < 0)
15306 return NB_ERR_INCONSISTENCY;
15307
15308 return NB_OK;
15309 }
15310
15311 /*
15312 * XPath:
15313 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/plist-import
15314 */
15315 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_modify(
15316 struct nb_cb_modify_args *args)
15317 {
15318 switch (args->event) {
15319 case NB_EV_VALIDATE:
15320 case NB_EV_PREPARE:
15321 case NB_EV_ABORT:
15322 break;
15323 case NB_EV_APPLY:
15324 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
15325 }
15326
15327 return NB_OK;
15328 }
15329
15330 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_destroy(
15331 struct nb_cb_destroy_args *args)
15332 {
15333 switch (args->event) {
15334 case NB_EV_VALIDATE:
15335 case NB_EV_PREPARE:
15336 case NB_EV_ABORT:
15337 break;
15338 case NB_EV_APPLY:
15339 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
15340 }
15341
15342 return NB_OK;
15343 }
15344
15345 /*
15346 * XPath:
15347 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-unicast/filter-config/plist-export
15348 */
15349 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_modify(
15350 struct nb_cb_modify_args *args)
15351 {
15352 switch (args->event) {
15353 case NB_EV_VALIDATE:
15354 case NB_EV_PREPARE:
15355 case NB_EV_ABORT:
15356 break;
15357 case NB_EV_APPLY:
15358 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
15359 }
15360
15361 return NB_OK;
15362 }
15363
15364 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_destroy(
15365 struct nb_cb_destroy_args *args)
15366 {
15367 switch (args->event) {
15368 case NB_EV_VALIDATE:
15369 case NB_EV_PREPARE:
15370 case NB_EV_ABORT:
15371 break;
15372 case NB_EV_APPLY:
15373 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
15374 }
15375
15376 return NB_OK;
15377 }
15378
15379 /*
15380 * XPath:
15381 * /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
15382 */
15383 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_modify(
15384 struct nb_cb_modify_args *args)
15385 {
15386 switch (args->event) {
15387 case NB_EV_VALIDATE:
15388 case NB_EV_PREPARE:
15389 case NB_EV_ABORT:
15390 case NB_EV_APPLY:
15391 /* TODO: implement me. */
15392 break;
15393 }
15394
15395 return NB_OK;
15396 }
15397
15398 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_destroy(
15399 struct nb_cb_destroy_args *args)
15400 {
15401 switch (args->event) {
15402 case NB_EV_VALIDATE:
15403 case NB_EV_PREPARE:
15404 case NB_EV_ABORT:
15405 case NB_EV_APPLY:
15406 /* TODO: implement me. */
15407 break;
15408 }
15409
15410 return NB_OK;
15411 }
15412
15413 /*
15414 * XPath:
15415 * /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
15416 */
15417 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_modify(
15418 struct nb_cb_modify_args *args)
15419 {
15420 switch (args->event) {
15421 case NB_EV_VALIDATE:
15422 case NB_EV_PREPARE:
15423 case NB_EV_ABORT:
15424 case NB_EV_APPLY:
15425 /* TODO: implement me. */
15426 break;
15427 }
15428
15429 return NB_OK;
15430 }
15431
15432 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_destroy(
15433 struct nb_cb_destroy_args *args)
15434 {
15435 switch (args->event) {
15436 case NB_EV_VALIDATE:
15437 case NB_EV_PREPARE:
15438 case NB_EV_ABORT:
15439 case NB_EV_APPLY:
15440 /* TODO: implement me. */
15441 break;
15442 }
15443
15444 return NB_OK;
15445 }
15446
15447 /*
15448 * XPath:
15449 * /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
15450 */
15451 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_modify(
15452 struct nb_cb_modify_args *args)
15453 {
15454 switch (args->event) {
15455 case NB_EV_VALIDATE:
15456 case NB_EV_PREPARE:
15457 case NB_EV_ABORT:
15458 case NB_EV_APPLY:
15459 /* TODO: implement me. */
15460 break;
15461 }
15462
15463 return NB_OK;
15464 }
15465
15466 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_destroy(
15467 struct nb_cb_destroy_args *args)
15468 {
15469 switch (args->event) {
15470 case NB_EV_VALIDATE:
15471 case NB_EV_PREPARE:
15472 case NB_EV_ABORT:
15473 case NB_EV_APPLY:
15474 /* TODO: implement me. */
15475 break;
15476 }
15477
15478 return NB_OK;
15479 }
15480
15481 /*
15482 * XPath:
15483 * /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
15484 */
15485 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_modify(
15486 struct nb_cb_modify_args *args)
15487 {
15488 switch (args->event) {
15489 case NB_EV_VALIDATE:
15490 case NB_EV_PREPARE:
15491 case NB_EV_ABORT:
15492 case NB_EV_APPLY:
15493 /* TODO: implement me. */
15494 break;
15495 }
15496
15497 return NB_OK;
15498 }
15499
15500 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_destroy(
15501 struct nb_cb_destroy_args *args)
15502 {
15503 switch (args->event) {
15504 case NB_EV_VALIDATE:
15505 case NB_EV_PREPARE:
15506 case NB_EV_ABORT:
15507 case NB_EV_APPLY:
15508 /* TODO: implement me. */
15509 break;
15510 }
15511
15512 return NB_OK;
15513 }
15514
15515 /*
15516 * XPath:
15517 * /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
15518 */
15519 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_modify(
15520 struct nb_cb_modify_args *args)
15521 {
15522 switch (args->event) {
15523 case NB_EV_VALIDATE:
15524 case NB_EV_PREPARE:
15525 case NB_EV_ABORT:
15526 case NB_EV_APPLY:
15527 /* TODO: implement me. */
15528 break;
15529 }
15530
15531 return NB_OK;
15532 }
15533
15534 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_destroy(
15535 struct nb_cb_destroy_args *args)
15536 {
15537 switch (args->event) {
15538 case NB_EV_VALIDATE:
15539 case NB_EV_PREPARE:
15540 case NB_EV_ABORT:
15541 case NB_EV_APPLY:
15542 /* TODO: implement me. */
15543 break;
15544 }
15545
15546 return NB_OK;
15547 }
15548
15549 /*
15550 * XPath:
15551 * /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
15552 */
15553 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_modify(
15554 struct nb_cb_modify_args *args)
15555 {
15556 switch (args->event) {
15557 case NB_EV_VALIDATE:
15558 case NB_EV_PREPARE:
15559 case NB_EV_ABORT:
15560 case NB_EV_APPLY:
15561 /* TODO: implement me. */
15562 break;
15563 }
15564
15565 return NB_OK;
15566 }
15567
15568 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_destroy(
15569 struct nb_cb_destroy_args *args)
15570 {
15571 switch (args->event) {
15572 case NB_EV_VALIDATE:
15573 case NB_EV_PREPARE:
15574 case NB_EV_ABORT:
15575 case NB_EV_APPLY:
15576 /* TODO: implement me. */
15577 break;
15578 }
15579
15580 return NB_OK;
15581 }
15582
15583 /*
15584 * XPath:
15585 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/nexthop-local-unchanged
15586 */
15587 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_local_unchanged_modify(
15588 struct nb_cb_modify_args *args)
15589 {
15590 switch (args->event) {
15591 case NB_EV_VALIDATE:
15592 case NB_EV_PREPARE:
15593 case NB_EV_ABORT:
15594 case NB_EV_APPLY:
15595 /* TODO: implement me. */
15596 break;
15597 }
15598
15599 return NB_OK;
15600 }
15601
15602 /*
15603 * XPath:
15604 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/add-paths/path-type
15605 */
15606 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_add_paths_path_type_modify(
15607 struct nb_cb_modify_args *args)
15608 {
15609 switch (args->event) {
15610 case NB_EV_VALIDATE:
15611 case NB_EV_PREPARE:
15612 case NB_EV_ABORT:
15613 case NB_EV_APPLY:
15614 /* TODO: implement me. */
15615 break;
15616 }
15617
15618 return NB_OK;
15619 }
15620
15621 /*
15622 * XPath:
15623 * /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
15624 */
15625 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_modify(
15626 struct nb_cb_modify_args *args)
15627 {
15628 switch (args->event) {
15629 case NB_EV_VALIDATE:
15630 case NB_EV_PREPARE:
15631 case NB_EV_ABORT:
15632 case NB_EV_APPLY:
15633 /* TODO: implement me. */
15634 break;
15635 }
15636
15637 return NB_OK;
15638 }
15639
15640 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_destroy(
15641 struct nb_cb_destroy_args *args)
15642 {
15643 switch (args->event) {
15644 case NB_EV_VALIDATE:
15645 case NB_EV_PREPARE:
15646 case NB_EV_ABORT:
15647 case NB_EV_APPLY:
15648 /* TODO: implement me. */
15649 break;
15650 }
15651
15652 return NB_OK;
15653 }
15654
15655 /*
15656 * XPath:
15657 * /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
15658 */
15659 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
15660 struct nb_cb_modify_args *args)
15661 {
15662 switch (args->event) {
15663 case NB_EV_VALIDATE:
15664 case NB_EV_PREPARE:
15665 case NB_EV_ABORT:
15666 case NB_EV_APPLY:
15667 /* TODO: implement me. */
15668 break;
15669 }
15670
15671 return NB_OK;
15672 }
15673
15674 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
15675 struct nb_cb_destroy_args *args)
15676 {
15677 switch (args->event) {
15678 case NB_EV_VALIDATE:
15679 case NB_EV_PREPARE:
15680 case NB_EV_ABORT:
15681 case NB_EV_APPLY:
15682 /* TODO: implement me. */
15683 break;
15684 }
15685
15686 return NB_OK;
15687 }
15688
15689 /*
15690 * XPath:
15691 * /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
15692 */
15693 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_replace_peer_as_modify(
15694 struct nb_cb_modify_args *args)
15695 {
15696 switch (args->event) {
15697 case NB_EV_VALIDATE:
15698 case NB_EV_PREPARE:
15699 case NB_EV_ABORT:
15700 return NB_OK;
15701 case NB_EV_APPLY:
15702 return bgp_neighbor_afi_safi_flag_modify(
15703 args, PEER_FLAG_AS_OVERRIDE,
15704 yang_dnode_get_bool(args->dnode, NULL));
15705
15706 break;
15707 }
15708
15709 return NB_OK;
15710 }
15711
15712 /*
15713 * XPath:
15714 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/default-originate/originate
15715 */
15716 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_originate_modify(
15717 struct nb_cb_modify_args *args)
15718 {
15719 switch (args->event) {
15720 case NB_EV_VALIDATE:
15721 case NB_EV_PREPARE:
15722 case NB_EV_ABORT:
15723 case NB_EV_APPLY:
15724 /* TODO: implement me. */
15725 break;
15726 }
15727
15728 return NB_OK;
15729 }
15730
15731 /*
15732 * XPath:
15733 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/default-originate/route-map
15734 */
15735 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_modify(
15736 struct nb_cb_modify_args *args)
15737 {
15738 switch (args->event) {
15739 case NB_EV_VALIDATE:
15740 case NB_EV_PREPARE:
15741 case NB_EV_ABORT:
15742 case NB_EV_APPLY:
15743 /* TODO: implement me. */
15744 break;
15745 }
15746
15747 return NB_OK;
15748 }
15749
15750 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_destroy(
15751 struct nb_cb_destroy_args *args)
15752 {
15753 switch (args->event) {
15754 case NB_EV_VALIDATE:
15755 case NB_EV_PREPARE:
15756 case NB_EV_ABORT:
15757 case NB_EV_APPLY:
15758 /* TODO: implement me. */
15759 break;
15760 }
15761
15762 return NB_OK;
15763 }
15764
15765 /*
15766 * XPath:
15767 * /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
15768 */
15769 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
15770 struct nb_cb_modify_args *args)
15771 {
15772 switch (args->event) {
15773 case NB_EV_VALIDATE:
15774 case NB_EV_PREPARE:
15775 case NB_EV_ABORT:
15776 return NB_OK;
15777 case NB_EV_APPLY:
15778 return bgp_neighbor_afi_safi_flag_modify(
15779 args, PEER_FLAG_AS_PATH_UNCHANGED,
15780 yang_dnode_get_bool(args->dnode, NULL));
15781
15782 break;
15783 }
15784
15785 return NB_OK;
15786 }
15787
15788 /*
15789 * XPath:
15790 * /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
15791 */
15792 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
15793 struct nb_cb_modify_args *args)
15794 {
15795 switch (args->event) {
15796 case NB_EV_VALIDATE:
15797 case NB_EV_PREPARE:
15798 case NB_EV_ABORT:
15799 return NB_OK;
15800 case NB_EV_APPLY:
15801 return bgp_neighbor_afi_safi_flag_modify(
15802 args, PEER_FLAG_NEXTHOP_UNCHANGED,
15803 yang_dnode_get_bool(args->dnode, NULL));
15804
15805 break;
15806 }
15807
15808 return NB_OK;
15809 }
15810
15811 /*
15812 * XPath:
15813 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/attr-unchanged/med-unchanged
15814 */
15815 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_med_unchanged_modify(
15816 struct nb_cb_modify_args *args)
15817 {
15818 switch (args->event) {
15819 case NB_EV_VALIDATE:
15820 case NB_EV_PREPARE:
15821 case NB_EV_ABORT:
15822 return NB_OK;
15823 case NB_EV_APPLY:
15824 return bgp_neighbor_afi_safi_flag_modify(
15825 args, PEER_FLAG_MED_UNCHANGED,
15826 yang_dnode_get_bool(args->dnode, NULL));
15827
15828 break;
15829 }
15830
15831 return NB_OK;
15832 }
15833
15834 /*
15835 * XPath:
15836 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-send
15837 */
15838 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_modify(
15839 struct nb_cb_modify_args *args)
15840 {
15841 switch (args->event) {
15842 case NB_EV_VALIDATE:
15843 case NB_EV_PREPARE:
15844 case NB_EV_ABORT:
15845 case NB_EV_APPLY:
15846 /* TODO: implement me. */
15847 break;
15848 }
15849
15850 return NB_OK;
15851 }
15852
15853 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_destroy(
15854 struct nb_cb_destroy_args *args)
15855 {
15856 switch (args->event) {
15857 case NB_EV_VALIDATE:
15858 case NB_EV_PREPARE:
15859 case NB_EV_ABORT:
15860 case NB_EV_APPLY:
15861 /* TODO: implement me. */
15862 break;
15863 }
15864
15865 return NB_OK;
15866 }
15867
15868 /*
15869 * XPath:
15870 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-receive
15871 */
15872 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_modify(
15873 struct nb_cb_modify_args *args)
15874 {
15875 switch (args->event) {
15876 case NB_EV_VALIDATE:
15877 case NB_EV_PREPARE:
15878 case NB_EV_ABORT:
15879 case NB_EV_APPLY:
15880 /* TODO: implement me. */
15881 break;
15882 }
15883
15884 return NB_OK;
15885 }
15886
15887 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_destroy(
15888 struct nb_cb_destroy_args *args)
15889 {
15890 switch (args->event) {
15891 case NB_EV_VALIDATE:
15892 case NB_EV_PREPARE:
15893 case NB_EV_ABORT:
15894 case NB_EV_APPLY:
15895 /* TODO: implement me. */
15896 break;
15897 }
15898
15899 return NB_OK;
15900 }
15901
15902 /*
15903 * XPath:
15904 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/orf-capability/orf-both
15905 */
15906 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_modify(
15907 struct nb_cb_modify_args *args)
15908 {
15909 switch (args->event) {
15910 case NB_EV_VALIDATE:
15911 case NB_EV_PREPARE:
15912 case NB_EV_ABORT:
15913 case NB_EV_APPLY:
15914 /* TODO: implement me. */
15915 break;
15916 }
15917
15918 return NB_OK;
15919 }
15920
15921 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_destroy(
15922 struct nb_cb_destroy_args *args)
15923 {
15924 switch (args->event) {
15925 case NB_EV_VALIDATE:
15926 case NB_EV_PREPARE:
15927 case NB_EV_ABORT:
15928 case NB_EV_APPLY:
15929 /* TODO: implement me. */
15930 break;
15931 }
15932
15933 return NB_OK;
15934 }
15935
15936 /*
15937 * XPath:
15938 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/prefix-limit/direction-list
15939 */
15940 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_create(
15941 struct nb_cb_create_args *args)
15942 {
15943 switch (args->event) {
15944 case NB_EV_VALIDATE:
15945 case NB_EV_PREPARE:
15946 case NB_EV_ABORT:
15947 case NB_EV_APPLY:
15948 /* TODO: implement me. */
15949 break;
15950 }
15951
15952 return NB_OK;
15953 }
15954
15955 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_destroy(
15956 struct nb_cb_destroy_args *args)
15957 {
15958 switch (args->event) {
15959 case NB_EV_VALIDATE:
15960 case NB_EV_PREPARE:
15961 case NB_EV_ABORT:
15962 return NB_OK;
15963 case NB_EV_APPLY:
15964 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
15965 }
15966
15967 return NB_OK;
15968 }
15969
15970 /*
15971 * XPath:
15972 * /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
15973 */
15974 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
15975 struct nb_cb_modify_args *args)
15976 {
15977 switch (args->event) {
15978 case NB_EV_VALIDATE:
15979 case NB_EV_PREPARE:
15980 case NB_EV_ABORT:
15981 case NB_EV_APPLY:
15982 /* TODO: implement me. */
15983 break;
15984 }
15985
15986 return NB_OK;
15987 }
15988
15989 /*
15990 * XPath:
15991 * /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
15992 */
15993 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
15994 struct nb_cb_modify_args *args)
15995 {
15996 switch (args->event) {
15997 case NB_EV_VALIDATE:
15998 case NB_EV_PREPARE:
15999 case NB_EV_ABORT:
16000 case NB_EV_APPLY:
16001 /* TODO: implement me. */
16002 break;
16003 }
16004
16005 return NB_OK;
16006 }
16007
16008 /*
16009 * XPath:
16010 * /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
16011 */
16012 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
16013 struct nb_cb_modify_args *args)
16014 {
16015 switch (args->event) {
16016 case NB_EV_VALIDATE:
16017 case NB_EV_PREPARE:
16018 case NB_EV_ABORT:
16019 case NB_EV_APPLY:
16020 /* TODO: implement me. */
16021 break;
16022 }
16023
16024 return NB_OK;
16025 }
16026
16027 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
16028 struct nb_cb_destroy_args *args)
16029 {
16030 switch (args->event) {
16031 case NB_EV_VALIDATE:
16032 case NB_EV_PREPARE:
16033 case NB_EV_ABORT:
16034 case NB_EV_APPLY:
16035 /* TODO: implement me. */
16036 break;
16037 }
16038
16039 return NB_OK;
16040 }
16041
16042 /*
16043 * XPath:
16044 * /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
16045 */
16046 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
16047 struct nb_cb_modify_args *args)
16048 {
16049 switch (args->event) {
16050 case NB_EV_VALIDATE:
16051 case NB_EV_PREPARE:
16052 case NB_EV_ABORT:
16053 case NB_EV_APPLY:
16054 /* TODO: implement me. */
16055 break;
16056 }
16057
16058 return NB_OK;
16059 }
16060
16061 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
16062 struct nb_cb_destroy_args *args)
16063 {
16064 switch (args->event) {
16065 case NB_EV_VALIDATE:
16066 case NB_EV_PREPARE:
16067 case NB_EV_ABORT:
16068 case NB_EV_APPLY:
16069 /* TODO: implement me. */
16070 break;
16071 }
16072
16073 return NB_OK;
16074 }
16075
16076 /*
16077 * XPath:
16078 * /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
16079 */
16080 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
16081 struct nb_cb_modify_args *args)
16082 {
16083 switch (args->event) {
16084 case NB_EV_VALIDATE:
16085 case NB_EV_PREPARE:
16086 case NB_EV_ABORT:
16087 case NB_EV_APPLY:
16088 /* TODO: implement me. */
16089 break;
16090 }
16091
16092 return NB_OK;
16093 }
16094
16095 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
16096 struct nb_cb_destroy_args *args)
16097 {
16098 switch (args->event) {
16099 case NB_EV_VALIDATE:
16100 case NB_EV_PREPARE:
16101 case NB_EV_ABORT:
16102 case NB_EV_APPLY:
16103 /* TODO: implement me. */
16104 break;
16105 }
16106
16107 return NB_OK;
16108 }
16109
16110 /*
16111 * XPath:
16112 * /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
16113 */
16114 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
16115 struct nb_cb_modify_args *args)
16116 {
16117 switch (args->event) {
16118 case NB_EV_VALIDATE:
16119 case NB_EV_PREPARE:
16120 case NB_EV_ABORT:
16121 case NB_EV_APPLY:
16122 /* TODO: implement me. */
16123 break;
16124 }
16125
16126 return NB_OK;
16127 }
16128
16129 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
16130 struct nb_cb_destroy_args *args)
16131 {
16132 switch (args->event) {
16133 case NB_EV_VALIDATE:
16134 case NB_EV_PREPARE:
16135 case NB_EV_ABORT:
16136 case NB_EV_APPLY:
16137 /* TODO: implement me. */
16138 break;
16139 }
16140
16141 return NB_OK;
16142 }
16143
16144 /*
16145 * XPath:
16146 * /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
16147 */
16148 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
16149 struct nb_cb_modify_args *args)
16150 {
16151 switch (args->event) {
16152 case NB_EV_VALIDATE:
16153 case NB_EV_PREPARE:
16154 case NB_EV_ABORT:
16155 case NB_EV_APPLY:
16156 /* TODO: implement me. */
16157 break;
16158 }
16159
16160 return NB_OK;
16161 }
16162
16163 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
16164 struct nb_cb_destroy_args *args)
16165 {
16166 switch (args->event) {
16167 case NB_EV_VALIDATE:
16168 case NB_EV_PREPARE:
16169 case NB_EV_ABORT:
16170 case NB_EV_APPLY:
16171 /* TODO: implement me. */
16172 break;
16173 }
16174
16175 return NB_OK;
16176 }
16177
16178 /*
16179 * XPath:
16180 * /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
16181 */
16182 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
16183 struct nb_cb_modify_args *args)
16184 {
16185 switch (args->event) {
16186 case NB_EV_VALIDATE:
16187 case NB_EV_PREPARE:
16188 case NB_EV_ABORT:
16189 case NB_EV_APPLY:
16190 /* TODO: implement me. */
16191 break;
16192 }
16193
16194 return NB_OK;
16195 }
16196
16197 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
16198 struct nb_cb_destroy_args *args)
16199 {
16200 switch (args->event) {
16201 case NB_EV_VALIDATE:
16202 case NB_EV_PREPARE:
16203 case NB_EV_ABORT:
16204 case NB_EV_APPLY:
16205 /* TODO: implement me. */
16206 break;
16207 }
16208
16209 return NB_OK;
16210 }
16211
16212 /*
16213 * XPath:
16214 * /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
16215 */
16216 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
16217 struct nb_cb_modify_args *args)
16218 {
16219 switch (args->event) {
16220 case NB_EV_VALIDATE:
16221 case NB_EV_PREPARE:
16222 case NB_EV_ABORT:
16223 case NB_EV_APPLY:
16224 /* TODO: implement me. */
16225 break;
16226 }
16227
16228 return NB_OK;
16229 }
16230
16231 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
16232 struct nb_cb_destroy_args *args)
16233 {
16234 switch (args->event) {
16235 case NB_EV_VALIDATE:
16236 case NB_EV_PREPARE:
16237 case NB_EV_ABORT:
16238 case NB_EV_APPLY:
16239 /* TODO: implement me. */
16240 break;
16241 }
16242
16243 return NB_OK;
16244 }
16245
16246 /*
16247 * XPath:
16248 * /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
16249 */
16250 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_modify(
16251 struct nb_cb_modify_args *args)
16252 {
16253 switch (args->event) {
16254 case NB_EV_VALIDATE:
16255 case NB_EV_PREPARE:
16256 case NB_EV_ABORT:
16257 return NB_OK;
16258 case NB_EV_APPLY:
16259 return bgp_neighbor_afi_safi_flag_modify(
16260 args, PEER_FLAG_NEXTHOP_SELF,
16261 yang_dnode_get_bool(args->dnode, NULL));
16262
16263 break;
16264 }
16265
16266 return NB_OK;
16267 }
16268
16269 /*
16270 * XPath:
16271 * /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
16272 */
16273 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
16274 struct nb_cb_modify_args *args)
16275 {
16276 switch (args->event) {
16277 case NB_EV_VALIDATE:
16278 case NB_EV_PREPARE:
16279 case NB_EV_ABORT:
16280 return NB_OK;
16281 case NB_EV_APPLY:
16282 return bgp_neighbor_afi_safi_flag_modify(
16283 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
16284 yang_dnode_get_bool(args->dnode, NULL));
16285
16286 break;
16287 }
16288
16289 return NB_OK;
16290 }
16291
16292 /*
16293 * XPath:
16294 * /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
16295 */
16296 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_modify(
16297 struct nb_cb_modify_args *args)
16298 {
16299 switch (args->event) {
16300 case NB_EV_VALIDATE:
16301 case NB_EV_PREPARE:
16302 case NB_EV_ABORT:
16303 return NB_OK;
16304 case NB_EV_APPLY:
16305 return bgp_neighbor_afi_safi_flag_modify(
16306 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
16307 yang_dnode_get_bool(args->dnode, NULL));
16308
16309 break;
16310 }
16311
16312 return NB_OK;
16313 }
16314
16315 /*
16316 * XPath:
16317 * /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
16318 */
16319 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
16320 struct nb_cb_modify_args *args)
16321 {
16322 switch (args->event) {
16323 case NB_EV_VALIDATE:
16324 case NB_EV_PREPARE:
16325 case NB_EV_ABORT:
16326 return NB_OK;
16327 case NB_EV_APPLY:
16328 return bgp_neighbor_afi_safi_flag_modify(
16329 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
16330 yang_dnode_get_bool(args->dnode, NULL));
16331
16332 break;
16333 }
16334
16335 return NB_OK;
16336 }
16337
16338 /*
16339 * XPath:
16340 * /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
16341 */
16342 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_modify(
16343 struct nb_cb_modify_args *args)
16344 {
16345 switch (args->event) {
16346 case NB_EV_VALIDATE:
16347 case NB_EV_PREPARE:
16348 case NB_EV_ABORT:
16349 return NB_OK;
16350 case NB_EV_APPLY:
16351 return bgp_neighbor_afi_safi_flag_modify(
16352 args, PEER_FLAG_REMOVE_PRIVATE_AS,
16353 yang_dnode_get_bool(args->dnode, NULL));
16354
16355 break;
16356 }
16357
16358 return NB_OK;
16359 }
16360
16361 /*
16362 * XPath:
16363 * /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
16364 */
16365 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_replace_modify(
16366 struct nb_cb_modify_args *args)
16367 {
16368 switch (args->event) {
16369 case NB_EV_VALIDATE:
16370 case NB_EV_PREPARE:
16371 case NB_EV_ABORT:
16372 return NB_OK;
16373 case NB_EV_APPLY:
16374 return bgp_neighbor_afi_safi_flag_modify(
16375 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
16376 yang_dnode_get_bool(args->dnode, NULL));
16377
16378 break;
16379 }
16380
16381 return NB_OK;
16382 }
16383
16384 /*
16385 * XPath:
16386 * /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
16387 */
16388 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_route_reflector_route_reflector_client_modify(
16389 struct nb_cb_modify_args *args)
16390 {
16391 switch (args->event) {
16392 case NB_EV_VALIDATE:
16393 case NB_EV_PREPARE:
16394 case NB_EV_ABORT:
16395 return NB_OK;
16396 case NB_EV_APPLY:
16397 return bgp_neighbor_afi_safi_flag_modify(
16398 args, PEER_FLAG_REFLECTOR_CLIENT,
16399 yang_dnode_get_bool(args->dnode, NULL));
16400
16401 break;
16402 }
16403
16404 return NB_OK;
16405 }
16406
16407 /*
16408 * XPath:
16409 * /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
16410 */
16411 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_route_server_route_server_client_modify(
16412 struct nb_cb_modify_args *args)
16413 {
16414 switch (args->event) {
16415 case NB_EV_VALIDATE:
16416 case NB_EV_PREPARE:
16417 case NB_EV_ABORT:
16418 return NB_OK;
16419 case NB_EV_APPLY:
16420 return bgp_neighbor_afi_safi_flag_modify(
16421 args, PEER_FLAG_RSERVER_CLIENT,
16422 yang_dnode_get_bool(args->dnode, NULL));
16423
16424 break;
16425 }
16426
16427 return NB_OK;
16428 }
16429
16430 /*
16431 * XPath:
16432 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/send-community/send-community
16433 */
16434 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_community_modify(
16435 struct nb_cb_modify_args *args)
16436 {
16437 switch (args->event) {
16438 case NB_EV_VALIDATE:
16439 case NB_EV_PREPARE:
16440 case NB_EV_ABORT:
16441 return NB_OK;
16442 case NB_EV_APPLY:
16443 return bgp_neighbor_afi_safi_flag_modify(
16444 args, PEER_FLAG_SEND_COMMUNITY,
16445 yang_dnode_get_bool(args->dnode, NULL));
16446
16447 break;
16448 }
16449
16450 return NB_OK;
16451 }
16452
16453 /*
16454 * XPath:
16455 * /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
16456 */
16457 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_ext_community_modify(
16458 struct nb_cb_modify_args *args)
16459 {
16460 switch (args->event) {
16461 case NB_EV_VALIDATE:
16462 case NB_EV_PREPARE:
16463 case NB_EV_ABORT:
16464 return NB_OK;
16465 case NB_EV_APPLY:
16466 return bgp_neighbor_afi_safi_flag_modify(
16467 args, PEER_FLAG_SEND_EXT_COMMUNITY,
16468 yang_dnode_get_bool(args->dnode, NULL));
16469
16470 break;
16471 }
16472
16473 return NB_OK;
16474 }
16475
16476 /*
16477 * XPath:
16478 * /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
16479 */
16480 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_large_community_modify(
16481 struct nb_cb_modify_args *args)
16482 {
16483 switch (args->event) {
16484 case NB_EV_VALIDATE:
16485 case NB_EV_PREPARE:
16486 case NB_EV_ABORT:
16487 return NB_OK;
16488 case NB_EV_APPLY:
16489 return bgp_neighbor_afi_safi_flag_modify(
16490 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
16491 yang_dnode_get_bool(args->dnode, NULL));
16492
16493 break;
16494 }
16495
16496 return NB_OK;
16497 }
16498
16499 /*
16500 * XPath:
16501 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/soft-reconfiguration
16502 */
16503 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_soft_reconfiguration_modify(
16504 struct nb_cb_modify_args *args)
16505 {
16506 switch (args->event) {
16507 case NB_EV_VALIDATE:
16508 case NB_EV_PREPARE:
16509 case NB_EV_ABORT:
16510 return NB_OK;
16511 case NB_EV_APPLY:
16512 return bgp_neighbor_afi_safi_flag_modify(
16513 args, PEER_FLAG_SOFT_RECONFIG,
16514 yang_dnode_get_bool(args->dnode, NULL));
16515
16516 break;
16517 }
16518
16519 return NB_OK;
16520 }
16521
16522 /*
16523 * XPath:
16524 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/weight/weight-attribute
16525 */
16526 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_modify(
16527 struct nb_cb_modify_args *args)
16528 {
16529 switch (args->event) {
16530 case NB_EV_VALIDATE:
16531 case NB_EV_PREPARE:
16532 case NB_EV_ABORT:
16533 return NB_OK;
16534 case NB_EV_APPLY:
16535 return bgp_neighbor_afi_safi_weight_modify(args);
16536
16537 break;
16538 }
16539
16540 return NB_OK;
16541 }
16542
16543 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_destroy(
16544 struct nb_cb_destroy_args *args)
16545 {
16546 switch (args->event) {
16547 case NB_EV_VALIDATE:
16548 case NB_EV_PREPARE:
16549 case NB_EV_ABORT:
16550 return NB_OK;
16551 case NB_EV_APPLY:
16552 return bgp_neighbor_afi_safi_weight_destroy(args);
16553
16554 break;
16555 }
16556
16557 return NB_OK;
16558 }
16559
16560 /*
16561 * XPath:
16562 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/rmap-import
16563 */
16564 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_modify(
16565 struct nb_cb_modify_args *args)
16566 {
16567 switch (args->event) {
16568 case NB_EV_VALIDATE:
16569 case NB_EV_PREPARE:
16570 case NB_EV_ABORT:
16571 break;
16572 case NB_EV_APPLY:
16573 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
16574 }
16575
16576 return NB_OK;
16577 }
16578
16579 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_destroy(
16580 struct nb_cb_destroy_args *args)
16581 {
16582 switch (args->event) {
16583 case NB_EV_VALIDATE:
16584 case NB_EV_PREPARE:
16585 case NB_EV_ABORT:
16586 break;
16587 case NB_EV_APPLY:
16588 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
16589 }
16590
16591 return NB_OK;
16592 }
16593
16594 /*
16595 * XPath:
16596 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/rmap-export
16597 */
16598 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_modify(
16599 struct nb_cb_modify_args *args)
16600 {
16601 switch (args->event) {
16602 case NB_EV_VALIDATE:
16603 case NB_EV_PREPARE:
16604 case NB_EV_ABORT:
16605 break;
16606 case NB_EV_APPLY:
16607 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
16608 }
16609
16610 return NB_OK;
16611 }
16612
16613 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_destroy(
16614 struct nb_cb_destroy_args *args)
16615 {
16616 switch (args->event) {
16617 case NB_EV_VALIDATE:
16618 case NB_EV_PREPARE:
16619 case NB_EV_ABORT:
16620 break;
16621 case NB_EV_APPLY:
16622 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
16623 }
16624
16625 return NB_OK;
16626 }
16627
16628 /*
16629 * XPath:
16630 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/plist-import
16631 */
16632 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_modify(
16633 struct nb_cb_modify_args *args)
16634 {
16635 switch (args->event) {
16636 case NB_EV_VALIDATE:
16637 case NB_EV_PREPARE:
16638 case NB_EV_ABORT:
16639 break;
16640 case NB_EV_APPLY:
16641 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
16642 }
16643
16644 return NB_OK;
16645 }
16646
16647 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_destroy(
16648 struct nb_cb_destroy_args *args)
16649 {
16650 switch (args->event) {
16651 case NB_EV_VALIDATE:
16652 case NB_EV_PREPARE:
16653 case NB_EV_ABORT:
16654 break;
16655 case NB_EV_APPLY:
16656 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
16657 }
16658
16659 return NB_OK;
16660 }
16661
16662 /*
16663 * XPath:
16664 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-unicast/filter-config/plist-export
16665 */
16666 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_modify(
16667 struct nb_cb_modify_args *args)
16668 {
16669 switch (args->event) {
16670 case NB_EV_VALIDATE:
16671 case NB_EV_PREPARE:
16672 case NB_EV_ABORT:
16673 break;
16674 case NB_EV_APPLY:
16675 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
16676 }
16677
16678 return NB_OK;
16679 }
16680
16681 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_destroy(
16682 struct nb_cb_destroy_args *args)
16683 {
16684 switch (args->event) {
16685 case NB_EV_VALIDATE:
16686 case NB_EV_PREPARE:
16687 case NB_EV_ABORT:
16688 break;
16689 case NB_EV_APPLY:
16690 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
16691 }
16692
16693 return NB_OK;
16694 }
16695
16696 /*
16697 * XPath:
16698 * /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
16699 */
16700 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_modify(
16701 struct nb_cb_modify_args *args)
16702 {
16703 switch (args->event) {
16704 case NB_EV_VALIDATE:
16705 case NB_EV_PREPARE:
16706 case NB_EV_ABORT:
16707 case NB_EV_APPLY:
16708 /* TODO: implement me. */
16709 break;
16710 }
16711
16712 return NB_OK;
16713 }
16714
16715 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_destroy(
16716 struct nb_cb_destroy_args *args)
16717 {
16718 switch (args->event) {
16719 case NB_EV_VALIDATE:
16720 case NB_EV_PREPARE:
16721 case NB_EV_ABORT:
16722 case NB_EV_APPLY:
16723 /* TODO: implement me. */
16724 break;
16725 }
16726
16727 return NB_OK;
16728 }
16729
16730 /*
16731 * XPath:
16732 * /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
16733 */
16734 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_modify(
16735 struct nb_cb_modify_args *args)
16736 {
16737 switch (args->event) {
16738 case NB_EV_VALIDATE:
16739 case NB_EV_PREPARE:
16740 case NB_EV_ABORT:
16741 case NB_EV_APPLY:
16742 /* TODO: implement me. */
16743 break;
16744 }
16745
16746 return NB_OK;
16747 }
16748
16749 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_destroy(
16750 struct nb_cb_destroy_args *args)
16751 {
16752 switch (args->event) {
16753 case NB_EV_VALIDATE:
16754 case NB_EV_PREPARE:
16755 case NB_EV_ABORT:
16756 case NB_EV_APPLY:
16757 /* TODO: implement me. */
16758 break;
16759 }
16760
16761 return NB_OK;
16762 }
16763
16764 /*
16765 * XPath:
16766 * /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
16767 */
16768 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_modify(
16769 struct nb_cb_modify_args *args)
16770 {
16771 switch (args->event) {
16772 case NB_EV_VALIDATE:
16773 case NB_EV_PREPARE:
16774 case NB_EV_ABORT:
16775 case NB_EV_APPLY:
16776 /* TODO: implement me. */
16777 break;
16778 }
16779
16780 return NB_OK;
16781 }
16782
16783 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_destroy(
16784 struct nb_cb_destroy_args *args)
16785 {
16786 switch (args->event) {
16787 case NB_EV_VALIDATE:
16788 case NB_EV_PREPARE:
16789 case NB_EV_ABORT:
16790 case NB_EV_APPLY:
16791 /* TODO: implement me. */
16792 break;
16793 }
16794
16795 return NB_OK;
16796 }
16797
16798 /*
16799 * XPath:
16800 * /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
16801 */
16802 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_modify(
16803 struct nb_cb_modify_args *args)
16804 {
16805 switch (args->event) {
16806 case NB_EV_VALIDATE:
16807 case NB_EV_PREPARE:
16808 case NB_EV_ABORT:
16809 case NB_EV_APPLY:
16810 /* TODO: implement me. */
16811 break;
16812 }
16813
16814 return NB_OK;
16815 }
16816
16817 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_destroy(
16818 struct nb_cb_destroy_args *args)
16819 {
16820 switch (args->event) {
16821 case NB_EV_VALIDATE:
16822 case NB_EV_PREPARE:
16823 case NB_EV_ABORT:
16824 case NB_EV_APPLY:
16825 /* TODO: implement me. */
16826 break;
16827 }
16828
16829 return NB_OK;
16830 }
16831
16832 /*
16833 * XPath:
16834 * /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
16835 */
16836 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_modify(
16837 struct nb_cb_modify_args *args)
16838 {
16839 switch (args->event) {
16840 case NB_EV_VALIDATE:
16841 case NB_EV_PREPARE:
16842 case NB_EV_ABORT:
16843 case NB_EV_APPLY:
16844 /* TODO: implement me. */
16845 break;
16846 }
16847
16848 return NB_OK;
16849 }
16850
16851 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_destroy(
16852 struct nb_cb_destroy_args *args)
16853 {
16854 switch (args->event) {
16855 case NB_EV_VALIDATE:
16856 case NB_EV_PREPARE:
16857 case NB_EV_ABORT:
16858 case NB_EV_APPLY:
16859 /* TODO: implement me. */
16860 break;
16861 }
16862
16863 return NB_OK;
16864 }
16865
16866 /*
16867 * XPath:
16868 * /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
16869 */
16870 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_modify(
16871 struct nb_cb_modify_args *args)
16872 {
16873 switch (args->event) {
16874 case NB_EV_VALIDATE:
16875 case NB_EV_PREPARE:
16876 case NB_EV_ABORT:
16877 case NB_EV_APPLY:
16878 /* TODO: implement me. */
16879 break;
16880 }
16881
16882 return NB_OK;
16883 }
16884
16885 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_destroy(
16886 struct nb_cb_destroy_args *args)
16887 {
16888 switch (args->event) {
16889 case NB_EV_VALIDATE:
16890 case NB_EV_PREPARE:
16891 case NB_EV_ABORT:
16892 case NB_EV_APPLY:
16893 /* TODO: implement me. */
16894 break;
16895 }
16896
16897 return NB_OK;
16898 }
16899
16900
16901 /*
16902 * XPath:
16903 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/add-paths/path-type
16904 */
16905 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_add_paths_path_type_modify(
16906 struct nb_cb_modify_args *args)
16907 {
16908 switch (args->event) {
16909 case NB_EV_VALIDATE:
16910 case NB_EV_PREPARE:
16911 case NB_EV_ABORT:
16912 case NB_EV_APPLY:
16913 /* TODO: implement me. */
16914 break;
16915 }
16916
16917 return NB_OK;
16918 }
16919
16920 /*
16921 * XPath:
16922 * /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
16923 */
16924 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_modify(
16925 struct nb_cb_modify_args *args)
16926 {
16927 switch (args->event) {
16928 case NB_EV_VALIDATE:
16929 case NB_EV_PREPARE:
16930 case NB_EV_ABORT:
16931 case NB_EV_APPLY:
16932 /* TODO: implement me. */
16933 break;
16934 }
16935
16936 return NB_OK;
16937 }
16938
16939 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_destroy(
16940 struct nb_cb_destroy_args *args)
16941 {
16942 switch (args->event) {
16943 case NB_EV_VALIDATE:
16944 case NB_EV_PREPARE:
16945 case NB_EV_ABORT:
16946 case NB_EV_APPLY:
16947 /* TODO: implement me. */
16948 break;
16949 }
16950
16951 return NB_OK;
16952 }
16953
16954 /*
16955 * XPath:
16956 * /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
16957 */
16958 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_modify(
16959 struct nb_cb_modify_args *args)
16960 {
16961 switch (args->event) {
16962 case NB_EV_VALIDATE:
16963 case NB_EV_PREPARE:
16964 case NB_EV_ABORT:
16965 case NB_EV_APPLY:
16966 /* TODO: implement me. */
16967 break;
16968 }
16969
16970 return NB_OK;
16971 }
16972
16973 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_destroy(
16974 struct nb_cb_destroy_args *args)
16975 {
16976 switch (args->event) {
16977 case NB_EV_VALIDATE:
16978 case NB_EV_PREPARE:
16979 case NB_EV_ABORT:
16980 case NB_EV_APPLY:
16981 /* TODO: implement me. */
16982 break;
16983 }
16984
16985 return NB_OK;
16986 }
16987
16988 /*
16989 * XPath:
16990 * /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
16991 */
16992 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_replace_peer_as_modify(
16993 struct nb_cb_modify_args *args)
16994 {
16995 switch (args->event) {
16996 case NB_EV_VALIDATE:
16997 case NB_EV_PREPARE:
16998 case NB_EV_ABORT:
16999 return NB_OK;
17000 case NB_EV_APPLY:
17001 return bgp_neighbor_afi_safi_flag_modify(
17002 args, PEER_FLAG_AS_OVERRIDE,
17003 yang_dnode_get_bool(args->dnode, NULL));
17004
17005 break;
17006 }
17007
17008 return NB_OK;
17009 }
17010
17011 /*
17012 * XPath:
17013 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/default-originate/originate
17014 */
17015 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_originate_modify(
17016 struct nb_cb_modify_args *args)
17017 {
17018 switch (args->event) {
17019 case NB_EV_VALIDATE:
17020 case NB_EV_PREPARE:
17021 case NB_EV_ABORT:
17022 case NB_EV_APPLY:
17023 /* TODO: implement me. */
17024 break;
17025 }
17026
17027 return NB_OK;
17028 }
17029
17030 /*
17031 * XPath:
17032 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/default-originate/route-map
17033 */
17034 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_modify(
17035 struct nb_cb_modify_args *args)
17036 {
17037 switch (args->event) {
17038 case NB_EV_VALIDATE:
17039 case NB_EV_PREPARE:
17040 case NB_EV_ABORT:
17041 case NB_EV_APPLY:
17042 /* TODO: implement me. */
17043 break;
17044 }
17045
17046 return NB_OK;
17047 }
17048
17049 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_destroy(
17050 struct nb_cb_destroy_args *args)
17051 {
17052 switch (args->event) {
17053 case NB_EV_VALIDATE:
17054 case NB_EV_PREPARE:
17055 case NB_EV_ABORT:
17056 case NB_EV_APPLY:
17057 /* TODO: implement me. */
17058 break;
17059 }
17060
17061 return NB_OK;
17062 }
17063
17064 /*
17065 * XPath:
17066 * /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
17067 */
17068 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_as_path_unchanged_modify(
17069 struct nb_cb_modify_args *args)
17070 {
17071 switch (args->event) {
17072 case NB_EV_VALIDATE:
17073 case NB_EV_PREPARE:
17074 case NB_EV_ABORT:
17075 return NB_OK;
17076 case NB_EV_APPLY:
17077 return bgp_neighbor_afi_safi_flag_modify(
17078 args, PEER_FLAG_AS_PATH_UNCHANGED,
17079 yang_dnode_get_bool(args->dnode, NULL));
17080
17081 break;
17082 }
17083
17084 return NB_OK;
17085 }
17086
17087 /*
17088 * XPath:
17089 * /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
17090 */
17091 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_next_hop_unchanged_modify(
17092 struct nb_cb_modify_args *args)
17093 {
17094 switch (args->event) {
17095 case NB_EV_VALIDATE:
17096 case NB_EV_PREPARE:
17097 case NB_EV_ABORT:
17098 return NB_OK;
17099 case NB_EV_APPLY:
17100 return bgp_neighbor_afi_safi_flag_modify(
17101 args, PEER_FLAG_NEXTHOP_UNCHANGED,
17102 yang_dnode_get_bool(args->dnode, NULL));
17103
17104 break;
17105 }
17106
17107 return NB_OK;
17108 }
17109
17110 /*
17111 * XPath:
17112 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/attr-unchanged/med-unchanged
17113 */
17114 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_med_unchanged_modify(
17115 struct nb_cb_modify_args *args)
17116 {
17117 switch (args->event) {
17118 case NB_EV_VALIDATE:
17119 case NB_EV_PREPARE:
17120 case NB_EV_ABORT:
17121 return NB_OK;
17122 case NB_EV_APPLY:
17123 return bgp_neighbor_afi_safi_flag_modify(
17124 args, PEER_FLAG_MED_UNCHANGED,
17125 yang_dnode_get_bool(args->dnode, NULL));
17126
17127 break;
17128 }
17129
17130 return NB_OK;
17131 }
17132
17133 /*
17134 * XPath:
17135 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-send
17136 */
17137 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_modify(
17138 struct nb_cb_modify_args *args)
17139 {
17140 switch (args->event) {
17141 case NB_EV_VALIDATE:
17142 case NB_EV_PREPARE:
17143 case NB_EV_ABORT:
17144 case NB_EV_APPLY:
17145 /* TODO: implement me. */
17146 break;
17147 }
17148
17149 return NB_OK;
17150 }
17151
17152 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_destroy(
17153 struct nb_cb_destroy_args *args)
17154 {
17155 switch (args->event) {
17156 case NB_EV_VALIDATE:
17157 case NB_EV_PREPARE:
17158 case NB_EV_ABORT:
17159 case NB_EV_APPLY:
17160 /* TODO: implement me. */
17161 break;
17162 }
17163
17164 return NB_OK;
17165 }
17166
17167 /*
17168 * XPath:
17169 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-receive
17170 */
17171 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_modify(
17172 struct nb_cb_modify_args *args)
17173 {
17174 switch (args->event) {
17175 case NB_EV_VALIDATE:
17176 case NB_EV_PREPARE:
17177 case NB_EV_ABORT:
17178 case NB_EV_APPLY:
17179 /* TODO: implement me. */
17180 break;
17181 }
17182
17183 return NB_OK;
17184 }
17185
17186 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_destroy(
17187 struct nb_cb_destroy_args *args)
17188 {
17189 switch (args->event) {
17190 case NB_EV_VALIDATE:
17191 case NB_EV_PREPARE:
17192 case NB_EV_ABORT:
17193 case NB_EV_APPLY:
17194 /* TODO: implement me. */
17195 break;
17196 }
17197
17198 return NB_OK;
17199 }
17200
17201 /*
17202 * XPath:
17203 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/orf-capability/orf-both
17204 */
17205 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_modify(
17206 struct nb_cb_modify_args *args)
17207 {
17208 switch (args->event) {
17209 case NB_EV_VALIDATE:
17210 case NB_EV_PREPARE:
17211 case NB_EV_ABORT:
17212 case NB_EV_APPLY:
17213 /* TODO: implement me. */
17214 break;
17215 }
17216
17217 return NB_OK;
17218 }
17219
17220 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_destroy(
17221 struct nb_cb_destroy_args *args)
17222 {
17223 switch (args->event) {
17224 case NB_EV_VALIDATE:
17225 case NB_EV_PREPARE:
17226 case NB_EV_ABORT:
17227 case NB_EV_APPLY:
17228 /* TODO: implement me. */
17229 break;
17230 }
17231
17232 return NB_OK;
17233 }
17234
17235 /*
17236 * XPath:
17237 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/prefix-limit/direction-list
17238 */
17239 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_create(
17240 struct nb_cb_create_args *args)
17241 {
17242 switch (args->event) {
17243 case NB_EV_VALIDATE:
17244 case NB_EV_PREPARE:
17245 case NB_EV_ABORT:
17246 case NB_EV_APPLY:
17247 /* TODO: implement me. */
17248 break;
17249 }
17250
17251 return NB_OK;
17252 }
17253
17254 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_destroy(
17255 struct nb_cb_destroy_args *args)
17256 {
17257 switch (args->event) {
17258 case NB_EV_VALIDATE:
17259 case NB_EV_PREPARE:
17260 case NB_EV_ABORT:
17261 return NB_OK;
17262 case NB_EV_APPLY:
17263 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
17264 }
17265
17266 return NB_OK;
17267 }
17268
17269 /*
17270 * XPath:
17271 * /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
17272 */
17273 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_max_prefixes_modify(
17274 struct nb_cb_modify_args *args)
17275 {
17276 switch (args->event) {
17277 case NB_EV_VALIDATE:
17278 case NB_EV_PREPARE:
17279 case NB_EV_ABORT:
17280 case NB_EV_APPLY:
17281 /* TODO: implement me. */
17282 break;
17283 }
17284
17285 return NB_OK;
17286 }
17287
17288 /*
17289 * XPath:
17290 * /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
17291 */
17292 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_force_check_modify(
17293 struct nb_cb_modify_args *args)
17294 {
17295 switch (args->event) {
17296 case NB_EV_VALIDATE:
17297 case NB_EV_PREPARE:
17298 case NB_EV_ABORT:
17299 case NB_EV_APPLY:
17300 /* TODO: implement me. */
17301 break;
17302 }
17303
17304 return NB_OK;
17305 }
17306
17307 /*
17308 * XPath:
17309 * /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
17310 */
17311 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_modify(
17312 struct nb_cb_modify_args *args)
17313 {
17314 switch (args->event) {
17315 case NB_EV_VALIDATE:
17316 case NB_EV_PREPARE:
17317 case NB_EV_ABORT:
17318 case NB_EV_APPLY:
17319 /* TODO: implement me. */
17320 break;
17321 }
17322
17323 return NB_OK;
17324 }
17325
17326 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_destroy(
17327 struct nb_cb_destroy_args *args)
17328 {
17329 switch (args->event) {
17330 case NB_EV_VALIDATE:
17331 case NB_EV_PREPARE:
17332 case NB_EV_ABORT:
17333 case NB_EV_APPLY:
17334 /* TODO: implement me. */
17335 break;
17336 }
17337
17338 return NB_OK;
17339 }
17340
17341 /*
17342 * XPath:
17343 * /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
17344 */
17345 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_modify(
17346 struct nb_cb_modify_args *args)
17347 {
17348 switch (args->event) {
17349 case NB_EV_VALIDATE:
17350 case NB_EV_PREPARE:
17351 case NB_EV_ABORT:
17352 case NB_EV_APPLY:
17353 /* TODO: implement me. */
17354 break;
17355 }
17356
17357 return NB_OK;
17358 }
17359
17360 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
17361 struct nb_cb_destroy_args *args)
17362 {
17363 switch (args->event) {
17364 case NB_EV_VALIDATE:
17365 case NB_EV_PREPARE:
17366 case NB_EV_ABORT:
17367 case NB_EV_APPLY:
17368 /* TODO: implement me. */
17369 break;
17370 }
17371
17372 return NB_OK;
17373 }
17374
17375 /*
17376 * XPath:
17377 * /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
17378 */
17379 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
17380 struct nb_cb_modify_args *args)
17381 {
17382 switch (args->event) {
17383 case NB_EV_VALIDATE:
17384 case NB_EV_PREPARE:
17385 case NB_EV_ABORT:
17386 case NB_EV_APPLY:
17387 /* TODO: implement me. */
17388 break;
17389 }
17390
17391 return NB_OK;
17392 }
17393
17394 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
17395 struct nb_cb_destroy_args *args)
17396 {
17397 switch (args->event) {
17398 case NB_EV_VALIDATE:
17399 case NB_EV_PREPARE:
17400 case NB_EV_ABORT:
17401 case NB_EV_APPLY:
17402 /* TODO: implement me. */
17403 break;
17404 }
17405
17406 return NB_OK;
17407 }
17408
17409 /*
17410 * XPath:
17411 * /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
17412 */
17413 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
17414 struct nb_cb_modify_args *args)
17415 {
17416 switch (args->event) {
17417 case NB_EV_VALIDATE:
17418 case NB_EV_PREPARE:
17419 case NB_EV_ABORT:
17420 case NB_EV_APPLY:
17421 /* TODO: implement me. */
17422 break;
17423 }
17424
17425 return NB_OK;
17426 }
17427
17428 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
17429 struct nb_cb_destroy_args *args)
17430 {
17431 switch (args->event) {
17432 case NB_EV_VALIDATE:
17433 case NB_EV_PREPARE:
17434 case NB_EV_ABORT:
17435 case NB_EV_APPLY:
17436 /* TODO: implement me. */
17437 break;
17438 }
17439
17440 return NB_OK;
17441 }
17442
17443 /*
17444 * XPath:
17445 * /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
17446 */
17447 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
17448 struct nb_cb_modify_args *args)
17449 {
17450 switch (args->event) {
17451 case NB_EV_VALIDATE:
17452 case NB_EV_PREPARE:
17453 case NB_EV_ABORT:
17454 case NB_EV_APPLY:
17455 /* TODO: implement me. */
17456 break;
17457 }
17458
17459 return NB_OK;
17460 }
17461
17462 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
17463 struct nb_cb_destroy_args *args)
17464 {
17465 switch (args->event) {
17466 case NB_EV_VALIDATE:
17467 case NB_EV_PREPARE:
17468 case NB_EV_ABORT:
17469 case NB_EV_APPLY:
17470 /* TODO: implement me. */
17471 break;
17472 }
17473
17474 return NB_OK;
17475 }
17476
17477 /*
17478 * XPath:
17479 * /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
17480 */
17481 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
17482 struct nb_cb_modify_args *args)
17483 {
17484 switch (args->event) {
17485 case NB_EV_VALIDATE:
17486 case NB_EV_PREPARE:
17487 case NB_EV_ABORT:
17488 case NB_EV_APPLY:
17489 /* TODO: implement me. */
17490 break;
17491 }
17492
17493 return NB_OK;
17494 }
17495
17496 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
17497 struct nb_cb_destroy_args *args)
17498 {
17499 switch (args->event) {
17500 case NB_EV_VALIDATE:
17501 case NB_EV_PREPARE:
17502 case NB_EV_ABORT:
17503 case NB_EV_APPLY:
17504 /* TODO: implement me. */
17505 break;
17506 }
17507
17508 return NB_OK;
17509 }
17510
17511 /*
17512 * XPath:
17513 * /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
17514 */
17515 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
17516 struct nb_cb_modify_args *args)
17517 {
17518 switch (args->event) {
17519 case NB_EV_VALIDATE:
17520 case NB_EV_PREPARE:
17521 case NB_EV_ABORT:
17522 case NB_EV_APPLY:
17523 /* TODO: implement me. */
17524 break;
17525 }
17526
17527 return NB_OK;
17528 }
17529
17530 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
17531 struct nb_cb_destroy_args *args)
17532 {
17533 switch (args->event) {
17534 case NB_EV_VALIDATE:
17535 case NB_EV_PREPARE:
17536 case NB_EV_ABORT:
17537 case NB_EV_APPLY:
17538 /* TODO: implement me. */
17539 break;
17540 }
17541
17542 return NB_OK;
17543 }
17544
17545 /*
17546 * XPath:
17547 * /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
17548 */
17549 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_modify(
17550 struct nb_cb_modify_args *args)
17551 {
17552 switch (args->event) {
17553 case NB_EV_VALIDATE:
17554 case NB_EV_PREPARE:
17555 case NB_EV_ABORT:
17556 return NB_OK;
17557 case NB_EV_APPLY:
17558 return bgp_neighbor_afi_safi_flag_modify(
17559 args, PEER_FLAG_NEXTHOP_SELF,
17560 yang_dnode_get_bool(args->dnode, NULL));
17561
17562 break;
17563 }
17564
17565 return NB_OK;
17566 }
17567
17568 /*
17569 * XPath:
17570 * /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
17571 */
17572 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_force_modify(
17573 struct nb_cb_modify_args *args)
17574 {
17575 switch (args->event) {
17576 case NB_EV_VALIDATE:
17577 case NB_EV_PREPARE:
17578 case NB_EV_ABORT:
17579 return NB_OK;
17580 case NB_EV_APPLY:
17581 return bgp_neighbor_afi_safi_flag_modify(
17582 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
17583 yang_dnode_get_bool(args->dnode, NULL));
17584
17585 break;
17586 }
17587
17588 return NB_OK;
17589 }
17590
17591 /*
17592 * XPath:
17593 * /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
17594 */
17595 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_modify(
17596 struct nb_cb_modify_args *args)
17597 {
17598 switch (args->event) {
17599 case NB_EV_VALIDATE:
17600 case NB_EV_PREPARE:
17601 case NB_EV_ABORT:
17602 return NB_OK;
17603 case NB_EV_APPLY:
17604 return bgp_neighbor_afi_safi_flag_modify(
17605 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
17606 yang_dnode_get_bool(args->dnode, NULL));
17607
17608 break;
17609 }
17610
17611 return NB_OK;
17612 }
17613
17614 /*
17615 * XPath:
17616 * /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
17617 */
17618 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_replace_modify(
17619 struct nb_cb_modify_args *args)
17620 {
17621 switch (args->event) {
17622 case NB_EV_VALIDATE:
17623 case NB_EV_PREPARE:
17624 case NB_EV_ABORT:
17625 return NB_OK;
17626 case NB_EV_APPLY:
17627 return bgp_neighbor_afi_safi_flag_modify(
17628 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
17629 yang_dnode_get_bool(args->dnode, NULL));
17630
17631 break;
17632 }
17633
17634 return NB_OK;
17635 }
17636
17637 /*
17638 * XPath:
17639 * /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
17640 */
17641 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_modify(
17642 struct nb_cb_modify_args *args)
17643 {
17644 switch (args->event) {
17645 case NB_EV_VALIDATE:
17646 case NB_EV_PREPARE:
17647 case NB_EV_ABORT:
17648 return NB_OK;
17649 case NB_EV_APPLY:
17650 return bgp_neighbor_afi_safi_flag_modify(
17651 args, PEER_FLAG_REMOVE_PRIVATE_AS,
17652 yang_dnode_get_bool(args->dnode, NULL));
17653
17654 break;
17655 }
17656
17657 return NB_OK;
17658 }
17659
17660 /*
17661 * XPath:
17662 * /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
17663 */
17664 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_replace_modify(
17665 struct nb_cb_modify_args *args)
17666 {
17667 switch (args->event) {
17668 case NB_EV_VALIDATE:
17669 case NB_EV_PREPARE:
17670 case NB_EV_ABORT:
17671 return NB_OK;
17672 case NB_EV_APPLY:
17673 return bgp_neighbor_afi_safi_flag_modify(
17674 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
17675 yang_dnode_get_bool(args->dnode, NULL));
17676
17677 break;
17678 }
17679
17680 return NB_OK;
17681 }
17682
17683 /*
17684 * XPath:
17685 * /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
17686 */
17687 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_route_reflector_route_reflector_client_modify(
17688 struct nb_cb_modify_args *args)
17689 {
17690 switch (args->event) {
17691 case NB_EV_VALIDATE:
17692 case NB_EV_PREPARE:
17693 case NB_EV_ABORT:
17694 return NB_OK;
17695 case NB_EV_APPLY:
17696 return bgp_neighbor_afi_safi_flag_modify(
17697 args, PEER_FLAG_REFLECTOR_CLIENT,
17698 yang_dnode_get_bool(args->dnode, NULL));
17699
17700 break;
17701 }
17702
17703 return NB_OK;
17704 }
17705
17706 /*
17707 * XPath:
17708 * /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
17709 */
17710 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_route_server_route_server_client_modify(
17711 struct nb_cb_modify_args *args)
17712 {
17713 switch (args->event) {
17714 case NB_EV_VALIDATE:
17715 case NB_EV_PREPARE:
17716 case NB_EV_ABORT:
17717 return NB_OK;
17718 case NB_EV_APPLY:
17719 return bgp_neighbor_afi_safi_flag_modify(
17720 args, PEER_FLAG_RSERVER_CLIENT,
17721 yang_dnode_get_bool(args->dnode, NULL));
17722
17723 break;
17724 }
17725
17726 return NB_OK;
17727 }
17728
17729 /*
17730 * XPath:
17731 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/send-community/send-community
17732 */
17733 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_community_modify(
17734 struct nb_cb_modify_args *args)
17735 {
17736 switch (args->event) {
17737 case NB_EV_VALIDATE:
17738 case NB_EV_PREPARE:
17739 case NB_EV_ABORT:
17740 return NB_OK;
17741 case NB_EV_APPLY:
17742 return bgp_neighbor_afi_safi_flag_modify(
17743 args, PEER_FLAG_SEND_COMMUNITY,
17744 yang_dnode_get_bool(args->dnode, NULL));
17745
17746 break;
17747 }
17748
17749 return NB_OK;
17750 }
17751
17752 /*
17753 * XPath:
17754 * /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
17755 */
17756 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_ext_community_modify(
17757 struct nb_cb_modify_args *args)
17758 {
17759 switch (args->event) {
17760 case NB_EV_VALIDATE:
17761 case NB_EV_PREPARE:
17762 case NB_EV_ABORT:
17763 return NB_OK;
17764 case NB_EV_APPLY:
17765 return bgp_neighbor_afi_safi_flag_modify(
17766 args, PEER_FLAG_SEND_EXT_COMMUNITY,
17767 yang_dnode_get_bool(args->dnode, NULL));
17768
17769 break;
17770 }
17771
17772 return NB_OK;
17773 }
17774
17775 /*
17776 * XPath:
17777 * /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
17778 */
17779 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_large_community_modify(
17780 struct nb_cb_modify_args *args)
17781 {
17782 switch (args->event) {
17783 case NB_EV_VALIDATE:
17784 case NB_EV_PREPARE:
17785 case NB_EV_ABORT:
17786 return NB_OK;
17787 case NB_EV_APPLY:
17788 return bgp_neighbor_afi_safi_flag_modify(
17789 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
17790 yang_dnode_get_bool(args->dnode, NULL));
17791
17792 break;
17793 }
17794
17795 return NB_OK;
17796 }
17797
17798 /*
17799 * XPath:
17800 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/soft-reconfiguration
17801 */
17802 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_soft_reconfiguration_modify(
17803 struct nb_cb_modify_args *args)
17804 {
17805 switch (args->event) {
17806 case NB_EV_VALIDATE:
17807 case NB_EV_PREPARE:
17808 case NB_EV_ABORT:
17809 return NB_OK;
17810 case NB_EV_APPLY:
17811 return bgp_neighbor_afi_safi_flag_modify(
17812 args, PEER_FLAG_SOFT_RECONFIG,
17813 yang_dnode_get_bool(args->dnode, NULL));
17814
17815 break;
17816 }
17817
17818 return NB_OK;
17819 }
17820
17821 /*
17822 * XPath:
17823 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/weight/weight-attribute
17824 */
17825 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_modify(
17826 struct nb_cb_modify_args *args)
17827 {
17828 switch (args->event) {
17829 case NB_EV_VALIDATE:
17830 case NB_EV_PREPARE:
17831 case NB_EV_ABORT:
17832 return NB_OK;
17833 case NB_EV_APPLY:
17834 return bgp_neighbor_afi_safi_weight_modify(args);
17835
17836 break;
17837 }
17838
17839 return NB_OK;
17840 }
17841
17842 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_destroy(
17843 struct nb_cb_destroy_args *args)
17844 {
17845 switch (args->event) {
17846 case NB_EV_VALIDATE:
17847 case NB_EV_PREPARE:
17848 case NB_EV_ABORT:
17849 return NB_OK;
17850 case NB_EV_APPLY:
17851 return bgp_neighbor_afi_safi_weight_destroy(args);
17852
17853 break;
17854 }
17855
17856 return NB_OK;
17857 }
17858
17859 /*
17860 * XPath:
17861 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/rmap-import
17862 */
17863 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_modify(
17864 struct nb_cb_modify_args *args)
17865 {
17866 switch (args->event) {
17867 case NB_EV_VALIDATE:
17868 case NB_EV_PREPARE:
17869 case NB_EV_ABORT:
17870 break;
17871 case NB_EV_APPLY:
17872 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
17873 }
17874
17875 return NB_OK;
17876 }
17877
17878 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_destroy(
17879 struct nb_cb_destroy_args *args)
17880 {
17881 switch (args->event) {
17882 case NB_EV_VALIDATE:
17883 case NB_EV_PREPARE:
17884 case NB_EV_ABORT:
17885 break;
17886 case NB_EV_APPLY:
17887 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
17888 }
17889
17890 return NB_OK;
17891 }
17892
17893 /*
17894 * XPath:
17895 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/rmap-export
17896 */
17897 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_modify(
17898 struct nb_cb_modify_args *args)
17899 {
17900 switch (args->event) {
17901 case NB_EV_VALIDATE:
17902 case NB_EV_PREPARE:
17903 case NB_EV_ABORT:
17904 break;
17905 case NB_EV_APPLY:
17906 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
17907 }
17908
17909 return NB_OK;
17910 }
17911
17912 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_destroy(
17913 struct nb_cb_destroy_args *args)
17914 {
17915 switch (args->event) {
17916 case NB_EV_VALIDATE:
17917 case NB_EV_PREPARE:
17918 case NB_EV_ABORT:
17919 break;
17920 case NB_EV_APPLY:
17921 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
17922 }
17923
17924 return NB_OK;
17925 }
17926
17927 /*
17928 * XPath:
17929 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/plist-import
17930 */
17931 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_modify(
17932 struct nb_cb_modify_args *args)
17933 {
17934 switch (args->event) {
17935 case NB_EV_VALIDATE:
17936 case NB_EV_PREPARE:
17937 case NB_EV_ABORT:
17938 break;
17939 case NB_EV_APPLY:
17940 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
17941 }
17942
17943 return NB_OK;
17944 }
17945
17946 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_destroy(
17947 struct nb_cb_destroy_args *args)
17948 {
17949 switch (args->event) {
17950 case NB_EV_VALIDATE:
17951 case NB_EV_PREPARE:
17952 case NB_EV_ABORT:
17953 break;
17954 case NB_EV_APPLY:
17955 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
17956 }
17957
17958 return NB_OK;
17959 }
17960
17961 /*
17962 * XPath:
17963 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-multicast/filter-config/plist-export
17964 */
17965 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_modify(
17966 struct nb_cb_modify_args *args)
17967 {
17968 switch (args->event) {
17969 case NB_EV_VALIDATE:
17970 case NB_EV_PREPARE:
17971 case NB_EV_ABORT:
17972 break;
17973 case NB_EV_APPLY:
17974 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
17975 }
17976
17977 return NB_OK;
17978 }
17979
17980 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_destroy(
17981 struct nb_cb_destroy_args *args)
17982 {
17983 switch (args->event) {
17984 case NB_EV_VALIDATE:
17985 case NB_EV_PREPARE:
17986 case NB_EV_ABORT:
17987 break;
17988 case NB_EV_APPLY:
17989 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
17990 }
17991
17992 return NB_OK;
17993 }
17994
17995 /*
17996 * XPath:
17997 * /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
17998 */
17999 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_modify(
18000 struct nb_cb_modify_args *args)
18001 {
18002 switch (args->event) {
18003 case NB_EV_VALIDATE:
18004 case NB_EV_PREPARE:
18005 case NB_EV_ABORT:
18006 case NB_EV_APPLY:
18007 /* TODO: implement me. */
18008 break;
18009 }
18010
18011 return NB_OK;
18012 }
18013
18014 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_destroy(
18015 struct nb_cb_destroy_args *args)
18016 {
18017 switch (args->event) {
18018 case NB_EV_VALIDATE:
18019 case NB_EV_PREPARE:
18020 case NB_EV_ABORT:
18021 case NB_EV_APPLY:
18022 /* TODO: implement me. */
18023 break;
18024 }
18025
18026 return NB_OK;
18027 }
18028
18029 /*
18030 * XPath:
18031 * /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
18032 */
18033 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_modify(
18034 struct nb_cb_modify_args *args)
18035 {
18036 switch (args->event) {
18037 case NB_EV_VALIDATE:
18038 case NB_EV_PREPARE:
18039 case NB_EV_ABORT:
18040 case NB_EV_APPLY:
18041 /* TODO: implement me. */
18042 break;
18043 }
18044
18045 return NB_OK;
18046 }
18047
18048 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_destroy(
18049 struct nb_cb_destroy_args *args)
18050 {
18051 switch (args->event) {
18052 case NB_EV_VALIDATE:
18053 case NB_EV_PREPARE:
18054 case NB_EV_ABORT:
18055 case NB_EV_APPLY:
18056 /* TODO: implement me. */
18057 break;
18058 }
18059
18060 return NB_OK;
18061 }
18062
18063 /*
18064 * XPath:
18065 * /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
18066 */
18067 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_modify(
18068 struct nb_cb_modify_args *args)
18069 {
18070 switch (args->event) {
18071 case NB_EV_VALIDATE:
18072 case NB_EV_PREPARE:
18073 case NB_EV_ABORT:
18074 case NB_EV_APPLY:
18075 /* TODO: implement me. */
18076 break;
18077 }
18078
18079 return NB_OK;
18080 }
18081
18082 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_destroy(
18083 struct nb_cb_destroy_args *args)
18084 {
18085 switch (args->event) {
18086 case NB_EV_VALIDATE:
18087 case NB_EV_PREPARE:
18088 case NB_EV_ABORT:
18089 case NB_EV_APPLY:
18090 /* TODO: implement me. */
18091 break;
18092 }
18093
18094 return NB_OK;
18095 }
18096
18097 /*
18098 * XPath:
18099 * /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
18100 */
18101 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_modify(
18102 struct nb_cb_modify_args *args)
18103 {
18104 switch (args->event) {
18105 case NB_EV_VALIDATE:
18106 case NB_EV_PREPARE:
18107 case NB_EV_ABORT:
18108 case NB_EV_APPLY:
18109 /* TODO: implement me. */
18110 break;
18111 }
18112
18113 return NB_OK;
18114 }
18115
18116 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_destroy(
18117 struct nb_cb_destroy_args *args)
18118 {
18119 switch (args->event) {
18120 case NB_EV_VALIDATE:
18121 case NB_EV_PREPARE:
18122 case NB_EV_ABORT:
18123 case NB_EV_APPLY:
18124 /* TODO: implement me. */
18125 break;
18126 }
18127
18128 return NB_OK;
18129 }
18130
18131 /*
18132 * XPath:
18133 * /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
18134 */
18135 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_modify(
18136 struct nb_cb_modify_args *args)
18137 {
18138 switch (args->event) {
18139 case NB_EV_VALIDATE:
18140 case NB_EV_PREPARE:
18141 case NB_EV_ABORT:
18142 case NB_EV_APPLY:
18143 /* TODO: implement me. */
18144 break;
18145 }
18146
18147 return NB_OK;
18148 }
18149
18150 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_destroy(
18151 struct nb_cb_destroy_args *args)
18152 {
18153 switch (args->event) {
18154 case NB_EV_VALIDATE:
18155 case NB_EV_PREPARE:
18156 case NB_EV_ABORT:
18157 case NB_EV_APPLY:
18158 /* TODO: implement me. */
18159 break;
18160 }
18161
18162 return NB_OK;
18163 }
18164
18165 /*
18166 * XPath:
18167 * /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
18168 */
18169 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_modify(
18170 struct nb_cb_modify_args *args)
18171 {
18172 switch (args->event) {
18173 case NB_EV_VALIDATE:
18174 case NB_EV_PREPARE:
18175 case NB_EV_ABORT:
18176 case NB_EV_APPLY:
18177 /* TODO: implement me. */
18178 break;
18179 }
18180
18181 return NB_OK;
18182 }
18183
18184 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_destroy(
18185 struct nb_cb_destroy_args *args)
18186 {
18187 switch (args->event) {
18188 case NB_EV_VALIDATE:
18189 case NB_EV_PREPARE:
18190 case NB_EV_ABORT:
18191 case NB_EV_APPLY:
18192 /* TODO: implement me. */
18193 break;
18194 }
18195
18196 return NB_OK;
18197 }
18198
18199 /*
18200 * XPath:
18201 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/add-paths/path-type
18202 */
18203 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_add_paths_path_type_modify(
18204 struct nb_cb_modify_args *args)
18205 {
18206 switch (args->event) {
18207 case NB_EV_VALIDATE:
18208 case NB_EV_PREPARE:
18209 case NB_EV_ABORT:
18210 case NB_EV_APPLY:
18211 /* TODO: implement me. */
18212 break;
18213 }
18214
18215 return NB_OK;
18216 }
18217
18218 /*
18219 * XPath:
18220 * /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
18221 */
18222 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_modify(
18223 struct nb_cb_modify_args *args)
18224 {
18225 switch (args->event) {
18226 case NB_EV_VALIDATE:
18227 case NB_EV_PREPARE:
18228 case NB_EV_ABORT:
18229 case NB_EV_APPLY:
18230 /* TODO: implement me. */
18231 break;
18232 }
18233
18234 return NB_OK;
18235 }
18236
18237 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_destroy(
18238 struct nb_cb_destroy_args *args)
18239 {
18240 switch (args->event) {
18241 case NB_EV_VALIDATE:
18242 case NB_EV_PREPARE:
18243 case NB_EV_ABORT:
18244 case NB_EV_APPLY:
18245 /* TODO: implement me. */
18246 break;
18247 }
18248
18249 return NB_OK;
18250 }
18251
18252 /*
18253 * XPath:
18254 * /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
18255 */
18256 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_modify(
18257 struct nb_cb_modify_args *args)
18258 {
18259 switch (args->event) {
18260 case NB_EV_VALIDATE:
18261 case NB_EV_PREPARE:
18262 case NB_EV_ABORT:
18263 case NB_EV_APPLY:
18264 /* TODO: implement me. */
18265 break;
18266 }
18267
18268 return NB_OK;
18269 }
18270
18271 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_destroy(
18272 struct nb_cb_destroy_args *args)
18273 {
18274 switch (args->event) {
18275 case NB_EV_VALIDATE:
18276 case NB_EV_PREPARE:
18277 case NB_EV_ABORT:
18278 case NB_EV_APPLY:
18279 /* TODO: implement me. */
18280 break;
18281 }
18282
18283 return NB_OK;
18284 }
18285
18286 /*
18287 * XPath:
18288 * /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
18289 */
18290 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_replace_peer_as_modify(
18291 struct nb_cb_modify_args *args)
18292 {
18293 switch (args->event) {
18294 case NB_EV_VALIDATE:
18295 case NB_EV_PREPARE:
18296 case NB_EV_ABORT:
18297 return NB_OK;
18298 case NB_EV_APPLY:
18299 return bgp_neighbor_afi_safi_flag_modify(
18300 args, PEER_FLAG_AS_OVERRIDE,
18301 yang_dnode_get_bool(args->dnode, NULL));
18302
18303 break;
18304 }
18305
18306 return NB_OK;
18307 }
18308
18309 /*
18310 * XPath:
18311 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/default-originate/originate
18312 */
18313 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_originate_modify(
18314 struct nb_cb_modify_args *args)
18315 {
18316 switch (args->event) {
18317 case NB_EV_VALIDATE:
18318 case NB_EV_PREPARE:
18319 case NB_EV_ABORT:
18320 case NB_EV_APPLY:
18321 /* TODO: implement me. */
18322 break;
18323 }
18324
18325 return NB_OK;
18326 }
18327
18328 /*
18329 * XPath:
18330 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/default-originate/route-map
18331 */
18332 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_modify(
18333 struct nb_cb_modify_args *args)
18334 {
18335 switch (args->event) {
18336 case NB_EV_VALIDATE:
18337 case NB_EV_PREPARE:
18338 case NB_EV_ABORT:
18339 case NB_EV_APPLY:
18340 /* TODO: implement me. */
18341 break;
18342 }
18343
18344 return NB_OK;
18345 }
18346
18347 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_destroy(
18348 struct nb_cb_destroy_args *args)
18349 {
18350 switch (args->event) {
18351 case NB_EV_VALIDATE:
18352 case NB_EV_PREPARE:
18353 case NB_EV_ABORT:
18354 case NB_EV_APPLY:
18355 /* TODO: implement me. */
18356 break;
18357 }
18358
18359 return NB_OK;
18360 }
18361
18362 /*
18363 * XPath:
18364 * /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
18365 */
18366 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_as_path_unchanged_modify(
18367 struct nb_cb_modify_args *args)
18368 {
18369 switch (args->event) {
18370 case NB_EV_VALIDATE:
18371 case NB_EV_PREPARE:
18372 case NB_EV_ABORT:
18373 return NB_OK;
18374 case NB_EV_APPLY:
18375 return bgp_neighbor_afi_safi_flag_modify(
18376 args, PEER_FLAG_AS_PATH_UNCHANGED,
18377 yang_dnode_get_bool(args->dnode, NULL));
18378
18379 break;
18380 }
18381
18382 return NB_OK;
18383 }
18384
18385 /*
18386 * XPath:
18387 * /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
18388 */
18389 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_next_hop_unchanged_modify(
18390 struct nb_cb_modify_args *args)
18391 {
18392 switch (args->event) {
18393 case NB_EV_VALIDATE:
18394 case NB_EV_PREPARE:
18395 case NB_EV_ABORT:
18396 return NB_OK;
18397 case NB_EV_APPLY:
18398 return bgp_neighbor_afi_safi_flag_modify(
18399 args, PEER_FLAG_NEXTHOP_UNCHANGED,
18400 yang_dnode_get_bool(args->dnode, NULL));
18401
18402 break;
18403 }
18404
18405 return NB_OK;
18406 }
18407
18408 /*
18409 * XPath:
18410 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/attr-unchanged/med-unchanged
18411 */
18412 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_med_unchanged_modify(
18413 struct nb_cb_modify_args *args)
18414 {
18415 switch (args->event) {
18416 case NB_EV_VALIDATE:
18417 case NB_EV_PREPARE:
18418 case NB_EV_ABORT:
18419 return NB_OK;
18420 case NB_EV_APPLY:
18421 return bgp_neighbor_afi_safi_flag_modify(
18422 args, PEER_FLAG_MED_UNCHANGED,
18423 yang_dnode_get_bool(args->dnode, NULL));
18424
18425 break;
18426 }
18427
18428 return NB_OK;
18429 }
18430
18431 /*
18432 * XPath:
18433 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-send
18434 */
18435 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_modify(
18436 struct nb_cb_modify_args *args)
18437 {
18438 switch (args->event) {
18439 case NB_EV_VALIDATE:
18440 case NB_EV_PREPARE:
18441 case NB_EV_ABORT:
18442 case NB_EV_APPLY:
18443 /* TODO: implement me. */
18444 break;
18445 }
18446
18447 return NB_OK;
18448 }
18449
18450 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_destroy(
18451 struct nb_cb_destroy_args *args)
18452 {
18453 switch (args->event) {
18454 case NB_EV_VALIDATE:
18455 case NB_EV_PREPARE:
18456 case NB_EV_ABORT:
18457 case NB_EV_APPLY:
18458 /* TODO: implement me. */
18459 break;
18460 }
18461
18462 return NB_OK;
18463 }
18464
18465 /*
18466 * XPath:
18467 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-receive
18468 */
18469 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_modify(
18470 struct nb_cb_modify_args *args)
18471 {
18472 switch (args->event) {
18473 case NB_EV_VALIDATE:
18474 case NB_EV_PREPARE:
18475 case NB_EV_ABORT:
18476 case NB_EV_APPLY:
18477 /* TODO: implement me. */
18478 break;
18479 }
18480
18481 return NB_OK;
18482 }
18483
18484 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_destroy(
18485 struct nb_cb_destroy_args *args)
18486 {
18487 switch (args->event) {
18488 case NB_EV_VALIDATE:
18489 case NB_EV_PREPARE:
18490 case NB_EV_ABORT:
18491 case NB_EV_APPLY:
18492 /* TODO: implement me. */
18493 break;
18494 }
18495
18496 return NB_OK;
18497 }
18498
18499 /*
18500 * XPath:
18501 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/orf-capability/orf-both
18502 */
18503 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_modify(
18504 struct nb_cb_modify_args *args)
18505 {
18506 switch (args->event) {
18507 case NB_EV_VALIDATE:
18508 case NB_EV_PREPARE:
18509 case NB_EV_ABORT:
18510 case NB_EV_APPLY:
18511 /* TODO: implement me. */
18512 break;
18513 }
18514
18515 return NB_OK;
18516 }
18517
18518 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_destroy(
18519 struct nb_cb_destroy_args *args)
18520 {
18521 switch (args->event) {
18522 case NB_EV_VALIDATE:
18523 case NB_EV_PREPARE:
18524 case NB_EV_ABORT:
18525 case NB_EV_APPLY:
18526 /* TODO: implement me. */
18527 break;
18528 }
18529
18530 return NB_OK;
18531 }
18532
18533 /*
18534 * XPath:
18535 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/prefix-limit/direction-list
18536 */
18537 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_create(
18538 struct nb_cb_create_args *args)
18539 {
18540 switch (args->event) {
18541 case NB_EV_VALIDATE:
18542 case NB_EV_PREPARE:
18543 case NB_EV_ABORT:
18544 case NB_EV_APPLY:
18545 /* TODO: implement me. */
18546 break;
18547 }
18548
18549 return NB_OK;
18550 }
18551
18552 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_destroy(
18553 struct nb_cb_destroy_args *args)
18554 {
18555 switch (args->event) {
18556 case NB_EV_VALIDATE:
18557 case NB_EV_PREPARE:
18558 case NB_EV_ABORT:
18559 return NB_OK;
18560 case NB_EV_APPLY:
18561 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
18562 }
18563
18564 return NB_OK;
18565 }
18566
18567 /*
18568 * XPath:
18569 * /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
18570 */
18571 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_max_prefixes_modify(
18572 struct nb_cb_modify_args *args)
18573 {
18574 switch (args->event) {
18575 case NB_EV_VALIDATE:
18576 case NB_EV_PREPARE:
18577 case NB_EV_ABORT:
18578 case NB_EV_APPLY:
18579 /* TODO: implement me. */
18580 break;
18581 }
18582
18583 return NB_OK;
18584 }
18585
18586 /*
18587 * XPath:
18588 * /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
18589 */
18590 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_force_check_modify(
18591 struct nb_cb_modify_args *args)
18592 {
18593 switch (args->event) {
18594 case NB_EV_VALIDATE:
18595 case NB_EV_PREPARE:
18596 case NB_EV_ABORT:
18597 case NB_EV_APPLY:
18598 /* TODO: implement me. */
18599 break;
18600 }
18601
18602 return NB_OK;
18603 }
18604
18605 /*
18606 * XPath:
18607 * /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
18608 */
18609 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_modify(
18610 struct nb_cb_modify_args *args)
18611 {
18612 switch (args->event) {
18613 case NB_EV_VALIDATE:
18614 case NB_EV_PREPARE:
18615 case NB_EV_ABORT:
18616 case NB_EV_APPLY:
18617 /* TODO: implement me. */
18618 break;
18619 }
18620
18621 return NB_OK;
18622 }
18623
18624 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_destroy(
18625 struct nb_cb_destroy_args *args)
18626 {
18627 switch (args->event) {
18628 case NB_EV_VALIDATE:
18629 case NB_EV_PREPARE:
18630 case NB_EV_ABORT:
18631 case NB_EV_APPLY:
18632 /* TODO: implement me. */
18633 break;
18634 }
18635
18636 return NB_OK;
18637 }
18638
18639 /*
18640 * XPath:
18641 * /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
18642 */
18643 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_modify(
18644 struct nb_cb_modify_args *args)
18645 {
18646 switch (args->event) {
18647 case NB_EV_VALIDATE:
18648 case NB_EV_PREPARE:
18649 case NB_EV_ABORT:
18650 case NB_EV_APPLY:
18651 /* TODO: implement me. */
18652 break;
18653 }
18654
18655 return NB_OK;
18656 }
18657
18658 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
18659 struct nb_cb_destroy_args *args)
18660 {
18661 switch (args->event) {
18662 case NB_EV_VALIDATE:
18663 case NB_EV_PREPARE:
18664 case NB_EV_ABORT:
18665 case NB_EV_APPLY:
18666 /* TODO: implement me. */
18667 break;
18668 }
18669
18670 return NB_OK;
18671 }
18672
18673 /*
18674 * XPath:
18675 * /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
18676 */
18677 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
18678 struct nb_cb_modify_args *args)
18679 {
18680 switch (args->event) {
18681 case NB_EV_VALIDATE:
18682 case NB_EV_PREPARE:
18683 case NB_EV_ABORT:
18684 case NB_EV_APPLY:
18685 /* TODO: implement me. */
18686 break;
18687 }
18688
18689 return NB_OK;
18690 }
18691
18692 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
18693 struct nb_cb_destroy_args *args)
18694 {
18695 switch (args->event) {
18696 case NB_EV_VALIDATE:
18697 case NB_EV_PREPARE:
18698 case NB_EV_ABORT:
18699 case NB_EV_APPLY:
18700 /* TODO: implement me. */
18701 break;
18702 }
18703
18704 return NB_OK;
18705 }
18706
18707 /*
18708 * XPath:
18709 * /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
18710 */
18711 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
18712 struct nb_cb_modify_args *args)
18713 {
18714 switch (args->event) {
18715 case NB_EV_VALIDATE:
18716 case NB_EV_PREPARE:
18717 case NB_EV_ABORT:
18718 case NB_EV_APPLY:
18719 /* TODO: implement me. */
18720 break;
18721 }
18722
18723 return NB_OK;
18724 }
18725
18726 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
18727 struct nb_cb_destroy_args *args)
18728 {
18729 switch (args->event) {
18730 case NB_EV_VALIDATE:
18731 case NB_EV_PREPARE:
18732 case NB_EV_ABORT:
18733 case NB_EV_APPLY:
18734 /* TODO: implement me. */
18735 break;
18736 }
18737
18738 return NB_OK;
18739 }
18740
18741 /*
18742 * XPath:
18743 * /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
18744 */
18745 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
18746 struct nb_cb_modify_args *args)
18747 {
18748 switch (args->event) {
18749 case NB_EV_VALIDATE:
18750 case NB_EV_PREPARE:
18751 case NB_EV_ABORT:
18752 case NB_EV_APPLY:
18753 /* TODO: implement me. */
18754 break;
18755 }
18756
18757 return NB_OK;
18758 }
18759
18760 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
18761 struct nb_cb_destroy_args *args)
18762 {
18763 switch (args->event) {
18764 case NB_EV_VALIDATE:
18765 case NB_EV_PREPARE:
18766 case NB_EV_ABORT:
18767 case NB_EV_APPLY:
18768 /* TODO: implement me. */
18769 break;
18770 }
18771
18772 return NB_OK;
18773 }
18774
18775 /*
18776 * XPath:
18777 * /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
18778 */
18779 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
18780 struct nb_cb_modify_args *args)
18781 {
18782 switch (args->event) {
18783 case NB_EV_VALIDATE:
18784 case NB_EV_PREPARE:
18785 case NB_EV_ABORT:
18786 case NB_EV_APPLY:
18787 /* TODO: implement me. */
18788 break;
18789 }
18790
18791 return NB_OK;
18792 }
18793
18794 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
18795 struct nb_cb_destroy_args *args)
18796 {
18797 switch (args->event) {
18798 case NB_EV_VALIDATE:
18799 case NB_EV_PREPARE:
18800 case NB_EV_ABORT:
18801 case NB_EV_APPLY:
18802 /* TODO: implement me. */
18803 break;
18804 }
18805
18806 return NB_OK;
18807 }
18808
18809 /*
18810 * XPath:
18811 * /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
18812 */
18813 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
18814 struct nb_cb_modify_args *args)
18815 {
18816 switch (args->event) {
18817 case NB_EV_VALIDATE:
18818 case NB_EV_PREPARE:
18819 case NB_EV_ABORT:
18820 case NB_EV_APPLY:
18821 /* TODO: implement me. */
18822 break;
18823 }
18824
18825 return NB_OK;
18826 }
18827
18828 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
18829 struct nb_cb_destroy_args *args)
18830 {
18831 switch (args->event) {
18832 case NB_EV_VALIDATE:
18833 case NB_EV_PREPARE:
18834 case NB_EV_ABORT:
18835 case NB_EV_APPLY:
18836 /* TODO: implement me. */
18837 break;
18838 }
18839
18840 return NB_OK;
18841 }
18842
18843 /*
18844 * XPath:
18845 * /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
18846 */
18847 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_modify(
18848 struct nb_cb_modify_args *args)
18849 {
18850 switch (args->event) {
18851 case NB_EV_VALIDATE:
18852 case NB_EV_PREPARE:
18853 case NB_EV_ABORT:
18854 return NB_OK;
18855 case NB_EV_APPLY:
18856 return bgp_neighbor_afi_safi_flag_modify(
18857 args, PEER_FLAG_NEXTHOP_SELF,
18858 yang_dnode_get_bool(args->dnode, NULL));
18859
18860 break;
18861 }
18862
18863 return NB_OK;
18864 }
18865
18866 /*
18867 * XPath:
18868 * /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
18869 */
18870 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_force_modify(
18871 struct nb_cb_modify_args *args)
18872 {
18873 switch (args->event) {
18874 case NB_EV_VALIDATE:
18875 case NB_EV_PREPARE:
18876 case NB_EV_ABORT:
18877 return NB_OK;
18878 case NB_EV_APPLY:
18879 return bgp_neighbor_afi_safi_flag_modify(
18880 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
18881 yang_dnode_get_bool(args->dnode, NULL));
18882
18883 break;
18884 }
18885
18886 return NB_OK;
18887 }
18888
18889 /*
18890 * XPath:
18891 * /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
18892 */
18893 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_modify(
18894 struct nb_cb_modify_args *args)
18895 {
18896 switch (args->event) {
18897 case NB_EV_VALIDATE:
18898 case NB_EV_PREPARE:
18899 case NB_EV_ABORT:
18900 return NB_OK;
18901 case NB_EV_APPLY:
18902 return bgp_neighbor_afi_safi_flag_modify(
18903 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
18904 yang_dnode_get_bool(args->dnode, NULL));
18905
18906 break;
18907 }
18908
18909 return NB_OK;
18910 }
18911
18912 /*
18913 * XPath:
18914 * /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
18915 */
18916 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_replace_modify(
18917 struct nb_cb_modify_args *args)
18918 {
18919 switch (args->event) {
18920 case NB_EV_VALIDATE:
18921 case NB_EV_PREPARE:
18922 case NB_EV_ABORT:
18923 return NB_OK;
18924 case NB_EV_APPLY:
18925 return bgp_neighbor_afi_safi_flag_modify(
18926 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
18927 yang_dnode_get_bool(args->dnode, NULL));
18928
18929 break;
18930 }
18931
18932 return NB_OK;
18933 }
18934
18935 /*
18936 * XPath:
18937 * /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
18938 */
18939 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_modify(
18940 struct nb_cb_modify_args *args)
18941 {
18942 switch (args->event) {
18943 case NB_EV_VALIDATE:
18944 case NB_EV_PREPARE:
18945 case NB_EV_ABORT:
18946 return NB_OK;
18947 case NB_EV_APPLY:
18948 return bgp_neighbor_afi_safi_flag_modify(
18949 args, PEER_FLAG_REMOVE_PRIVATE_AS,
18950 yang_dnode_get_bool(args->dnode, NULL));
18951
18952 break;
18953 }
18954
18955 return NB_OK;
18956 }
18957
18958 /*
18959 * XPath:
18960 * /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
18961 */
18962 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_replace_modify(
18963 struct nb_cb_modify_args *args)
18964 {
18965 switch (args->event) {
18966 case NB_EV_VALIDATE:
18967 case NB_EV_PREPARE:
18968 case NB_EV_ABORT:
18969 return NB_OK;
18970 case NB_EV_APPLY:
18971 return bgp_neighbor_afi_safi_flag_modify(
18972 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
18973 yang_dnode_get_bool(args->dnode, NULL));
18974
18975 break;
18976 }
18977
18978 return NB_OK;
18979 }
18980
18981 /*
18982 * XPath:
18983 * /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
18984 */
18985 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_route_reflector_route_reflector_client_modify(
18986 struct nb_cb_modify_args *args)
18987 {
18988 switch (args->event) {
18989 case NB_EV_VALIDATE:
18990 case NB_EV_PREPARE:
18991 case NB_EV_ABORT:
18992 return NB_OK;
18993 case NB_EV_APPLY:
18994 return bgp_neighbor_afi_safi_flag_modify(
18995 args, PEER_FLAG_REFLECTOR_CLIENT,
18996 yang_dnode_get_bool(args->dnode, NULL));
18997
18998 break;
18999 }
19000
19001 return NB_OK;
19002 }
19003
19004 /*
19005 * XPath:
19006 * /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
19007 */
19008 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_route_server_route_server_client_modify(
19009 struct nb_cb_modify_args *args)
19010 {
19011 switch (args->event) {
19012 case NB_EV_VALIDATE:
19013 case NB_EV_PREPARE:
19014 case NB_EV_ABORT:
19015 return NB_OK;
19016 case NB_EV_APPLY:
19017 return bgp_neighbor_afi_safi_flag_modify(
19018 args, PEER_FLAG_RSERVER_CLIENT,
19019 yang_dnode_get_bool(args->dnode, NULL));
19020
19021 break;
19022 }
19023
19024 return NB_OK;
19025 }
19026
19027 /*
19028 * XPath:
19029 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/send-community/send-community
19030 */
19031 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_community_modify(
19032 struct nb_cb_modify_args *args)
19033 {
19034 switch (args->event) {
19035 case NB_EV_VALIDATE:
19036 case NB_EV_PREPARE:
19037 case NB_EV_ABORT:
19038 return NB_OK;
19039 case NB_EV_APPLY:
19040 return bgp_neighbor_afi_safi_flag_modify(
19041 args, PEER_FLAG_SEND_COMMUNITY,
19042 yang_dnode_get_bool(args->dnode, NULL));
19043
19044 break;
19045 }
19046
19047 return NB_OK;
19048 }
19049
19050 /*
19051 * XPath:
19052 * /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
19053 */
19054 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_ext_community_modify(
19055 struct nb_cb_modify_args *args)
19056 {
19057 switch (args->event) {
19058 case NB_EV_VALIDATE:
19059 case NB_EV_PREPARE:
19060 case NB_EV_ABORT:
19061 return NB_OK;
19062 case NB_EV_APPLY:
19063 return bgp_neighbor_afi_safi_flag_modify(
19064 args, PEER_FLAG_SEND_EXT_COMMUNITY,
19065 yang_dnode_get_bool(args->dnode, NULL));
19066
19067 break;
19068 }
19069
19070 return NB_OK;
19071 }
19072
19073 /*
19074 * XPath:
19075 * /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
19076 */
19077 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_large_community_modify(
19078 struct nb_cb_modify_args *args)
19079 {
19080 switch (args->event) {
19081 case NB_EV_VALIDATE:
19082 case NB_EV_PREPARE:
19083 case NB_EV_ABORT:
19084 return NB_OK;
19085 case NB_EV_APPLY:
19086 return bgp_neighbor_afi_safi_flag_modify(
19087 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
19088 yang_dnode_get_bool(args->dnode, NULL));
19089
19090 break;
19091 }
19092
19093 return NB_OK;
19094 }
19095
19096 /*
19097 * XPath:
19098 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/soft-reconfiguration
19099 */
19100 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_soft_reconfiguration_modify(
19101 struct nb_cb_modify_args *args)
19102 {
19103 switch (args->event) {
19104 case NB_EV_VALIDATE:
19105 case NB_EV_PREPARE:
19106 case NB_EV_ABORT:
19107 return NB_OK;
19108 case NB_EV_APPLY:
19109 return bgp_neighbor_afi_safi_flag_modify(
19110 args, PEER_FLAG_SOFT_RECONFIG,
19111 yang_dnode_get_bool(args->dnode, NULL));
19112
19113 break;
19114 }
19115
19116 return NB_OK;
19117 }
19118
19119 /*
19120 * XPath:
19121 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/weight/weight-attribute
19122 */
19123 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_modify(
19124 struct nb_cb_modify_args *args)
19125 {
19126 switch (args->event) {
19127 case NB_EV_VALIDATE:
19128 case NB_EV_PREPARE:
19129 case NB_EV_ABORT:
19130 return NB_OK;
19131 case NB_EV_APPLY:
19132 return bgp_neighbor_afi_safi_weight_modify(args);
19133
19134 break;
19135 }
19136
19137 return NB_OK;
19138 }
19139
19140 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_destroy(
19141 struct nb_cb_destroy_args *args)
19142 {
19143 switch (args->event) {
19144 case NB_EV_VALIDATE:
19145 case NB_EV_PREPARE:
19146 case NB_EV_ABORT:
19147 return NB_OK;
19148 case NB_EV_APPLY:
19149 return bgp_neighbor_afi_safi_weight_destroy(args);
19150
19151 break;
19152 }
19153
19154 return NB_OK;
19155 }
19156
19157 /*
19158 * XPath:
19159 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/rmap-import
19160 */
19161 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_modify(
19162 struct nb_cb_modify_args *args)
19163 {
19164 switch (args->event) {
19165 case NB_EV_VALIDATE:
19166 case NB_EV_PREPARE:
19167 case NB_EV_ABORT:
19168 break;
19169 case NB_EV_APPLY:
19170 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
19171 }
19172
19173 return NB_OK;
19174 }
19175
19176 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_destroy(
19177 struct nb_cb_destroy_args *args)
19178 {
19179 switch (args->event) {
19180 case NB_EV_VALIDATE:
19181 case NB_EV_PREPARE:
19182 case NB_EV_ABORT:
19183 break;
19184 case NB_EV_APPLY:
19185 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
19186 }
19187
19188 return NB_OK;
19189 }
19190
19191 /*
19192 * XPath:
19193 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/rmap-export
19194 */
19195 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_modify(
19196 struct nb_cb_modify_args *args)
19197 {
19198 switch (args->event) {
19199 case NB_EV_VALIDATE:
19200 case NB_EV_PREPARE:
19201 case NB_EV_ABORT:
19202 break;
19203 case NB_EV_APPLY:
19204 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
19205 }
19206
19207 return NB_OK;
19208 }
19209
19210 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_destroy(
19211 struct nb_cb_destroy_args *args)
19212 {
19213 switch (args->event) {
19214 case NB_EV_VALIDATE:
19215 case NB_EV_PREPARE:
19216 case NB_EV_ABORT:
19217 break;
19218 case NB_EV_APPLY:
19219 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
19220 }
19221
19222 return NB_OK;
19223 }
19224
19225 /*
19226 * XPath:
19227 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/plist-import
19228 */
19229 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_modify(
19230 struct nb_cb_modify_args *args)
19231 {
19232 switch (args->event) {
19233 case NB_EV_VALIDATE:
19234 case NB_EV_PREPARE:
19235 case NB_EV_ABORT:
19236 break;
19237 case NB_EV_APPLY:
19238 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
19239 }
19240
19241 return NB_OK;
19242 }
19243
19244 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_destroy(
19245 struct nb_cb_destroy_args *args)
19246 {
19247 switch (args->event) {
19248 case NB_EV_VALIDATE:
19249 case NB_EV_PREPARE:
19250 case NB_EV_ABORT:
19251 break;
19252 case NB_EV_APPLY:
19253 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
19254 }
19255
19256 return NB_OK;
19257 }
19258
19259 /*
19260 * XPath:
19261 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-multicast/filter-config/plist-export
19262 */
19263 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_modify(
19264 struct nb_cb_modify_args *args)
19265 {
19266 switch (args->event) {
19267 case NB_EV_VALIDATE:
19268 case NB_EV_PREPARE:
19269 case NB_EV_ABORT:
19270 break;
19271 case NB_EV_APPLY:
19272 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
19273 }
19274
19275 return NB_OK;
19276 }
19277
19278 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_destroy(
19279 struct nb_cb_destroy_args *args)
19280 {
19281 switch (args->event) {
19282 case NB_EV_VALIDATE:
19283 case NB_EV_PREPARE:
19284 case NB_EV_ABORT:
19285 break;
19286 case NB_EV_APPLY:
19287 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
19288 }
19289
19290 return NB_OK;
19291 }
19292
19293 /*
19294 * XPath:
19295 * /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
19296 */
19297 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_modify(
19298 struct nb_cb_modify_args *args)
19299 {
19300 switch (args->event) {
19301 case NB_EV_VALIDATE:
19302 case NB_EV_PREPARE:
19303 case NB_EV_ABORT:
19304 case NB_EV_APPLY:
19305 /* TODO: implement me. */
19306 break;
19307 }
19308
19309 return NB_OK;
19310 }
19311
19312 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_destroy(
19313 struct nb_cb_destroy_args *args)
19314 {
19315 switch (args->event) {
19316 case NB_EV_VALIDATE:
19317 case NB_EV_PREPARE:
19318 case NB_EV_ABORT:
19319 case NB_EV_APPLY:
19320 /* TODO: implement me. */
19321 break;
19322 }
19323
19324 return NB_OK;
19325 }
19326
19327 /*
19328 * XPath:
19329 * /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
19330 */
19331 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_modify(
19332 struct nb_cb_modify_args *args)
19333 {
19334 switch (args->event) {
19335 case NB_EV_VALIDATE:
19336 case NB_EV_PREPARE:
19337 case NB_EV_ABORT:
19338 case NB_EV_APPLY:
19339 /* TODO: implement me. */
19340 break;
19341 }
19342
19343 return NB_OK;
19344 }
19345
19346 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_destroy(
19347 struct nb_cb_destroy_args *args)
19348 {
19349 switch (args->event) {
19350 case NB_EV_VALIDATE:
19351 case NB_EV_PREPARE:
19352 case NB_EV_ABORT:
19353 case NB_EV_APPLY:
19354 /* TODO: implement me. */
19355 break;
19356 }
19357
19358 return NB_OK;
19359 }
19360
19361 /*
19362 * XPath:
19363 * /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
19364 */
19365 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_modify(
19366 struct nb_cb_modify_args *args)
19367 {
19368 switch (args->event) {
19369 case NB_EV_VALIDATE:
19370 case NB_EV_PREPARE:
19371 case NB_EV_ABORT:
19372 case NB_EV_APPLY:
19373 /* TODO: implement me. */
19374 break;
19375 }
19376
19377 return NB_OK;
19378 }
19379
19380 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_destroy(
19381 struct nb_cb_destroy_args *args)
19382 {
19383 switch (args->event) {
19384 case NB_EV_VALIDATE:
19385 case NB_EV_PREPARE:
19386 case NB_EV_ABORT:
19387 case NB_EV_APPLY:
19388 /* TODO: implement me. */
19389 break;
19390 }
19391
19392 return NB_OK;
19393 }
19394
19395 /*
19396 * XPath:
19397 * /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
19398 */
19399 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_modify(
19400 struct nb_cb_modify_args *args)
19401 {
19402 switch (args->event) {
19403 case NB_EV_VALIDATE:
19404 case NB_EV_PREPARE:
19405 case NB_EV_ABORT:
19406 case NB_EV_APPLY:
19407 /* TODO: implement me. */
19408 break;
19409 }
19410
19411 return NB_OK;
19412 }
19413
19414 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_destroy(
19415 struct nb_cb_destroy_args *args)
19416 {
19417 switch (args->event) {
19418 case NB_EV_VALIDATE:
19419 case NB_EV_PREPARE:
19420 case NB_EV_ABORT:
19421 case NB_EV_APPLY:
19422 /* TODO: implement me. */
19423 break;
19424 }
19425
19426 return NB_OK;
19427 }
19428
19429 /*
19430 * XPath:
19431 * /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
19432 */
19433 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_modify(
19434 struct nb_cb_modify_args *args)
19435 {
19436 switch (args->event) {
19437 case NB_EV_VALIDATE:
19438 case NB_EV_PREPARE:
19439 case NB_EV_ABORT:
19440 case NB_EV_APPLY:
19441 /* TODO: implement me. */
19442 break;
19443 }
19444
19445 return NB_OK;
19446 }
19447
19448 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_destroy(
19449 struct nb_cb_destroy_args *args)
19450 {
19451 switch (args->event) {
19452 case NB_EV_VALIDATE:
19453 case NB_EV_PREPARE:
19454 case NB_EV_ABORT:
19455 case NB_EV_APPLY:
19456 /* TODO: implement me. */
19457 break;
19458 }
19459
19460 return NB_OK;
19461 }
19462
19463 /*
19464 * XPath:
19465 * /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
19466 */
19467 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_modify(
19468 struct nb_cb_modify_args *args)
19469 {
19470 switch (args->event) {
19471 case NB_EV_VALIDATE:
19472 case NB_EV_PREPARE:
19473 case NB_EV_ABORT:
19474 case NB_EV_APPLY:
19475 /* TODO: implement me. */
19476 break;
19477 }
19478
19479 return NB_OK;
19480 }
19481
19482 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_destroy(
19483 struct nb_cb_destroy_args *args)
19484 {
19485 switch (args->event) {
19486 case NB_EV_VALIDATE:
19487 case NB_EV_PREPARE:
19488 case NB_EV_ABORT:
19489 case NB_EV_APPLY:
19490 /* TODO: implement me. */
19491 break;
19492 }
19493
19494 return NB_OK;
19495 }
19496
19497 /*
19498 * XPath:
19499 * /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
19500 */
19501 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_add_paths_path_type_modify(
19502 struct nb_cb_modify_args *args)
19503 {
19504 switch (args->event) {
19505 case NB_EV_VALIDATE:
19506 case NB_EV_PREPARE:
19507 case NB_EV_ABORT:
19508 case NB_EV_APPLY:
19509 /* TODO: implement me. */
19510 break;
19511 }
19512
19513 return NB_OK;
19514 }
19515
19516 /*
19517 * XPath:
19518 * /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
19519 */
19520 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_modify(
19521 struct nb_cb_modify_args *args)
19522 {
19523 switch (args->event) {
19524 case NB_EV_VALIDATE:
19525 case NB_EV_PREPARE:
19526 case NB_EV_ABORT:
19527 case NB_EV_APPLY:
19528 /* TODO: implement me. */
19529 break;
19530 }
19531
19532 return NB_OK;
19533 }
19534
19535 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_destroy(
19536 struct nb_cb_destroy_args *args)
19537 {
19538 switch (args->event) {
19539 case NB_EV_VALIDATE:
19540 case NB_EV_PREPARE:
19541 case NB_EV_ABORT:
19542 case NB_EV_APPLY:
19543 /* TODO: implement me. */
19544 break;
19545 }
19546
19547 return NB_OK;
19548 }
19549
19550 /*
19551 * XPath:
19552 * /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
19553 */
19554 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_modify(
19555 struct nb_cb_modify_args *args)
19556 {
19557 switch (args->event) {
19558 case NB_EV_VALIDATE:
19559 case NB_EV_PREPARE:
19560 case NB_EV_ABORT:
19561 case NB_EV_APPLY:
19562 /* TODO: implement me. */
19563 break;
19564 }
19565
19566 return NB_OK;
19567 }
19568
19569 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
19570 struct nb_cb_destroy_args *args)
19571 {
19572 switch (args->event) {
19573 case NB_EV_VALIDATE:
19574 case NB_EV_PREPARE:
19575 case NB_EV_ABORT:
19576 case NB_EV_APPLY:
19577 /* TODO: implement me. */
19578 break;
19579 }
19580
19581 return NB_OK;
19582 }
19583
19584 /*
19585 * XPath:
19586 * /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
19587 */
19588 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_replace_peer_as_modify(
19589 struct nb_cb_modify_args *args)
19590 {
19591 switch (args->event) {
19592 case NB_EV_VALIDATE:
19593 case NB_EV_PREPARE:
19594 case NB_EV_ABORT:
19595 return NB_OK;
19596 case NB_EV_APPLY:
19597 return bgp_neighbor_afi_safi_flag_modify(
19598 args, PEER_FLAG_AS_OVERRIDE,
19599 yang_dnode_get_bool(args->dnode, NULL));
19600
19601 break;
19602 }
19603
19604 return NB_OK;
19605 }
19606
19607 /*
19608 * XPath:
19609 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/default-originate/originate
19610 */
19611 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_originate_modify(
19612 struct nb_cb_modify_args *args)
19613 {
19614 switch (args->event) {
19615 case NB_EV_VALIDATE:
19616 case NB_EV_PREPARE:
19617 case NB_EV_ABORT:
19618 case NB_EV_APPLY:
19619 /* TODO: implement me. */
19620 break;
19621 }
19622
19623 return NB_OK;
19624 }
19625
19626 /*
19627 * XPath:
19628 * /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
19629 */
19630 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_modify(
19631 struct nb_cb_modify_args *args)
19632 {
19633 switch (args->event) {
19634 case NB_EV_VALIDATE:
19635 case NB_EV_PREPARE:
19636 case NB_EV_ABORT:
19637 case NB_EV_APPLY:
19638 /* TODO: implement me. */
19639 break;
19640 }
19641
19642 return NB_OK;
19643 }
19644
19645 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_destroy(
19646 struct nb_cb_destroy_args *args)
19647 {
19648 switch (args->event) {
19649 case NB_EV_VALIDATE:
19650 case NB_EV_PREPARE:
19651 case NB_EV_ABORT:
19652 case NB_EV_APPLY:
19653 /* TODO: implement me. */
19654 break;
19655 }
19656
19657 return NB_OK;
19658 }
19659
19660 /*
19661 * XPath:
19662 * /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
19663 */
19664 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
19665 struct nb_cb_modify_args *args)
19666 {
19667 switch (args->event) {
19668 case NB_EV_VALIDATE:
19669 case NB_EV_PREPARE:
19670 case NB_EV_ABORT:
19671 return NB_OK;
19672 case NB_EV_APPLY:
19673 return bgp_neighbor_afi_safi_flag_modify(
19674 args, PEER_FLAG_AS_PATH_UNCHANGED,
19675 yang_dnode_get_bool(args->dnode, NULL));
19676
19677 break;
19678 }
19679
19680 return NB_OK;
19681 }
19682
19683 /*
19684 * XPath:
19685 * /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
19686 */
19687 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
19688 struct nb_cb_modify_args *args)
19689 {
19690 switch (args->event) {
19691 case NB_EV_VALIDATE:
19692 case NB_EV_PREPARE:
19693 case NB_EV_ABORT:
19694 return NB_OK;
19695 case NB_EV_APPLY:
19696 return bgp_neighbor_afi_safi_flag_modify(
19697 args, PEER_FLAG_NEXTHOP_UNCHANGED,
19698 yang_dnode_get_bool(args->dnode, NULL));
19699
19700 break;
19701 }
19702
19703 return NB_OK;
19704 }
19705
19706 /*
19707 * XPath:
19708 * /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
19709 */
19710 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_med_unchanged_modify(
19711 struct nb_cb_modify_args *args)
19712 {
19713 switch (args->event) {
19714 case NB_EV_VALIDATE:
19715 case NB_EV_PREPARE:
19716 case NB_EV_ABORT:
19717 return NB_OK;
19718 case NB_EV_APPLY:
19719 return bgp_neighbor_afi_safi_flag_modify(
19720 args, PEER_FLAG_MED_UNCHANGED,
19721 yang_dnode_get_bool(args->dnode, NULL));
19722
19723 break;
19724 }
19725
19726 return NB_OK;
19727 }
19728
19729 /*
19730 * XPath:
19731 * /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
19732 */
19733 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_modify(
19734 struct nb_cb_modify_args *args)
19735 {
19736 switch (args->event) {
19737 case NB_EV_VALIDATE:
19738 case NB_EV_PREPARE:
19739 case NB_EV_ABORT:
19740 case NB_EV_APPLY:
19741 /* TODO: implement me. */
19742 break;
19743 }
19744
19745 return NB_OK;
19746 }
19747
19748 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_destroy(
19749 struct nb_cb_destroy_args *args)
19750 {
19751 switch (args->event) {
19752 case NB_EV_VALIDATE:
19753 case NB_EV_PREPARE:
19754 case NB_EV_ABORT:
19755 case NB_EV_APPLY:
19756 /* TODO: implement me. */
19757 break;
19758 }
19759
19760 return NB_OK;
19761 }
19762
19763 /*
19764 * XPath:
19765 * /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
19766 */
19767 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_modify(
19768 struct nb_cb_modify_args *args)
19769 {
19770 switch (args->event) {
19771 case NB_EV_VALIDATE:
19772 case NB_EV_PREPARE:
19773 case NB_EV_ABORT:
19774 case NB_EV_APPLY:
19775 /* TODO: implement me. */
19776 break;
19777 }
19778
19779 return NB_OK;
19780 }
19781
19782 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_destroy(
19783 struct nb_cb_destroy_args *args)
19784 {
19785 switch (args->event) {
19786 case NB_EV_VALIDATE:
19787 case NB_EV_PREPARE:
19788 case NB_EV_ABORT:
19789 case NB_EV_APPLY:
19790 /* TODO: implement me. */
19791 break;
19792 }
19793
19794 return NB_OK;
19795 }
19796
19797 /*
19798 * XPath:
19799 * /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
19800 */
19801 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_modify(
19802 struct nb_cb_modify_args *args)
19803 {
19804 switch (args->event) {
19805 case NB_EV_VALIDATE:
19806 case NB_EV_PREPARE:
19807 case NB_EV_ABORT:
19808 case NB_EV_APPLY:
19809 /* TODO: implement me. */
19810 break;
19811 }
19812
19813 return NB_OK;
19814 }
19815
19816 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_destroy(
19817 struct nb_cb_destroy_args *args)
19818 {
19819 switch (args->event) {
19820 case NB_EV_VALIDATE:
19821 case NB_EV_PREPARE:
19822 case NB_EV_ABORT:
19823 case NB_EV_APPLY:
19824 /* TODO: implement me. */
19825 break;
19826 }
19827
19828 return NB_OK;
19829 }
19830
19831 /*
19832 * XPath:
19833 * /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
19834 */
19835 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_create(
19836 struct nb_cb_create_args *args)
19837 {
19838 switch (args->event) {
19839 case NB_EV_VALIDATE:
19840 case NB_EV_PREPARE:
19841 case NB_EV_ABORT:
19842 case NB_EV_APPLY:
19843 /* TODO: implement me. */
19844 break;
19845 }
19846
19847 return NB_OK;
19848 }
19849
19850 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_destroy(
19851 struct nb_cb_destroy_args *args)
19852 {
19853 switch (args->event) {
19854 case NB_EV_VALIDATE:
19855 case NB_EV_PREPARE:
19856 case NB_EV_ABORT:
19857 return NB_OK;
19858 case NB_EV_APPLY:
19859 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
19860 }
19861
19862 return NB_OK;
19863 }
19864
19865 /*
19866 * XPath:
19867 * /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
19868 */
19869 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
19870 struct nb_cb_modify_args *args)
19871 {
19872 switch (args->event) {
19873 case NB_EV_VALIDATE:
19874 case NB_EV_PREPARE:
19875 case NB_EV_ABORT:
19876 case NB_EV_APPLY:
19877 /* TODO: implement me. */
19878 break;
19879 }
19880
19881 return NB_OK;
19882 }
19883
19884 /*
19885 * XPath:
19886 * /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
19887 */
19888 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_force_check_modify(
19889 struct nb_cb_modify_args *args)
19890 {
19891 switch (args->event) {
19892 case NB_EV_VALIDATE:
19893 case NB_EV_PREPARE:
19894 case NB_EV_ABORT:
19895 case NB_EV_APPLY:
19896 /* TODO: implement me. */
19897 break;
19898 }
19899
19900 return NB_OK;
19901 }
19902
19903 /*
19904 * XPath:
19905 * /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
19906 */
19907 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
19908 struct nb_cb_modify_args *args)
19909 {
19910 switch (args->event) {
19911 case NB_EV_VALIDATE:
19912 case NB_EV_PREPARE:
19913 case NB_EV_ABORT:
19914 case NB_EV_APPLY:
19915 /* TODO: implement me. */
19916 break;
19917 }
19918
19919 return NB_OK;
19920 }
19921
19922 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
19923 struct nb_cb_destroy_args *args)
19924 {
19925 switch (args->event) {
19926 case NB_EV_VALIDATE:
19927 case NB_EV_PREPARE:
19928 case NB_EV_ABORT:
19929 case NB_EV_APPLY:
19930 /* TODO: implement me. */
19931 break;
19932 }
19933
19934 return NB_OK;
19935 }
19936
19937 /*
19938 * XPath:
19939 * /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
19940 */
19941 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
19942 struct nb_cb_modify_args *args)
19943 {
19944 switch (args->event) {
19945 case NB_EV_VALIDATE:
19946 case NB_EV_PREPARE:
19947 case NB_EV_ABORT:
19948 case NB_EV_APPLY:
19949 /* TODO: implement me. */
19950 break;
19951 }
19952
19953 return NB_OK;
19954 }
19955
19956 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
19957 struct nb_cb_destroy_args *args)
19958 {
19959 switch (args->event) {
19960 case NB_EV_VALIDATE:
19961 case NB_EV_PREPARE:
19962 case NB_EV_ABORT:
19963 case NB_EV_APPLY:
19964 /* TODO: implement me. */
19965 break;
19966 }
19967
19968 return NB_OK;
19969 }
19970
19971 /*
19972 * XPath:
19973 * /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
19974 */
19975 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
19976 struct nb_cb_modify_args *args)
19977 {
19978 switch (args->event) {
19979 case NB_EV_VALIDATE:
19980 case NB_EV_PREPARE:
19981 case NB_EV_ABORT:
19982 case NB_EV_APPLY:
19983 /* TODO: implement me. */
19984 break;
19985 }
19986
19987 return NB_OK;
19988 }
19989
19990 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
19991 struct nb_cb_destroy_args *args)
19992 {
19993 switch (args->event) {
19994 case NB_EV_VALIDATE:
19995 case NB_EV_PREPARE:
19996 case NB_EV_ABORT:
19997 case NB_EV_APPLY:
19998 /* TODO: implement me. */
19999 break;
20000 }
20001
20002 return NB_OK;
20003 }
20004
20005 /*
20006 * XPath:
20007 * /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
20008 */
20009 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
20010 struct nb_cb_modify_args *args)
20011 {
20012 switch (args->event) {
20013 case NB_EV_VALIDATE:
20014 case NB_EV_PREPARE:
20015 case NB_EV_ABORT:
20016 case NB_EV_APPLY:
20017 /* TODO: implement me. */
20018 break;
20019 }
20020
20021 return NB_OK;
20022 }
20023
20024 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
20025 struct nb_cb_destroy_args *args)
20026 {
20027 switch (args->event) {
20028 case NB_EV_VALIDATE:
20029 case NB_EV_PREPARE:
20030 case NB_EV_ABORT:
20031 case NB_EV_APPLY:
20032 /* TODO: implement me. */
20033 break;
20034 }
20035
20036 return NB_OK;
20037 }
20038
20039 /*
20040 * XPath:
20041 * /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
20042 */
20043 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
20044 struct nb_cb_modify_args *args)
20045 {
20046 switch (args->event) {
20047 case NB_EV_VALIDATE:
20048 case NB_EV_PREPARE:
20049 case NB_EV_ABORT:
20050 case NB_EV_APPLY:
20051 /* TODO: implement me. */
20052 break;
20053 }
20054
20055 return NB_OK;
20056 }
20057
20058 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
20059 struct nb_cb_destroy_args *args)
20060 {
20061 switch (args->event) {
20062 case NB_EV_VALIDATE:
20063 case NB_EV_PREPARE:
20064 case NB_EV_ABORT:
20065 case NB_EV_APPLY:
20066 /* TODO: implement me. */
20067 break;
20068 }
20069
20070 return NB_OK;
20071 }
20072
20073 /*
20074 * XPath:
20075 * /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
20076 */
20077 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
20078 struct nb_cb_modify_args *args)
20079 {
20080 switch (args->event) {
20081 case NB_EV_VALIDATE:
20082 case NB_EV_PREPARE:
20083 case NB_EV_ABORT:
20084 case NB_EV_APPLY:
20085 /* TODO: implement me. */
20086 break;
20087 }
20088
20089 return NB_OK;
20090 }
20091
20092 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
20093 struct nb_cb_destroy_args *args)
20094 {
20095 switch (args->event) {
20096 case NB_EV_VALIDATE:
20097 case NB_EV_PREPARE:
20098 case NB_EV_ABORT:
20099 case NB_EV_APPLY:
20100 /* TODO: implement me. */
20101 break;
20102 }
20103
20104 return NB_OK;
20105 }
20106
20107 /*
20108 * XPath:
20109 * /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
20110 */
20111 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
20112 struct nb_cb_modify_args *args)
20113 {
20114 switch (args->event) {
20115 case NB_EV_VALIDATE:
20116 case NB_EV_PREPARE:
20117 case NB_EV_ABORT:
20118 case NB_EV_APPLY:
20119 /* TODO: implement me. */
20120 break;
20121 }
20122
20123 return NB_OK;
20124 }
20125
20126 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
20127 struct nb_cb_destroy_args *args)
20128 {
20129 switch (args->event) {
20130 case NB_EV_VALIDATE:
20131 case NB_EV_PREPARE:
20132 case NB_EV_ABORT:
20133 case NB_EV_APPLY:
20134 /* TODO: implement me. */
20135 break;
20136 }
20137
20138 return NB_OK;
20139 }
20140
20141 /*
20142 * XPath:
20143 * /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
20144 */
20145 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_modify(
20146 struct nb_cb_modify_args *args)
20147 {
20148 switch (args->event) {
20149 case NB_EV_VALIDATE:
20150 case NB_EV_PREPARE:
20151 case NB_EV_ABORT:
20152 return NB_OK;
20153 case NB_EV_APPLY:
20154 return bgp_neighbor_afi_safi_flag_modify(
20155 args, PEER_FLAG_NEXTHOP_SELF,
20156 yang_dnode_get_bool(args->dnode, NULL));
20157
20158 break;
20159 }
20160
20161 return NB_OK;
20162 }
20163
20164 /*
20165 * XPath:
20166 * /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
20167 */
20168 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_force_modify(
20169 struct nb_cb_modify_args *args)
20170 {
20171 switch (args->event) {
20172 case NB_EV_VALIDATE:
20173 case NB_EV_PREPARE:
20174 case NB_EV_ABORT:
20175 return NB_OK;
20176 case NB_EV_APPLY:
20177 return bgp_neighbor_afi_safi_flag_modify(
20178 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
20179 yang_dnode_get_bool(args->dnode, NULL));
20180
20181 break;
20182 }
20183
20184 return NB_OK;
20185 }
20186
20187 /*
20188 * XPath:
20189 * /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
20190 */
20191 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_modify(
20192 struct nb_cb_modify_args *args)
20193 {
20194 switch (args->event) {
20195 case NB_EV_VALIDATE:
20196 case NB_EV_PREPARE:
20197 case NB_EV_ABORT:
20198 return NB_OK;
20199 case NB_EV_APPLY:
20200 return bgp_neighbor_afi_safi_flag_modify(
20201 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
20202 yang_dnode_get_bool(args->dnode, NULL));
20203
20204 break;
20205 }
20206
20207 return NB_OK;
20208 }
20209
20210 /*
20211 * XPath:
20212 * /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
20213 */
20214 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_replace_modify(
20215 struct nb_cb_modify_args *args)
20216 {
20217 switch (args->event) {
20218 case NB_EV_VALIDATE:
20219 case NB_EV_PREPARE:
20220 case NB_EV_ABORT:
20221 return NB_OK;
20222 case NB_EV_APPLY:
20223 return bgp_neighbor_afi_safi_flag_modify(
20224 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
20225 yang_dnode_get_bool(args->dnode, NULL));
20226
20227 break;
20228 }
20229
20230 return NB_OK;
20231 }
20232
20233 /*
20234 * XPath:
20235 * /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
20236 */
20237 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_modify(
20238 struct nb_cb_modify_args *args)
20239 {
20240 switch (args->event) {
20241 case NB_EV_VALIDATE:
20242 case NB_EV_PREPARE:
20243 case NB_EV_ABORT:
20244 return NB_OK;
20245 case NB_EV_APPLY:
20246 return bgp_neighbor_afi_safi_flag_modify(
20247 args, PEER_FLAG_REMOVE_PRIVATE_AS,
20248 yang_dnode_get_bool(args->dnode, NULL));
20249
20250 break;
20251 }
20252
20253 return NB_OK;
20254 }
20255
20256 /*
20257 * XPath:
20258 * /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
20259 */
20260 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_replace_modify(
20261 struct nb_cb_modify_args *args)
20262 {
20263 switch (args->event) {
20264 case NB_EV_VALIDATE:
20265 case NB_EV_PREPARE:
20266 case NB_EV_ABORT:
20267 return NB_OK;
20268 case NB_EV_APPLY:
20269 return bgp_neighbor_afi_safi_flag_modify(
20270 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
20271 yang_dnode_get_bool(args->dnode, NULL));
20272
20273 break;
20274 }
20275
20276 return NB_OK;
20277 }
20278
20279 /*
20280 * XPath:
20281 * /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
20282 */
20283 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_route_reflector_route_reflector_client_modify(
20284 struct nb_cb_modify_args *args)
20285 {
20286 switch (args->event) {
20287 case NB_EV_VALIDATE:
20288 case NB_EV_PREPARE:
20289 case NB_EV_ABORT:
20290 return NB_OK;
20291 case NB_EV_APPLY:
20292 return bgp_neighbor_afi_safi_flag_modify(
20293 args, PEER_FLAG_REFLECTOR_CLIENT,
20294 yang_dnode_get_bool(args->dnode, NULL));
20295
20296 break;
20297 }
20298
20299 return NB_OK;
20300 }
20301
20302 /*
20303 * XPath:
20304 * /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
20305 */
20306 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_route_server_route_server_client_modify(
20307 struct nb_cb_modify_args *args)
20308 {
20309 switch (args->event) {
20310 case NB_EV_VALIDATE:
20311 case NB_EV_PREPARE:
20312 case NB_EV_ABORT:
20313 return NB_OK;
20314 case NB_EV_APPLY:
20315 return bgp_neighbor_afi_safi_flag_modify(
20316 args, PEER_FLAG_RSERVER_CLIENT,
20317 yang_dnode_get_bool(args->dnode, NULL));
20318
20319 break;
20320 }
20321
20322 return NB_OK;
20323 }
20324
20325 /*
20326 * XPath:
20327 * /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
20328 */
20329 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_community_modify(
20330 struct nb_cb_modify_args *args)
20331 {
20332 switch (args->event) {
20333 case NB_EV_VALIDATE:
20334 case NB_EV_PREPARE:
20335 case NB_EV_ABORT:
20336 return NB_OK;
20337 case NB_EV_APPLY:
20338 return bgp_neighbor_afi_safi_flag_modify(
20339 args, PEER_FLAG_SEND_COMMUNITY,
20340 yang_dnode_get_bool(args->dnode, NULL));
20341
20342 break;
20343 }
20344
20345 return NB_OK;
20346 }
20347
20348 /*
20349 * XPath:
20350 * /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
20351 */
20352 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_ext_community_modify(
20353 struct nb_cb_modify_args *args)
20354 {
20355 switch (args->event) {
20356 case NB_EV_VALIDATE:
20357 case NB_EV_PREPARE:
20358 case NB_EV_ABORT:
20359 return NB_OK;
20360 case NB_EV_APPLY:
20361 return bgp_neighbor_afi_safi_flag_modify(
20362 args, PEER_FLAG_SEND_EXT_COMMUNITY,
20363 yang_dnode_get_bool(args->dnode, NULL));
20364
20365 break;
20366 }
20367
20368 return NB_OK;
20369 }
20370
20371 /*
20372 * XPath:
20373 * /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
20374 */
20375 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_large_community_modify(
20376 struct nb_cb_modify_args *args)
20377 {
20378 switch (args->event) {
20379 case NB_EV_VALIDATE:
20380 case NB_EV_PREPARE:
20381 case NB_EV_ABORT:
20382 return NB_OK;
20383 case NB_EV_APPLY:
20384 return bgp_neighbor_afi_safi_flag_modify(
20385 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
20386 yang_dnode_get_bool(args->dnode, NULL));
20387
20388 break;
20389 }
20390
20391 return NB_OK;
20392 }
20393
20394 /*
20395 * XPath:
20396 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/soft-reconfiguration
20397 */
20398 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_soft_reconfiguration_modify(
20399 struct nb_cb_modify_args *args)
20400 {
20401 switch (args->event) {
20402 case NB_EV_VALIDATE:
20403 case NB_EV_PREPARE:
20404 case NB_EV_ABORT:
20405 return NB_OK;
20406 case NB_EV_APPLY:
20407 return bgp_neighbor_afi_safi_flag_modify(
20408 args, PEER_FLAG_SOFT_RECONFIG,
20409 yang_dnode_get_bool(args->dnode, NULL));
20410
20411 break;
20412 }
20413
20414 return NB_OK;
20415 }
20416
20417 /*
20418 * XPath:
20419 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/weight/weight-attribute
20420 */
20421 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_modify(
20422 struct nb_cb_modify_args *args)
20423 {
20424 switch (args->event) {
20425 case NB_EV_VALIDATE:
20426 case NB_EV_PREPARE:
20427 case NB_EV_ABORT:
20428 return NB_OK;
20429 case NB_EV_APPLY:
20430 return bgp_neighbor_afi_safi_weight_modify(args);
20431
20432 break;
20433 }
20434
20435 return NB_OK;
20436 }
20437
20438 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_destroy(
20439 struct nb_cb_destroy_args *args)
20440 {
20441 switch (args->event) {
20442 case NB_EV_VALIDATE:
20443 case NB_EV_PREPARE:
20444 case NB_EV_ABORT:
20445 return NB_OK;
20446 case NB_EV_APPLY:
20447 return bgp_neighbor_afi_safi_weight_destroy(args);
20448
20449 break;
20450 }
20451
20452 return NB_OK;
20453 }
20454
20455 /*
20456 * XPath:
20457 * /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
20458 */
20459 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_modify(
20460 struct nb_cb_modify_args *args)
20461 {
20462 switch (args->event) {
20463 case NB_EV_VALIDATE:
20464 case NB_EV_PREPARE:
20465 case NB_EV_ABORT:
20466 break;
20467 case NB_EV_APPLY:
20468 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
20469 }
20470
20471 return NB_OK;
20472 }
20473
20474 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_destroy(
20475 struct nb_cb_destroy_args *args)
20476 {
20477 switch (args->event) {
20478 case NB_EV_VALIDATE:
20479 case NB_EV_PREPARE:
20480 case NB_EV_ABORT:
20481 break;
20482 case NB_EV_APPLY:
20483 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
20484 }
20485
20486 return NB_OK;
20487 }
20488
20489 /*
20490 * XPath:
20491 * /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
20492 */
20493 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_modify(
20494 struct nb_cb_modify_args *args)
20495 {
20496 switch (args->event) {
20497 case NB_EV_VALIDATE:
20498 case NB_EV_PREPARE:
20499 case NB_EV_ABORT:
20500 break;
20501 case NB_EV_APPLY:
20502 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
20503 }
20504
20505 return NB_OK;
20506 }
20507
20508 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_destroy(
20509 struct nb_cb_destroy_args *args)
20510 {
20511 switch (args->event) {
20512 case NB_EV_VALIDATE:
20513 case NB_EV_PREPARE:
20514 case NB_EV_ABORT:
20515 break;
20516 case NB_EV_APPLY:
20517 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
20518 }
20519
20520 return NB_OK;
20521 }
20522
20523 /*
20524 * XPath:
20525 * /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
20526 */
20527 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_modify(
20528 struct nb_cb_modify_args *args)
20529 {
20530 switch (args->event) {
20531 case NB_EV_VALIDATE:
20532 case NB_EV_PREPARE:
20533 case NB_EV_ABORT:
20534 break;
20535 case NB_EV_APPLY:
20536 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
20537 }
20538
20539 return NB_OK;
20540 }
20541
20542 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_destroy(
20543 struct nb_cb_destroy_args *args)
20544 {
20545 switch (args->event) {
20546 case NB_EV_VALIDATE:
20547 case NB_EV_PREPARE:
20548 case NB_EV_ABORT:
20549 break;
20550 case NB_EV_APPLY:
20551 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
20552 }
20553
20554 return NB_OK;
20555 }
20556
20557 /*
20558 * XPath:
20559 * /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
20560 */
20561 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_modify(
20562 struct nb_cb_modify_args *args)
20563 {
20564 switch (args->event) {
20565 case NB_EV_VALIDATE:
20566 case NB_EV_PREPARE:
20567 case NB_EV_ABORT:
20568 break;
20569 case NB_EV_APPLY:
20570 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
20571 }
20572
20573 return NB_OK;
20574 }
20575
20576 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_destroy(
20577 struct nb_cb_destroy_args *args)
20578 {
20579 switch (args->event) {
20580 case NB_EV_VALIDATE:
20581 case NB_EV_PREPARE:
20582 case NB_EV_ABORT:
20583 break;
20584 case NB_EV_APPLY:
20585 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
20586 }
20587
20588 return NB_OK;
20589 }
20590
20591 /*
20592 * XPath:
20593 * /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
20594 */
20595 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_modify(
20596 struct nb_cb_modify_args *args)
20597 {
20598 switch (args->event) {
20599 case NB_EV_VALIDATE:
20600 case NB_EV_PREPARE:
20601 case NB_EV_ABORT:
20602 case NB_EV_APPLY:
20603 /* TODO: implement me. */
20604 break;
20605 }
20606
20607 return NB_OK;
20608 }
20609
20610 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_destroy(
20611 struct nb_cb_destroy_args *args)
20612 {
20613 switch (args->event) {
20614 case NB_EV_VALIDATE:
20615 case NB_EV_PREPARE:
20616 case NB_EV_ABORT:
20617 case NB_EV_APPLY:
20618 /* TODO: implement me. */
20619 break;
20620 }
20621
20622 return NB_OK;
20623 }
20624
20625 /*
20626 * XPath:
20627 * /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
20628 */
20629 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_modify(
20630 struct nb_cb_modify_args *args)
20631 {
20632 switch (args->event) {
20633 case NB_EV_VALIDATE:
20634 case NB_EV_PREPARE:
20635 case NB_EV_ABORT:
20636 case NB_EV_APPLY:
20637 /* TODO: implement me. */
20638 break;
20639 }
20640
20641 return NB_OK;
20642 }
20643
20644 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_destroy(
20645 struct nb_cb_destroy_args *args)
20646 {
20647 switch (args->event) {
20648 case NB_EV_VALIDATE:
20649 case NB_EV_PREPARE:
20650 case NB_EV_ABORT:
20651 case NB_EV_APPLY:
20652 /* TODO: implement me. */
20653 break;
20654 }
20655
20656 return NB_OK;
20657 }
20658
20659 /*
20660 * XPath:
20661 * /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
20662 */
20663 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_modify(
20664 struct nb_cb_modify_args *args)
20665 {
20666 switch (args->event) {
20667 case NB_EV_VALIDATE:
20668 case NB_EV_PREPARE:
20669 case NB_EV_ABORT:
20670 case NB_EV_APPLY:
20671 /* TODO: implement me. */
20672 break;
20673 }
20674
20675 return NB_OK;
20676 }
20677
20678 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_destroy(
20679 struct nb_cb_destroy_args *args)
20680 {
20681 switch (args->event) {
20682 case NB_EV_VALIDATE:
20683 case NB_EV_PREPARE:
20684 case NB_EV_ABORT:
20685 case NB_EV_APPLY:
20686 /* TODO: implement me. */
20687 break;
20688 }
20689
20690 return NB_OK;
20691 }
20692
20693 /*
20694 * XPath:
20695 * /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
20696 */
20697 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_modify(
20698 struct nb_cb_modify_args *args)
20699 {
20700 switch (args->event) {
20701 case NB_EV_VALIDATE:
20702 case NB_EV_PREPARE:
20703 case NB_EV_ABORT:
20704 case NB_EV_APPLY:
20705 /* TODO: implement me. */
20706 break;
20707 }
20708
20709 return NB_OK;
20710 }
20711
20712 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_destroy(
20713 struct nb_cb_destroy_args *args)
20714 {
20715 switch (args->event) {
20716 case NB_EV_VALIDATE:
20717 case NB_EV_PREPARE:
20718 case NB_EV_ABORT:
20719 case NB_EV_APPLY:
20720 /* TODO: implement me. */
20721 break;
20722 }
20723
20724 return NB_OK;
20725 }
20726
20727 /*
20728 * XPath:
20729 * /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
20730 */
20731 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_modify(
20732 struct nb_cb_modify_args *args)
20733 {
20734 switch (args->event) {
20735 case NB_EV_VALIDATE:
20736 case NB_EV_PREPARE:
20737 case NB_EV_ABORT:
20738 case NB_EV_APPLY:
20739 /* TODO: implement me. */
20740 break;
20741 }
20742
20743 return NB_OK;
20744 }
20745
20746 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_destroy(
20747 struct nb_cb_destroy_args *args)
20748 {
20749 switch (args->event) {
20750 case NB_EV_VALIDATE:
20751 case NB_EV_PREPARE:
20752 case NB_EV_ABORT:
20753 case NB_EV_APPLY:
20754 /* TODO: implement me. */
20755 break;
20756 }
20757
20758 return NB_OK;
20759 }
20760
20761 /*
20762 * XPath:
20763 * /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
20764 */
20765 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_modify(
20766 struct nb_cb_modify_args *args)
20767 {
20768 switch (args->event) {
20769 case NB_EV_VALIDATE:
20770 case NB_EV_PREPARE:
20771 case NB_EV_ABORT:
20772 case NB_EV_APPLY:
20773 /* TODO: implement me. */
20774 break;
20775 }
20776
20777 return NB_OK;
20778 }
20779
20780 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_destroy(
20781 struct nb_cb_destroy_args *args)
20782 {
20783 switch (args->event) {
20784 case NB_EV_VALIDATE:
20785 case NB_EV_PREPARE:
20786 case NB_EV_ABORT:
20787 case NB_EV_APPLY:
20788 /* TODO: implement me. */
20789 break;
20790 }
20791
20792 return NB_OK;
20793 }
20794
20795 /*
20796 * XPath:
20797 * /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
20798 */
20799 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_add_paths_path_type_modify(
20800 struct nb_cb_modify_args *args)
20801 {
20802 switch (args->event) {
20803 case NB_EV_VALIDATE:
20804 case NB_EV_PREPARE:
20805 case NB_EV_ABORT:
20806 case NB_EV_APPLY:
20807 /* TODO: implement me. */
20808 break;
20809 }
20810
20811 return NB_OK;
20812 }
20813
20814 /*
20815 * XPath:
20816 * /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
20817 */
20818 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_modify(
20819 struct nb_cb_modify_args *args)
20820 {
20821 switch (args->event) {
20822 case NB_EV_VALIDATE:
20823 case NB_EV_PREPARE:
20824 case NB_EV_ABORT:
20825 case NB_EV_APPLY:
20826 /* TODO: implement me. */
20827 break;
20828 }
20829
20830 return NB_OK;
20831 }
20832
20833 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_destroy(
20834 struct nb_cb_destroy_args *args)
20835 {
20836 switch (args->event) {
20837 case NB_EV_VALIDATE:
20838 case NB_EV_PREPARE:
20839 case NB_EV_ABORT:
20840 case NB_EV_APPLY:
20841 /* TODO: implement me. */
20842 break;
20843 }
20844
20845 return NB_OK;
20846 }
20847
20848 /*
20849 * XPath:
20850 * /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
20851 */
20852 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_modify(
20853 struct nb_cb_modify_args *args)
20854 {
20855 switch (args->event) {
20856 case NB_EV_VALIDATE:
20857 case NB_EV_PREPARE:
20858 case NB_EV_ABORT:
20859 case NB_EV_APPLY:
20860 /* TODO: implement me. */
20861 break;
20862 }
20863
20864 return NB_OK;
20865 }
20866
20867 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
20868 struct nb_cb_destroy_args *args)
20869 {
20870 switch (args->event) {
20871 case NB_EV_VALIDATE:
20872 case NB_EV_PREPARE:
20873 case NB_EV_ABORT:
20874 case NB_EV_APPLY:
20875 /* TODO: implement me. */
20876 break;
20877 }
20878
20879 return NB_OK;
20880 }
20881
20882 /*
20883 * XPath:
20884 * /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
20885 */
20886 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_replace_peer_as_modify(
20887 struct nb_cb_modify_args *args)
20888 {
20889 switch (args->event) {
20890 case NB_EV_VALIDATE:
20891 case NB_EV_PREPARE:
20892 case NB_EV_ABORT:
20893 return NB_OK;
20894 case NB_EV_APPLY:
20895 return bgp_neighbor_afi_safi_flag_modify(
20896 args, PEER_FLAG_AS_OVERRIDE,
20897 yang_dnode_get_bool(args->dnode, NULL));
20898
20899 break;
20900 }
20901
20902 return NB_OK;
20903 }
20904
20905 /*
20906 * XPath:
20907 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/default-originate/originate
20908 */
20909 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_originate_modify(
20910 struct nb_cb_modify_args *args)
20911 {
20912 switch (args->event) {
20913 case NB_EV_VALIDATE:
20914 case NB_EV_PREPARE:
20915 case NB_EV_ABORT:
20916 case NB_EV_APPLY:
20917 /* TODO: implement me. */
20918 break;
20919 }
20920
20921 return NB_OK;
20922 }
20923
20924 /*
20925 * XPath:
20926 * /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
20927 */
20928 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_modify(
20929 struct nb_cb_modify_args *args)
20930 {
20931 switch (args->event) {
20932 case NB_EV_VALIDATE:
20933 case NB_EV_PREPARE:
20934 case NB_EV_ABORT:
20935 case NB_EV_APPLY:
20936 /* TODO: implement me. */
20937 break;
20938 }
20939
20940 return NB_OK;
20941 }
20942
20943 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_destroy(
20944 struct nb_cb_destroy_args *args)
20945 {
20946 switch (args->event) {
20947 case NB_EV_VALIDATE:
20948 case NB_EV_PREPARE:
20949 case NB_EV_ABORT:
20950 case NB_EV_APPLY:
20951 /* TODO: implement me. */
20952 break;
20953 }
20954
20955 return NB_OK;
20956 }
20957
20958 /*
20959 * XPath:
20960 * /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
20961 */
20962 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
20963 struct nb_cb_modify_args *args)
20964 {
20965 switch (args->event) {
20966 case NB_EV_VALIDATE:
20967 case NB_EV_PREPARE:
20968 case NB_EV_ABORT:
20969 return NB_OK;
20970 case NB_EV_APPLY:
20971 return bgp_neighbor_afi_safi_flag_modify(
20972 args, PEER_FLAG_AS_PATH_UNCHANGED,
20973 yang_dnode_get_bool(args->dnode, NULL));
20974
20975 break;
20976 }
20977
20978 return NB_OK;
20979 }
20980
20981 /*
20982 * XPath:
20983 * /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
20984 */
20985 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
20986 struct nb_cb_modify_args *args)
20987 {
20988 switch (args->event) {
20989 case NB_EV_VALIDATE:
20990 case NB_EV_PREPARE:
20991 case NB_EV_ABORT:
20992 return NB_OK;
20993 case NB_EV_APPLY:
20994 return bgp_neighbor_afi_safi_flag_modify(
20995 args, PEER_FLAG_NEXTHOP_UNCHANGED,
20996 yang_dnode_get_bool(args->dnode, NULL));
20997
20998 break;
20999 }
21000
21001 return NB_OK;
21002 }
21003
21004 /*
21005 * XPath:
21006 * /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
21007 */
21008 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_med_unchanged_modify(
21009 struct nb_cb_modify_args *args)
21010 {
21011 switch (args->event) {
21012 case NB_EV_VALIDATE:
21013 case NB_EV_PREPARE:
21014 case NB_EV_ABORT:
21015 return NB_OK;
21016 case NB_EV_APPLY:
21017 return bgp_neighbor_afi_safi_flag_modify(
21018 args, PEER_FLAG_MED_UNCHANGED,
21019 yang_dnode_get_bool(args->dnode, NULL));
21020
21021 break;
21022 }
21023
21024 return NB_OK;
21025 }
21026
21027 /*
21028 * XPath:
21029 * /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
21030 */
21031 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_modify(
21032 struct nb_cb_modify_args *args)
21033 {
21034 switch (args->event) {
21035 case NB_EV_VALIDATE:
21036 case NB_EV_PREPARE:
21037 case NB_EV_ABORT:
21038 case NB_EV_APPLY:
21039 /* TODO: implement me. */
21040 break;
21041 }
21042
21043 return NB_OK;
21044 }
21045
21046 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_destroy(
21047 struct nb_cb_destroy_args *args)
21048 {
21049 switch (args->event) {
21050 case NB_EV_VALIDATE:
21051 case NB_EV_PREPARE:
21052 case NB_EV_ABORT:
21053 case NB_EV_APPLY:
21054 /* TODO: implement me. */
21055 break;
21056 }
21057
21058 return NB_OK;
21059 }
21060
21061 /*
21062 * XPath:
21063 * /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
21064 */
21065 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_modify(
21066 struct nb_cb_modify_args *args)
21067 {
21068 switch (args->event) {
21069 case NB_EV_VALIDATE:
21070 case NB_EV_PREPARE:
21071 case NB_EV_ABORT:
21072 case NB_EV_APPLY:
21073 /* TODO: implement me. */
21074 break;
21075 }
21076
21077 return NB_OK;
21078 }
21079
21080 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_destroy(
21081 struct nb_cb_destroy_args *args)
21082 {
21083 switch (args->event) {
21084 case NB_EV_VALIDATE:
21085 case NB_EV_PREPARE:
21086 case NB_EV_ABORT:
21087 case NB_EV_APPLY:
21088 /* TODO: implement me. */
21089 break;
21090 }
21091
21092 return NB_OK;
21093 }
21094
21095 /*
21096 * XPath:
21097 * /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
21098 */
21099 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_modify(
21100 struct nb_cb_modify_args *args)
21101 {
21102 switch (args->event) {
21103 case NB_EV_VALIDATE:
21104 case NB_EV_PREPARE:
21105 case NB_EV_ABORT:
21106 case NB_EV_APPLY:
21107 /* TODO: implement me. */
21108 break;
21109 }
21110
21111 return NB_OK;
21112 }
21113
21114 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_destroy(
21115 struct nb_cb_destroy_args *args)
21116 {
21117 switch (args->event) {
21118 case NB_EV_VALIDATE:
21119 case NB_EV_PREPARE:
21120 case NB_EV_ABORT:
21121 case NB_EV_APPLY:
21122 /* TODO: implement me. */
21123 break;
21124 }
21125
21126 return NB_OK;
21127 }
21128
21129 /*
21130 * XPath:
21131 * /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
21132 */
21133 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_create(
21134 struct nb_cb_create_args *args)
21135 {
21136 switch (args->event) {
21137 case NB_EV_VALIDATE:
21138 case NB_EV_PREPARE:
21139 case NB_EV_ABORT:
21140 case NB_EV_APPLY:
21141 /* TODO: implement me. */
21142 break;
21143 }
21144
21145 return NB_OK;
21146 }
21147
21148 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_destroy(
21149 struct nb_cb_destroy_args *args)
21150 {
21151 switch (args->event) {
21152 case NB_EV_VALIDATE:
21153 case NB_EV_PREPARE:
21154 case NB_EV_ABORT:
21155 return NB_OK;
21156 case NB_EV_APPLY:
21157 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
21158 }
21159
21160 return NB_OK;
21161 }
21162
21163 /*
21164 * XPath:
21165 * /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
21166 */
21167 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
21168 struct nb_cb_modify_args *args)
21169 {
21170 switch (args->event) {
21171 case NB_EV_VALIDATE:
21172 case NB_EV_PREPARE:
21173 case NB_EV_ABORT:
21174 case NB_EV_APPLY:
21175 /* TODO: implement me. */
21176 break;
21177 }
21178
21179 return NB_OK;
21180 }
21181
21182 /*
21183 * XPath:
21184 * /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
21185 */
21186 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_force_check_modify(
21187 struct nb_cb_modify_args *args)
21188 {
21189 switch (args->event) {
21190 case NB_EV_VALIDATE:
21191 case NB_EV_PREPARE:
21192 case NB_EV_ABORT:
21193 case NB_EV_APPLY:
21194 /* TODO: implement me. */
21195 break;
21196 }
21197
21198 return NB_OK;
21199 }
21200
21201 /*
21202 * XPath:
21203 * /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
21204 */
21205 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
21206 struct nb_cb_modify_args *args)
21207 {
21208 switch (args->event) {
21209 case NB_EV_VALIDATE:
21210 case NB_EV_PREPARE:
21211 case NB_EV_ABORT:
21212 case NB_EV_APPLY:
21213 /* TODO: implement me. */
21214 break;
21215 }
21216
21217 return NB_OK;
21218 }
21219
21220 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
21221 struct nb_cb_destroy_args *args)
21222 {
21223 switch (args->event) {
21224 case NB_EV_VALIDATE:
21225 case NB_EV_PREPARE:
21226 case NB_EV_ABORT:
21227 case NB_EV_APPLY:
21228 /* TODO: implement me. */
21229 break;
21230 }
21231
21232 return NB_OK;
21233 }
21234
21235 /*
21236 * XPath:
21237 * /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
21238 */
21239 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
21240 struct nb_cb_modify_args *args)
21241 {
21242 switch (args->event) {
21243 case NB_EV_VALIDATE:
21244 case NB_EV_PREPARE:
21245 case NB_EV_ABORT:
21246 case NB_EV_APPLY:
21247 /* TODO: implement me. */
21248 break;
21249 }
21250
21251 return NB_OK;
21252 }
21253
21254 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
21255 struct nb_cb_destroy_args *args)
21256 {
21257 switch (args->event) {
21258 case NB_EV_VALIDATE:
21259 case NB_EV_PREPARE:
21260 case NB_EV_ABORT:
21261 case NB_EV_APPLY:
21262 /* TODO: implement me. */
21263 break;
21264 }
21265
21266 return NB_OK;
21267 }
21268
21269 /*
21270 * XPath:
21271 * /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
21272 */
21273 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
21274 struct nb_cb_modify_args *args)
21275 {
21276 switch (args->event) {
21277 case NB_EV_VALIDATE:
21278 case NB_EV_PREPARE:
21279 case NB_EV_ABORT:
21280 case NB_EV_APPLY:
21281 /* TODO: implement me. */
21282 break;
21283 }
21284
21285 return NB_OK;
21286 }
21287
21288 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
21289 struct nb_cb_destroy_args *args)
21290 {
21291 switch (args->event) {
21292 case NB_EV_VALIDATE:
21293 case NB_EV_PREPARE:
21294 case NB_EV_ABORT:
21295 case NB_EV_APPLY:
21296 /* TODO: implement me. */
21297 break;
21298 }
21299
21300 return NB_OK;
21301 }
21302
21303 /*
21304 * XPath:
21305 * /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
21306 */
21307 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
21308 struct nb_cb_modify_args *args)
21309 {
21310 switch (args->event) {
21311 case NB_EV_VALIDATE:
21312 case NB_EV_PREPARE:
21313 case NB_EV_ABORT:
21314 case NB_EV_APPLY:
21315 /* TODO: implement me. */
21316 break;
21317 }
21318
21319 return NB_OK;
21320 }
21321
21322 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
21323 struct nb_cb_destroy_args *args)
21324 {
21325 switch (args->event) {
21326 case NB_EV_VALIDATE:
21327 case NB_EV_PREPARE:
21328 case NB_EV_ABORT:
21329 case NB_EV_APPLY:
21330 /* TODO: implement me. */
21331 break;
21332 }
21333
21334 return NB_OK;
21335 }
21336
21337 /*
21338 * XPath:
21339 * /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
21340 */
21341 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
21342 struct nb_cb_modify_args *args)
21343 {
21344 switch (args->event) {
21345 case NB_EV_VALIDATE:
21346 case NB_EV_PREPARE:
21347 case NB_EV_ABORT:
21348 case NB_EV_APPLY:
21349 /* TODO: implement me. */
21350 break;
21351 }
21352
21353 return NB_OK;
21354 }
21355
21356 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
21357 struct nb_cb_destroy_args *args)
21358 {
21359 switch (args->event) {
21360 case NB_EV_VALIDATE:
21361 case NB_EV_PREPARE:
21362 case NB_EV_ABORT:
21363 case NB_EV_APPLY:
21364 /* TODO: implement me. */
21365 break;
21366 }
21367
21368 return NB_OK;
21369 }
21370
21371 /*
21372 * XPath:
21373 * /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
21374 */
21375 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
21376 struct nb_cb_modify_args *args)
21377 {
21378 switch (args->event) {
21379 case NB_EV_VALIDATE:
21380 case NB_EV_PREPARE:
21381 case NB_EV_ABORT:
21382 case NB_EV_APPLY:
21383 /* TODO: implement me. */
21384 break;
21385 }
21386
21387 return NB_OK;
21388 }
21389
21390 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
21391 struct nb_cb_destroy_args *args)
21392 {
21393 switch (args->event) {
21394 case NB_EV_VALIDATE:
21395 case NB_EV_PREPARE:
21396 case NB_EV_ABORT:
21397 case NB_EV_APPLY:
21398 /* TODO: implement me. */
21399 break;
21400 }
21401
21402 return NB_OK;
21403 }
21404
21405 /*
21406 * XPath:
21407 * /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
21408 */
21409 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
21410 struct nb_cb_modify_args *args)
21411 {
21412 switch (args->event) {
21413 case NB_EV_VALIDATE:
21414 case NB_EV_PREPARE:
21415 case NB_EV_ABORT:
21416 case NB_EV_APPLY:
21417 /* TODO: implement me. */
21418 break;
21419 }
21420
21421 return NB_OK;
21422 }
21423
21424 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
21425 struct nb_cb_destroy_args *args)
21426 {
21427 switch (args->event) {
21428 case NB_EV_VALIDATE:
21429 case NB_EV_PREPARE:
21430 case NB_EV_ABORT:
21431 case NB_EV_APPLY:
21432 /* TODO: implement me. */
21433 break;
21434 }
21435
21436 return NB_OK;
21437 }
21438
21439 /*
21440 * XPath:
21441 * /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
21442 */
21443 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_modify(
21444 struct nb_cb_modify_args *args)
21445 {
21446 switch (args->event) {
21447 case NB_EV_VALIDATE:
21448 case NB_EV_PREPARE:
21449 case NB_EV_ABORT:
21450 return NB_OK;
21451 case NB_EV_APPLY:
21452 return bgp_neighbor_afi_safi_flag_modify(
21453 args, PEER_FLAG_NEXTHOP_SELF,
21454 yang_dnode_get_bool(args->dnode, NULL));
21455
21456 break;
21457 }
21458
21459 return NB_OK;
21460 }
21461
21462 /*
21463 * XPath:
21464 * /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
21465 */
21466 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_force_modify(
21467 struct nb_cb_modify_args *args)
21468 {
21469 switch (args->event) {
21470 case NB_EV_VALIDATE:
21471 case NB_EV_PREPARE:
21472 case NB_EV_ABORT:
21473 return NB_OK;
21474 case NB_EV_APPLY:
21475 return bgp_neighbor_afi_safi_flag_modify(
21476 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
21477 yang_dnode_get_bool(args->dnode, NULL));
21478
21479 break;
21480 }
21481
21482 return NB_OK;
21483 }
21484
21485 /*
21486 * XPath:
21487 * /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
21488 */
21489 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_modify(
21490 struct nb_cb_modify_args *args)
21491 {
21492 switch (args->event) {
21493 case NB_EV_VALIDATE:
21494 case NB_EV_PREPARE:
21495 case NB_EV_ABORT:
21496 return NB_OK;
21497 case NB_EV_APPLY:
21498 return bgp_neighbor_afi_safi_flag_modify(
21499 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
21500 yang_dnode_get_bool(args->dnode, NULL));
21501
21502 break;
21503 }
21504
21505 return NB_OK;
21506 }
21507
21508 /*
21509 * XPath:
21510 * /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
21511 */
21512 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_replace_modify(
21513 struct nb_cb_modify_args *args)
21514 {
21515 switch (args->event) {
21516 case NB_EV_VALIDATE:
21517 case NB_EV_PREPARE:
21518 case NB_EV_ABORT:
21519 return NB_OK;
21520 case NB_EV_APPLY:
21521 return bgp_neighbor_afi_safi_flag_modify(
21522 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
21523 yang_dnode_get_bool(args->dnode, NULL));
21524
21525 break;
21526 }
21527
21528 return NB_OK;
21529 }
21530
21531 /*
21532 * XPath:
21533 * /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
21534 */
21535 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_modify(
21536 struct nb_cb_modify_args *args)
21537 {
21538 switch (args->event) {
21539 case NB_EV_VALIDATE:
21540 case NB_EV_PREPARE:
21541 case NB_EV_ABORT:
21542 return NB_OK;
21543 case NB_EV_APPLY:
21544 return bgp_neighbor_afi_safi_flag_modify(
21545 args, PEER_FLAG_REMOVE_PRIVATE_AS,
21546 yang_dnode_get_bool(args->dnode, NULL));
21547
21548 break;
21549 }
21550
21551 return NB_OK;
21552 }
21553
21554 /*
21555 * XPath:
21556 * /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
21557 */
21558 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_replace_modify(
21559 struct nb_cb_modify_args *args)
21560 {
21561 switch (args->event) {
21562 case NB_EV_VALIDATE:
21563 case NB_EV_PREPARE:
21564 case NB_EV_ABORT:
21565 return NB_OK;
21566 case NB_EV_APPLY:
21567 return bgp_neighbor_afi_safi_flag_modify(
21568 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
21569 yang_dnode_get_bool(args->dnode, NULL));
21570
21571 break;
21572 }
21573
21574 return NB_OK;
21575 }
21576
21577 /*
21578 * XPath:
21579 * /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
21580 */
21581 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_route_reflector_route_reflector_client_modify(
21582 struct nb_cb_modify_args *args)
21583 {
21584 switch (args->event) {
21585 case NB_EV_VALIDATE:
21586 case NB_EV_PREPARE:
21587 case NB_EV_ABORT:
21588 return NB_OK;
21589 case NB_EV_APPLY:
21590 return bgp_neighbor_afi_safi_flag_modify(
21591 args, PEER_FLAG_REFLECTOR_CLIENT,
21592 yang_dnode_get_bool(args->dnode, NULL));
21593
21594 break;
21595 }
21596
21597 return NB_OK;
21598 }
21599
21600 /*
21601 * XPath:
21602 * /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
21603 */
21604 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_route_server_route_server_client_modify(
21605 struct nb_cb_modify_args *args)
21606 {
21607 switch (args->event) {
21608 case NB_EV_VALIDATE:
21609 case NB_EV_PREPARE:
21610 case NB_EV_ABORT:
21611 return NB_OK;
21612 case NB_EV_APPLY:
21613 return bgp_neighbor_afi_safi_flag_modify(
21614 args, PEER_FLAG_RSERVER_CLIENT,
21615 yang_dnode_get_bool(args->dnode, NULL));
21616
21617 break;
21618 }
21619
21620 return NB_OK;
21621 }
21622
21623 /*
21624 * XPath:
21625 * /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
21626 */
21627 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_community_modify(
21628 struct nb_cb_modify_args *args)
21629 {
21630 switch (args->event) {
21631 case NB_EV_VALIDATE:
21632 case NB_EV_PREPARE:
21633 case NB_EV_ABORT:
21634 return NB_OK;
21635 case NB_EV_APPLY:
21636 return bgp_neighbor_afi_safi_flag_modify(
21637 args, PEER_FLAG_SEND_COMMUNITY,
21638 yang_dnode_get_bool(args->dnode, NULL));
21639
21640 break;
21641 }
21642
21643 return NB_OK;
21644 }
21645
21646 /*
21647 * XPath:
21648 * /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
21649 */
21650 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_ext_community_modify(
21651 struct nb_cb_modify_args *args)
21652 {
21653 switch (args->event) {
21654 case NB_EV_VALIDATE:
21655 case NB_EV_PREPARE:
21656 case NB_EV_ABORT:
21657 return NB_OK;
21658 case NB_EV_APPLY:
21659 return bgp_neighbor_afi_safi_flag_modify(
21660 args, PEER_FLAG_SEND_EXT_COMMUNITY,
21661 yang_dnode_get_bool(args->dnode, NULL));
21662
21663 break;
21664 }
21665
21666 return NB_OK;
21667 }
21668
21669 /*
21670 * XPath:
21671 * /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
21672 */
21673 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_large_community_modify(
21674 struct nb_cb_modify_args *args)
21675 {
21676 switch (args->event) {
21677 case NB_EV_VALIDATE:
21678 case NB_EV_PREPARE:
21679 case NB_EV_ABORT:
21680 return NB_OK;
21681 case NB_EV_APPLY:
21682 return bgp_neighbor_afi_safi_flag_modify(
21683 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
21684 yang_dnode_get_bool(args->dnode, NULL));
21685
21686 break;
21687 }
21688
21689 return NB_OK;
21690 }
21691
21692 /*
21693 * XPath:
21694 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/soft-reconfiguration
21695 */
21696 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_soft_reconfiguration_modify(
21697 struct nb_cb_modify_args *args)
21698 {
21699 switch (args->event) {
21700 case NB_EV_VALIDATE:
21701 case NB_EV_PREPARE:
21702 case NB_EV_ABORT:
21703 return NB_OK;
21704 case NB_EV_APPLY:
21705 return bgp_neighbor_afi_safi_flag_modify(
21706 args, PEER_FLAG_SOFT_RECONFIG,
21707 yang_dnode_get_bool(args->dnode, NULL));
21708
21709 break;
21710 }
21711
21712 return NB_OK;
21713 }
21714
21715 /*
21716 * XPath:
21717 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/weight/weight-attribute
21718 */
21719 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_modify(
21720 struct nb_cb_modify_args *args)
21721 {
21722 switch (args->event) {
21723 case NB_EV_VALIDATE:
21724 case NB_EV_PREPARE:
21725 case NB_EV_ABORT:
21726 return NB_OK;
21727 case NB_EV_APPLY:
21728 return bgp_neighbor_afi_safi_weight_modify(args);
21729
21730 break;
21731 }
21732
21733 return NB_OK;
21734 }
21735
21736 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_destroy(
21737 struct nb_cb_destroy_args *args)
21738 {
21739 switch (args->event) {
21740 case NB_EV_VALIDATE:
21741 case NB_EV_PREPARE:
21742 case NB_EV_ABORT:
21743 return NB_OK;
21744 case NB_EV_APPLY:
21745 return bgp_neighbor_afi_safi_weight_destroy(args);
21746
21747 break;
21748 }
21749
21750 return NB_OK;
21751 }
21752
21753 /*
21754 * XPath:
21755 * /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
21756 */
21757 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_import_modify(
21758 struct nb_cb_modify_args *args)
21759 {
21760 switch (args->event) {
21761 case NB_EV_VALIDATE:
21762 case NB_EV_PREPARE:
21763 case NB_EV_ABORT:
21764 break;
21765 case NB_EV_APPLY:
21766 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
21767 }
21768
21769 return NB_OK;
21770 }
21771
21772 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_import_destroy(
21773 struct nb_cb_destroy_args *args)
21774 {
21775 switch (args->event) {
21776 case NB_EV_VALIDATE:
21777 case NB_EV_PREPARE:
21778 case NB_EV_ABORT:
21779 break;
21780 case NB_EV_APPLY:
21781 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
21782 }
21783
21784 return NB_OK;
21785 }
21786
21787 /*
21788 * XPath:
21789 * /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
21790 */
21791 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_export_modify(
21792 struct nb_cb_modify_args *args)
21793 {
21794 switch (args->event) {
21795 case NB_EV_VALIDATE:
21796 case NB_EV_PREPARE:
21797 case NB_EV_ABORT:
21798 break;
21799 case NB_EV_APPLY:
21800 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
21801 }
21802
21803 return NB_OK;
21804 }
21805
21806 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_export_destroy(
21807 struct nb_cb_destroy_args *args)
21808 {
21809 switch (args->event) {
21810 case NB_EV_VALIDATE:
21811 case NB_EV_PREPARE:
21812 case NB_EV_ABORT:
21813 break;
21814 case NB_EV_APPLY:
21815 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
21816 }
21817
21818 return NB_OK;
21819 }
21820
21821 /*
21822 * XPath:
21823 * /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
21824 */
21825 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_import_modify(
21826 struct nb_cb_modify_args *args)
21827 {
21828 switch (args->event) {
21829 case NB_EV_VALIDATE:
21830 case NB_EV_PREPARE:
21831 case NB_EV_ABORT:
21832 case NB_EV_APPLY:
21833 /* TODO: implement me. */
21834 break;
21835 }
21836
21837 return NB_OK;
21838 }
21839
21840 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_import_destroy(
21841 struct nb_cb_destroy_args *args)
21842 {
21843 switch (args->event) {
21844 case NB_EV_VALIDATE:
21845 case NB_EV_PREPARE:
21846 case NB_EV_ABORT:
21847 case NB_EV_APPLY:
21848 /* TODO: implement me. */
21849 break;
21850 }
21851
21852 return NB_OK;
21853 }
21854
21855 /*
21856 * XPath:
21857 * /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
21858 */
21859 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_export_modify(
21860 struct nb_cb_modify_args *args)
21861 {
21862 switch (args->event) {
21863 case NB_EV_VALIDATE:
21864 case NB_EV_PREPARE:
21865 case NB_EV_ABORT:
21866 break;
21867 case NB_EV_APPLY:
21868 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
21869 }
21870
21871 return NB_OK;
21872 }
21873
21874 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_export_destroy(
21875 struct nb_cb_destroy_args *args)
21876 {
21877 switch (args->event) {
21878 case NB_EV_VALIDATE:
21879 case NB_EV_PREPARE:
21880 case NB_EV_ABORT:
21881 break;
21882 case NB_EV_APPLY:
21883 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
21884 }
21885
21886 return NB_OK;
21887 }
21888
21889 /*
21890 * XPath:
21891 * /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
21892 */
21893 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_import_modify(
21894 struct nb_cb_modify_args *args)
21895 {
21896 switch (args->event) {
21897 case NB_EV_VALIDATE:
21898 case NB_EV_PREPARE:
21899 case NB_EV_ABORT:
21900 case NB_EV_APPLY:
21901 /* TODO: implement me. */
21902 break;
21903 }
21904
21905 return NB_OK;
21906 }
21907
21908 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_import_destroy(
21909 struct nb_cb_destroy_args *args)
21910 {
21911 switch (args->event) {
21912 case NB_EV_VALIDATE:
21913 case NB_EV_PREPARE:
21914 case NB_EV_ABORT:
21915 case NB_EV_APPLY:
21916 /* TODO: implement me. */
21917 break;
21918 }
21919
21920 return NB_OK;
21921 }
21922
21923 /*
21924 * XPath:
21925 * /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
21926 */
21927 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_export_modify(
21928 struct nb_cb_modify_args *args)
21929 {
21930 switch (args->event) {
21931 case NB_EV_VALIDATE:
21932 case NB_EV_PREPARE:
21933 case NB_EV_ABORT:
21934 case NB_EV_APPLY:
21935 /* TODO: implement me. */
21936 break;
21937 }
21938
21939 return NB_OK;
21940 }
21941
21942 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_export_destroy(
21943 struct nb_cb_destroy_args *args)
21944 {
21945 switch (args->event) {
21946 case NB_EV_VALIDATE:
21947 case NB_EV_PREPARE:
21948 case NB_EV_ABORT:
21949 case NB_EV_APPLY:
21950 /* TODO: implement me. */
21951 break;
21952 }
21953
21954 return NB_OK;
21955 }
21956
21957 /*
21958 * XPath:
21959 * /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
21960 */
21961 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_import_modify(
21962 struct nb_cb_modify_args *args)
21963 {
21964 switch (args->event) {
21965 case NB_EV_VALIDATE:
21966 case NB_EV_PREPARE:
21967 case NB_EV_ABORT:
21968 case NB_EV_APPLY:
21969 /* TODO: implement me. */
21970 break;
21971 }
21972
21973 return NB_OK;
21974 }
21975
21976 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_import_destroy(
21977 struct nb_cb_destroy_args *args)
21978 {
21979 switch (args->event) {
21980 case NB_EV_VALIDATE:
21981 case NB_EV_PREPARE:
21982 case NB_EV_ABORT:
21983 case NB_EV_APPLY:
21984 /* TODO: implement me. */
21985 break;
21986 }
21987
21988 return NB_OK;
21989 }
21990
21991 /*
21992 * XPath:
21993 * /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
21994 */
21995 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_export_modify(
21996 struct nb_cb_modify_args *args)
21997 {
21998 switch (args->event) {
21999 case NB_EV_VALIDATE:
22000 case NB_EV_PREPARE:
22001 case NB_EV_ABORT:
22002 case NB_EV_APPLY:
22003 /* TODO: implement me. */
22004 break;
22005 }
22006
22007 return NB_OK;
22008 }
22009
22010 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_export_destroy(
22011 struct nb_cb_destroy_args *args)
22012 {
22013 switch (args->event) {
22014 case NB_EV_VALIDATE:
22015 case NB_EV_PREPARE:
22016 case NB_EV_ABORT:
22017 case NB_EV_APPLY:
22018 /* TODO: implement me. */
22019 break;
22020 }
22021
22022 return NB_OK;
22023 }
22024
22025 /*
22026 * XPath:
22027 * /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
22028 */
22029 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_import_modify(
22030 struct nb_cb_modify_args *args)
22031 {
22032 switch (args->event) {
22033 case NB_EV_VALIDATE:
22034 case NB_EV_PREPARE:
22035 case NB_EV_ABORT:
22036 case NB_EV_APPLY:
22037 /* TODO: implement me. */
22038 break;
22039 }
22040
22041 return NB_OK;
22042 }
22043
22044 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_import_destroy(
22045 struct nb_cb_destroy_args *args)
22046 {
22047 switch (args->event) {
22048 case NB_EV_VALIDATE:
22049 case NB_EV_PREPARE:
22050 case NB_EV_ABORT:
22051 case NB_EV_APPLY:
22052 /* TODO: implement me. */
22053 break;
22054 }
22055
22056 return NB_OK;
22057 }
22058
22059 /*
22060 * XPath:
22061 * /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
22062 */
22063 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_export_modify(
22064 struct nb_cb_modify_args *args)
22065 {
22066 switch (args->event) {
22067 case NB_EV_VALIDATE:
22068 case NB_EV_PREPARE:
22069 case NB_EV_ABORT:
22070 case NB_EV_APPLY:
22071 /* TODO: implement me. */
22072 break;
22073 }
22074
22075 return NB_OK;
22076 }
22077
22078 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_export_destroy(
22079 struct nb_cb_destroy_args *args)
22080 {
22081 switch (args->event) {
22082 case NB_EV_VALIDATE:
22083 case NB_EV_PREPARE:
22084 case NB_EV_ABORT:
22085 case NB_EV_APPLY:
22086 /* TODO: implement me. */
22087 break;
22088 }
22089
22090 return NB_OK;
22091 }
22092
22093 /*
22094 * XPath:
22095 * /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
22096 */
22097 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_add_paths_path_type_modify(
22098 struct nb_cb_modify_args *args)
22099 {
22100 switch (args->event) {
22101 case NB_EV_VALIDATE:
22102 case NB_EV_PREPARE:
22103 case NB_EV_ABORT:
22104 case NB_EV_APPLY:
22105 /* TODO: implement me. */
22106 break;
22107 }
22108
22109 return NB_OK;
22110 }
22111
22112 /*
22113 * XPath:
22114 * /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
22115 */
22116 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_modify(
22117 struct nb_cb_modify_args *args)
22118 {
22119 switch (args->event) {
22120 case NB_EV_VALIDATE:
22121 case NB_EV_PREPARE:
22122 case NB_EV_ABORT:
22123 case NB_EV_APPLY:
22124 /* TODO: implement me. */
22125 break;
22126 }
22127
22128 return NB_OK;
22129 }
22130
22131 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_destroy(
22132 struct nb_cb_destroy_args *args)
22133 {
22134 switch (args->event) {
22135 case NB_EV_VALIDATE:
22136 case NB_EV_PREPARE:
22137 case NB_EV_ABORT:
22138 case NB_EV_APPLY:
22139 /* TODO: implement me. */
22140 break;
22141 }
22142
22143 return NB_OK;
22144 }
22145
22146 /*
22147 * XPath:
22148 * /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
22149 */
22150 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
22151 struct nb_cb_modify_args *args)
22152 {
22153 switch (args->event) {
22154 case NB_EV_VALIDATE:
22155 case NB_EV_PREPARE:
22156 case NB_EV_ABORT:
22157 case NB_EV_APPLY:
22158 /* TODO: implement me. */
22159 break;
22160 }
22161
22162 return NB_OK;
22163 }
22164
22165 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
22166 struct nb_cb_destroy_args *args)
22167 {
22168 switch (args->event) {
22169 case NB_EV_VALIDATE:
22170 case NB_EV_PREPARE:
22171 case NB_EV_ABORT:
22172 case NB_EV_APPLY:
22173 /* TODO: implement me. */
22174 break;
22175 }
22176
22177 return NB_OK;
22178 }
22179
22180 /*
22181 * XPath:
22182 * /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
22183 */
22184 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_replace_peer_as_modify(
22185 struct nb_cb_modify_args *args)
22186 {
22187 switch (args->event) {
22188 case NB_EV_VALIDATE:
22189 case NB_EV_PREPARE:
22190 case NB_EV_ABORT:
22191 return NB_OK;
22192 case NB_EV_APPLY:
22193 return bgp_neighbor_afi_safi_flag_modify(
22194 args, PEER_FLAG_AS_OVERRIDE,
22195 yang_dnode_get_bool(args->dnode, NULL));
22196
22197 break;
22198 }
22199
22200 return NB_OK;
22201 }
22202
22203 /*
22204 * XPath:
22205 * /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
22206 */
22207 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
22208 struct nb_cb_modify_args *args)
22209 {
22210 switch (args->event) {
22211 case NB_EV_VALIDATE:
22212 case NB_EV_PREPARE:
22213 case NB_EV_ABORT:
22214 return NB_OK;
22215 case NB_EV_APPLY:
22216 return bgp_neighbor_afi_safi_flag_modify(
22217 args, PEER_FLAG_AS_PATH_UNCHANGED,
22218 yang_dnode_get_bool(args->dnode, NULL));
22219
22220 break;
22221 }
22222
22223 return NB_OK;
22224 }
22225
22226 /*
22227 * XPath:
22228 * /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
22229 */
22230 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
22231 struct nb_cb_modify_args *args)
22232 {
22233 switch (args->event) {
22234 case NB_EV_VALIDATE:
22235 case NB_EV_PREPARE:
22236 case NB_EV_ABORT:
22237 return NB_OK;
22238 case NB_EV_APPLY:
22239 return bgp_neighbor_afi_safi_flag_modify(
22240 args, PEER_FLAG_NEXTHOP_UNCHANGED,
22241 yang_dnode_get_bool(args->dnode, NULL));
22242
22243 break;
22244 }
22245
22246 return NB_OK;
22247 }
22248
22249 /*
22250 * XPath:
22251 * /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
22252 */
22253 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_med_unchanged_modify(
22254 struct nb_cb_modify_args *args)
22255 {
22256 switch (args->event) {
22257 case NB_EV_VALIDATE:
22258 case NB_EV_PREPARE:
22259 case NB_EV_ABORT:
22260 return NB_OK;
22261 case NB_EV_APPLY:
22262 return bgp_neighbor_afi_safi_flag_modify(
22263 args, PEER_FLAG_MED_UNCHANGED,
22264 yang_dnode_get_bool(args->dnode, NULL));
22265
22266 break;
22267 }
22268
22269 return NB_OK;
22270 }
22271
22272 /*
22273 * XPath:
22274 * /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
22275 */
22276 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_create(
22277 struct nb_cb_create_args *args)
22278 {
22279 switch (args->event) {
22280 case NB_EV_VALIDATE:
22281 case NB_EV_PREPARE:
22282 case NB_EV_ABORT:
22283 case NB_EV_APPLY:
22284 /* TODO: implement me. */
22285 break;
22286 }
22287
22288 return NB_OK;
22289 }
22290
22291 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_destroy(
22292 struct nb_cb_destroy_args *args)
22293 {
22294 switch (args->event) {
22295 case NB_EV_VALIDATE:
22296 case NB_EV_PREPARE:
22297 case NB_EV_ABORT:
22298 return NB_OK;
22299 case NB_EV_APPLY:
22300 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
22301 }
22302
22303 return NB_OK;
22304 }
22305
22306 /*
22307 * XPath:
22308 * /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
22309 */
22310 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
22311 struct nb_cb_modify_args *args)
22312 {
22313 switch (args->event) {
22314 case NB_EV_VALIDATE:
22315 case NB_EV_PREPARE:
22316 case NB_EV_ABORT:
22317 case NB_EV_APPLY:
22318 /* TODO: implement me. */
22319 break;
22320 }
22321
22322 return NB_OK;
22323 }
22324
22325 /*
22326 * XPath:
22327 * /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
22328 */
22329 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
22330 struct nb_cb_modify_args *args)
22331 {
22332 switch (args->event) {
22333 case NB_EV_VALIDATE:
22334 case NB_EV_PREPARE:
22335 case NB_EV_ABORT:
22336 case NB_EV_APPLY:
22337 /* TODO: implement me. */
22338 break;
22339 }
22340
22341 return NB_OK;
22342 }
22343
22344 /*
22345 * XPath:
22346 * /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
22347 */
22348 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
22349 struct nb_cb_modify_args *args)
22350 {
22351 switch (args->event) {
22352 case NB_EV_VALIDATE:
22353 case NB_EV_PREPARE:
22354 case NB_EV_ABORT:
22355 case NB_EV_APPLY:
22356 /* TODO: implement me. */
22357 break;
22358 }
22359
22360 return NB_OK;
22361 }
22362
22363 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
22364 struct nb_cb_destroy_args *args)
22365 {
22366 switch (args->event) {
22367 case NB_EV_VALIDATE:
22368 case NB_EV_PREPARE:
22369 case NB_EV_ABORT:
22370 case NB_EV_APPLY:
22371 /* TODO: implement me. */
22372 break;
22373 }
22374
22375 return NB_OK;
22376 }
22377
22378 /*
22379 * XPath:
22380 * /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
22381 */
22382 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
22383 struct nb_cb_modify_args *args)
22384 {
22385 switch (args->event) {
22386 case NB_EV_VALIDATE:
22387 case NB_EV_PREPARE:
22388 case NB_EV_ABORT:
22389 case NB_EV_APPLY:
22390 /* TODO: implement me. */
22391 break;
22392 }
22393
22394 return NB_OK;
22395 }
22396
22397 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
22398 struct nb_cb_destroy_args *args)
22399 {
22400 switch (args->event) {
22401 case NB_EV_VALIDATE:
22402 case NB_EV_PREPARE:
22403 case NB_EV_ABORT:
22404 case NB_EV_APPLY:
22405 /* TODO: implement me. */
22406 break;
22407 }
22408
22409 return NB_OK;
22410 }
22411
22412 /*
22413 * XPath:
22414 * /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
22415 */
22416 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
22417 struct nb_cb_modify_args *args)
22418 {
22419 switch (args->event) {
22420 case NB_EV_VALIDATE:
22421 case NB_EV_PREPARE:
22422 case NB_EV_ABORT:
22423 case NB_EV_APPLY:
22424 /* TODO: implement me. */
22425 break;
22426 }
22427
22428 return NB_OK;
22429 }
22430
22431 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
22432 struct nb_cb_destroy_args *args)
22433 {
22434 switch (args->event) {
22435 case NB_EV_VALIDATE:
22436 case NB_EV_PREPARE:
22437 case NB_EV_ABORT:
22438 case NB_EV_APPLY:
22439 /* TODO: implement me. */
22440 break;
22441 }
22442
22443 return NB_OK;
22444 }
22445
22446 /*
22447 * XPath:
22448 * /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
22449 */
22450 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
22451 struct nb_cb_modify_args *args)
22452 {
22453 switch (args->event) {
22454 case NB_EV_VALIDATE:
22455 case NB_EV_PREPARE:
22456 case NB_EV_ABORT:
22457 case NB_EV_APPLY:
22458 /* TODO: implement me. */
22459 break;
22460 }
22461
22462 return NB_OK;
22463 }
22464
22465 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
22466 struct nb_cb_destroy_args *args)
22467 {
22468 switch (args->event) {
22469 case NB_EV_VALIDATE:
22470 case NB_EV_PREPARE:
22471 case NB_EV_ABORT:
22472 case NB_EV_APPLY:
22473 /* TODO: implement me. */
22474 break;
22475 }
22476
22477 return NB_OK;
22478 }
22479
22480 /*
22481 * XPath:
22482 * /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
22483 */
22484 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
22485 struct nb_cb_modify_args *args)
22486 {
22487 switch (args->event) {
22488 case NB_EV_VALIDATE:
22489 case NB_EV_PREPARE:
22490 case NB_EV_ABORT:
22491 case NB_EV_APPLY:
22492 /* TODO: implement me. */
22493 break;
22494 }
22495
22496 return NB_OK;
22497 }
22498
22499 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
22500 struct nb_cb_destroy_args *args)
22501 {
22502 switch (args->event) {
22503 case NB_EV_VALIDATE:
22504 case NB_EV_PREPARE:
22505 case NB_EV_ABORT:
22506 case NB_EV_APPLY:
22507 /* TODO: implement me. */
22508 break;
22509 }
22510
22511 return NB_OK;
22512 }
22513
22514 /*
22515 * XPath:
22516 * /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
22517 */
22518 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
22519 struct nb_cb_modify_args *args)
22520 {
22521 switch (args->event) {
22522 case NB_EV_VALIDATE:
22523 case NB_EV_PREPARE:
22524 case NB_EV_ABORT:
22525 case NB_EV_APPLY:
22526 /* TODO: implement me. */
22527 break;
22528 }
22529
22530 return NB_OK;
22531 }
22532
22533 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
22534 struct nb_cb_destroy_args *args)
22535 {
22536 switch (args->event) {
22537 case NB_EV_VALIDATE:
22538 case NB_EV_PREPARE:
22539 case NB_EV_ABORT:
22540 case NB_EV_APPLY:
22541 /* TODO: implement me. */
22542 break;
22543 }
22544
22545 return NB_OK;
22546 }
22547
22548 /*
22549 * XPath:
22550 * /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
22551 */
22552 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
22553 struct nb_cb_modify_args *args)
22554 {
22555 switch (args->event) {
22556 case NB_EV_VALIDATE:
22557 case NB_EV_PREPARE:
22558 case NB_EV_ABORT:
22559 case NB_EV_APPLY:
22560 /* TODO: implement me. */
22561 break;
22562 }
22563
22564 return NB_OK;
22565 }
22566
22567 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
22568 struct nb_cb_destroy_args *args)
22569 {
22570 switch (args->event) {
22571 case NB_EV_VALIDATE:
22572 case NB_EV_PREPARE:
22573 case NB_EV_ABORT:
22574 case NB_EV_APPLY:
22575 /* TODO: implement me. */
22576 break;
22577 }
22578
22579 return NB_OK;
22580 }
22581
22582 /*
22583 * XPath:
22584 * /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
22585 */
22586 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_modify(
22587 struct nb_cb_modify_args *args)
22588 {
22589 switch (args->event) {
22590 case NB_EV_VALIDATE:
22591 case NB_EV_PREPARE:
22592 case NB_EV_ABORT:
22593 return NB_OK;
22594 case NB_EV_APPLY:
22595 return bgp_neighbor_afi_safi_flag_modify(
22596 args, PEER_FLAG_NEXTHOP_SELF,
22597 yang_dnode_get_bool(args->dnode, NULL));
22598
22599 break;
22600 }
22601
22602 return NB_OK;
22603 }
22604
22605 /*
22606 * XPath:
22607 * /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
22608 */
22609 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
22610 struct nb_cb_modify_args *args)
22611 {
22612 switch (args->event) {
22613 case NB_EV_VALIDATE:
22614 case NB_EV_PREPARE:
22615 case NB_EV_ABORT:
22616 return NB_OK;
22617 case NB_EV_APPLY:
22618 return bgp_neighbor_afi_safi_flag_modify(
22619 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
22620 yang_dnode_get_bool(args->dnode, NULL));
22621
22622 break;
22623 }
22624
22625 return NB_OK;
22626 }
22627
22628 /*
22629 * XPath:
22630 * /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
22631 */
22632 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_modify(
22633 struct nb_cb_modify_args *args)
22634 {
22635 switch (args->event) {
22636 case NB_EV_VALIDATE:
22637 case NB_EV_PREPARE:
22638 case NB_EV_ABORT:
22639 return NB_OK;
22640 case NB_EV_APPLY:
22641 return bgp_neighbor_afi_safi_flag_modify(
22642 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
22643 yang_dnode_get_bool(args->dnode, NULL));
22644
22645 break;
22646 }
22647
22648 return NB_OK;
22649 }
22650
22651 /*
22652 * XPath:
22653 * /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
22654 */
22655 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
22656 struct nb_cb_modify_args *args)
22657 {
22658 switch (args->event) {
22659 case NB_EV_VALIDATE:
22660 case NB_EV_PREPARE:
22661 case NB_EV_ABORT:
22662 return NB_OK;
22663 case NB_EV_APPLY:
22664 return bgp_neighbor_afi_safi_flag_modify(
22665 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
22666 yang_dnode_get_bool(args->dnode, NULL));
22667
22668 break;
22669 }
22670
22671 return NB_OK;
22672 }
22673
22674 /*
22675 * XPath:
22676 * /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
22677 */
22678 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_modify(
22679 struct nb_cb_modify_args *args)
22680 {
22681 switch (args->event) {
22682 case NB_EV_VALIDATE:
22683 case NB_EV_PREPARE:
22684 case NB_EV_ABORT:
22685 return NB_OK;
22686 case NB_EV_APPLY:
22687 return bgp_neighbor_afi_safi_flag_modify(
22688 args, PEER_FLAG_REMOVE_PRIVATE_AS,
22689 yang_dnode_get_bool(args->dnode, NULL));
22690
22691 break;
22692 }
22693
22694 return NB_OK;
22695 }
22696
22697 /*
22698 * XPath:
22699 * /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
22700 */
22701 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_replace_modify(
22702 struct nb_cb_modify_args *args)
22703 {
22704 switch (args->event) {
22705 case NB_EV_VALIDATE:
22706 case NB_EV_PREPARE:
22707 case NB_EV_ABORT:
22708 return NB_OK;
22709 case NB_EV_APPLY:
22710 return bgp_neighbor_afi_safi_flag_modify(
22711 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
22712 yang_dnode_get_bool(args->dnode, NULL));
22713
22714 break;
22715 }
22716
22717 return NB_OK;
22718 }
22719
22720 /*
22721 * XPath:
22722 * /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
22723 */
22724 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_reflector_route_reflector_client_modify(
22725 struct nb_cb_modify_args *args)
22726 {
22727 switch (args->event) {
22728 case NB_EV_VALIDATE:
22729 case NB_EV_PREPARE:
22730 case NB_EV_ABORT:
22731 return NB_OK;
22732 case NB_EV_APPLY:
22733 return bgp_neighbor_afi_safi_flag_modify(
22734 args, PEER_FLAG_REFLECTOR_CLIENT,
22735 yang_dnode_get_bool(args->dnode, NULL));
22736
22737 break;
22738 }
22739
22740 return NB_OK;
22741 }
22742
22743 /*
22744 * XPath:
22745 * /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
22746 */
22747 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_server_route_server_client_modify(
22748 struct nb_cb_modify_args *args)
22749 {
22750 switch (args->event) {
22751 case NB_EV_VALIDATE:
22752 case NB_EV_PREPARE:
22753 case NB_EV_ABORT:
22754 return NB_OK;
22755 case NB_EV_APPLY:
22756 return bgp_neighbor_afi_safi_flag_modify(
22757 args, PEER_FLAG_RSERVER_CLIENT,
22758 yang_dnode_get_bool(args->dnode, NULL));
22759
22760 break;
22761 }
22762
22763 return NB_OK;
22764 }
22765
22766 /*
22767 * XPath:
22768 * /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
22769 */
22770 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_community_modify(
22771 struct nb_cb_modify_args *args)
22772 {
22773 switch (args->event) {
22774 case NB_EV_VALIDATE:
22775 case NB_EV_PREPARE:
22776 case NB_EV_ABORT:
22777 return NB_OK;
22778 case NB_EV_APPLY:
22779 return bgp_neighbor_afi_safi_flag_modify(
22780 args, PEER_FLAG_SEND_COMMUNITY,
22781 yang_dnode_get_bool(args->dnode, NULL));
22782
22783 break;
22784 }
22785
22786 return NB_OK;
22787 }
22788
22789 /*
22790 * XPath:
22791 * /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
22792 */
22793 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_ext_community_modify(
22794 struct nb_cb_modify_args *args)
22795 {
22796 switch (args->event) {
22797 case NB_EV_VALIDATE:
22798 case NB_EV_PREPARE:
22799 case NB_EV_ABORT:
22800 return NB_OK;
22801 case NB_EV_APPLY:
22802 return bgp_neighbor_afi_safi_flag_modify(
22803 args, PEER_FLAG_SEND_EXT_COMMUNITY,
22804 yang_dnode_get_bool(args->dnode, NULL));
22805
22806 break;
22807 }
22808
22809 return NB_OK;
22810 }
22811
22812 /*
22813 * XPath:
22814 * /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
22815 */
22816 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_large_community_modify(
22817 struct nb_cb_modify_args *args)
22818 {
22819 switch (args->event) {
22820 case NB_EV_VALIDATE:
22821 case NB_EV_PREPARE:
22822 case NB_EV_ABORT:
22823 return NB_OK;
22824 case NB_EV_APPLY:
22825 return bgp_neighbor_afi_safi_flag_modify(
22826 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
22827 yang_dnode_get_bool(args->dnode, NULL));
22828
22829 break;
22830 }
22831
22832 return NB_OK;
22833 }
22834
22835 /*
22836 * XPath:
22837 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/soft-reconfiguration
22838 */
22839 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_soft_reconfiguration_modify(
22840 struct nb_cb_modify_args *args)
22841 {
22842 switch (args->event) {
22843 case NB_EV_VALIDATE:
22844 case NB_EV_PREPARE:
22845 case NB_EV_ABORT:
22846 return NB_OK;
22847 case NB_EV_APPLY:
22848 return bgp_neighbor_afi_safi_flag_modify(
22849 args, PEER_FLAG_SOFT_RECONFIG,
22850 yang_dnode_get_bool(args->dnode, NULL));
22851
22852 break;
22853 }
22854
22855 return NB_OK;
22856 }
22857
22858 /*
22859 * XPath:
22860 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/weight/weight-attribute
22861 */
22862 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_modify(
22863 struct nb_cb_modify_args *args)
22864 {
22865 switch (args->event) {
22866 case NB_EV_VALIDATE:
22867 case NB_EV_PREPARE:
22868 case NB_EV_ABORT:
22869 return NB_OK;
22870 case NB_EV_APPLY:
22871 return bgp_neighbor_afi_safi_weight_modify(args);
22872
22873 break;
22874 }
22875
22876 return NB_OK;
22877 }
22878
22879 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_destroy(
22880 struct nb_cb_destroy_args *args)
22881 {
22882 switch (args->event) {
22883 case NB_EV_VALIDATE:
22884 case NB_EV_PREPARE:
22885 case NB_EV_ABORT:
22886 return NB_OK;
22887 case NB_EV_APPLY:
22888 return bgp_neighbor_afi_safi_weight_destroy(args);
22889
22890 break;
22891 }
22892
22893 return NB_OK;
22894 }
22895
22896 /*
22897 * XPath:
22898 * /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
22899 */
22900 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_import_modify(
22901 struct nb_cb_modify_args *args)
22902 {
22903 switch (args->event) {
22904 case NB_EV_VALIDATE:
22905 case NB_EV_PREPARE:
22906 case NB_EV_ABORT:
22907 break;
22908 case NB_EV_APPLY:
22909 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
22910 }
22911
22912 return NB_OK;
22913 }
22914
22915 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_import_destroy(
22916 struct nb_cb_destroy_args *args)
22917 {
22918 switch (args->event) {
22919 case NB_EV_VALIDATE:
22920 case NB_EV_PREPARE:
22921 case NB_EV_ABORT:
22922 break;
22923 case NB_EV_APPLY:
22924 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
22925 }
22926
22927 return NB_OK;
22928 }
22929
22930 /*
22931 * XPath:
22932 * /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
22933 */
22934 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_export_modify(
22935 struct nb_cb_modify_args *args)
22936 {
22937 switch (args->event) {
22938 case NB_EV_VALIDATE:
22939 case NB_EV_PREPARE:
22940 case NB_EV_ABORT:
22941 break;
22942 case NB_EV_APPLY:
22943 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
22944 }
22945
22946 return NB_OK;
22947 }
22948
22949 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_export_destroy(
22950 struct nb_cb_destroy_args *args)
22951 {
22952 switch (args->event) {
22953 case NB_EV_VALIDATE:
22954 case NB_EV_PREPARE:
22955 case NB_EV_ABORT:
22956 break;
22957 case NB_EV_APPLY:
22958 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
22959 }
22960
22961 return NB_OK;
22962 }
22963
22964 /*
22965 * XPath:
22966 * /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
22967 */
22968 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_import_modify(
22969 struct nb_cb_modify_args *args)
22970 {
22971 switch (args->event) {
22972 case NB_EV_VALIDATE:
22973 case NB_EV_PREPARE:
22974 case NB_EV_ABORT:
22975 return NB_OK;
22976 case NB_EV_APPLY:
22977 bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
22978 break;
22979 }
22980
22981 return NB_OK;
22982 }
22983
22984 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_import_destroy(
22985 struct nb_cb_destroy_args *args)
22986 {
22987 switch (args->event) {
22988 case NB_EV_VALIDATE:
22989 case NB_EV_PREPARE:
22990 case NB_EV_ABORT:
22991 return NB_OK;
22992 case NB_EV_APPLY:
22993 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
22994 }
22995
22996 return NB_OK;
22997 }
22998
22999 /*
23000 * XPath:
23001 * /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
23002 */
23003 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_export_modify(
23004 struct nb_cb_modify_args *args)
23005 {
23006 switch (args->event) {
23007 case NB_EV_VALIDATE:
23008 case NB_EV_PREPARE:
23009 case NB_EV_ABORT:
23010 break;
23011 case NB_EV_APPLY:
23012 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
23013 }
23014
23015 return NB_OK;
23016 }
23017
23018 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_export_destroy(
23019 struct nb_cb_destroy_args *args)
23020 {
23021 switch (args->event) {
23022 case NB_EV_VALIDATE:
23023 case NB_EV_PREPARE:
23024 case NB_EV_ABORT:
23025 break;
23026 case NB_EV_APPLY:
23027 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
23028 }
23029
23030 return NB_OK;
23031 }
23032
23033 /*
23034 * XPath:
23035 * /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
23036 */
23037 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_import_modify(
23038 struct nb_cb_modify_args *args)
23039 {
23040 switch (args->event) {
23041 case NB_EV_VALIDATE:
23042 case NB_EV_PREPARE:
23043 case NB_EV_ABORT:
23044 case NB_EV_APPLY:
23045 /* TODO: implement me. */
23046 break;
23047 }
23048
23049 return NB_OK;
23050 }
23051
23052 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_import_destroy(
23053 struct nb_cb_destroy_args *args)
23054 {
23055 switch (args->event) {
23056 case NB_EV_VALIDATE:
23057 case NB_EV_PREPARE:
23058 case NB_EV_ABORT:
23059 case NB_EV_APPLY:
23060 /* TODO: implement me. */
23061 break;
23062 }
23063
23064 return NB_OK;
23065 }
23066
23067 /*
23068 * XPath:
23069 * /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
23070 */
23071 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_export_modify(
23072 struct nb_cb_modify_args *args)
23073 {
23074 switch (args->event) {
23075 case NB_EV_VALIDATE:
23076 case NB_EV_PREPARE:
23077 case NB_EV_ABORT:
23078 case NB_EV_APPLY:
23079 /* TODO: implement me. */
23080 break;
23081 }
23082
23083 return NB_OK;
23084 }
23085
23086 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_export_destroy(
23087 struct nb_cb_destroy_args *args)
23088 {
23089 switch (args->event) {
23090 case NB_EV_VALIDATE:
23091 case NB_EV_PREPARE:
23092 case NB_EV_ABORT:
23093 case NB_EV_APPLY:
23094 /* TODO: implement me. */
23095 break;
23096 }
23097
23098 return NB_OK;
23099 }
23100
23101 /*
23102 * XPath:
23103 * /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
23104 */
23105 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_import_modify(
23106 struct nb_cb_modify_args *args)
23107 {
23108 switch (args->event) {
23109 case NB_EV_VALIDATE:
23110 case NB_EV_PREPARE:
23111 case NB_EV_ABORT:
23112 case NB_EV_APPLY:
23113 /* TODO: implement me. */
23114 break;
23115 }
23116
23117 return NB_OK;
23118 }
23119
23120 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_import_destroy(
23121 struct nb_cb_destroy_args *args)
23122 {
23123 switch (args->event) {
23124 case NB_EV_VALIDATE:
23125 case NB_EV_PREPARE:
23126 case NB_EV_ABORT:
23127 case NB_EV_APPLY:
23128 /* TODO: implement me. */
23129 break;
23130 }
23131
23132 return NB_OK;
23133 }
23134
23135 /*
23136 * XPath:
23137 * /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
23138 */
23139 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_export_modify(
23140 struct nb_cb_modify_args *args)
23141 {
23142 switch (args->event) {
23143 case NB_EV_VALIDATE:
23144 case NB_EV_PREPARE:
23145 case NB_EV_ABORT:
23146 case NB_EV_APPLY:
23147 /* TODO: implement me. */
23148 break;
23149 }
23150
23151 return NB_OK;
23152 }
23153
23154 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_export_destroy(
23155 struct nb_cb_destroy_args *args)
23156 {
23157 switch (args->event) {
23158 case NB_EV_VALIDATE:
23159 case NB_EV_PREPARE:
23160 case NB_EV_ABORT:
23161 case NB_EV_APPLY:
23162 /* TODO: implement me. */
23163 break;
23164 }
23165
23166 return NB_OK;
23167 }
23168
23169 /*
23170 * XPath:
23171 * /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
23172 */
23173 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_import_modify(
23174 struct nb_cb_modify_args *args)
23175 {
23176 switch (args->event) {
23177 case NB_EV_VALIDATE:
23178 case NB_EV_PREPARE:
23179 case NB_EV_ABORT:
23180 case NB_EV_APPLY:
23181 /* TODO: implement me. */
23182 break;
23183 }
23184
23185 return NB_OK;
23186 }
23187
23188 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_import_destroy(
23189 struct nb_cb_destroy_args *args)
23190 {
23191 switch (args->event) {
23192 case NB_EV_VALIDATE:
23193 case NB_EV_PREPARE:
23194 case NB_EV_ABORT:
23195 case NB_EV_APPLY:
23196 /* TODO: implement me. */
23197 break;
23198 }
23199
23200 return NB_OK;
23201 }
23202
23203 /*
23204 * XPath:
23205 * /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
23206 */
23207 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_export_modify(
23208 struct nb_cb_modify_args *args)
23209 {
23210 switch (args->event) {
23211 case NB_EV_VALIDATE:
23212 case NB_EV_PREPARE:
23213 case NB_EV_ABORT:
23214 case NB_EV_APPLY:
23215 /* TODO: implement me. */
23216 break;
23217 }
23218
23219 return NB_OK;
23220 }
23221
23222 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_export_destroy(
23223 struct nb_cb_destroy_args *args)
23224 {
23225 switch (args->event) {
23226 case NB_EV_VALIDATE:
23227 case NB_EV_PREPARE:
23228 case NB_EV_ABORT:
23229 case NB_EV_APPLY:
23230 /* TODO: implement me. */
23231 break;
23232 }
23233
23234 return NB_OK;
23235 }
23236
23237 /*
23238 * XPath:
23239 * /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
23240 */
23241 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_add_paths_path_type_modify(
23242 struct nb_cb_modify_args *args)
23243 {
23244 switch (args->event) {
23245 case NB_EV_VALIDATE:
23246 case NB_EV_PREPARE:
23247 case NB_EV_ABORT:
23248 case NB_EV_APPLY:
23249 /* TODO: implement me. */
23250 break;
23251 }
23252
23253 return NB_OK;
23254 }
23255
23256 /*
23257 * XPath:
23258 * /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
23259 */
23260 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_modify(
23261 struct nb_cb_modify_args *args)
23262 {
23263 switch (args->event) {
23264 case NB_EV_VALIDATE:
23265 case NB_EV_PREPARE:
23266 case NB_EV_ABORT:
23267 case NB_EV_APPLY:
23268 /* TODO: implement me. */
23269 break;
23270 }
23271
23272 return NB_OK;
23273 }
23274
23275 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_destroy(
23276 struct nb_cb_destroy_args *args)
23277 {
23278 switch (args->event) {
23279 case NB_EV_VALIDATE:
23280 case NB_EV_PREPARE:
23281 case NB_EV_ABORT:
23282 case NB_EV_APPLY:
23283 /* TODO: implement me. */
23284 break;
23285 }
23286
23287 return NB_OK;
23288 }
23289
23290 /*
23291 * XPath:
23292 * /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
23293 */
23294 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
23295 struct nb_cb_modify_args *args)
23296 {
23297 switch (args->event) {
23298 case NB_EV_VALIDATE:
23299 case NB_EV_PREPARE:
23300 case NB_EV_ABORT:
23301 case NB_EV_APPLY:
23302 /* TODO: implement me. */
23303 break;
23304 }
23305
23306 return NB_OK;
23307 }
23308
23309 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
23310 struct nb_cb_destroy_args *args)
23311 {
23312 switch (args->event) {
23313 case NB_EV_VALIDATE:
23314 case NB_EV_PREPARE:
23315 case NB_EV_ABORT:
23316 case NB_EV_APPLY:
23317 /* TODO: implement me. */
23318 break;
23319 }
23320
23321 return NB_OK;
23322 }
23323
23324 /*
23325 * XPath:
23326 * /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
23327 */
23328 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_replace_peer_as_modify(
23329 struct nb_cb_modify_args *args)
23330 {
23331 switch (args->event) {
23332 case NB_EV_VALIDATE:
23333 case NB_EV_PREPARE:
23334 case NB_EV_ABORT:
23335 return NB_OK;
23336 case NB_EV_APPLY:
23337 return bgp_neighbor_afi_safi_flag_modify(
23338 args, PEER_FLAG_AS_OVERRIDE,
23339 yang_dnode_get_bool(args->dnode, NULL));
23340
23341 break;
23342 }
23343
23344 return NB_OK;
23345 }
23346
23347 /*
23348 * XPath:
23349 * /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
23350 */
23351 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
23352 struct nb_cb_modify_args *args)
23353 {
23354 switch (args->event) {
23355 case NB_EV_VALIDATE:
23356 case NB_EV_PREPARE:
23357 case NB_EV_ABORT:
23358 return NB_OK;
23359 case NB_EV_APPLY:
23360 return bgp_neighbor_afi_safi_flag_modify(
23361 args, PEER_FLAG_AS_PATH_UNCHANGED,
23362 yang_dnode_get_bool(args->dnode, NULL));
23363
23364 break;
23365 }
23366
23367 return NB_OK;
23368 }
23369
23370 /*
23371 * XPath:
23372 * /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
23373 */
23374 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
23375 struct nb_cb_modify_args *args)
23376 {
23377 switch (args->event) {
23378 case NB_EV_VALIDATE:
23379 case NB_EV_PREPARE:
23380 case NB_EV_ABORT:
23381 return NB_OK;
23382 case NB_EV_APPLY:
23383 return bgp_neighbor_afi_safi_flag_modify(
23384 args, PEER_FLAG_NEXTHOP_UNCHANGED,
23385 yang_dnode_get_bool(args->dnode, NULL));
23386
23387 break;
23388 }
23389
23390 return NB_OK;
23391 }
23392
23393 /*
23394 * XPath:
23395 * /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
23396 */
23397 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_med_unchanged_modify(
23398 struct nb_cb_modify_args *args)
23399 {
23400 switch (args->event) {
23401 case NB_EV_VALIDATE:
23402 case NB_EV_PREPARE:
23403 case NB_EV_ABORT:
23404 return NB_OK;
23405 case NB_EV_APPLY:
23406 return bgp_neighbor_afi_safi_flag_modify(
23407 args, PEER_FLAG_MED_UNCHANGED,
23408 yang_dnode_get_bool(args->dnode, NULL));
23409
23410 break;
23411 }
23412
23413 return NB_OK;
23414 }
23415
23416 /*
23417 * XPath:
23418 * /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
23419 */
23420 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_create(
23421 struct nb_cb_create_args *args)
23422 {
23423 switch (args->event) {
23424 case NB_EV_VALIDATE:
23425 case NB_EV_PREPARE:
23426 case NB_EV_ABORT:
23427 case NB_EV_APPLY:
23428 /* TODO: implement me. */
23429 break;
23430 }
23431
23432 return NB_OK;
23433 }
23434
23435 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_destroy(
23436 struct nb_cb_destroy_args *args)
23437 {
23438 switch (args->event) {
23439 case NB_EV_VALIDATE:
23440 case NB_EV_PREPARE:
23441 case NB_EV_ABORT:
23442 return NB_OK;
23443 case NB_EV_APPLY:
23444 return bgp_neighbor_afi_safi_prefix_limit_list_destroy(args);
23445 }
23446
23447 return NB_OK;
23448 }
23449
23450 /*
23451 * XPath:
23452 * /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
23453 */
23454 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
23455 struct nb_cb_modify_args *args)
23456 {
23457 switch (args->event) {
23458 case NB_EV_VALIDATE:
23459 case NB_EV_PREPARE:
23460 case NB_EV_ABORT:
23461 case NB_EV_APPLY:
23462 /* TODO: implement me. */
23463 break;
23464 }
23465
23466 return NB_OK;
23467 }
23468
23469 /*
23470 * XPath:
23471 * /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
23472 */
23473 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
23474 struct nb_cb_modify_args *args)
23475 {
23476 switch (args->event) {
23477 case NB_EV_VALIDATE:
23478 case NB_EV_PREPARE:
23479 case NB_EV_ABORT:
23480 case NB_EV_APPLY:
23481 /* TODO: implement me. */
23482 break;
23483 }
23484
23485 return NB_OK;
23486 }
23487
23488 /*
23489 * XPath:
23490 * /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
23491 */
23492 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
23493 struct nb_cb_modify_args *args)
23494 {
23495 switch (args->event) {
23496 case NB_EV_VALIDATE:
23497 case NB_EV_PREPARE:
23498 case NB_EV_ABORT:
23499 case NB_EV_APPLY:
23500 /* TODO: implement me. */
23501 break;
23502 }
23503
23504 return NB_OK;
23505 }
23506
23507 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
23508 struct nb_cb_destroy_args *args)
23509 {
23510 switch (args->event) {
23511 case NB_EV_VALIDATE:
23512 case NB_EV_PREPARE:
23513 case NB_EV_ABORT:
23514 case NB_EV_APPLY:
23515 /* TODO: implement me. */
23516 break;
23517 }
23518
23519 return NB_OK;
23520 }
23521
23522 /*
23523 * XPath:
23524 * /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
23525 */
23526 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
23527 struct nb_cb_modify_args *args)
23528 {
23529 switch (args->event) {
23530 case NB_EV_VALIDATE:
23531 case NB_EV_PREPARE:
23532 case NB_EV_ABORT:
23533 case NB_EV_APPLY:
23534 /* TODO: implement me. */
23535 break;
23536 }
23537
23538 return NB_OK;
23539 }
23540
23541 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
23542 struct nb_cb_destroy_args *args)
23543 {
23544 switch (args->event) {
23545 case NB_EV_VALIDATE:
23546 case NB_EV_PREPARE:
23547 case NB_EV_ABORT:
23548 case NB_EV_APPLY:
23549 /* TODO: implement me. */
23550 break;
23551 }
23552
23553 return NB_OK;
23554 }
23555
23556 /*
23557 * XPath:
23558 * /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
23559 */
23560 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
23561 struct nb_cb_modify_args *args)
23562 {
23563 switch (args->event) {
23564 case NB_EV_VALIDATE:
23565 case NB_EV_PREPARE:
23566 case NB_EV_ABORT:
23567 case NB_EV_APPLY:
23568 /* TODO: implement me. */
23569 break;
23570 }
23571
23572 return NB_OK;
23573 }
23574
23575 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
23576 struct nb_cb_destroy_args *args)
23577 {
23578 switch (args->event) {
23579 case NB_EV_VALIDATE:
23580 case NB_EV_PREPARE:
23581 case NB_EV_ABORT:
23582 case NB_EV_APPLY:
23583 /* TODO: implement me. */
23584 break;
23585 }
23586
23587 return NB_OK;
23588 }
23589
23590 /*
23591 * XPath:
23592 * /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
23593 */
23594 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
23595 struct nb_cb_modify_args *args)
23596 {
23597 switch (args->event) {
23598 case NB_EV_VALIDATE:
23599 case NB_EV_PREPARE:
23600 case NB_EV_ABORT:
23601 case NB_EV_APPLY:
23602 /* TODO: implement me. */
23603 break;
23604 }
23605
23606 return NB_OK;
23607 }
23608
23609 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
23610 struct nb_cb_destroy_args *args)
23611 {
23612 switch (args->event) {
23613 case NB_EV_VALIDATE:
23614 case NB_EV_PREPARE:
23615 case NB_EV_ABORT:
23616 case NB_EV_APPLY:
23617 /* TODO: implement me. */
23618 break;
23619 }
23620
23621 return NB_OK;
23622 }
23623
23624 /*
23625 * XPath:
23626 * /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
23627 */
23628 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
23629 struct nb_cb_modify_args *args)
23630 {
23631 switch (args->event) {
23632 case NB_EV_VALIDATE:
23633 case NB_EV_PREPARE:
23634 case NB_EV_ABORT:
23635 case NB_EV_APPLY:
23636 /* TODO: implement me. */
23637 break;
23638 }
23639
23640 return NB_OK;
23641 }
23642
23643 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
23644 struct nb_cb_destroy_args *args)
23645 {
23646 switch (args->event) {
23647 case NB_EV_VALIDATE:
23648 case NB_EV_PREPARE:
23649 case NB_EV_ABORT:
23650 case NB_EV_APPLY:
23651 /* TODO: implement me. */
23652 break;
23653 }
23654
23655 return NB_OK;
23656 }
23657
23658 /*
23659 * XPath:
23660 * /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
23661 */
23662 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
23663 struct nb_cb_modify_args *args)
23664 {
23665 switch (args->event) {
23666 case NB_EV_VALIDATE:
23667 case NB_EV_PREPARE:
23668 case NB_EV_ABORT:
23669 case NB_EV_APPLY:
23670 /* TODO: implement me. */
23671 break;
23672 }
23673
23674 return NB_OK;
23675 }
23676
23677 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
23678 struct nb_cb_destroy_args *args)
23679 {
23680 switch (args->event) {
23681 case NB_EV_VALIDATE:
23682 case NB_EV_PREPARE:
23683 case NB_EV_ABORT:
23684 case NB_EV_APPLY:
23685 /* TODO: implement me. */
23686 break;
23687 }
23688
23689 return NB_OK;
23690 }
23691
23692 /*
23693 * XPath:
23694 * /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
23695 */
23696 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
23697 struct nb_cb_modify_args *args)
23698 {
23699 switch (args->event) {
23700 case NB_EV_VALIDATE:
23701 case NB_EV_PREPARE:
23702 case NB_EV_ABORT:
23703 case NB_EV_APPLY:
23704 /* TODO: implement me. */
23705 break;
23706 }
23707
23708 return NB_OK;
23709 }
23710
23711 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
23712 struct nb_cb_destroy_args *args)
23713 {
23714 switch (args->event) {
23715 case NB_EV_VALIDATE:
23716 case NB_EV_PREPARE:
23717 case NB_EV_ABORT:
23718 case NB_EV_APPLY:
23719 /* TODO: implement me. */
23720 break;
23721 }
23722
23723 return NB_OK;
23724 }
23725
23726 /*
23727 * XPath:
23728 * /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
23729 */
23730 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_modify(
23731 struct nb_cb_modify_args *args)
23732 {
23733 switch (args->event) {
23734 case NB_EV_VALIDATE:
23735 case NB_EV_PREPARE:
23736 case NB_EV_ABORT:
23737 return NB_OK;
23738 case NB_EV_APPLY:
23739 return bgp_neighbor_afi_safi_flag_modify(
23740 args, PEER_FLAG_NEXTHOP_SELF,
23741 yang_dnode_get_bool(args->dnode, NULL));
23742
23743 break;
23744 }
23745
23746 return NB_OK;
23747 }
23748
23749 /*
23750 * XPath:
23751 * /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
23752 */
23753 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
23754 struct nb_cb_modify_args *args)
23755 {
23756 switch (args->event) {
23757 case NB_EV_VALIDATE:
23758 case NB_EV_PREPARE:
23759 case NB_EV_ABORT:
23760 return NB_OK;
23761 case NB_EV_APPLY:
23762 return bgp_neighbor_afi_safi_flag_modify(
23763 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
23764 yang_dnode_get_bool(args->dnode, NULL));
23765
23766 break;
23767 }
23768
23769 return NB_OK;
23770 }
23771
23772 /*
23773 * XPath:
23774 * /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
23775 */
23776 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_modify(
23777 struct nb_cb_modify_args *args)
23778 {
23779 switch (args->event) {
23780 case NB_EV_VALIDATE:
23781 case NB_EV_PREPARE:
23782 case NB_EV_ABORT:
23783 return NB_OK;
23784 case NB_EV_APPLY:
23785 return bgp_neighbor_afi_safi_flag_modify(
23786 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
23787 yang_dnode_get_bool(args->dnode, NULL));
23788
23789 break;
23790 }
23791
23792 return NB_OK;
23793 }
23794
23795 /*
23796 * XPath:
23797 * /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
23798 */
23799 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
23800 struct nb_cb_modify_args *args)
23801 {
23802 switch (args->event) {
23803 case NB_EV_VALIDATE:
23804 case NB_EV_PREPARE:
23805 case NB_EV_ABORT:
23806 return NB_OK;
23807 case NB_EV_APPLY:
23808 return bgp_neighbor_afi_safi_flag_modify(
23809 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
23810 yang_dnode_get_bool(args->dnode, NULL));
23811
23812 break;
23813 }
23814
23815 return NB_OK;
23816 }
23817
23818 /*
23819 * XPath:
23820 * /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
23821 */
23822 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_modify(
23823 struct nb_cb_modify_args *args)
23824 {
23825 switch (args->event) {
23826 case NB_EV_VALIDATE:
23827 case NB_EV_PREPARE:
23828 case NB_EV_ABORT:
23829 return NB_OK;
23830 case NB_EV_APPLY:
23831 return bgp_neighbor_afi_safi_flag_modify(
23832 args, PEER_FLAG_REMOVE_PRIVATE_AS,
23833 yang_dnode_get_bool(args->dnode, NULL));
23834
23835 break;
23836 }
23837
23838 return NB_OK;
23839 }
23840
23841 /*
23842 * XPath:
23843 * /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
23844 */
23845 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_replace_modify(
23846 struct nb_cb_modify_args *args)
23847 {
23848 switch (args->event) {
23849 case NB_EV_VALIDATE:
23850 case NB_EV_PREPARE:
23851 case NB_EV_ABORT:
23852 return NB_OK;
23853 case NB_EV_APPLY:
23854 return bgp_neighbor_afi_safi_flag_modify(
23855 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
23856 yang_dnode_get_bool(args->dnode, NULL));
23857
23858 break;
23859 }
23860
23861 return NB_OK;
23862 }
23863
23864 /*
23865 * XPath:
23866 * /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
23867 */
23868 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_reflector_route_reflector_client_modify(
23869 struct nb_cb_modify_args *args)
23870 {
23871 switch (args->event) {
23872 case NB_EV_VALIDATE:
23873 case NB_EV_PREPARE:
23874 case NB_EV_ABORT:
23875 return NB_OK;
23876 case NB_EV_APPLY:
23877 return bgp_neighbor_afi_safi_flag_modify(
23878 args, PEER_FLAG_REFLECTOR_CLIENT,
23879 yang_dnode_get_bool(args->dnode, NULL));
23880
23881 break;
23882 }
23883
23884 return NB_OK;
23885 }
23886
23887 /*
23888 * XPath:
23889 * /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
23890 */
23891 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_server_route_server_client_modify(
23892 struct nb_cb_modify_args *args)
23893 {
23894 switch (args->event) {
23895 case NB_EV_VALIDATE:
23896 case NB_EV_PREPARE:
23897 case NB_EV_ABORT:
23898 return NB_OK;
23899 case NB_EV_APPLY:
23900 return bgp_neighbor_afi_safi_flag_modify(
23901 args, PEER_FLAG_RSERVER_CLIENT,
23902 yang_dnode_get_bool(args->dnode, NULL));
23903
23904 break;
23905 }
23906
23907 return NB_OK;
23908 }
23909
23910 /*
23911 * XPath:
23912 * /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
23913 */
23914 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_community_modify(
23915 struct nb_cb_modify_args *args)
23916 {
23917 switch (args->event) {
23918 case NB_EV_VALIDATE:
23919 case NB_EV_PREPARE:
23920 case NB_EV_ABORT:
23921 return NB_OK;
23922 case NB_EV_APPLY:
23923 return bgp_neighbor_afi_safi_flag_modify(
23924 args, PEER_FLAG_SEND_COMMUNITY,
23925 yang_dnode_get_bool(args->dnode, NULL));
23926
23927 break;
23928 }
23929
23930 return NB_OK;
23931 }
23932
23933 /*
23934 * XPath:
23935 * /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
23936 */
23937 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_ext_community_modify(
23938 struct nb_cb_modify_args *args)
23939 {
23940 switch (args->event) {
23941 case NB_EV_VALIDATE:
23942 case NB_EV_PREPARE:
23943 case NB_EV_ABORT:
23944 return NB_OK;
23945 case NB_EV_APPLY:
23946 return bgp_neighbor_afi_safi_flag_modify(
23947 args, PEER_FLAG_SEND_EXT_COMMUNITY,
23948 yang_dnode_get_bool(args->dnode, NULL));
23949
23950 break;
23951 }
23952
23953 return NB_OK;
23954 }
23955
23956 /*
23957 * XPath:
23958 * /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
23959 */
23960 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_large_community_modify(
23961 struct nb_cb_modify_args *args)
23962 {
23963 switch (args->event) {
23964 case NB_EV_VALIDATE:
23965 case NB_EV_PREPARE:
23966 case NB_EV_ABORT:
23967 return NB_OK;
23968 case NB_EV_APPLY:
23969 return bgp_neighbor_afi_safi_flag_modify(
23970 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
23971 yang_dnode_get_bool(args->dnode, NULL));
23972
23973 break;
23974 }
23975
23976 return NB_OK;
23977 }
23978
23979 /*
23980 * XPath:
23981 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/soft-reconfiguration
23982 */
23983 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_soft_reconfiguration_modify(
23984 struct nb_cb_modify_args *args)
23985 {
23986 switch (args->event) {
23987 case NB_EV_VALIDATE:
23988 case NB_EV_PREPARE:
23989 case NB_EV_ABORT:
23990 return NB_OK;
23991 case NB_EV_APPLY:
23992 return bgp_neighbor_afi_safi_flag_modify(
23993 args, PEER_FLAG_SOFT_RECONFIG,
23994 yang_dnode_get_bool(args->dnode, NULL));
23995
23996 break;
23997 }
23998
23999 return NB_OK;
24000 }
24001
24002 /*
24003 * XPath:
24004 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/weight/weight-attribute
24005 */
24006 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_modify(
24007 struct nb_cb_modify_args *args)
24008 {
24009 switch (args->event) {
24010 case NB_EV_VALIDATE:
24011 case NB_EV_PREPARE:
24012 case NB_EV_ABORT:
24013 return NB_OK;
24014 case NB_EV_APPLY:
24015 return bgp_neighbor_afi_safi_weight_modify(args);
24016
24017 break;
24018 }
24019
24020 return NB_OK;
24021 }
24022
24023 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_destroy(
24024 struct nb_cb_destroy_args *args)
24025 {
24026 switch (args->event) {
24027 case NB_EV_VALIDATE:
24028 case NB_EV_PREPARE:
24029 case NB_EV_ABORT:
24030 return NB_OK;
24031 case NB_EV_APPLY:
24032 return bgp_neighbor_afi_safi_weight_destroy(args);
24033
24034 break;
24035 }
24036
24037 return NB_OK;
24038 }
24039
24040 /*
24041 * XPath:
24042 * /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
24043 */
24044 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_import_modify(
24045 struct nb_cb_modify_args *args)
24046 {
24047 switch (args->event) {
24048 case NB_EV_VALIDATE:
24049 case NB_EV_PREPARE:
24050 case NB_EV_ABORT:
24051 break;
24052 case NB_EV_APPLY:
24053 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
24054 }
24055
24056 return NB_OK;
24057 }
24058
24059 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_import_destroy(
24060 struct nb_cb_destroy_args *args)
24061 {
24062 switch (args->event) {
24063 case NB_EV_VALIDATE:
24064 case NB_EV_PREPARE:
24065 case NB_EV_ABORT:
24066 break;
24067 case NB_EV_APPLY:
24068 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
24069 }
24070
24071 return NB_OK;
24072 }
24073
24074 /*
24075 * XPath:
24076 * /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
24077 */
24078 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_export_modify(
24079 struct nb_cb_modify_args *args)
24080 {
24081 switch (args->event) {
24082 case NB_EV_VALIDATE:
24083 case NB_EV_PREPARE:
24084 case NB_EV_ABORT:
24085 break;
24086 case NB_EV_APPLY:
24087 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
24088 }
24089
24090 return NB_OK;
24091 }
24092
24093 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_export_destroy(
24094 struct nb_cb_destroy_args *args)
24095 {
24096 switch (args->event) {
24097 case NB_EV_VALIDATE:
24098 case NB_EV_PREPARE:
24099 case NB_EV_ABORT:
24100 break;
24101 case NB_EV_APPLY:
24102 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
24103 }
24104
24105 return NB_OK;
24106 }
24107
24108 /*
24109 * XPath:
24110 * /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
24111 */
24112 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_import_modify(
24113 struct nb_cb_modify_args *args)
24114 {
24115 switch (args->event) {
24116 case NB_EV_VALIDATE:
24117 case NB_EV_PREPARE:
24118 case NB_EV_ABORT:
24119 break;
24120 case NB_EV_APPLY:
24121 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
24122 }
24123
24124 return NB_OK;
24125 }
24126
24127 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_import_destroy(
24128 struct nb_cb_destroy_args *args)
24129 {
24130 switch (args->event) {
24131 case NB_EV_VALIDATE:
24132 case NB_EV_PREPARE:
24133 case NB_EV_ABORT:
24134 break;
24135 case NB_EV_APPLY:
24136 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
24137 }
24138
24139 return NB_OK;
24140 }
24141
24142 /*
24143 * XPath:
24144 * /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
24145 */
24146 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_export_modify(
24147 struct nb_cb_modify_args *args)
24148 {
24149 switch (args->event) {
24150 case NB_EV_VALIDATE:
24151 case NB_EV_PREPARE:
24152 case NB_EV_ABORT:
24153 return NB_OK;
24154 case NB_EV_APPLY:
24155 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
24156 }
24157
24158 return NB_OK;
24159 }
24160
24161 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_export_destroy(
24162 struct nb_cb_destroy_args *args)
24163 {
24164 switch (args->event) {
24165 case NB_EV_VALIDATE:
24166 case NB_EV_PREPARE:
24167 case NB_EV_ABORT:
24168 break;
24169 case NB_EV_APPLY:
24170 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
24171 }
24172
24173 return NB_OK;
24174 }
24175
24176 /*
24177 * XPath:
24178 * /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
24179 */
24180 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_import_modify(
24181 struct nb_cb_modify_args *args)
24182 {
24183 switch (args->event) {
24184 case NB_EV_VALIDATE:
24185 case NB_EV_PREPARE:
24186 case NB_EV_ABORT:
24187 case NB_EV_APPLY:
24188 /* TODO: implement me. */
24189 break;
24190 }
24191
24192 return NB_OK;
24193 }
24194
24195 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_import_destroy(
24196 struct nb_cb_destroy_args *args)
24197 {
24198 switch (args->event) {
24199 case NB_EV_VALIDATE:
24200 case NB_EV_PREPARE:
24201 case NB_EV_ABORT:
24202 case NB_EV_APPLY:
24203 /* TODO: implement me. */
24204 break;
24205 }
24206
24207 return NB_OK;
24208 }
24209
24210 /*
24211 * XPath:
24212 * /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
24213 */
24214 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_export_modify(
24215 struct nb_cb_modify_args *args)
24216 {
24217 switch (args->event) {
24218 case NB_EV_VALIDATE:
24219 case NB_EV_PREPARE:
24220 case NB_EV_ABORT:
24221 case NB_EV_APPLY:
24222 /* TODO: implement me. */
24223 break;
24224 }
24225
24226 return NB_OK;
24227 }
24228
24229 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_export_destroy(
24230 struct nb_cb_destroy_args *args)
24231 {
24232 switch (args->event) {
24233 case NB_EV_VALIDATE:
24234 case NB_EV_PREPARE:
24235 case NB_EV_ABORT:
24236 case NB_EV_APPLY:
24237 /* TODO: implement me. */
24238 break;
24239 }
24240
24241 return NB_OK;
24242 }
24243
24244 /*
24245 * XPath:
24246 * /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
24247 */
24248 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_import_modify(
24249 struct nb_cb_modify_args *args)
24250 {
24251 switch (args->event) {
24252 case NB_EV_VALIDATE:
24253 case NB_EV_PREPARE:
24254 case NB_EV_ABORT:
24255 case NB_EV_APPLY:
24256 /* TODO: implement me. */
24257 break;
24258 }
24259
24260 return NB_OK;
24261 }
24262
24263 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_import_destroy(
24264 struct nb_cb_destroy_args *args)
24265 {
24266 switch (args->event) {
24267 case NB_EV_VALIDATE:
24268 case NB_EV_PREPARE:
24269 case NB_EV_ABORT:
24270 case NB_EV_APPLY:
24271 /* TODO: implement me. */
24272 break;
24273 }
24274
24275 return NB_OK;
24276 }
24277
24278 /*
24279 * XPath:
24280 * /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
24281 */
24282 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_export_modify(
24283 struct nb_cb_modify_args *args)
24284 {
24285 switch (args->event) {
24286 case NB_EV_VALIDATE:
24287 case NB_EV_PREPARE:
24288 case NB_EV_ABORT:
24289 case NB_EV_APPLY:
24290 /* TODO: implement me. */
24291 break;
24292 }
24293
24294 return NB_OK;
24295 }
24296
24297 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_export_destroy(
24298 struct nb_cb_destroy_args *args)
24299 {
24300 switch (args->event) {
24301 case NB_EV_VALIDATE:
24302 case NB_EV_PREPARE:
24303 case NB_EV_ABORT:
24304 case NB_EV_APPLY:
24305 /* TODO: implement me. */
24306 break;
24307 }
24308
24309 return NB_OK;
24310 }
24311
24312 /*
24313 * XPath:
24314 * /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
24315 */
24316 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_import_modify(
24317 struct nb_cb_modify_args *args)
24318 {
24319 switch (args->event) {
24320 case NB_EV_VALIDATE:
24321 case NB_EV_PREPARE:
24322 case NB_EV_ABORT:
24323 case NB_EV_APPLY:
24324 /* TODO: implement me. */
24325 break;
24326 }
24327
24328 return NB_OK;
24329 }
24330
24331 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_import_destroy(
24332 struct nb_cb_destroy_args *args)
24333 {
24334 switch (args->event) {
24335 case NB_EV_VALIDATE:
24336 case NB_EV_PREPARE:
24337 case NB_EV_ABORT:
24338 case NB_EV_APPLY:
24339 /* TODO: implement me. */
24340 break;
24341 }
24342
24343 return NB_OK;
24344 }
24345
24346 /*
24347 * XPath:
24348 * /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
24349 */
24350 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_export_modify(
24351 struct nb_cb_modify_args *args)
24352 {
24353 switch (args->event) {
24354 case NB_EV_VALIDATE:
24355 case NB_EV_PREPARE:
24356 case NB_EV_ABORT:
24357 case NB_EV_APPLY:
24358 /* TODO: implement me. */
24359 break;
24360 }
24361
24362 return NB_OK;
24363 }
24364
24365 int bgp_neighbors_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_export_destroy(
24366 struct nb_cb_destroy_args *args)
24367 {
24368 switch (args->event) {
24369 case NB_EV_VALIDATE:
24370 case NB_EV_PREPARE:
24371 case NB_EV_ABORT:
24372 case NB_EV_APPLY:
24373 /* TODO: implement me. */
24374 break;
24375 }
24376
24377 return NB_OK;
24378 }
24379
24380 /*
24381 * XPath:
24382 * /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
24383 */
24384 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_modify(
24385 struct nb_cb_modify_args *args)
24386 {
24387 switch (args->event) {
24388 case NB_EV_VALIDATE:
24389 case NB_EV_PREPARE:
24390 case NB_EV_ABORT:
24391 case NB_EV_APPLY:
24392 /* TODO: implement me. */
24393 break;
24394 }
24395
24396 return NB_OK;
24397 }
24398
24399 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_destroy(
24400 struct nb_cb_destroy_args *args)
24401 {
24402 switch (args->event) {
24403 case NB_EV_VALIDATE:
24404 case NB_EV_PREPARE:
24405 case NB_EV_ABORT:
24406 case NB_EV_APPLY:
24407 /* TODO: implement me. */
24408 break;
24409 }
24410
24411 return NB_OK;
24412 }
24413
24414 /*
24415 * XPath:
24416 * /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
24417 */
24418 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_modify(
24419 struct nb_cb_modify_args *args)
24420 {
24421 switch (args->event) {
24422 case NB_EV_VALIDATE:
24423 case NB_EV_PREPARE:
24424 case NB_EV_ABORT:
24425 case NB_EV_APPLY:
24426 /* TODO: implement me. */
24427 break;
24428 }
24429
24430 return NB_OK;
24431 }
24432
24433 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_destroy(
24434 struct nb_cb_destroy_args *args)
24435 {
24436 switch (args->event) {
24437 case NB_EV_VALIDATE:
24438 case NB_EV_PREPARE:
24439 case NB_EV_ABORT:
24440 case NB_EV_APPLY:
24441 /* TODO: implement me. */
24442 break;
24443 }
24444
24445 return NB_OK;
24446 }
24447
24448 /*
24449 * XPath:
24450 * /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
24451 */
24452 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_replace_peer_as_modify(
24453 struct nb_cb_modify_args *args)
24454 {
24455 switch (args->event) {
24456 case NB_EV_VALIDATE:
24457 case NB_EV_PREPARE:
24458 case NB_EV_ABORT:
24459 return NB_OK;
24460 case NB_EV_APPLY:
24461 return bgp_neighbor_afi_safi_flag_modify(
24462 args, PEER_FLAG_AS_OVERRIDE,
24463 yang_dnode_get_bool(args->dnode, NULL));
24464
24465 break;
24466 }
24467
24468 return NB_OK;
24469 }
24470
24471 /*
24472 * XPath:
24473 * /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
24474 */
24475 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_as_path_unchanged_modify(
24476 struct nb_cb_modify_args *args)
24477 {
24478 switch (args->event) {
24479 case NB_EV_VALIDATE:
24480 case NB_EV_PREPARE:
24481 case NB_EV_ABORT:
24482 return NB_OK;
24483 case NB_EV_APPLY:
24484 return bgp_neighbor_afi_safi_flag_modify(
24485 args, PEER_FLAG_AS_PATH_UNCHANGED,
24486 yang_dnode_get_bool(args->dnode, NULL));
24487
24488 break;
24489 }
24490
24491 return NB_OK;
24492 }
24493
24494 /*
24495 * XPath:
24496 * /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
24497 */
24498 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_next_hop_unchanged_modify(
24499 struct nb_cb_modify_args *args)
24500 {
24501 switch (args->event) {
24502 case NB_EV_VALIDATE:
24503 case NB_EV_PREPARE:
24504 case NB_EV_ABORT:
24505 return NB_OK;
24506 case NB_EV_APPLY:
24507 return bgp_neighbor_afi_safi_flag_modify(
24508 args, PEER_FLAG_NEXTHOP_UNCHANGED,
24509 yang_dnode_get_bool(args->dnode, NULL));
24510
24511 break;
24512 }
24513
24514 return NB_OK;
24515 }
24516
24517 /*
24518 * XPath:
24519 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/attr-unchanged/med-unchanged
24520 */
24521 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_med_unchanged_modify(
24522 struct nb_cb_modify_args *args)
24523 {
24524 switch (args->event) {
24525 case NB_EV_VALIDATE:
24526 case NB_EV_PREPARE:
24527 case NB_EV_ABORT:
24528 return NB_OK;
24529 case NB_EV_APPLY:
24530 return bgp_neighbor_afi_safi_flag_modify(
24531 args, PEER_FLAG_MED_UNCHANGED,
24532 yang_dnode_get_bool(args->dnode, NULL));
24533
24534 break;
24535 }
24536
24537 return NB_OK;
24538 }
24539
24540 /*
24541 * XPath:
24542 * /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
24543 */
24544 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_modify(
24545 struct nb_cb_modify_args *args)
24546 {
24547 switch (args->event) {
24548 case NB_EV_VALIDATE:
24549 case NB_EV_PREPARE:
24550 case NB_EV_ABORT:
24551 return NB_OK;
24552 case NB_EV_APPLY:
24553 return bgp_neighbor_afi_safi_flag_modify(
24554 args, PEER_FLAG_NEXTHOP_SELF,
24555 yang_dnode_get_bool(args->dnode, NULL));
24556
24557 break;
24558 }
24559
24560 return NB_OK;
24561 }
24562
24563 /*
24564 * XPath:
24565 * /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
24566 */
24567 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_force_modify(
24568 struct nb_cb_modify_args *args)
24569 {
24570 switch (args->event) {
24571 case NB_EV_VALIDATE:
24572 case NB_EV_PREPARE:
24573 case NB_EV_ABORT:
24574 return NB_OK;
24575 case NB_EV_APPLY:
24576 return bgp_neighbor_afi_safi_flag_modify(
24577 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
24578 yang_dnode_get_bool(args->dnode, NULL));
24579
24580 break;
24581 }
24582
24583 return NB_OK;
24584 }
24585
24586 /*
24587 * XPath:
24588 * /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
24589 */
24590 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_route_reflector_route_reflector_client_modify(
24591 struct nb_cb_modify_args *args)
24592 {
24593 switch (args->event) {
24594 case NB_EV_VALIDATE:
24595 case NB_EV_PREPARE:
24596 case NB_EV_ABORT:
24597 return NB_OK;
24598 case NB_EV_APPLY:
24599 return bgp_neighbor_afi_safi_flag_modify(
24600 args, PEER_FLAG_REFLECTOR_CLIENT,
24601 yang_dnode_get_bool(args->dnode, NULL));
24602
24603 break;
24604 }
24605
24606 return NB_OK;
24607 }
24608
24609 /*
24610 * XPath:
24611 * /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
24612 */
24613 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_route_server_route_server_client_modify(
24614 struct nb_cb_modify_args *args)
24615 {
24616 switch (args->event) {
24617 case NB_EV_VALIDATE:
24618 case NB_EV_PREPARE:
24619 case NB_EV_ABORT:
24620 return NB_OK;
24621 case NB_EV_APPLY:
24622 return bgp_neighbor_afi_safi_flag_modify(
24623 args, PEER_FLAG_RSERVER_CLIENT,
24624 yang_dnode_get_bool(args->dnode, NULL));
24625
24626 break;
24627 }
24628
24629 return NB_OK;
24630 }
24631
24632 /*
24633 * XPath:
24634 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/soft-reconfiguration
24635 */
24636 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_soft_reconfiguration_modify(
24637 struct nb_cb_modify_args *args)
24638 {
24639 switch (args->event) {
24640 case NB_EV_VALIDATE:
24641 case NB_EV_PREPARE:
24642 case NB_EV_ABORT:
24643 return NB_OK;
24644 case NB_EV_APPLY:
24645 return bgp_neighbor_afi_safi_flag_modify(
24646 args, PEER_FLAG_SOFT_RECONFIG,
24647 yang_dnode_get_bool(args->dnode, NULL));
24648
24649 break;
24650 }
24651
24652 return NB_OK;
24653 }
24654
24655 /*
24656 * XPath:
24657 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/rmap-import
24658 */
24659 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_import_modify(
24660 struct nb_cb_modify_args *args)
24661 {
24662 switch (args->event) {
24663 case NB_EV_VALIDATE:
24664 case NB_EV_PREPARE:
24665 case NB_EV_ABORT:
24666 break;
24667 case NB_EV_APPLY:
24668 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
24669 }
24670
24671 return NB_OK;
24672 }
24673
24674 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_import_destroy(
24675 struct nb_cb_destroy_args *args)
24676 {
24677 switch (args->event) {
24678 case NB_EV_VALIDATE:
24679 case NB_EV_PREPARE:
24680 case NB_EV_ABORT:
24681 break;
24682 case NB_EV_APPLY:
24683 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
24684 }
24685
24686 return NB_OK;
24687 }
24688
24689 /*
24690 * XPath:
24691 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/rmap-export
24692 */
24693 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_export_modify(
24694 struct nb_cb_modify_args *args)
24695 {
24696 switch (args->event) {
24697 case NB_EV_VALIDATE:
24698 case NB_EV_PREPARE:
24699 case NB_EV_ABORT:
24700 break;
24701 case NB_EV_APPLY:
24702 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
24703 }
24704
24705 return NB_OK;
24706 }
24707
24708 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_rmap_export_destroy(
24709 struct nb_cb_destroy_args *args)
24710 {
24711 switch (args->event) {
24712 case NB_EV_VALIDATE:
24713 case NB_EV_PREPARE:
24714 case NB_EV_ABORT:
24715 break;
24716 case NB_EV_APPLY:
24717 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
24718 }
24719
24720 return NB_OK;
24721 }
24722
24723 /*
24724 * XPath:
24725 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/plist-import
24726 */
24727 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_plist_import_modify(
24728 struct nb_cb_modify_args *args)
24729 {
24730 switch (args->event) {
24731 case NB_EV_VALIDATE:
24732 case NB_EV_PREPARE:
24733 case NB_EV_ABORT:
24734 break;
24735 case NB_EV_APPLY:
24736 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
24737 }
24738
24739 return NB_OK;
24740 }
24741
24742 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_plist_import_destroy(
24743 struct nb_cb_destroy_args *args)
24744 {
24745 switch (args->event) {
24746 case NB_EV_VALIDATE:
24747 case NB_EV_PREPARE:
24748 case NB_EV_ABORT:
24749 break;
24750 case NB_EV_APPLY:
24751 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
24752 }
24753
24754 return NB_OK;
24755 }
24756
24757 /*
24758 * XPath:
24759 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/l2vpn-evpn/filter-config/plist-export
24760 */
24761 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_plist_export_modify(
24762 struct nb_cb_modify_args *args)
24763 {
24764 switch (args->event) {
24765 case NB_EV_VALIDATE:
24766 case NB_EV_PREPARE:
24767 case NB_EV_ABORT:
24768 break;
24769 case NB_EV_APPLY:
24770 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
24771 }
24772
24773 return NB_OK;
24774 }
24775
24776 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_plist_export_destroy(
24777 struct nb_cb_destroy_args *args)
24778 {
24779 switch (args->event) {
24780 case NB_EV_VALIDATE:
24781 case NB_EV_PREPARE:
24782 case NB_EV_ABORT:
24783 break;
24784 case NB_EV_APPLY:
24785 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
24786 }
24787
24788 return NB_OK;
24789 }
24790
24791 /*
24792 * XPath:
24793 * /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
24794 */
24795 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_access_list_import_modify(
24796 struct nb_cb_modify_args *args)
24797 {
24798 switch (args->event) {
24799 case NB_EV_VALIDATE:
24800 case NB_EV_PREPARE:
24801 case NB_EV_ABORT:
24802 case NB_EV_APPLY:
24803 /* TODO: implement me. */
24804 break;
24805 }
24806
24807 return NB_OK;
24808 }
24809
24810 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_access_list_import_destroy(
24811 struct nb_cb_destroy_args *args)
24812 {
24813 switch (args->event) {
24814 case NB_EV_VALIDATE:
24815 case NB_EV_PREPARE:
24816 case NB_EV_ABORT:
24817 case NB_EV_APPLY:
24818 /* TODO: implement me. */
24819 break;
24820 }
24821
24822 return NB_OK;
24823 }
24824
24825 /*
24826 * XPath:
24827 * /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
24828 */
24829 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_access_list_export_modify(
24830 struct nb_cb_modify_args *args)
24831 {
24832 switch (args->event) {
24833 case NB_EV_VALIDATE:
24834 case NB_EV_PREPARE:
24835 case NB_EV_ABORT:
24836 case NB_EV_APPLY:
24837 /* TODO: implement me. */
24838 break;
24839 }
24840
24841 return NB_OK;
24842 }
24843
24844 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_access_list_export_destroy(
24845 struct nb_cb_destroy_args *args)
24846 {
24847 switch (args->event) {
24848 case NB_EV_VALIDATE:
24849 case NB_EV_PREPARE:
24850 case NB_EV_ABORT:
24851 case NB_EV_APPLY:
24852 /* TODO: implement me. */
24853 break;
24854 }
24855
24856 return NB_OK;
24857 }
24858
24859 /*
24860 * XPath:
24861 * /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
24862 */
24863 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_as_path_filter_list_import_modify(
24864 struct nb_cb_modify_args *args)
24865 {
24866 switch (args->event) {
24867 case NB_EV_VALIDATE:
24868 case NB_EV_PREPARE:
24869 case NB_EV_ABORT:
24870 case NB_EV_APPLY:
24871 /* TODO: implement me. */
24872 break;
24873 }
24874
24875 return NB_OK;
24876 }
24877
24878 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_as_path_filter_list_import_destroy(
24879 struct nb_cb_destroy_args *args)
24880 {
24881 switch (args->event) {
24882 case NB_EV_VALIDATE:
24883 case NB_EV_PREPARE:
24884 case NB_EV_ABORT:
24885 case NB_EV_APPLY:
24886 /* TODO: implement me. */
24887 break;
24888 }
24889
24890 return NB_OK;
24891 }
24892
24893 /*
24894 * XPath:
24895 * /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
24896 */
24897 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_as_path_filter_list_export_modify(
24898 struct nb_cb_modify_args *args)
24899 {
24900 switch (args->event) {
24901 case NB_EV_VALIDATE:
24902 case NB_EV_PREPARE:
24903 case NB_EV_ABORT:
24904 case NB_EV_APPLY:
24905 /* TODO: implement me. */
24906 break;
24907 }
24908
24909 return NB_OK;
24910 }
24911
24912 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_as_path_filter_list_export_destroy(
24913 struct nb_cb_destroy_args *args)
24914 {
24915 switch (args->event) {
24916 case NB_EV_VALIDATE:
24917 case NB_EV_PREPARE:
24918 case NB_EV_ABORT:
24919 case NB_EV_APPLY:
24920 /* TODO: implement me. */
24921 break;
24922 }
24923
24924 return NB_OK;
24925 }
24926
24927 /*
24928 * XPath:
24929 * /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
24930 */
24931 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_unsuppress_map_import_modify(
24932 struct nb_cb_modify_args *args)
24933 {
24934 switch (args->event) {
24935 case NB_EV_VALIDATE:
24936 case NB_EV_PREPARE:
24937 case NB_EV_ABORT:
24938 case NB_EV_APPLY:
24939 /* TODO: implement me. */
24940 break;
24941 }
24942
24943 return NB_OK;
24944 }
24945
24946 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_unsuppress_map_import_destroy(
24947 struct nb_cb_destroy_args *args)
24948 {
24949 switch (args->event) {
24950 case NB_EV_VALIDATE:
24951 case NB_EV_PREPARE:
24952 case NB_EV_ABORT:
24953 case NB_EV_APPLY:
24954 /* TODO: implement me. */
24955 break;
24956 }
24957
24958 return NB_OK;
24959 }
24960
24961 /*
24962 * XPath:
24963 * /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
24964 */
24965 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_unsuppress_map_export_modify(
24966 struct nb_cb_modify_args *args)
24967 {
24968 switch (args->event) {
24969 case NB_EV_VALIDATE:
24970 case NB_EV_PREPARE:
24971 case NB_EV_ABORT:
24972 case NB_EV_APPLY:
24973 /* TODO: implement me. */
24974 break;
24975 }
24976
24977 return NB_OK;
24978 }
24979
24980 int bgp_neighbors_neighbor_afi_safis_afi_safi_l2vpn_evpn_filter_config_unsuppress_map_export_destroy(
24981 struct nb_cb_destroy_args *args)
24982 {
24983 switch (args->event) {
24984 case NB_EV_VALIDATE:
24985 case NB_EV_PREPARE:
24986 case NB_EV_ABORT:
24987 case NB_EV_APPLY:
24988 /* TODO: implement me. */
24989 break;
24990 }
24991
24992 return NB_OK;
24993 }
24994
24995 /*
24996 * XPath:
24997 * /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
24998 */
24999 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_route_reflector_route_reflector_client_modify(
25000 struct nb_cb_modify_args *args)
25001 {
25002 switch (args->event) {
25003 case NB_EV_VALIDATE:
25004 case NB_EV_PREPARE:
25005 case NB_EV_ABORT:
25006 return NB_OK;
25007 case NB_EV_APPLY:
25008 return bgp_neighbor_afi_safi_flag_modify(
25009 args, PEER_FLAG_REFLECTOR_CLIENT,
25010 yang_dnode_get_bool(args->dnode, NULL));
25011
25012 break;
25013 }
25014
25015 return NB_OK;
25016 }
25017
25018 /*
25019 * XPath:
25020 * /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
25021 */
25022 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_route_server_route_server_client_modify(
25023 struct nb_cb_modify_args *args)
25024 {
25025 switch (args->event) {
25026 case NB_EV_VALIDATE:
25027 case NB_EV_PREPARE:
25028 case NB_EV_ABORT:
25029 return NB_OK;
25030 case NB_EV_APPLY:
25031 return bgp_neighbor_afi_safi_flag_modify(
25032 args, PEER_FLAG_RSERVER_CLIENT,
25033 yang_dnode_get_bool(args->dnode, NULL));
25034
25035 break;
25036 }
25037
25038 return NB_OK;
25039 }
25040
25041 /*
25042 * XPath:
25043 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/soft-reconfiguration
25044 */
25045 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_soft_reconfiguration_modify(
25046 struct nb_cb_modify_args *args)
25047 {
25048 switch (args->event) {
25049 case NB_EV_VALIDATE:
25050 case NB_EV_PREPARE:
25051 case NB_EV_ABORT:
25052 return NB_OK;
25053 case NB_EV_APPLY:
25054 return bgp_neighbor_afi_safi_flag_modify(
25055 args, PEER_FLAG_SOFT_RECONFIG,
25056 yang_dnode_get_bool(args->dnode, NULL));
25057
25058 break;
25059 }
25060
25061 return NB_OK;
25062 }
25063
25064 /*
25065 * XPath:
25066 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/rmap-import
25067 */
25068 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_modify(
25069 struct nb_cb_modify_args *args)
25070 {
25071 switch (args->event) {
25072 case NB_EV_VALIDATE:
25073 case NB_EV_PREPARE:
25074 case NB_EV_ABORT:
25075 break;
25076 case NB_EV_APPLY:
25077 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
25078 }
25079
25080 return NB_OK;
25081 }
25082
25083 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_destroy(
25084 struct nb_cb_destroy_args *args)
25085 {
25086 switch (args->event) {
25087 case NB_EV_VALIDATE:
25088 case NB_EV_PREPARE:
25089 case NB_EV_ABORT:
25090 break;
25091 case NB_EV_APPLY:
25092 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
25093 }
25094
25095 return NB_OK;
25096 }
25097
25098 /*
25099 * XPath:
25100 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/rmap-export
25101 */
25102 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_modify(
25103 struct nb_cb_modify_args *args)
25104 {
25105 switch (args->event) {
25106 case NB_EV_VALIDATE:
25107 case NB_EV_PREPARE:
25108 case NB_EV_ABORT:
25109 break;
25110 case NB_EV_APPLY:
25111 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
25112 }
25113
25114 return NB_OK;
25115 }
25116
25117 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_destroy(
25118 struct nb_cb_destroy_args *args)
25119 {
25120 switch (args->event) {
25121 case NB_EV_VALIDATE:
25122 case NB_EV_PREPARE:
25123 case NB_EV_ABORT:
25124 break;
25125 case NB_EV_APPLY:
25126 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
25127 }
25128
25129 return NB_OK;
25130 }
25131
25132 /*
25133 * XPath:
25134 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/plist-import
25135 */
25136 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_modify(
25137 struct nb_cb_modify_args *args)
25138 {
25139 switch (args->event) {
25140 case NB_EV_VALIDATE:
25141 case NB_EV_PREPARE:
25142 case NB_EV_ABORT:
25143 break;
25144 case NB_EV_APPLY:
25145 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
25146 }
25147
25148 return NB_OK;
25149 }
25150
25151 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_destroy(
25152 struct nb_cb_destroy_args *args)
25153 {
25154 switch (args->event) {
25155 case NB_EV_VALIDATE:
25156 case NB_EV_PREPARE:
25157 case NB_EV_ABORT:
25158 break;
25159 case NB_EV_APPLY:
25160 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
25161 }
25162
25163 return NB_OK;
25164 }
25165
25166 /*
25167 * XPath:
25168 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv4-flowspec/filter-config/plist-export
25169 */
25170 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_modify(
25171 struct nb_cb_modify_args *args)
25172 {
25173 switch (args->event) {
25174 case NB_EV_VALIDATE:
25175 case NB_EV_PREPARE:
25176 case NB_EV_ABORT:
25177 break;
25178 case NB_EV_APPLY:
25179 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
25180 }
25181
25182 return NB_OK;
25183 }
25184
25185 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_destroy(
25186 struct nb_cb_destroy_args *args)
25187 {
25188 switch (args->event) {
25189 case NB_EV_VALIDATE:
25190 case NB_EV_PREPARE:
25191 case NB_EV_ABORT:
25192 break;
25193 case NB_EV_APPLY:
25194 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
25195 }
25196
25197 return NB_OK;
25198 }
25199
25200 /*
25201 * XPath:
25202 * /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
25203 */
25204 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_modify(
25205 struct nb_cb_modify_args *args)
25206 {
25207 switch (args->event) {
25208 case NB_EV_VALIDATE:
25209 case NB_EV_PREPARE:
25210 case NB_EV_ABORT:
25211 case NB_EV_APPLY:
25212 /* TODO: implement me. */
25213 break;
25214 }
25215
25216 return NB_OK;
25217 }
25218
25219 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_destroy(
25220 struct nb_cb_destroy_args *args)
25221 {
25222 switch (args->event) {
25223 case NB_EV_VALIDATE:
25224 case NB_EV_PREPARE:
25225 case NB_EV_ABORT:
25226 case NB_EV_APPLY:
25227 /* TODO: implement me. */
25228 break;
25229 }
25230
25231 return NB_OK;
25232 }
25233
25234 /*
25235 * XPath:
25236 * /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
25237 */
25238 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_modify(
25239 struct nb_cb_modify_args *args)
25240 {
25241 switch (args->event) {
25242 case NB_EV_VALIDATE:
25243 case NB_EV_PREPARE:
25244 case NB_EV_ABORT:
25245 case NB_EV_APPLY:
25246 /* TODO: implement me. */
25247 break;
25248 }
25249
25250 return NB_OK;
25251 }
25252
25253 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_destroy(
25254 struct nb_cb_destroy_args *args)
25255 {
25256 switch (args->event) {
25257 case NB_EV_VALIDATE:
25258 case NB_EV_PREPARE:
25259 case NB_EV_ABORT:
25260 case NB_EV_APPLY:
25261 /* TODO: implement me. */
25262 break;
25263 }
25264
25265 return NB_OK;
25266 }
25267
25268 /*
25269 * XPath:
25270 * /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
25271 */
25272 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_modify(
25273 struct nb_cb_modify_args *args)
25274 {
25275 switch (args->event) {
25276 case NB_EV_VALIDATE:
25277 case NB_EV_PREPARE:
25278 case NB_EV_ABORT:
25279 case NB_EV_APPLY:
25280 /* TODO: implement me. */
25281 break;
25282 }
25283
25284 return NB_OK;
25285 }
25286
25287 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_destroy(
25288 struct nb_cb_destroy_args *args)
25289 {
25290 switch (args->event) {
25291 case NB_EV_VALIDATE:
25292 case NB_EV_PREPARE:
25293 case NB_EV_ABORT:
25294 case NB_EV_APPLY:
25295 /* TODO: implement me. */
25296 break;
25297 }
25298
25299 return NB_OK;
25300 }
25301
25302 /*
25303 * XPath:
25304 * /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
25305 */
25306 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_modify(
25307 struct nb_cb_modify_args *args)
25308 {
25309 switch (args->event) {
25310 case NB_EV_VALIDATE:
25311 case NB_EV_PREPARE:
25312 case NB_EV_ABORT:
25313 case NB_EV_APPLY:
25314 /* TODO: implement me. */
25315 break;
25316 }
25317
25318 return NB_OK;
25319 }
25320
25321 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_destroy(
25322 struct nb_cb_destroy_args *args)
25323 {
25324 switch (args->event) {
25325 case NB_EV_VALIDATE:
25326 case NB_EV_PREPARE:
25327 case NB_EV_ABORT:
25328 case NB_EV_APPLY:
25329 /* TODO: implement me. */
25330 break;
25331 }
25332
25333 return NB_OK;
25334 }
25335
25336 /*
25337 * XPath:
25338 * /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
25339 */
25340 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_modify(
25341 struct nb_cb_modify_args *args)
25342 {
25343 switch (args->event) {
25344 case NB_EV_VALIDATE:
25345 case NB_EV_PREPARE:
25346 case NB_EV_ABORT:
25347 case NB_EV_APPLY:
25348 /* TODO: implement me. */
25349 break;
25350 }
25351
25352 return NB_OK;
25353 }
25354
25355 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_destroy(
25356 struct nb_cb_destroy_args *args)
25357 {
25358 switch (args->event) {
25359 case NB_EV_VALIDATE:
25360 case NB_EV_PREPARE:
25361 case NB_EV_ABORT:
25362 case NB_EV_APPLY:
25363 /* TODO: implement me. */
25364 break;
25365 }
25366
25367 return NB_OK;
25368 }
25369
25370 /*
25371 * XPath:
25372 * /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
25373 */
25374 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_modify(
25375 struct nb_cb_modify_args *args)
25376 {
25377 switch (args->event) {
25378 case NB_EV_VALIDATE:
25379 case NB_EV_PREPARE:
25380 case NB_EV_ABORT:
25381 case NB_EV_APPLY:
25382 /* TODO: implement me. */
25383 break;
25384 }
25385
25386 return NB_OK;
25387 }
25388
25389 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_destroy(
25390 struct nb_cb_destroy_args *args)
25391 {
25392 switch (args->event) {
25393 case NB_EV_VALIDATE:
25394 case NB_EV_PREPARE:
25395 case NB_EV_ABORT:
25396 case NB_EV_APPLY:
25397 /* TODO: implement me. */
25398 break;
25399 }
25400
25401 return NB_OK;
25402 }
25403
25404 /*
25405 * XPath:
25406 * /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
25407 */
25408 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_route_reflector_route_reflector_client_modify(
25409 struct nb_cb_modify_args *args)
25410 {
25411 switch (args->event) {
25412 case NB_EV_VALIDATE:
25413 case NB_EV_PREPARE:
25414 case NB_EV_ABORT:
25415 return NB_OK;
25416 case NB_EV_APPLY:
25417 return bgp_neighbor_afi_safi_flag_modify(
25418 args, PEER_FLAG_REFLECTOR_CLIENT,
25419 yang_dnode_get_bool(args->dnode, NULL));
25420
25421 break;
25422 }
25423
25424 return NB_OK;
25425 }
25426
25427 /*
25428 * XPath:
25429 * /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
25430 */
25431 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_route_server_route_server_client_modify(
25432 struct nb_cb_modify_args *args)
25433 {
25434 switch (args->event) {
25435 case NB_EV_VALIDATE:
25436 case NB_EV_PREPARE:
25437 case NB_EV_ABORT:
25438 return NB_OK;
25439 case NB_EV_APPLY:
25440 return bgp_neighbor_afi_safi_flag_modify(
25441 args, PEER_FLAG_RSERVER_CLIENT,
25442 yang_dnode_get_bool(args->dnode, NULL));
25443
25444 break;
25445 }
25446
25447 return NB_OK;
25448 }
25449
25450 /*
25451 * XPath:
25452 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/soft-reconfiguration
25453 */
25454 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_soft_reconfiguration_modify(
25455 struct nb_cb_modify_args *args)
25456 {
25457 switch (args->event) {
25458 case NB_EV_VALIDATE:
25459 case NB_EV_PREPARE:
25460 case NB_EV_ABORT:
25461 return NB_OK;
25462 case NB_EV_APPLY:
25463 return bgp_neighbor_afi_safi_flag_modify(
25464 args, PEER_FLAG_SOFT_RECONFIG,
25465 yang_dnode_get_bool(args->dnode, NULL));
25466
25467 break;
25468 }
25469
25470 return NB_OK;
25471 }
25472
25473 /*
25474 * XPath:
25475 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/rmap-import
25476 */
25477 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_modify(
25478 struct nb_cb_modify_args *args)
25479 {
25480 switch (args->event) {
25481 case NB_EV_VALIDATE:
25482 case NB_EV_PREPARE:
25483 case NB_EV_ABORT:
25484 break;
25485 case NB_EV_APPLY:
25486 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_IN);
25487 }
25488
25489 return NB_OK;
25490 }
25491
25492 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_destroy(
25493 struct nb_cb_destroy_args *args)
25494 {
25495 switch (args->event) {
25496 case NB_EV_VALIDATE:
25497 case NB_EV_PREPARE:
25498 case NB_EV_ABORT:
25499 break;
25500 case NB_EV_APPLY:
25501 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_IN);
25502 }
25503
25504 return NB_OK;
25505 }
25506
25507 /*
25508 * XPath:
25509 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/rmap-export
25510 */
25511 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_modify(
25512 struct nb_cb_modify_args *args)
25513 {
25514 switch (args->event) {
25515 case NB_EV_VALIDATE:
25516 case NB_EV_PREPARE:
25517 case NB_EV_ABORT:
25518 break;
25519 case NB_EV_APPLY:
25520 return bgp_neighbor_afi_safi_rmap_modify(args, RMAP_OUT);
25521 }
25522
25523 return NB_OK;
25524 }
25525
25526 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_destroy(
25527 struct nb_cb_destroy_args *args)
25528 {
25529 switch (args->event) {
25530 case NB_EV_VALIDATE:
25531 case NB_EV_PREPARE:
25532 case NB_EV_ABORT:
25533 break;
25534 case NB_EV_APPLY:
25535 return bgp_neighbor_afi_safi_rmap_destroy(args, RMAP_OUT);
25536 }
25537
25538 return NB_OK;
25539 }
25540
25541 /*
25542 * XPath:
25543 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/plist-import
25544 */
25545 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_modify(
25546 struct nb_cb_modify_args *args)
25547 {
25548 switch (args->event) {
25549 case NB_EV_VALIDATE:
25550 case NB_EV_PREPARE:
25551 case NB_EV_ABORT:
25552 break;
25553 case NB_EV_APPLY:
25554 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_IN);
25555 }
25556
25557 return NB_OK;
25558 }
25559
25560 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_destroy(
25561 struct nb_cb_destroy_args *args)
25562 {
25563 switch (args->event) {
25564 case NB_EV_VALIDATE:
25565 case NB_EV_PREPARE:
25566 case NB_EV_ABORT:
25567 break;
25568 case NB_EV_APPLY:
25569 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_IN);
25570 }
25571
25572 return NB_OK;
25573 }
25574
25575 /*
25576 * XPath:
25577 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/neighbor/afi-safis/afi-safi/ipv6-flowspec/filter-config/plist-export
25578 */
25579 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_modify(
25580 struct nb_cb_modify_args *args)
25581 {
25582 switch (args->event) {
25583 case NB_EV_VALIDATE:
25584 case NB_EV_PREPARE:
25585 case NB_EV_ABORT:
25586 break;
25587 case NB_EV_APPLY:
25588 return bgp_neighbor_afi_safi_plist_modify(args, FILTER_OUT);
25589 }
25590
25591 return NB_OK;
25592 }
25593
25594 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_destroy(
25595 struct nb_cb_destroy_args *args)
25596 {
25597 switch (args->event) {
25598 case NB_EV_VALIDATE:
25599 case NB_EV_PREPARE:
25600 case NB_EV_ABORT:
25601 break;
25602 case NB_EV_APPLY:
25603 return bgp_neighbor_afi_safi_plist_destroy(args, FILTER_OUT);
25604 }
25605
25606 return NB_OK;
25607 }
25608
25609 /*
25610 * XPath:
25611 * /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
25612 */
25613 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_modify(
25614 struct nb_cb_modify_args *args)
25615 {
25616 switch (args->event) {
25617 case NB_EV_VALIDATE:
25618 case NB_EV_PREPARE:
25619 case NB_EV_ABORT:
25620 case NB_EV_APPLY:
25621 /* TODO: implement me. */
25622 break;
25623 }
25624
25625 return NB_OK;
25626 }
25627
25628 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_destroy(
25629 struct nb_cb_destroy_args *args)
25630 {
25631 switch (args->event) {
25632 case NB_EV_VALIDATE:
25633 case NB_EV_PREPARE:
25634 case NB_EV_ABORT:
25635 case NB_EV_APPLY:
25636 /* TODO: implement me. */
25637 break;
25638 }
25639
25640 return NB_OK;
25641 }
25642
25643 /*
25644 * XPath:
25645 * /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
25646 */
25647 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_modify(
25648 struct nb_cb_modify_args *args)
25649 {
25650 switch (args->event) {
25651 case NB_EV_VALIDATE:
25652 case NB_EV_PREPARE:
25653 case NB_EV_ABORT:
25654 case NB_EV_APPLY:
25655 /* TODO: implement me. */
25656 break;
25657 }
25658
25659 return NB_OK;
25660 }
25661
25662 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_destroy(
25663 struct nb_cb_destroy_args *args)
25664 {
25665 switch (args->event) {
25666 case NB_EV_VALIDATE:
25667 case NB_EV_PREPARE:
25668 case NB_EV_ABORT:
25669 case NB_EV_APPLY:
25670 /* TODO: implement me. */
25671 break;
25672 }
25673
25674 return NB_OK;
25675 }
25676
25677 /*
25678 * XPath:
25679 * /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
25680 */
25681 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_modify(
25682 struct nb_cb_modify_args *args)
25683 {
25684 switch (args->event) {
25685 case NB_EV_VALIDATE:
25686 case NB_EV_PREPARE:
25687 case NB_EV_ABORT:
25688 case NB_EV_APPLY:
25689 /* TODO: implement me. */
25690 break;
25691 }
25692
25693 return NB_OK;
25694 }
25695
25696 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_destroy(
25697 struct nb_cb_destroy_args *args)
25698 {
25699 switch (args->event) {
25700 case NB_EV_VALIDATE:
25701 case NB_EV_PREPARE:
25702 case NB_EV_ABORT:
25703 case NB_EV_APPLY:
25704 /* TODO: implement me. */
25705 break;
25706 }
25707
25708 return NB_OK;
25709 }
25710
25711 /*
25712 * XPath:
25713 * /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
25714 */
25715 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_modify(
25716 struct nb_cb_modify_args *args)
25717 {
25718 switch (args->event) {
25719 case NB_EV_VALIDATE:
25720 case NB_EV_PREPARE:
25721 case NB_EV_ABORT:
25722 case NB_EV_APPLY:
25723 /* TODO: implement me. */
25724 break;
25725 }
25726
25727 return NB_OK;
25728 }
25729
25730 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_destroy(
25731 struct nb_cb_destroy_args *args)
25732 {
25733 switch (args->event) {
25734 case NB_EV_VALIDATE:
25735 case NB_EV_PREPARE:
25736 case NB_EV_ABORT:
25737 case NB_EV_APPLY:
25738 /* TODO: implement me. */
25739 break;
25740 }
25741
25742 return NB_OK;
25743 }
25744
25745 /*
25746 * XPath:
25747 * /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
25748 */
25749 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_modify(
25750 struct nb_cb_modify_args *args)
25751 {
25752 switch (args->event) {
25753 case NB_EV_VALIDATE:
25754 case NB_EV_PREPARE:
25755 case NB_EV_ABORT:
25756 case NB_EV_APPLY:
25757 /* TODO: implement me. */
25758 break;
25759 }
25760
25761 return NB_OK;
25762 }
25763
25764 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_destroy(
25765 struct nb_cb_destroy_args *args)
25766 {
25767 switch (args->event) {
25768 case NB_EV_VALIDATE:
25769 case NB_EV_PREPARE:
25770 case NB_EV_ABORT:
25771 case NB_EV_APPLY:
25772 /* TODO: implement me. */
25773 break;
25774 }
25775
25776 return NB_OK;
25777 }
25778
25779 /*
25780 * XPath:
25781 * /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
25782 */
25783 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_modify(
25784 struct nb_cb_modify_args *args)
25785 {
25786 switch (args->event) {
25787 case NB_EV_VALIDATE:
25788 case NB_EV_PREPARE:
25789 case NB_EV_ABORT:
25790 case NB_EV_APPLY:
25791 /* TODO: implement me. */
25792 break;
25793 }
25794
25795 return NB_OK;
25796 }
25797
25798 int bgp_neighbors_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_destroy(
25799 struct nb_cb_destroy_args *args)
25800 {
25801 switch (args->event) {
25802 case NB_EV_VALIDATE:
25803 case NB_EV_PREPARE:
25804 case NB_EV_ABORT:
25805 case NB_EV_APPLY:
25806 /* TODO: implement me. */
25807 break;
25808 }
25809
25810 return NB_OK;
25811 }
25812
25813 static int
25814 bgp_unnumbered_neighbor_afi_safi_flag_modify(struct nb_cb_modify_args *args,
25815 uint32_t flags, bool set)
25816 {
25817 struct bgp *bgp;
25818 const char *peer_str;
25819 struct peer *peer;
25820 const struct lyd_node *nbr_dnode;
25821 const struct lyd_node *nbr_af_dnode;
25822 const char *af_name;
25823 afi_t afi;
25824 safi_t safi;
25825
25826 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
25827 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
25828 yang_afi_safi_identity2value(af_name, &afi, &safi);
25829
25830 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
25831 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
25832 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
25833 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
25834 args->errmsg_len);
25835
25836 if (peer_af_flag_modify_nb(peer, afi, safi, flags, set, args->errmsg,
25837 args->errmsg_len)
25838 < 0)
25839 return NB_ERR_INCONSISTENCY;
25840
25841 return NB_OK;
25842 }
25843
25844 /*
25845 * XPath:
25846 * /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
25847 */
25848 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_add_paths_path_type_modify(
25849 struct nb_cb_modify_args *args)
25850 {
25851 switch (args->event) {
25852 case NB_EV_VALIDATE:
25853 case NB_EV_PREPARE:
25854 case NB_EV_ABORT:
25855 case NB_EV_APPLY:
25856 /* TODO: implement me. */
25857 break;
25858 }
25859
25860 return NB_OK;
25861 }
25862
25863 /*
25864 * XPath:
25865 * /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
25866 */
25867 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_modify(
25868 struct nb_cb_modify_args *args)
25869 {
25870 switch (args->event) {
25871 case NB_EV_VALIDATE:
25872 case NB_EV_PREPARE:
25873 case NB_EV_ABORT:
25874 case NB_EV_APPLY:
25875 /* TODO: implement me. */
25876 break;
25877 }
25878
25879 return NB_OK;
25880 }
25881
25882 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_destroy(
25883 struct nb_cb_destroy_args *args)
25884 {
25885 switch (args->event) {
25886 case NB_EV_VALIDATE:
25887 case NB_EV_PREPARE:
25888 case NB_EV_ABORT:
25889 case NB_EV_APPLY:
25890 /* TODO: implement me. */
25891 break;
25892 }
25893
25894 return NB_OK;
25895 }
25896
25897 /*
25898 * XPath:
25899 * /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
25900 */
25901 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
25902 struct nb_cb_modify_args *args)
25903 {
25904 switch (args->event) {
25905 case NB_EV_VALIDATE:
25906 case NB_EV_PREPARE:
25907 case NB_EV_ABORT:
25908 case NB_EV_APPLY:
25909 /* TODO: implement me. */
25910 break;
25911 }
25912
25913 return NB_OK;
25914 }
25915
25916 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
25917 struct nb_cb_destroy_args *args)
25918 {
25919 switch (args->event) {
25920 case NB_EV_VALIDATE:
25921 case NB_EV_PREPARE:
25922 case NB_EV_ABORT:
25923 case NB_EV_APPLY:
25924 /* TODO: implement me. */
25925 break;
25926 }
25927
25928 return NB_OK;
25929 }
25930
25931 /*
25932 * XPath:
25933 * /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
25934 */
25935 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_as_path_options_replace_peer_as_modify(
25936 struct nb_cb_modify_args *args)
25937 {
25938 switch (args->event) {
25939 case NB_EV_VALIDATE:
25940 case NB_EV_PREPARE:
25941 case NB_EV_ABORT:
25942 return NB_OK;
25943 case NB_EV_APPLY:
25944 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
25945 args, PEER_FLAG_AS_OVERRIDE,
25946 yang_dnode_get_bool(args->dnode, NULL));
25947
25948 break;
25949 }
25950
25951 return NB_OK;
25952 }
25953
25954 /*
25955 * XPath:
25956 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate
25957 */
25958 void bgp_unnumbered_neighbor_afi_safi_default_originate_apply_finish(
25959 struct nb_cb_apply_finish_args *args)
25960 {
25961 struct bgp *bgp;
25962 const char *peer_str;
25963 struct peer *peer;
25964 const struct lyd_node *nbr_dnode;
25965 const struct lyd_node *nbr_af_dnode;
25966 const char *af_name;
25967 afi_t afi;
25968 safi_t safi;
25969
25970 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
25971 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
25972 yang_afi_safi_identity2value(af_name, &afi, &safi);
25973
25974 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
25975 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
25976 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
25977 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
25978 args->errmsg_len);
25979 if (!peer)
25980 return;
25981
25982 bgp_peer_afi_safi_default_originate_apply(args, peer, afi, safi);
25983 }
25984
25985 /*
25986 * XPath:
25987 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate/originate
25988 */
25989 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_originate_modify(
25990 struct nb_cb_modify_args *args)
25991 {
25992 switch (args->event) {
25993 case NB_EV_VALIDATE:
25994 case NB_EV_PREPARE:
25995 case NB_EV_ABORT:
25996 case NB_EV_APPLY:
25997 /* TODO: implement me. */
25998 break;
25999 }
26000
26001 return NB_OK;
26002 }
26003
26004 /*
26005 * XPath:
26006 * /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
26007 */
26008 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_modify(
26009 struct nb_cb_modify_args *args)
26010 {
26011 switch (args->event) {
26012 case NB_EV_VALIDATE:
26013 case NB_EV_PREPARE:
26014 case NB_EV_ABORT:
26015 case NB_EV_APPLY:
26016 /* TODO: implement me. */
26017 break;
26018 }
26019
26020 return NB_OK;
26021 }
26022
26023 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_destroy(
26024 struct nb_cb_destroy_args *args)
26025 {
26026 switch (args->event) {
26027 case NB_EV_VALIDATE:
26028 case NB_EV_PREPARE:
26029 case NB_EV_ABORT:
26030 case NB_EV_APPLY:
26031 /* TODO: implement me. */
26032 break;
26033 }
26034
26035 return NB_OK;
26036 }
26037
26038 static int bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
26039 struct nb_cb_destroy_args *args)
26040 {
26041 struct bgp *bgp;
26042 const char *peer_str;
26043 struct peer *peer;
26044 const struct lyd_node *nbr_dnode;
26045 const struct lyd_node *nbr_af_dnode;
26046 const char *af_name;
26047 afi_t afi;
26048 safi_t safi;
26049 int direction;
26050
26051 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
26052 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
26053 yang_afi_safi_identity2value(af_name, &afi, &safi);
26054
26055 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
26056 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
26057 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
26058 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
26059 args->errmsg_len);
26060 if (!peer)
26061 return NB_ERR_INCONSISTENCY;
26062
26063 direction = yang_dnode_get_enum(args->dnode, "./direction");
26064
26065 switch (direction) {
26066 case 1:
26067 peer_maximum_prefix_unset(peer, afi, safi);
26068 break;
26069 case 2:
26070 UNSET_FLAG(peer->af_flags[afi][safi], PEER_FLAG_MAX_PREFIX_OUT);
26071 peer->pmax_out[afi][safi] = 0;
26072 break;
26073 }
26074
26075 return NB_OK;
26076 }
26077
26078 /*
26079 * XPath:
26080 * /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
26081 */
26082 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_create(
26083 struct nb_cb_create_args *args)
26084 {
26085 switch (args->event) {
26086 case NB_EV_VALIDATE:
26087 case NB_EV_PREPARE:
26088 case NB_EV_ABORT:
26089 case NB_EV_APPLY:
26090 /* TODO: implement me. */
26091 break;
26092 }
26093
26094 return NB_OK;
26095 }
26096
26097 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_destroy(
26098 struct nb_cb_destroy_args *args)
26099 {
26100 switch (args->event) {
26101 case NB_EV_VALIDATE:
26102 case NB_EV_PREPARE:
26103 case NB_EV_ABORT:
26104 return NB_OK;
26105 case NB_EV_APPLY:
26106 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
26107 args);
26108 }
26109
26110 return NB_OK;
26111 }
26112
26113 void bgp_unnumbered_neighbor_afi_safi_prefix_limit_apply_finish(
26114 struct nb_cb_apply_finish_args *args)
26115 {
26116 struct bgp *bgp;
26117 const char *peer_str;
26118 struct peer *peer;
26119 const struct lyd_node *nbr_dnode;
26120 const struct lyd_node *nbr_af_dnode;
26121 const char *af_name;
26122 afi_t afi;
26123 safi_t safi;
26124
26125 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
26126 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
26127 yang_afi_safi_identity2value(af_name, &afi, &safi);
26128
26129 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
26130 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
26131 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
26132 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
26133 args->errmsg_len);
26134 if (!peer)
26135 return;
26136
26137 bgp_peer_afi_safi_maximum_prefix_set(args, peer, afi, safi);
26138 }
26139
26140 /*
26141 * XPath:
26142 * /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
26143 */
26144 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
26145 struct nb_cb_modify_args *args)
26146 {
26147 switch (args->event) {
26148 case NB_EV_VALIDATE:
26149 case NB_EV_PREPARE:
26150 case NB_EV_ABORT:
26151 case NB_EV_APPLY:
26152 /* TODO: implement me. */
26153 break;
26154 }
26155
26156 return NB_OK;
26157 }
26158
26159 /*
26160 * XPath:
26161 * /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
26162 */
26163 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
26164 struct nb_cb_modify_args *args)
26165 {
26166 switch (args->event) {
26167 case NB_EV_VALIDATE:
26168 case NB_EV_PREPARE:
26169 case NB_EV_ABORT:
26170 case NB_EV_APPLY:
26171 /* TODO: implement me. */
26172 break;
26173 }
26174
26175 return NB_OK;
26176 }
26177
26178 /*
26179 * XPath:
26180 * /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
26181 */
26182 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
26183 struct nb_cb_modify_args *args)
26184 {
26185 switch (args->event) {
26186 case NB_EV_VALIDATE:
26187 case NB_EV_PREPARE:
26188 case NB_EV_ABORT:
26189 case NB_EV_APPLY:
26190 /* TODO: implement me. */
26191 break;
26192 }
26193
26194 return NB_OK;
26195 }
26196
26197 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
26198 struct nb_cb_destroy_args *args)
26199 {
26200 switch (args->event) {
26201 case NB_EV_VALIDATE:
26202 case NB_EV_PREPARE:
26203 case NB_EV_ABORT:
26204 case NB_EV_APPLY:
26205 /* TODO: implement me. */
26206 break;
26207 }
26208
26209 return NB_OK;
26210 }
26211
26212 /*
26213 * XPath:
26214 * /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
26215 */
26216 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
26217 struct nb_cb_modify_args *args)
26218 {
26219 switch (args->event) {
26220 case NB_EV_VALIDATE:
26221 case NB_EV_PREPARE:
26222 case NB_EV_ABORT:
26223 case NB_EV_APPLY:
26224 /* TODO: implement me. */
26225 break;
26226 }
26227
26228 return NB_OK;
26229 }
26230
26231 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
26232 struct nb_cb_destroy_args *args)
26233 {
26234 switch (args->event) {
26235 case NB_EV_VALIDATE:
26236 case NB_EV_PREPARE:
26237 case NB_EV_ABORT:
26238 case NB_EV_APPLY:
26239 /* TODO: implement me. */
26240 break;
26241 }
26242
26243 return NB_OK;
26244 }
26245
26246 /*
26247 * XPath:
26248 * /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
26249 */
26250 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
26251 struct nb_cb_modify_args *args)
26252 {
26253 switch (args->event) {
26254 case NB_EV_VALIDATE:
26255 case NB_EV_PREPARE:
26256 case NB_EV_ABORT:
26257 case NB_EV_APPLY:
26258 /* TODO: implement me. */
26259 break;
26260 }
26261
26262 return NB_OK;
26263 }
26264
26265 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
26266 struct nb_cb_destroy_args *args)
26267 {
26268 switch (args->event) {
26269 case NB_EV_VALIDATE:
26270 case NB_EV_PREPARE:
26271 case NB_EV_ABORT:
26272 case NB_EV_APPLY:
26273 /* TODO: implement me. */
26274 break;
26275 }
26276
26277 return NB_OK;
26278 }
26279
26280 /*
26281 * XPath:
26282 * /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
26283 */
26284 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
26285 struct nb_cb_modify_args *args)
26286 {
26287 switch (args->event) {
26288 case NB_EV_VALIDATE:
26289 case NB_EV_PREPARE:
26290 case NB_EV_ABORT:
26291 case NB_EV_APPLY:
26292 /* TODO: implement me. */
26293 break;
26294 }
26295
26296 return NB_OK;
26297 }
26298
26299 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
26300 struct nb_cb_destroy_args *args)
26301 {
26302 switch (args->event) {
26303 case NB_EV_VALIDATE:
26304 case NB_EV_PREPARE:
26305 case NB_EV_ABORT:
26306 case NB_EV_APPLY:
26307 /* TODO: implement me. */
26308 break;
26309 }
26310
26311 return NB_OK;
26312 }
26313
26314 /*
26315 * XPath:
26316 * /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
26317 */
26318 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
26319 struct nb_cb_modify_args *args)
26320 {
26321 switch (args->event) {
26322 case NB_EV_VALIDATE:
26323 case NB_EV_PREPARE:
26324 case NB_EV_ABORT:
26325 case NB_EV_APPLY:
26326 /* TODO: implement me. */
26327 break;
26328 }
26329
26330 return NB_OK;
26331 }
26332
26333 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
26334 struct nb_cb_destroy_args *args)
26335 {
26336 switch (args->event) {
26337 case NB_EV_VALIDATE:
26338 case NB_EV_PREPARE:
26339 case NB_EV_ABORT:
26340 case NB_EV_APPLY:
26341 /* TODO: implement me. */
26342 break;
26343 }
26344
26345 return NB_OK;
26346 }
26347
26348 /*
26349 * XPath:
26350 * /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
26351 */
26352 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
26353 struct nb_cb_modify_args *args)
26354 {
26355 switch (args->event) {
26356 case NB_EV_VALIDATE:
26357 case NB_EV_PREPARE:
26358 case NB_EV_ABORT:
26359 case NB_EV_APPLY:
26360 /* TODO: implement me. */
26361 break;
26362 }
26363
26364 return NB_OK;
26365 }
26366
26367 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
26368 struct nb_cb_destroy_args *args)
26369 {
26370 switch (args->event) {
26371 case NB_EV_VALIDATE:
26372 case NB_EV_PREPARE:
26373 case NB_EV_ABORT:
26374 case NB_EV_APPLY:
26375 /* TODO: implement me. */
26376 break;
26377 }
26378
26379 return NB_OK;
26380 }
26381
26382 /*
26383 * XPath:
26384 * /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
26385 */
26386 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
26387 struct nb_cb_modify_args *args)
26388 {
26389 switch (args->event) {
26390 case NB_EV_VALIDATE:
26391 case NB_EV_PREPARE:
26392 case NB_EV_ABORT:
26393 case NB_EV_APPLY:
26394 /* TODO: implement me. */
26395 break;
26396 }
26397
26398 return NB_OK;
26399 }
26400
26401 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
26402 struct nb_cb_destroy_args *args)
26403 {
26404 switch (args->event) {
26405 case NB_EV_VALIDATE:
26406 case NB_EV_PREPARE:
26407 case NB_EV_ABORT:
26408 case NB_EV_APPLY:
26409 /* TODO: implement me. */
26410 break;
26411 }
26412
26413 return NB_OK;
26414 }
26415
26416 /*
26417 * XPath:
26418 * /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
26419 */
26420 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_modify(
26421 struct nb_cb_modify_args *args)
26422 {
26423 switch (args->event) {
26424 case NB_EV_VALIDATE:
26425 case NB_EV_PREPARE:
26426 case NB_EV_ABORT:
26427 return NB_OK;
26428 case NB_EV_APPLY:
26429 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26430 args, PEER_FLAG_NEXTHOP_SELF,
26431 yang_dnode_get_bool(args->dnode, NULL));
26432
26433 break;
26434 }
26435
26436 return NB_OK;
26437 }
26438
26439 /*
26440 * XPath:
26441 * /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
26442 */
26443 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
26444 struct nb_cb_modify_args *args)
26445 {
26446 switch (args->event) {
26447 case NB_EV_VALIDATE:
26448 case NB_EV_PREPARE:
26449 case NB_EV_ABORT:
26450 return NB_OK;
26451 case NB_EV_APPLY:
26452 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26453 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
26454 yang_dnode_get_bool(args->dnode, NULL));
26455
26456 break;
26457 }
26458
26459 return NB_OK;
26460 }
26461
26462 /*
26463 * XPath:
26464 * /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
26465 */
26466 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_modify(
26467 struct nb_cb_modify_args *args)
26468 {
26469 switch (args->event) {
26470 case NB_EV_VALIDATE:
26471 case NB_EV_PREPARE:
26472 case NB_EV_ABORT:
26473 return NB_OK;
26474 case NB_EV_APPLY:
26475 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26476 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
26477 yang_dnode_get_bool(args->dnode, NULL));
26478
26479 break;
26480 }
26481
26482 return NB_OK;
26483 }
26484
26485 /*
26486 * XPath:
26487 * /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
26488 */
26489 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
26490 struct nb_cb_modify_args *args)
26491 {
26492 switch (args->event) {
26493 case NB_EV_VALIDATE:
26494 case NB_EV_PREPARE:
26495 case NB_EV_ABORT:
26496 return NB_OK;
26497 case NB_EV_APPLY:
26498 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26499 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
26500 yang_dnode_get_bool(args->dnode, NULL));
26501
26502 break;
26503 }
26504
26505 return NB_OK;
26506 }
26507
26508 /*
26509 * XPath:
26510 * /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
26511 */
26512 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_modify(
26513 struct nb_cb_modify_args *args)
26514 {
26515 switch (args->event) {
26516 case NB_EV_VALIDATE:
26517 case NB_EV_PREPARE:
26518 case NB_EV_ABORT:
26519 return NB_OK;
26520 case NB_EV_APPLY:
26521 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26522 args, PEER_FLAG_REMOVE_PRIVATE_AS,
26523 yang_dnode_get_bool(args->dnode, NULL));
26524
26525 break;
26526 }
26527
26528 return NB_OK;
26529 }
26530
26531 /*
26532 * XPath:
26533 * /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
26534 */
26535 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_replace_modify(
26536 struct nb_cb_modify_args *args)
26537 {
26538 switch (args->event) {
26539 case NB_EV_VALIDATE:
26540 case NB_EV_PREPARE:
26541 case NB_EV_ABORT:
26542 return NB_OK;
26543 case NB_EV_APPLY:
26544 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26545 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
26546 yang_dnode_get_bool(args->dnode, NULL));
26547
26548 break;
26549 }
26550
26551 return NB_OK;
26552 }
26553
26554 static int
26555 bgp_unnumbered_neighbor_afi_safi_weight_modify(struct nb_cb_modify_args *args)
26556 {
26557 struct bgp *bgp;
26558 const char *peer_str;
26559 struct peer *peer;
26560 const struct lyd_node *nbr_dnode;
26561 const char *af_name;
26562 uint16_t weight;
26563 afi_t afi;
26564 safi_t safi;
26565 const struct lyd_node *nbr_af_dnode;
26566 int ret;
26567
26568 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
26569 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
26570 yang_afi_safi_identity2value(af_name, &afi, &safi);
26571
26572 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
26573 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
26574 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
26575 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
26576 args->errmsg_len);
26577
26578 weight = yang_dnode_get_uint16(args->dnode, NULL);
26579
26580 ret = peer_weight_set(peer, afi, safi, weight);
26581 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
26582 return NB_ERR_INCONSISTENCY;
26583
26584 return NB_OK;
26585 }
26586
26587 static int
26588 bgp_unnumbered_neighbor_afi_safi_weight_destroy(struct nb_cb_destroy_args *args)
26589 {
26590 struct bgp *bgp;
26591 const char *peer_str;
26592 struct peer *peer;
26593 const struct lyd_node *nbr_dnode;
26594 const struct lyd_node *nbr_af_dnode;
26595 const char *af_name;
26596 afi_t afi;
26597 safi_t safi;
26598 int ret;
26599
26600 bgp = nb_running_get_entry(args->dnode, NULL, true);
26601 nbr_dnode = yang_dnode_get_parent(args->dnode, "unnumbered-neighbor");
26602 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
26603 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
26604 args->errmsg_len);
26605 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
26606 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
26607 yang_afi_safi_identity2value(af_name, &afi, &safi);
26608
26609 ret = peer_weight_unset(peer, afi, safi);
26610 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
26611 return NB_ERR_INCONSISTENCY;
26612
26613 return NB_OK;
26614 }
26615
26616 /*
26617 * XPath:
26618 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/weight/weight-attribute
26619 */
26620 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_modify(
26621 struct nb_cb_modify_args *args)
26622 {
26623 switch (args->event) {
26624 case NB_EV_VALIDATE:
26625 case NB_EV_PREPARE:
26626 case NB_EV_ABORT:
26627 return NB_OK;
26628 case NB_EV_APPLY:
26629 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
26630
26631 break;
26632 }
26633
26634 return NB_OK;
26635 }
26636
26637 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_destroy(
26638 struct nb_cb_destroy_args *args)
26639 {
26640 switch (args->event) {
26641 case NB_EV_VALIDATE:
26642 case NB_EV_PREPARE:
26643 case NB_EV_ABORT:
26644 return NB_OK;
26645 case NB_EV_APPLY:
26646 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
26647
26648 break;
26649 }
26650
26651 return NB_OK;
26652 }
26653
26654 /*
26655 * XPath:
26656 * /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
26657 */
26658 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_route_reflector_route_reflector_client_modify(
26659 struct nb_cb_modify_args *args)
26660 {
26661 switch (args->event) {
26662 case NB_EV_VALIDATE:
26663 case NB_EV_PREPARE:
26664 case NB_EV_ABORT:
26665 return NB_OK;
26666 case NB_EV_APPLY:
26667 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26668 args, PEER_FLAG_REFLECTOR_CLIENT,
26669 yang_dnode_get_bool(args->dnode, NULL));
26670
26671 break;
26672 }
26673
26674 return NB_OK;
26675 }
26676
26677 /*
26678 * XPath:
26679 * /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
26680 */
26681 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_route_server_route_server_client_modify(
26682 struct nb_cb_modify_args *args)
26683 {
26684 switch (args->event) {
26685 case NB_EV_VALIDATE:
26686 case NB_EV_PREPARE:
26687 case NB_EV_ABORT:
26688 return NB_OK;
26689 case NB_EV_APPLY:
26690 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26691 args, PEER_FLAG_RSERVER_CLIENT,
26692 yang_dnode_get_bool(args->dnode, NULL));
26693
26694 break;
26695 }
26696
26697 return NB_OK;
26698 }
26699
26700 /*
26701 * XPath:
26702 * /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
26703 */
26704 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_community_modify(
26705 struct nb_cb_modify_args *args)
26706 {
26707 switch (args->event) {
26708 case NB_EV_VALIDATE:
26709 case NB_EV_PREPARE:
26710 case NB_EV_ABORT:
26711 return NB_OK;
26712 case NB_EV_APPLY:
26713 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26714 args, PEER_FLAG_SEND_COMMUNITY,
26715 yang_dnode_get_bool(args->dnode, NULL));
26716
26717 break;
26718 }
26719
26720 return NB_OK;
26721 }
26722
26723 /*
26724 * XPath:
26725 * /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
26726 */
26727 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_ext_community_modify(
26728 struct nb_cb_modify_args *args)
26729 {
26730 switch (args->event) {
26731 case NB_EV_VALIDATE:
26732 case NB_EV_PREPARE:
26733 case NB_EV_ABORT:
26734 return NB_OK;
26735 case NB_EV_APPLY:
26736 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26737 args, PEER_FLAG_SEND_EXT_COMMUNITY,
26738 yang_dnode_get_bool(args->dnode, NULL));
26739
26740 break;
26741 }
26742
26743 return NB_OK;
26744 }
26745
26746 /*
26747 * XPath:
26748 * /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
26749 */
26750 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_send_community_send_large_community_modify(
26751 struct nb_cb_modify_args *args)
26752 {
26753 switch (args->event) {
26754 case NB_EV_VALIDATE:
26755 case NB_EV_PREPARE:
26756 case NB_EV_ABORT:
26757 return NB_OK;
26758 case NB_EV_APPLY:
26759 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26760 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
26761 yang_dnode_get_bool(args->dnode, NULL));
26762
26763 break;
26764 }
26765
26766 return NB_OK;
26767 }
26768
26769 /*
26770 * XPath:
26771 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/soft-reconfiguration
26772 */
26773 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_soft_reconfiguration_modify(
26774 struct nb_cb_modify_args *args)
26775 {
26776 switch (args->event) {
26777 case NB_EV_VALIDATE:
26778 case NB_EV_PREPARE:
26779 case NB_EV_ABORT:
26780 return NB_OK;
26781 case NB_EV_APPLY:
26782 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26783 args, PEER_FLAG_SOFT_RECONFIG,
26784 yang_dnode_get_bool(args->dnode, NULL));
26785
26786 break;
26787 }
26788
26789 return NB_OK;
26790 }
26791
26792 /*
26793 * XPath:
26794 * /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
26795 */
26796 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
26797 struct nb_cb_modify_args *args)
26798 {
26799 switch (args->event) {
26800 case NB_EV_VALIDATE:
26801 case NB_EV_PREPARE:
26802 case NB_EV_ABORT:
26803 return NB_OK;
26804 case NB_EV_APPLY:
26805 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26806 args, PEER_FLAG_AS_PATH_UNCHANGED,
26807 yang_dnode_get_bool(args->dnode, NULL));
26808
26809 break;
26810 }
26811
26812 return NB_OK;
26813 }
26814
26815 /*
26816 * XPath:
26817 * /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
26818 */
26819 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
26820 struct nb_cb_modify_args *args)
26821 {
26822 switch (args->event) {
26823 case NB_EV_VALIDATE:
26824 case NB_EV_PREPARE:
26825 case NB_EV_ABORT:
26826 return NB_OK;
26827 case NB_EV_APPLY:
26828 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26829 args, PEER_FLAG_NEXTHOP_UNCHANGED,
26830 yang_dnode_get_bool(args->dnode, NULL));
26831
26832 break;
26833 }
26834
26835 return NB_OK;
26836 }
26837
26838 /*
26839 * XPath:
26840 * /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
26841 */
26842 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_med_unchanged_modify(
26843 struct nb_cb_modify_args *args)
26844 {
26845 switch (args->event) {
26846 case NB_EV_VALIDATE:
26847 case NB_EV_PREPARE:
26848 case NB_EV_ABORT:
26849 return NB_OK;
26850 case NB_EV_APPLY:
26851 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
26852 args, PEER_FLAG_MED_UNCHANGED,
26853 yang_dnode_get_bool(args->dnode, NULL));
26854
26855 break;
26856 }
26857
26858 return NB_OK;
26859 }
26860
26861 /*
26862 * XPath:
26863 * /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
26864 */
26865 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_modify(
26866 struct nb_cb_modify_args *args)
26867 {
26868 switch (args->event) {
26869 case NB_EV_VALIDATE:
26870 case NB_EV_PREPARE:
26871 case NB_EV_ABORT:
26872 case NB_EV_APPLY:
26873 /* TODO: implement me. */
26874 break;
26875 }
26876
26877 return NB_OK;
26878 }
26879
26880 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_destroy(
26881 struct nb_cb_destroy_args *args)
26882 {
26883 switch (args->event) {
26884 case NB_EV_VALIDATE:
26885 case NB_EV_PREPARE:
26886 case NB_EV_ABORT:
26887 case NB_EV_APPLY:
26888 /* TODO: implement me. */
26889 break;
26890 }
26891
26892 return NB_OK;
26893 }
26894
26895 /*
26896 * XPath:
26897 * /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
26898 */
26899 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_modify(
26900 struct nb_cb_modify_args *args)
26901 {
26902 switch (args->event) {
26903 case NB_EV_VALIDATE:
26904 case NB_EV_PREPARE:
26905 case NB_EV_ABORT:
26906 case NB_EV_APPLY:
26907 /* TODO: implement me. */
26908 break;
26909 }
26910
26911 return NB_OK;
26912 }
26913
26914 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_destroy(
26915 struct nb_cb_destroy_args *args)
26916 {
26917 switch (args->event) {
26918 case NB_EV_VALIDATE:
26919 case NB_EV_PREPARE:
26920 case NB_EV_ABORT:
26921 case NB_EV_APPLY:
26922 /* TODO: implement me. */
26923 break;
26924 }
26925
26926 return NB_OK;
26927 }
26928
26929 /*
26930 * XPath:
26931 * /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
26932 */
26933 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_modify(
26934 struct nb_cb_modify_args *args)
26935 {
26936 switch (args->event) {
26937 case NB_EV_VALIDATE:
26938 case NB_EV_PREPARE:
26939 case NB_EV_ABORT:
26940 case NB_EV_APPLY:
26941 /* TODO: implement me. */
26942 break;
26943 }
26944
26945 return NB_OK;
26946 }
26947
26948 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_destroy(
26949 struct nb_cb_destroy_args *args)
26950 {
26951 switch (args->event) {
26952 case NB_EV_VALIDATE:
26953 case NB_EV_PREPARE:
26954 case NB_EV_ABORT:
26955 case NB_EV_APPLY:
26956 /* TODO: implement me. */
26957 break;
26958 }
26959
26960 return NB_OK;
26961 }
26962
26963 static int
26964 bgp_unnumbered_neighbor_afi_safi_rmap_modify(struct nb_cb_modify_args *args,
26965 int direct)
26966 {
26967 struct bgp *bgp;
26968 const char *peer_str;
26969 struct peer *peer;
26970 const struct lyd_node *nbr_dnode;
26971 const struct lyd_node *nbr_af_dnode;
26972 const char *af_name;
26973 afi_t afi;
26974 safi_t safi;
26975 const char *name_str;
26976 struct route_map *route_map;
26977 int ret;
26978
26979 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
26980 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
26981 yang_afi_safi_identity2value(af_name, &afi, &safi);
26982
26983 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
26984 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
26985 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
26986 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
26987 args->errmsg_len);
26988
26989 name_str = yang_dnode_get_string(args->dnode, NULL);
26990 route_map = route_map_lookup_by_name(name_str);
26991 ret = peer_route_map_set(peer, afi, safi, direct, name_str, route_map);
26992
26993 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
26994 }
26995
26996 static int
26997 bgp_unnumbered_neighbor_afi_safi_rmap_destroy(struct nb_cb_destroy_args *args,
26998 int direct)
26999 {
27000 struct bgp *bgp;
27001 const char *peer_str;
27002 struct peer *peer;
27003 const struct lyd_node *nbr_dnode;
27004 const struct lyd_node *nbr_af_dnode;
27005 const char *af_name;
27006 afi_t afi;
27007 safi_t safi;
27008 int ret;
27009
27010 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
27011 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
27012 yang_afi_safi_identity2value(af_name, &afi, &safi);
27013
27014 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
27015 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
27016 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
27017 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
27018 args->errmsg_len);
27019
27020 ret = peer_route_map_unset(peer, afi, safi, direct);
27021
27022 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
27023 }
27024
27025 /*
27026 * XPath:
27027 * /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
27028 */
27029 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_modify(
27030 struct nb_cb_modify_args *args)
27031 {
27032 switch (args->event) {
27033 case NB_EV_VALIDATE:
27034 case NB_EV_PREPARE:
27035 case NB_EV_ABORT:
27036 break;
27037 case NB_EV_APPLY:
27038 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
27039 RMAP_IN);
27040 }
27041
27042 return NB_OK;
27043 }
27044
27045 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_destroy(
27046 struct nb_cb_destroy_args *args)
27047 {
27048 switch (args->event) {
27049 case NB_EV_VALIDATE:
27050 case NB_EV_PREPARE:
27051 case NB_EV_ABORT:
27052 break;
27053 case NB_EV_APPLY:
27054 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
27055 RMAP_IN);
27056 }
27057
27058 return NB_OK;
27059 }
27060
27061 /*
27062 * XPath:
27063 * /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
27064 */
27065 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_modify(
27066 struct nb_cb_modify_args *args)
27067 {
27068 switch (args->event) {
27069 case NB_EV_VALIDATE:
27070 case NB_EV_PREPARE:
27071 case NB_EV_ABORT:
27072 break;
27073 case NB_EV_APPLY:
27074 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
27075 RMAP_OUT);
27076 }
27077
27078 return NB_OK;
27079 }
27080
27081 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_destroy(
27082 struct nb_cb_destroy_args *args)
27083 {
27084 switch (args->event) {
27085 case NB_EV_VALIDATE:
27086 case NB_EV_PREPARE:
27087 case NB_EV_ABORT:
27088 break;
27089 case NB_EV_APPLY:
27090 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
27091 RMAP_OUT);
27092 }
27093
27094 return NB_OK;
27095 }
27096
27097 static int
27098 bgp_unnumbered_neighbor_afi_safi_plist_modify(struct nb_cb_modify_args *args,
27099 int direct)
27100 {
27101 struct bgp *bgp;
27102 const char *peer_str;
27103 struct peer *peer;
27104 const struct lyd_node *nbr_dnode;
27105 const struct lyd_node *nbr_af_dnode;
27106 const char *af_name;
27107 afi_t afi;
27108 safi_t safi;
27109 const char *name_str;
27110
27111 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
27112 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
27113 yang_afi_safi_identity2value(af_name, &afi, &safi);
27114
27115 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
27116 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
27117 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
27118 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
27119 args->errmsg_len);
27120
27121 name_str = yang_dnode_get_string(args->dnode, NULL);
27122 if (peer_prefix_list_set(peer, afi, safi, direct, name_str) < 0)
27123 return NB_ERR_INCONSISTENCY;
27124
27125 return NB_OK;
27126 }
27127
27128 static int
27129 bgp_unnumbered_neighbor_afi_safi_plist_destroy(struct nb_cb_destroy_args *args,
27130 int direct)
27131 {
27132 struct bgp *bgp;
27133 const char *peer_str;
27134 struct peer *peer;
27135 const struct lyd_node *nbr_dnode;
27136 const struct lyd_node *nbr_af_dnode;
27137 const char *af_name;
27138 afi_t afi;
27139 safi_t safi;
27140
27141 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
27142 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
27143 yang_afi_safi_identity2value(af_name, &afi, &safi);
27144
27145 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "unnumbered-neighbor");
27146 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
27147 peer_str = yang_dnode_get_string(nbr_dnode, "./interface");
27148 peer = bgp_unnumbered_neighbor_peer_lookup(bgp, peer_str, args->errmsg,
27149 args->errmsg_len);
27150
27151 if (peer_prefix_list_unset(peer, afi, safi, direct) < 0)
27152 return NB_ERR_INCONSISTENCY;
27153
27154 return NB_OK;
27155 }
27156 /*
27157 * XPath:
27158 * /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
27159 */
27160 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_modify(
27161 struct nb_cb_modify_args *args)
27162 {
27163 switch (args->event) {
27164 case NB_EV_VALIDATE:
27165 case NB_EV_PREPARE:
27166 case NB_EV_ABORT:
27167 break;
27168 case NB_EV_APPLY:
27169 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
27170 FILTER_IN);
27171 }
27172
27173 return NB_OK;
27174 }
27175
27176 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_destroy(
27177 struct nb_cb_destroy_args *args)
27178 {
27179 switch (args->event) {
27180 case NB_EV_VALIDATE:
27181 case NB_EV_PREPARE:
27182 case NB_EV_ABORT:
27183 break;
27184 case NB_EV_APPLY:
27185 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
27186 args, FILTER_IN);
27187 }
27188
27189 return NB_OK;
27190 }
27191
27192 /*
27193 * XPath:
27194 * /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
27195 */
27196 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_modify(
27197 struct nb_cb_modify_args *args)
27198 {
27199 switch (args->event) {
27200 case NB_EV_VALIDATE:
27201 case NB_EV_PREPARE:
27202 case NB_EV_ABORT:
27203 break;
27204 case NB_EV_APPLY:
27205 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
27206 args, FILTER_OUT);
27207 }
27208
27209 return NB_OK;
27210 }
27211
27212 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_destroy(
27213 struct nb_cb_destroy_args *args)
27214 {
27215 switch (args->event) {
27216 case NB_EV_VALIDATE:
27217 case NB_EV_PREPARE:
27218 case NB_EV_ABORT:
27219 break;
27220 case NB_EV_APPLY:
27221 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
27222 args, FILTER_OUT);
27223 }
27224
27225 return NB_OK;
27226 }
27227
27228 /*
27229 * XPath:
27230 * /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
27231 */
27232 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_modify(
27233 struct nb_cb_modify_args *args)
27234 {
27235 switch (args->event) {
27236 case NB_EV_VALIDATE:
27237 case NB_EV_PREPARE:
27238 case NB_EV_ABORT:
27239 case NB_EV_APPLY:
27240 /* TODO: implement me. */
27241 break;
27242 }
27243
27244 return NB_OK;
27245 }
27246
27247 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_destroy(
27248 struct nb_cb_destroy_args *args)
27249 {
27250 switch (args->event) {
27251 case NB_EV_VALIDATE:
27252 case NB_EV_PREPARE:
27253 case NB_EV_ABORT:
27254 case NB_EV_APPLY:
27255 /* TODO: implement me. */
27256 break;
27257 }
27258
27259 return NB_OK;
27260 }
27261
27262 /*
27263 * XPath:
27264 * /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
27265 */
27266 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_modify(
27267 struct nb_cb_modify_args *args)
27268 {
27269 switch (args->event) {
27270 case NB_EV_VALIDATE:
27271 case NB_EV_PREPARE:
27272 case NB_EV_ABORT:
27273 case NB_EV_APPLY:
27274 /* TODO: implement me. */
27275 break;
27276 }
27277
27278 return NB_OK;
27279 }
27280
27281 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_destroy(
27282 struct nb_cb_destroy_args *args)
27283 {
27284 switch (args->event) {
27285 case NB_EV_VALIDATE:
27286 case NB_EV_PREPARE:
27287 case NB_EV_ABORT:
27288 case NB_EV_APPLY:
27289 /* TODO: implement me. */
27290 break;
27291 }
27292
27293 return NB_OK;
27294 }
27295
27296 /*
27297 * XPath:
27298 * /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
27299 */
27300 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_modify(
27301 struct nb_cb_modify_args *args)
27302 {
27303 switch (args->event) {
27304 case NB_EV_VALIDATE:
27305 case NB_EV_PREPARE:
27306 case NB_EV_ABORT:
27307 case NB_EV_APPLY:
27308 /* TODO: implement me. */
27309 break;
27310 }
27311
27312 return NB_OK;
27313 }
27314
27315 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_destroy(
27316 struct nb_cb_destroy_args *args)
27317 {
27318 switch (args->event) {
27319 case NB_EV_VALIDATE:
27320 case NB_EV_PREPARE:
27321 case NB_EV_ABORT:
27322 case NB_EV_APPLY:
27323 /* TODO: implement me. */
27324 break;
27325 }
27326
27327 return NB_OK;
27328 }
27329
27330 /*
27331 * XPath:
27332 * /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
27333 */
27334 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_modify(
27335 struct nb_cb_modify_args *args)
27336 {
27337 switch (args->event) {
27338 case NB_EV_VALIDATE:
27339 case NB_EV_PREPARE:
27340 case NB_EV_ABORT:
27341 case NB_EV_APPLY:
27342 /* TODO: implement me. */
27343 break;
27344 }
27345
27346 return NB_OK;
27347 }
27348
27349 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_destroy(
27350 struct nb_cb_destroy_args *args)
27351 {
27352 switch (args->event) {
27353 case NB_EV_VALIDATE:
27354 case NB_EV_PREPARE:
27355 case NB_EV_ABORT:
27356 case NB_EV_APPLY:
27357 /* TODO: implement me. */
27358 break;
27359 }
27360
27361 return NB_OK;
27362 }
27363
27364 /*
27365 * XPath:
27366 * /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
27367 */
27368 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_modify(
27369 struct nb_cb_modify_args *args)
27370 {
27371 switch (args->event) {
27372 case NB_EV_VALIDATE:
27373 case NB_EV_PREPARE:
27374 case NB_EV_ABORT:
27375 case NB_EV_APPLY:
27376 /* TODO: implement me. */
27377 break;
27378 }
27379
27380 return NB_OK;
27381 }
27382
27383 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_destroy(
27384 struct nb_cb_destroy_args *args)
27385 {
27386 switch (args->event) {
27387 case NB_EV_VALIDATE:
27388 case NB_EV_PREPARE:
27389 case NB_EV_ABORT:
27390 case NB_EV_APPLY:
27391 /* TODO: implement me. */
27392 break;
27393 }
27394
27395 return NB_OK;
27396 }
27397
27398 /*
27399 * XPath:
27400 * /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
27401 */
27402 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_modify(
27403 struct nb_cb_modify_args *args)
27404 {
27405 switch (args->event) {
27406 case NB_EV_VALIDATE:
27407 case NB_EV_PREPARE:
27408 case NB_EV_ABORT:
27409 case NB_EV_APPLY:
27410 /* TODO: implement me. */
27411 break;
27412 }
27413
27414 return NB_OK;
27415 }
27416
27417 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_destroy(
27418 struct nb_cb_destroy_args *args)
27419 {
27420 switch (args->event) {
27421 case NB_EV_VALIDATE:
27422 case NB_EV_PREPARE:
27423 case NB_EV_ABORT:
27424 case NB_EV_APPLY:
27425 /* TODO: implement me. */
27426 break;
27427 }
27428
27429 return NB_OK;
27430 }
27431
27432 /*
27433 * XPath:
27434 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/nexthop-local-unchanged
27435 */
27436 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_local_unchanged_modify(
27437 struct nb_cb_modify_args *args)
27438 {
27439 switch (args->event) {
27440 case NB_EV_VALIDATE:
27441 case NB_EV_PREPARE:
27442 case NB_EV_ABORT:
27443 case NB_EV_APPLY:
27444 /* TODO: implement me. */
27445 break;
27446 }
27447
27448 return NB_OK;
27449 }
27450
27451 /*
27452 * XPath:
27453 * /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
27454 */
27455 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_add_paths_path_type_modify(
27456 struct nb_cb_modify_args *args)
27457 {
27458 switch (args->event) {
27459 case NB_EV_VALIDATE:
27460 case NB_EV_PREPARE:
27461 case NB_EV_ABORT:
27462 case NB_EV_APPLY:
27463 /* TODO: implement me. */
27464 break;
27465 }
27466
27467 return NB_OK;
27468 }
27469
27470 /*
27471 * XPath:
27472 * /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
27473 */
27474 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_modify(
27475 struct nb_cb_modify_args *args)
27476 {
27477 switch (args->event) {
27478 case NB_EV_VALIDATE:
27479 case NB_EV_PREPARE:
27480 case NB_EV_ABORT:
27481 case NB_EV_APPLY:
27482 /* TODO: implement me. */
27483 break;
27484 }
27485
27486 return NB_OK;
27487 }
27488
27489 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_destroy(
27490 struct nb_cb_destroy_args *args)
27491 {
27492 switch (args->event) {
27493 case NB_EV_VALIDATE:
27494 case NB_EV_PREPARE:
27495 case NB_EV_ABORT:
27496 case NB_EV_APPLY:
27497 /* TODO: implement me. */
27498 break;
27499 }
27500
27501 return NB_OK;
27502 }
27503
27504 /*
27505 * XPath:
27506 * /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
27507 */
27508 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
27509 struct nb_cb_modify_args *args)
27510 {
27511 switch (args->event) {
27512 case NB_EV_VALIDATE:
27513 case NB_EV_PREPARE:
27514 case NB_EV_ABORT:
27515 case NB_EV_APPLY:
27516 /* TODO: implement me. */
27517 break;
27518 }
27519
27520 return NB_OK;
27521 }
27522
27523 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
27524 struct nb_cb_destroy_args *args)
27525 {
27526 switch (args->event) {
27527 case NB_EV_VALIDATE:
27528 case NB_EV_PREPARE:
27529 case NB_EV_ABORT:
27530 case NB_EV_APPLY:
27531 /* TODO: implement me. */
27532 break;
27533 }
27534
27535 return NB_OK;
27536 }
27537
27538 /*
27539 * XPath:
27540 * /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
27541 */
27542 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_as_path_options_replace_peer_as_modify(
27543 struct nb_cb_modify_args *args)
27544 {
27545 switch (args->event) {
27546 case NB_EV_VALIDATE:
27547 case NB_EV_PREPARE:
27548 case NB_EV_ABORT:
27549 return NB_OK;
27550 case NB_EV_APPLY:
27551 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
27552 args, PEER_FLAG_AS_OVERRIDE,
27553 yang_dnode_get_bool(args->dnode, NULL));
27554
27555 break;
27556 }
27557
27558 return NB_OK;
27559 }
27560
27561 /*
27562 * XPath:
27563 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/default-originate/originate
27564 */
27565 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_originate_modify(
27566 struct nb_cb_modify_args *args)
27567 {
27568 switch (args->event) {
27569 case NB_EV_VALIDATE:
27570 case NB_EV_PREPARE:
27571 case NB_EV_ABORT:
27572 case NB_EV_APPLY:
27573 /* TODO: implement me. */
27574 break;
27575 }
27576
27577 return NB_OK;
27578 }
27579
27580 /*
27581 * XPath:
27582 * /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
27583 */
27584 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_modify(
27585 struct nb_cb_modify_args *args)
27586 {
27587 switch (args->event) {
27588 case NB_EV_VALIDATE:
27589 case NB_EV_PREPARE:
27590 case NB_EV_ABORT:
27591 case NB_EV_APPLY:
27592 /* TODO: implement me. */
27593 break;
27594 }
27595
27596 return NB_OK;
27597 }
27598
27599 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_destroy(
27600 struct nb_cb_destroy_args *args)
27601 {
27602 switch (args->event) {
27603 case NB_EV_VALIDATE:
27604 case NB_EV_PREPARE:
27605 case NB_EV_ABORT:
27606 case NB_EV_APPLY:
27607 /* TODO: implement me. */
27608 break;
27609 }
27610
27611 return NB_OK;
27612 }
27613
27614 /*
27615 * XPath:
27616 * /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
27617 */
27618 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
27619 struct nb_cb_modify_args *args)
27620 {
27621 switch (args->event) {
27622 case NB_EV_VALIDATE:
27623 case NB_EV_PREPARE:
27624 case NB_EV_ABORT:
27625 return NB_OK;
27626 case NB_EV_APPLY:
27627 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
27628 args, PEER_FLAG_AS_PATH_UNCHANGED,
27629 yang_dnode_get_bool(args->dnode, NULL));
27630
27631 break;
27632 }
27633
27634 return NB_OK;
27635 }
27636
27637 /*
27638 * XPath:
27639 * /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
27640 */
27641 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
27642 struct nb_cb_modify_args *args)
27643 {
27644 switch (args->event) {
27645 case NB_EV_VALIDATE:
27646 case NB_EV_PREPARE:
27647 case NB_EV_ABORT:
27648 return NB_OK;
27649 case NB_EV_APPLY:
27650 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
27651 args, PEER_FLAG_NEXTHOP_UNCHANGED,
27652 yang_dnode_get_bool(args->dnode, NULL));
27653
27654 break;
27655 }
27656
27657 return NB_OK;
27658 }
27659
27660 /*
27661 * XPath:
27662 * /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
27663 */
27664 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_med_unchanged_modify(
27665 struct nb_cb_modify_args *args)
27666 {
27667 switch (args->event) {
27668 case NB_EV_VALIDATE:
27669 case NB_EV_PREPARE:
27670 case NB_EV_ABORT:
27671 return NB_OK;
27672 case NB_EV_APPLY:
27673 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
27674 args, PEER_FLAG_MED_UNCHANGED,
27675 yang_dnode_get_bool(args->dnode, NULL));
27676
27677 break;
27678 }
27679
27680 return NB_OK;
27681 }
27682
27683 /*
27684 * XPath:
27685 * /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
27686 */
27687 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_modify(
27688 struct nb_cb_modify_args *args)
27689 {
27690 switch (args->event) {
27691 case NB_EV_VALIDATE:
27692 case NB_EV_PREPARE:
27693 case NB_EV_ABORT:
27694 case NB_EV_APPLY:
27695 /* TODO: implement me. */
27696 break;
27697 }
27698
27699 return NB_OK;
27700 }
27701
27702 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_destroy(
27703 struct nb_cb_destroy_args *args)
27704 {
27705 switch (args->event) {
27706 case NB_EV_VALIDATE:
27707 case NB_EV_PREPARE:
27708 case NB_EV_ABORT:
27709 case NB_EV_APPLY:
27710 /* TODO: implement me. */
27711 break;
27712 }
27713
27714 return NB_OK;
27715 }
27716
27717 /*
27718 * XPath:
27719 * /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
27720 */
27721 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_modify(
27722 struct nb_cb_modify_args *args)
27723 {
27724 switch (args->event) {
27725 case NB_EV_VALIDATE:
27726 case NB_EV_PREPARE:
27727 case NB_EV_ABORT:
27728 case NB_EV_APPLY:
27729 /* TODO: implement me. */
27730 break;
27731 }
27732
27733 return NB_OK;
27734 }
27735
27736 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_destroy(
27737 struct nb_cb_destroy_args *args)
27738 {
27739 switch (args->event) {
27740 case NB_EV_VALIDATE:
27741 case NB_EV_PREPARE:
27742 case NB_EV_ABORT:
27743 case NB_EV_APPLY:
27744 /* TODO: implement me. */
27745 break;
27746 }
27747
27748 return NB_OK;
27749 }
27750
27751 /*
27752 * XPath:
27753 * /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
27754 */
27755 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_modify(
27756 struct nb_cb_modify_args *args)
27757 {
27758 switch (args->event) {
27759 case NB_EV_VALIDATE:
27760 case NB_EV_PREPARE:
27761 case NB_EV_ABORT:
27762 case NB_EV_APPLY:
27763 /* TODO: implement me. */
27764 break;
27765 }
27766
27767 return NB_OK;
27768 }
27769
27770 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_destroy(
27771 struct nb_cb_destroy_args *args)
27772 {
27773 switch (args->event) {
27774 case NB_EV_VALIDATE:
27775 case NB_EV_PREPARE:
27776 case NB_EV_ABORT:
27777 case NB_EV_APPLY:
27778 /* TODO: implement me. */
27779 break;
27780 }
27781
27782 return NB_OK;
27783 }
27784
27785 /*
27786 * XPath:
27787 * /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
27788 */
27789 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_create(
27790 struct nb_cb_create_args *args)
27791 {
27792 switch (args->event) {
27793 case NB_EV_VALIDATE:
27794 case NB_EV_PREPARE:
27795 case NB_EV_ABORT:
27796 case NB_EV_APPLY:
27797 /* TODO: implement me. */
27798 break;
27799 }
27800
27801 return NB_OK;
27802 }
27803
27804 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_destroy(
27805 struct nb_cb_destroy_args *args)
27806 {
27807 switch (args->event) {
27808 case NB_EV_VALIDATE:
27809 case NB_EV_PREPARE:
27810 case NB_EV_ABORT:
27811 return NB_OK;
27812 case NB_EV_APPLY:
27813 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
27814 args);
27815 }
27816
27817 return NB_OK;
27818 }
27819
27820 /*
27821 * XPath:
27822 * /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
27823 */
27824 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
27825 struct nb_cb_modify_args *args)
27826 {
27827 switch (args->event) {
27828 case NB_EV_VALIDATE:
27829 case NB_EV_PREPARE:
27830 case NB_EV_ABORT:
27831 case NB_EV_APPLY:
27832 /* TODO: implement me. */
27833 break;
27834 }
27835
27836 return NB_OK;
27837 }
27838
27839 /*
27840 * XPath:
27841 * /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
27842 */
27843 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
27844 struct nb_cb_modify_args *args)
27845 {
27846 switch (args->event) {
27847 case NB_EV_VALIDATE:
27848 case NB_EV_PREPARE:
27849 case NB_EV_ABORT:
27850 case NB_EV_APPLY:
27851 /* TODO: implement me. */
27852 break;
27853 }
27854
27855 return NB_OK;
27856 }
27857
27858 /*
27859 * XPath:
27860 * /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
27861 */
27862 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
27863 struct nb_cb_modify_args *args)
27864 {
27865 switch (args->event) {
27866 case NB_EV_VALIDATE:
27867 case NB_EV_PREPARE:
27868 case NB_EV_ABORT:
27869 case NB_EV_APPLY:
27870 /* TODO: implement me. */
27871 break;
27872 }
27873
27874 return NB_OK;
27875 }
27876
27877 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
27878 struct nb_cb_destroy_args *args)
27879 {
27880 switch (args->event) {
27881 case NB_EV_VALIDATE:
27882 case NB_EV_PREPARE:
27883 case NB_EV_ABORT:
27884 case NB_EV_APPLY:
27885 /* TODO: implement me. */
27886 break;
27887 }
27888
27889 return NB_OK;
27890 }
27891
27892 /*
27893 * XPath:
27894 * /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
27895 */
27896 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
27897 struct nb_cb_modify_args *args)
27898 {
27899 switch (args->event) {
27900 case NB_EV_VALIDATE:
27901 case NB_EV_PREPARE:
27902 case NB_EV_ABORT:
27903 case NB_EV_APPLY:
27904 /* TODO: implement me. */
27905 break;
27906 }
27907
27908 return NB_OK;
27909 }
27910
27911 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
27912 struct nb_cb_destroy_args *args)
27913 {
27914 switch (args->event) {
27915 case NB_EV_VALIDATE:
27916 case NB_EV_PREPARE:
27917 case NB_EV_ABORT:
27918 case NB_EV_APPLY:
27919 /* TODO: implement me. */
27920 break;
27921 }
27922
27923 return NB_OK;
27924 }
27925
27926 /*
27927 * XPath:
27928 * /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
27929 */
27930 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
27931 struct nb_cb_modify_args *args)
27932 {
27933 switch (args->event) {
27934 case NB_EV_VALIDATE:
27935 case NB_EV_PREPARE:
27936 case NB_EV_ABORT:
27937 case NB_EV_APPLY:
27938 /* TODO: implement me. */
27939 break;
27940 }
27941
27942 return NB_OK;
27943 }
27944
27945 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
27946 struct nb_cb_destroy_args *args)
27947 {
27948 switch (args->event) {
27949 case NB_EV_VALIDATE:
27950 case NB_EV_PREPARE:
27951 case NB_EV_ABORT:
27952 case NB_EV_APPLY:
27953 /* TODO: implement me. */
27954 break;
27955 }
27956
27957 return NB_OK;
27958 }
27959
27960 /*
27961 * XPath:
27962 * /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
27963 */
27964 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
27965 struct nb_cb_modify_args *args)
27966 {
27967 switch (args->event) {
27968 case NB_EV_VALIDATE:
27969 case NB_EV_PREPARE:
27970 case NB_EV_ABORT:
27971 case NB_EV_APPLY:
27972 /* TODO: implement me. */
27973 break;
27974 }
27975
27976 return NB_OK;
27977 }
27978
27979 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
27980 struct nb_cb_destroy_args *args)
27981 {
27982 switch (args->event) {
27983 case NB_EV_VALIDATE:
27984 case NB_EV_PREPARE:
27985 case NB_EV_ABORT:
27986 case NB_EV_APPLY:
27987 /* TODO: implement me. */
27988 break;
27989 }
27990
27991 return NB_OK;
27992 }
27993
27994 /*
27995 * XPath:
27996 * /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
27997 */
27998 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
27999 struct nb_cb_modify_args *args)
28000 {
28001 switch (args->event) {
28002 case NB_EV_VALIDATE:
28003 case NB_EV_PREPARE:
28004 case NB_EV_ABORT:
28005 case NB_EV_APPLY:
28006 /* TODO: implement me. */
28007 break;
28008 }
28009
28010 return NB_OK;
28011 }
28012
28013 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
28014 struct nb_cb_destroy_args *args)
28015 {
28016 switch (args->event) {
28017 case NB_EV_VALIDATE:
28018 case NB_EV_PREPARE:
28019 case NB_EV_ABORT:
28020 case NB_EV_APPLY:
28021 /* TODO: implement me. */
28022 break;
28023 }
28024
28025 return NB_OK;
28026 }
28027
28028 /*
28029 * XPath:
28030 * /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
28031 */
28032 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
28033 struct nb_cb_modify_args *args)
28034 {
28035 switch (args->event) {
28036 case NB_EV_VALIDATE:
28037 case NB_EV_PREPARE:
28038 case NB_EV_ABORT:
28039 case NB_EV_APPLY:
28040 /* TODO: implement me. */
28041 break;
28042 }
28043
28044 return NB_OK;
28045 }
28046
28047 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
28048 struct nb_cb_destroy_args *args)
28049 {
28050 switch (args->event) {
28051 case NB_EV_VALIDATE:
28052 case NB_EV_PREPARE:
28053 case NB_EV_ABORT:
28054 case NB_EV_APPLY:
28055 /* TODO: implement me. */
28056 break;
28057 }
28058
28059 return NB_OK;
28060 }
28061
28062 /*
28063 * XPath:
28064 * /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
28065 */
28066 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
28067 struct nb_cb_modify_args *args)
28068 {
28069 switch (args->event) {
28070 case NB_EV_VALIDATE:
28071 case NB_EV_PREPARE:
28072 case NB_EV_ABORT:
28073 case NB_EV_APPLY:
28074 /* TODO: implement me. */
28075 break;
28076 }
28077
28078 return NB_OK;
28079 }
28080
28081 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
28082 struct nb_cb_destroy_args *args)
28083 {
28084 switch (args->event) {
28085 case NB_EV_VALIDATE:
28086 case NB_EV_PREPARE:
28087 case NB_EV_ABORT:
28088 case NB_EV_APPLY:
28089 /* TODO: implement me. */
28090 break;
28091 }
28092
28093 return NB_OK;
28094 }
28095
28096 /*
28097 * XPath:
28098 * /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
28099 */
28100 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_modify(
28101 struct nb_cb_modify_args *args)
28102 {
28103 switch (args->event) {
28104 case NB_EV_VALIDATE:
28105 case NB_EV_PREPARE:
28106 case NB_EV_ABORT:
28107 return NB_OK;
28108 case NB_EV_APPLY:
28109 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28110 args, PEER_FLAG_NEXTHOP_SELF,
28111 yang_dnode_get_bool(args->dnode, NULL));
28112
28113 break;
28114 }
28115
28116 return NB_OK;
28117 }
28118
28119 /*
28120 * XPath:
28121 * /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
28122 */
28123 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
28124 struct nb_cb_modify_args *args)
28125 {
28126 switch (args->event) {
28127 case NB_EV_VALIDATE:
28128 case NB_EV_PREPARE:
28129 case NB_EV_ABORT:
28130 return NB_OK;
28131 case NB_EV_APPLY:
28132 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28133 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
28134 yang_dnode_get_bool(args->dnode, NULL));
28135
28136 break;
28137 }
28138
28139 return NB_OK;
28140 }
28141
28142 /*
28143 * XPath:
28144 * /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
28145 */
28146 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_modify(
28147 struct nb_cb_modify_args *args)
28148 {
28149 switch (args->event) {
28150 case NB_EV_VALIDATE:
28151 case NB_EV_PREPARE:
28152 case NB_EV_ABORT:
28153 return NB_OK;
28154 case NB_EV_APPLY:
28155 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28156 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
28157 yang_dnode_get_bool(args->dnode, NULL));
28158
28159 break;
28160 }
28161
28162 return NB_OK;
28163 }
28164
28165 /*
28166 * XPath:
28167 * /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
28168 */
28169 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
28170 struct nb_cb_modify_args *args)
28171 {
28172 switch (args->event) {
28173 case NB_EV_VALIDATE:
28174 case NB_EV_PREPARE:
28175 case NB_EV_ABORT:
28176 return NB_OK;
28177 case NB_EV_APPLY:
28178 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28179 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
28180 yang_dnode_get_bool(args->dnode, NULL));
28181
28182 break;
28183 }
28184
28185 return NB_OK;
28186 }
28187
28188 /*
28189 * XPath:
28190 * /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
28191 */
28192 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_modify(
28193 struct nb_cb_modify_args *args)
28194 {
28195 switch (args->event) {
28196 case NB_EV_VALIDATE:
28197 case NB_EV_PREPARE:
28198 case NB_EV_ABORT:
28199 return NB_OK;
28200 case NB_EV_APPLY:
28201 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28202 args, PEER_FLAG_REMOVE_PRIVATE_AS,
28203 yang_dnode_get_bool(args->dnode, NULL));
28204
28205 break;
28206 }
28207
28208 return NB_OK;
28209 }
28210
28211 /*
28212 * XPath:
28213 * /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
28214 */
28215 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_replace_modify(
28216 struct nb_cb_modify_args *args)
28217 {
28218 switch (args->event) {
28219 case NB_EV_VALIDATE:
28220 case NB_EV_PREPARE:
28221 case NB_EV_ABORT:
28222 return NB_OK;
28223 case NB_EV_APPLY:
28224 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28225 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
28226 yang_dnode_get_bool(args->dnode, NULL));
28227
28228 break;
28229 }
28230
28231 return NB_OK;
28232 }
28233
28234 /*
28235 * XPath:
28236 * /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
28237 */
28238 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_route_reflector_route_reflector_client_modify(
28239 struct nb_cb_modify_args *args)
28240 {
28241 switch (args->event) {
28242 case NB_EV_VALIDATE:
28243 case NB_EV_PREPARE:
28244 case NB_EV_ABORT:
28245 return NB_OK;
28246 case NB_EV_APPLY:
28247 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28248 args, PEER_FLAG_REFLECTOR_CLIENT,
28249 yang_dnode_get_bool(args->dnode, NULL));
28250
28251 break;
28252 }
28253
28254 return NB_OK;
28255 }
28256
28257 /*
28258 * XPath:
28259 * /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
28260 */
28261 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_route_server_route_server_client_modify(
28262 struct nb_cb_modify_args *args)
28263 {
28264 switch (args->event) {
28265 case NB_EV_VALIDATE:
28266 case NB_EV_PREPARE:
28267 case NB_EV_ABORT:
28268 return NB_OK;
28269 case NB_EV_APPLY:
28270 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28271 args, PEER_FLAG_RSERVER_CLIENT,
28272 yang_dnode_get_bool(args->dnode, NULL));
28273
28274 break;
28275 }
28276
28277 return NB_OK;
28278 }
28279
28280 /*
28281 * XPath:
28282 * /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
28283 */
28284 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_community_modify(
28285 struct nb_cb_modify_args *args)
28286 {
28287 switch (args->event) {
28288 case NB_EV_VALIDATE:
28289 case NB_EV_PREPARE:
28290 case NB_EV_ABORT:
28291 return NB_OK;
28292 case NB_EV_APPLY:
28293 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28294 args, PEER_FLAG_SEND_COMMUNITY,
28295 yang_dnode_get_bool(args->dnode, NULL));
28296
28297 break;
28298 }
28299
28300 return NB_OK;
28301 }
28302
28303 /*
28304 * XPath:
28305 * /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
28306 */
28307 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_ext_community_modify(
28308 struct nb_cb_modify_args *args)
28309 {
28310 switch (args->event) {
28311 case NB_EV_VALIDATE:
28312 case NB_EV_PREPARE:
28313 case NB_EV_ABORT:
28314 return NB_OK;
28315 case NB_EV_APPLY:
28316 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28317 args, PEER_FLAG_SEND_EXT_COMMUNITY,
28318 yang_dnode_get_bool(args->dnode, NULL));
28319
28320 break;
28321 }
28322
28323 return NB_OK;
28324 }
28325
28326 /*
28327 * XPath:
28328 * /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
28329 */
28330 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_send_community_send_large_community_modify(
28331 struct nb_cb_modify_args *args)
28332 {
28333 switch (args->event) {
28334 case NB_EV_VALIDATE:
28335 case NB_EV_PREPARE:
28336 case NB_EV_ABORT:
28337 return NB_OK;
28338 case NB_EV_APPLY:
28339 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28340 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
28341 yang_dnode_get_bool(args->dnode, NULL));
28342
28343 break;
28344 }
28345
28346 return NB_OK;
28347 }
28348
28349 /*
28350 * XPath:
28351 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/soft-reconfiguration
28352 */
28353 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_soft_reconfiguration_modify(
28354 struct nb_cb_modify_args *args)
28355 {
28356 switch (args->event) {
28357 case NB_EV_VALIDATE:
28358 case NB_EV_PREPARE:
28359 case NB_EV_ABORT:
28360 return NB_OK;
28361 case NB_EV_APPLY:
28362 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28363 args, PEER_FLAG_SOFT_RECONFIG,
28364 yang_dnode_get_bool(args->dnode, NULL));
28365
28366 break;
28367 }
28368
28369 return NB_OK;
28370 }
28371
28372 /*
28373 * XPath:
28374 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-unicast/weight/weight-attribute
28375 */
28376 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_modify(
28377 struct nb_cb_modify_args *args)
28378 {
28379 switch (args->event) {
28380 case NB_EV_VALIDATE:
28381 case NB_EV_PREPARE:
28382 case NB_EV_ABORT:
28383 return NB_OK;
28384 case NB_EV_APPLY:
28385 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
28386
28387 break;
28388 }
28389
28390 return NB_OK;
28391 }
28392
28393 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_destroy(
28394 struct nb_cb_destroy_args *args)
28395 {
28396 switch (args->event) {
28397 case NB_EV_VALIDATE:
28398 case NB_EV_PREPARE:
28399 case NB_EV_ABORT:
28400 return NB_OK;
28401 case NB_EV_APPLY:
28402 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
28403
28404 break;
28405 }
28406
28407 return NB_OK;
28408 }
28409
28410 /*
28411 * XPath:
28412 * /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
28413 */
28414 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_modify(
28415 struct nb_cb_modify_args *args)
28416 {
28417 switch (args->event) {
28418 case NB_EV_VALIDATE:
28419 case NB_EV_PREPARE:
28420 case NB_EV_ABORT:
28421 break;
28422 case NB_EV_APPLY:
28423 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
28424 RMAP_IN);
28425 }
28426
28427 return NB_OK;
28428 }
28429
28430 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_destroy(
28431 struct nb_cb_destroy_args *args)
28432 {
28433 switch (args->event) {
28434 case NB_EV_VALIDATE:
28435 case NB_EV_PREPARE:
28436 case NB_EV_ABORT:
28437 break;
28438 case NB_EV_APPLY:
28439 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
28440 RMAP_IN);
28441 }
28442
28443 return NB_OK;
28444 }
28445
28446 /*
28447 * XPath:
28448 * /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
28449 */
28450 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_modify(
28451 struct nb_cb_modify_args *args)
28452 {
28453 switch (args->event) {
28454 case NB_EV_VALIDATE:
28455 case NB_EV_PREPARE:
28456 case NB_EV_ABORT:
28457 break;
28458 case NB_EV_APPLY:
28459 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
28460 RMAP_OUT);
28461 }
28462
28463 return NB_OK;
28464 }
28465
28466 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_destroy(
28467 struct nb_cb_destroy_args *args)
28468 {
28469 switch (args->event) {
28470 case NB_EV_VALIDATE:
28471 case NB_EV_PREPARE:
28472 case NB_EV_ABORT:
28473 break;
28474 case NB_EV_APPLY:
28475 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
28476 RMAP_OUT);
28477 }
28478
28479 return NB_OK;
28480 }
28481
28482 /*
28483 * XPath:
28484 * /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
28485 */
28486 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_modify(
28487 struct nb_cb_modify_args *args)
28488 {
28489 switch (args->event) {
28490 case NB_EV_VALIDATE:
28491 case NB_EV_PREPARE:
28492 case NB_EV_ABORT:
28493 break;
28494 case NB_EV_APPLY:
28495 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
28496 FILTER_IN);
28497 }
28498
28499 return NB_OK;
28500 }
28501
28502 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_destroy(
28503 struct nb_cb_destroy_args *args)
28504 {
28505 switch (args->event) {
28506 case NB_EV_VALIDATE:
28507 case NB_EV_PREPARE:
28508 case NB_EV_ABORT:
28509 break;
28510 case NB_EV_APPLY:
28511 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
28512 args, FILTER_IN);
28513 }
28514
28515 return NB_OK;
28516 }
28517
28518 /*
28519 * XPath:
28520 * /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
28521 */
28522 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_modify(
28523 struct nb_cb_modify_args *args)
28524 {
28525 switch (args->event) {
28526 case NB_EV_VALIDATE:
28527 case NB_EV_PREPARE:
28528 case NB_EV_ABORT:
28529 break;
28530 case NB_EV_APPLY:
28531 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
28532 args, FILTER_OUT);
28533 }
28534
28535 return NB_OK;
28536 }
28537
28538 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_destroy(
28539 struct nb_cb_destroy_args *args)
28540 {
28541 switch (args->event) {
28542 case NB_EV_VALIDATE:
28543 case NB_EV_PREPARE:
28544 case NB_EV_ABORT:
28545 break;
28546 case NB_EV_APPLY:
28547 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
28548 args, FILTER_OUT);
28549 }
28550
28551 return NB_OK;
28552 }
28553
28554 /*
28555 * XPath:
28556 * /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
28557 */
28558 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_modify(
28559 struct nb_cb_modify_args *args)
28560 {
28561 switch (args->event) {
28562 case NB_EV_VALIDATE:
28563 case NB_EV_PREPARE:
28564 case NB_EV_ABORT:
28565 case NB_EV_APPLY:
28566 /* TODO: implement me. */
28567 break;
28568 }
28569
28570 return NB_OK;
28571 }
28572
28573 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_destroy(
28574 struct nb_cb_destroy_args *args)
28575 {
28576 switch (args->event) {
28577 case NB_EV_VALIDATE:
28578 case NB_EV_PREPARE:
28579 case NB_EV_ABORT:
28580 case NB_EV_APPLY:
28581 /* TODO: implement me. */
28582 break;
28583 }
28584
28585 return NB_OK;
28586 }
28587
28588 /*
28589 * XPath:
28590 * /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
28591 */
28592 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_modify(
28593 struct nb_cb_modify_args *args)
28594 {
28595 switch (args->event) {
28596 case NB_EV_VALIDATE:
28597 case NB_EV_PREPARE:
28598 case NB_EV_ABORT:
28599 case NB_EV_APPLY:
28600 /* TODO: implement me. */
28601 break;
28602 }
28603
28604 return NB_OK;
28605 }
28606
28607 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_destroy(
28608 struct nb_cb_destroy_args *args)
28609 {
28610 switch (args->event) {
28611 case NB_EV_VALIDATE:
28612 case NB_EV_PREPARE:
28613 case NB_EV_ABORT:
28614 case NB_EV_APPLY:
28615 /* TODO: implement me. */
28616 break;
28617 }
28618
28619 return NB_OK;
28620 }
28621
28622 /*
28623 * XPath:
28624 * /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
28625 */
28626 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_modify(
28627 struct nb_cb_modify_args *args)
28628 {
28629 switch (args->event) {
28630 case NB_EV_VALIDATE:
28631 case NB_EV_PREPARE:
28632 case NB_EV_ABORT:
28633 case NB_EV_APPLY:
28634 /* TODO: implement me. */
28635 break;
28636 }
28637
28638 return NB_OK;
28639 }
28640
28641 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_destroy(
28642 struct nb_cb_destroy_args *args)
28643 {
28644 switch (args->event) {
28645 case NB_EV_VALIDATE:
28646 case NB_EV_PREPARE:
28647 case NB_EV_ABORT:
28648 case NB_EV_APPLY:
28649 /* TODO: implement me. */
28650 break;
28651 }
28652
28653 return NB_OK;
28654 }
28655
28656 /*
28657 * XPath:
28658 * /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
28659 */
28660 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_modify(
28661 struct nb_cb_modify_args *args)
28662 {
28663 switch (args->event) {
28664 case NB_EV_VALIDATE:
28665 case NB_EV_PREPARE:
28666 case NB_EV_ABORT:
28667 case NB_EV_APPLY:
28668 /* TODO: implement me. */
28669 break;
28670 }
28671
28672 return NB_OK;
28673 }
28674
28675 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_destroy(
28676 struct nb_cb_destroy_args *args)
28677 {
28678 switch (args->event) {
28679 case NB_EV_VALIDATE:
28680 case NB_EV_PREPARE:
28681 case NB_EV_ABORT:
28682 case NB_EV_APPLY:
28683 /* TODO: implement me. */
28684 break;
28685 }
28686
28687 return NB_OK;
28688 }
28689
28690 /*
28691 * XPath:
28692 * /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
28693 */
28694 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_modify(
28695 struct nb_cb_modify_args *args)
28696 {
28697 switch (args->event) {
28698 case NB_EV_VALIDATE:
28699 case NB_EV_PREPARE:
28700 case NB_EV_ABORT:
28701 case NB_EV_APPLY:
28702 /* TODO: implement me. */
28703 break;
28704 }
28705
28706 return NB_OK;
28707 }
28708
28709 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_destroy(
28710 struct nb_cb_destroy_args *args)
28711 {
28712 switch (args->event) {
28713 case NB_EV_VALIDATE:
28714 case NB_EV_PREPARE:
28715 case NB_EV_ABORT:
28716 case NB_EV_APPLY:
28717 /* TODO: implement me. */
28718 break;
28719 }
28720
28721 return NB_OK;
28722 }
28723
28724 /*
28725 * XPath:
28726 * /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
28727 */
28728 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_modify(
28729 struct nb_cb_modify_args *args)
28730 {
28731 switch (args->event) {
28732 case NB_EV_VALIDATE:
28733 case NB_EV_PREPARE:
28734 case NB_EV_ABORT:
28735 case NB_EV_APPLY:
28736 /* TODO: implement me. */
28737 break;
28738 }
28739
28740 return NB_OK;
28741 }
28742
28743 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_destroy(
28744 struct nb_cb_destroy_args *args)
28745 {
28746 switch (args->event) {
28747 case NB_EV_VALIDATE:
28748 case NB_EV_PREPARE:
28749 case NB_EV_ABORT:
28750 case NB_EV_APPLY:
28751 /* TODO: implement me. */
28752 break;
28753 }
28754
28755 return NB_OK;
28756 }
28757
28758 /*
28759 * XPath:
28760 * /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
28761 */
28762 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_add_paths_path_type_modify(
28763 struct nb_cb_modify_args *args)
28764 {
28765 switch (args->event) {
28766 case NB_EV_VALIDATE:
28767 case NB_EV_PREPARE:
28768 case NB_EV_ABORT:
28769 case NB_EV_APPLY:
28770 /* TODO: implement me. */
28771 break;
28772 }
28773
28774 return NB_OK;
28775 }
28776
28777 /*
28778 * XPath:
28779 * /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
28780 */
28781 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_modify(
28782 struct nb_cb_modify_args *args)
28783 {
28784 switch (args->event) {
28785 case NB_EV_VALIDATE:
28786 case NB_EV_PREPARE:
28787 case NB_EV_ABORT:
28788 case NB_EV_APPLY:
28789 /* TODO: implement me. */
28790 break;
28791 }
28792
28793 return NB_OK;
28794 }
28795
28796 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_destroy(
28797 struct nb_cb_destroy_args *args)
28798 {
28799 switch (args->event) {
28800 case NB_EV_VALIDATE:
28801 case NB_EV_PREPARE:
28802 case NB_EV_ABORT:
28803 case NB_EV_APPLY:
28804 /* TODO: implement me. */
28805 break;
28806 }
28807
28808 return NB_OK;
28809 }
28810
28811 /*
28812 * XPath:
28813 * /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
28814 */
28815 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_modify(
28816 struct nb_cb_modify_args *args)
28817 {
28818 switch (args->event) {
28819 case NB_EV_VALIDATE:
28820 case NB_EV_PREPARE:
28821 case NB_EV_ABORT:
28822 case NB_EV_APPLY:
28823 /* TODO: implement me. */
28824 break;
28825 }
28826
28827 return NB_OK;
28828 }
28829
28830 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_destroy(
28831 struct nb_cb_destroy_args *args)
28832 {
28833 switch (args->event) {
28834 case NB_EV_VALIDATE:
28835 case NB_EV_PREPARE:
28836 case NB_EV_ABORT:
28837 case NB_EV_APPLY:
28838 /* TODO: implement me. */
28839 break;
28840 }
28841
28842 return NB_OK;
28843 }
28844
28845 /*
28846 * XPath:
28847 * /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
28848 */
28849 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_as_path_options_replace_peer_as_modify(
28850 struct nb_cb_modify_args *args)
28851 {
28852 switch (args->event) {
28853 case NB_EV_VALIDATE:
28854 case NB_EV_PREPARE:
28855 case NB_EV_ABORT:
28856 return NB_OK;
28857 case NB_EV_APPLY:
28858 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28859 args, PEER_FLAG_AS_OVERRIDE,
28860 yang_dnode_get_bool(args->dnode, NULL));
28861
28862 break;
28863 }
28864
28865 return NB_OK;
28866 }
28867
28868 /*
28869 * XPath:
28870 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/default-originate/originate
28871 */
28872 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_originate_modify(
28873 struct nb_cb_modify_args *args)
28874 {
28875 switch (args->event) {
28876 case NB_EV_VALIDATE:
28877 case NB_EV_PREPARE:
28878 case NB_EV_ABORT:
28879 case NB_EV_APPLY:
28880 /* TODO: implement me. */
28881 break;
28882 }
28883
28884 return NB_OK;
28885 }
28886
28887 /*
28888 * XPath:
28889 * /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
28890 */
28891 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_modify(
28892 struct nb_cb_modify_args *args)
28893 {
28894 switch (args->event) {
28895 case NB_EV_VALIDATE:
28896 case NB_EV_PREPARE:
28897 case NB_EV_ABORT:
28898 case NB_EV_APPLY:
28899 /* TODO: implement me. */
28900 break;
28901 }
28902
28903 return NB_OK;
28904 }
28905
28906 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_destroy(
28907 struct nb_cb_destroy_args *args)
28908 {
28909 switch (args->event) {
28910 case NB_EV_VALIDATE:
28911 case NB_EV_PREPARE:
28912 case NB_EV_ABORT:
28913 case NB_EV_APPLY:
28914 /* TODO: implement me. */
28915 break;
28916 }
28917
28918 return NB_OK;
28919 }
28920
28921 /*
28922 * XPath:
28923 * /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
28924 */
28925 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_as_path_unchanged_modify(
28926 struct nb_cb_modify_args *args)
28927 {
28928 switch (args->event) {
28929 case NB_EV_VALIDATE:
28930 case NB_EV_PREPARE:
28931 case NB_EV_ABORT:
28932 return NB_OK;
28933 case NB_EV_APPLY:
28934 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28935 args, PEER_FLAG_AS_PATH_UNCHANGED,
28936 yang_dnode_get_bool(args->dnode, NULL));
28937
28938 break;
28939 }
28940
28941 return NB_OK;
28942 }
28943
28944 /*
28945 * XPath:
28946 * /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
28947 */
28948 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_next_hop_unchanged_modify(
28949 struct nb_cb_modify_args *args)
28950 {
28951 switch (args->event) {
28952 case NB_EV_VALIDATE:
28953 case NB_EV_PREPARE:
28954 case NB_EV_ABORT:
28955 return NB_OK;
28956 case NB_EV_APPLY:
28957 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28958 args, PEER_FLAG_NEXTHOP_UNCHANGED,
28959 yang_dnode_get_bool(args->dnode, NULL));
28960
28961 break;
28962 }
28963
28964 return NB_OK;
28965 }
28966
28967 /*
28968 * XPath:
28969 * /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
28970 */
28971 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_med_unchanged_modify(
28972 struct nb_cb_modify_args *args)
28973 {
28974 switch (args->event) {
28975 case NB_EV_VALIDATE:
28976 case NB_EV_PREPARE:
28977 case NB_EV_ABORT:
28978 return NB_OK;
28979 case NB_EV_APPLY:
28980 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
28981 args, PEER_FLAG_MED_UNCHANGED,
28982 yang_dnode_get_bool(args->dnode, NULL));
28983
28984 break;
28985 }
28986
28987 return NB_OK;
28988 }
28989
28990 /*
28991 * XPath:
28992 * /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
28993 */
28994 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_modify(
28995 struct nb_cb_modify_args *args)
28996 {
28997 switch (args->event) {
28998 case NB_EV_VALIDATE:
28999 case NB_EV_PREPARE:
29000 case NB_EV_ABORT:
29001 case NB_EV_APPLY:
29002 /* TODO: implement me. */
29003 break;
29004 }
29005
29006 return NB_OK;
29007 }
29008
29009 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_destroy(
29010 struct nb_cb_destroy_args *args)
29011 {
29012 switch (args->event) {
29013 case NB_EV_VALIDATE:
29014 case NB_EV_PREPARE:
29015 case NB_EV_ABORT:
29016 case NB_EV_APPLY:
29017 /* TODO: implement me. */
29018 break;
29019 }
29020
29021 return NB_OK;
29022 }
29023
29024 /*
29025 * XPath:
29026 * /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
29027 */
29028 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_modify(
29029 struct nb_cb_modify_args *args)
29030 {
29031 switch (args->event) {
29032 case NB_EV_VALIDATE:
29033 case NB_EV_PREPARE:
29034 case NB_EV_ABORT:
29035 case NB_EV_APPLY:
29036 /* TODO: implement me. */
29037 break;
29038 }
29039
29040 return NB_OK;
29041 }
29042
29043 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_destroy(
29044 struct nb_cb_destroy_args *args)
29045 {
29046 switch (args->event) {
29047 case NB_EV_VALIDATE:
29048 case NB_EV_PREPARE:
29049 case NB_EV_ABORT:
29050 case NB_EV_APPLY:
29051 /* TODO: implement me. */
29052 break;
29053 }
29054
29055 return NB_OK;
29056 }
29057
29058 /*
29059 * XPath:
29060 * /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
29061 */
29062 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_modify(
29063 struct nb_cb_modify_args *args)
29064 {
29065 switch (args->event) {
29066 case NB_EV_VALIDATE:
29067 case NB_EV_PREPARE:
29068 case NB_EV_ABORT:
29069 case NB_EV_APPLY:
29070 /* TODO: implement me. */
29071 break;
29072 }
29073
29074 return NB_OK;
29075 }
29076
29077 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_destroy(
29078 struct nb_cb_destroy_args *args)
29079 {
29080 switch (args->event) {
29081 case NB_EV_VALIDATE:
29082 case NB_EV_PREPARE:
29083 case NB_EV_ABORT:
29084 case NB_EV_APPLY:
29085 /* TODO: implement me. */
29086 break;
29087 }
29088
29089 return NB_OK;
29090 }
29091
29092 /*
29093 * XPath:
29094 * /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
29095 */
29096 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_create(
29097 struct nb_cb_create_args *args)
29098 {
29099 switch (args->event) {
29100 case NB_EV_VALIDATE:
29101 case NB_EV_PREPARE:
29102 case NB_EV_ABORT:
29103 case NB_EV_APPLY:
29104 /* TODO: implement me. */
29105 break;
29106 }
29107
29108 return NB_OK;
29109 }
29110
29111 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_destroy(
29112 struct nb_cb_destroy_args *args)
29113 {
29114 switch (args->event) {
29115 case NB_EV_VALIDATE:
29116 case NB_EV_PREPARE:
29117 case NB_EV_ABORT:
29118 return NB_OK;
29119 case NB_EV_APPLY:
29120 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
29121 args);
29122 }
29123
29124 return NB_OK;
29125 }
29126
29127 /*
29128 * XPath:
29129 * /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
29130 */
29131 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_max_prefixes_modify(
29132 struct nb_cb_modify_args *args)
29133 {
29134 switch (args->event) {
29135 case NB_EV_VALIDATE:
29136 case NB_EV_PREPARE:
29137 case NB_EV_ABORT:
29138 case NB_EV_APPLY:
29139 /* TODO: implement me. */
29140 break;
29141 }
29142
29143 return NB_OK;
29144 }
29145
29146 /*
29147 * XPath:
29148 * /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
29149 */
29150 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_force_check_modify(
29151 struct nb_cb_modify_args *args)
29152 {
29153 switch (args->event) {
29154 case NB_EV_VALIDATE:
29155 case NB_EV_PREPARE:
29156 case NB_EV_ABORT:
29157 case NB_EV_APPLY:
29158 /* TODO: implement me. */
29159 break;
29160 }
29161
29162 return NB_OK;
29163 }
29164
29165 /*
29166 * XPath:
29167 * /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
29168 */
29169 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_modify(
29170 struct nb_cb_modify_args *args)
29171 {
29172 switch (args->event) {
29173 case NB_EV_VALIDATE:
29174 case NB_EV_PREPARE:
29175 case NB_EV_ABORT:
29176 case NB_EV_APPLY:
29177 /* TODO: implement me. */
29178 break;
29179 }
29180
29181 return NB_OK;
29182 }
29183
29184 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_destroy(
29185 struct nb_cb_destroy_args *args)
29186 {
29187 switch (args->event) {
29188 case NB_EV_VALIDATE:
29189 case NB_EV_PREPARE:
29190 case NB_EV_ABORT:
29191 case NB_EV_APPLY:
29192 /* TODO: implement me. */
29193 break;
29194 }
29195
29196 return NB_OK;
29197 }
29198
29199 /*
29200 * XPath:
29201 * /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
29202 */
29203 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_modify(
29204 struct nb_cb_modify_args *args)
29205 {
29206 switch (args->event) {
29207 case NB_EV_VALIDATE:
29208 case NB_EV_PREPARE:
29209 case NB_EV_ABORT:
29210 case NB_EV_APPLY:
29211 /* TODO: implement me. */
29212 break;
29213 }
29214
29215 return NB_OK;
29216 }
29217
29218 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
29219 struct nb_cb_destroy_args *args)
29220 {
29221 switch (args->event) {
29222 case NB_EV_VALIDATE:
29223 case NB_EV_PREPARE:
29224 case NB_EV_ABORT:
29225 case NB_EV_APPLY:
29226 /* TODO: implement me. */
29227 break;
29228 }
29229
29230 return NB_OK;
29231 }
29232
29233 /*
29234 * XPath:
29235 * /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
29236 */
29237 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
29238 struct nb_cb_modify_args *args)
29239 {
29240 switch (args->event) {
29241 case NB_EV_VALIDATE:
29242 case NB_EV_PREPARE:
29243 case NB_EV_ABORT:
29244 case NB_EV_APPLY:
29245 /* TODO: implement me. */
29246 break;
29247 }
29248
29249 return NB_OK;
29250 }
29251
29252 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
29253 struct nb_cb_destroy_args *args)
29254 {
29255 switch (args->event) {
29256 case NB_EV_VALIDATE:
29257 case NB_EV_PREPARE:
29258 case NB_EV_ABORT:
29259 case NB_EV_APPLY:
29260 /* TODO: implement me. */
29261 break;
29262 }
29263
29264 return NB_OK;
29265 }
29266
29267 /*
29268 * XPath:
29269 * /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
29270 */
29271 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
29272 struct nb_cb_modify_args *args)
29273 {
29274 switch (args->event) {
29275 case NB_EV_VALIDATE:
29276 case NB_EV_PREPARE:
29277 case NB_EV_ABORT:
29278 case NB_EV_APPLY:
29279 /* TODO: implement me. */
29280 break;
29281 }
29282
29283 return NB_OK;
29284 }
29285
29286 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
29287 struct nb_cb_destroy_args *args)
29288 {
29289 switch (args->event) {
29290 case NB_EV_VALIDATE:
29291 case NB_EV_PREPARE:
29292 case NB_EV_ABORT:
29293 case NB_EV_APPLY:
29294 /* TODO: implement me. */
29295 break;
29296 }
29297
29298 return NB_OK;
29299 }
29300
29301 /*
29302 * XPath:
29303 * /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
29304 */
29305 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
29306 struct nb_cb_modify_args *args)
29307 {
29308 switch (args->event) {
29309 case NB_EV_VALIDATE:
29310 case NB_EV_PREPARE:
29311 case NB_EV_ABORT:
29312 case NB_EV_APPLY:
29313 /* TODO: implement me. */
29314 break;
29315 }
29316
29317 return NB_OK;
29318 }
29319
29320 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
29321 struct nb_cb_destroy_args *args)
29322 {
29323 switch (args->event) {
29324 case NB_EV_VALIDATE:
29325 case NB_EV_PREPARE:
29326 case NB_EV_ABORT:
29327 case NB_EV_APPLY:
29328 /* TODO: implement me. */
29329 break;
29330 }
29331
29332 return NB_OK;
29333 }
29334
29335 /*
29336 * XPath:
29337 * /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
29338 */
29339 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
29340 struct nb_cb_modify_args *args)
29341 {
29342 switch (args->event) {
29343 case NB_EV_VALIDATE:
29344 case NB_EV_PREPARE:
29345 case NB_EV_ABORT:
29346 case NB_EV_APPLY:
29347 /* TODO: implement me. */
29348 break;
29349 }
29350
29351 return NB_OK;
29352 }
29353
29354 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
29355 struct nb_cb_destroy_args *args)
29356 {
29357 switch (args->event) {
29358 case NB_EV_VALIDATE:
29359 case NB_EV_PREPARE:
29360 case NB_EV_ABORT:
29361 case NB_EV_APPLY:
29362 /* TODO: implement me. */
29363 break;
29364 }
29365
29366 return NB_OK;
29367 }
29368
29369 /*
29370 * XPath:
29371 * /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
29372 */
29373 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
29374 struct nb_cb_modify_args *args)
29375 {
29376 switch (args->event) {
29377 case NB_EV_VALIDATE:
29378 case NB_EV_PREPARE:
29379 case NB_EV_ABORT:
29380 case NB_EV_APPLY:
29381 /* TODO: implement me. */
29382 break;
29383 }
29384
29385 return NB_OK;
29386 }
29387
29388 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
29389 struct nb_cb_destroy_args *args)
29390 {
29391 switch (args->event) {
29392 case NB_EV_VALIDATE:
29393 case NB_EV_PREPARE:
29394 case NB_EV_ABORT:
29395 case NB_EV_APPLY:
29396 /* TODO: implement me. */
29397 break;
29398 }
29399
29400 return NB_OK;
29401 }
29402
29403 /*
29404 * XPath:
29405 * /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
29406 */
29407 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_modify(
29408 struct nb_cb_modify_args *args)
29409 {
29410 switch (args->event) {
29411 case NB_EV_VALIDATE:
29412 case NB_EV_PREPARE:
29413 case NB_EV_ABORT:
29414 return NB_OK;
29415 case NB_EV_APPLY:
29416 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29417 args, PEER_FLAG_NEXTHOP_SELF,
29418 yang_dnode_get_bool(args->dnode, NULL));
29419
29420 break;
29421 }
29422
29423 return NB_OK;
29424 }
29425
29426 /*
29427 * XPath:
29428 * /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
29429 */
29430 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_force_modify(
29431 struct nb_cb_modify_args *args)
29432 {
29433 switch (args->event) {
29434 case NB_EV_VALIDATE:
29435 case NB_EV_PREPARE:
29436 case NB_EV_ABORT:
29437 return NB_OK;
29438 case NB_EV_APPLY:
29439 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29440 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
29441 yang_dnode_get_bool(args->dnode, NULL));
29442
29443 break;
29444 }
29445
29446 return NB_OK;
29447 }
29448
29449 /*
29450 * XPath:
29451 * /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
29452 */
29453 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_modify(
29454 struct nb_cb_modify_args *args)
29455 {
29456 switch (args->event) {
29457 case NB_EV_VALIDATE:
29458 case NB_EV_PREPARE:
29459 case NB_EV_ABORT:
29460 return NB_OK;
29461 case NB_EV_APPLY:
29462 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29463 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
29464 yang_dnode_get_bool(args->dnode, NULL));
29465
29466 break;
29467 }
29468
29469 return NB_OK;
29470 }
29471
29472 /*
29473 * XPath:
29474 * /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
29475 */
29476 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_replace_modify(
29477 struct nb_cb_modify_args *args)
29478 {
29479 switch (args->event) {
29480 case NB_EV_VALIDATE:
29481 case NB_EV_PREPARE:
29482 case NB_EV_ABORT:
29483 return NB_OK;
29484 case NB_EV_APPLY:
29485 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29486 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
29487 yang_dnode_get_bool(args->dnode, NULL));
29488
29489 break;
29490 }
29491
29492 return NB_OK;
29493 }
29494
29495 /*
29496 * XPath:
29497 * /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
29498 */
29499 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_modify(
29500 struct nb_cb_modify_args *args)
29501 {
29502 switch (args->event) {
29503 case NB_EV_VALIDATE:
29504 case NB_EV_PREPARE:
29505 case NB_EV_ABORT:
29506 return NB_OK;
29507 case NB_EV_APPLY:
29508 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29509 args, PEER_FLAG_REMOVE_PRIVATE_AS,
29510 yang_dnode_get_bool(args->dnode, NULL));
29511
29512 break;
29513 }
29514
29515 return NB_OK;
29516 }
29517
29518 /*
29519 * XPath:
29520 * /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
29521 */
29522 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_replace_modify(
29523 struct nb_cb_modify_args *args)
29524 {
29525 switch (args->event) {
29526 case NB_EV_VALIDATE:
29527 case NB_EV_PREPARE:
29528 case NB_EV_ABORT:
29529 return NB_OK;
29530 case NB_EV_APPLY:
29531 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29532 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
29533 yang_dnode_get_bool(args->dnode, NULL));
29534
29535 break;
29536 }
29537
29538 return NB_OK;
29539 }
29540
29541 /*
29542 * XPath:
29543 * /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
29544 */
29545 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_route_reflector_route_reflector_client_modify(
29546 struct nb_cb_modify_args *args)
29547 {
29548 switch (args->event) {
29549 case NB_EV_VALIDATE:
29550 case NB_EV_PREPARE:
29551 case NB_EV_ABORT:
29552 return NB_OK;
29553 case NB_EV_APPLY:
29554 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29555 args, PEER_FLAG_REFLECTOR_CLIENT,
29556 yang_dnode_get_bool(args->dnode, NULL));
29557
29558 break;
29559 }
29560
29561 return NB_OK;
29562 }
29563
29564 /*
29565 * XPath:
29566 * /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
29567 */
29568 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_route_server_route_server_client_modify(
29569 struct nb_cb_modify_args *args)
29570 {
29571 switch (args->event) {
29572 case NB_EV_VALIDATE:
29573 case NB_EV_PREPARE:
29574 case NB_EV_ABORT:
29575 return NB_OK;
29576 case NB_EV_APPLY:
29577 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29578 args, PEER_FLAG_RSERVER_CLIENT,
29579 yang_dnode_get_bool(args->dnode, NULL));
29580
29581 break;
29582 }
29583
29584 return NB_OK;
29585 }
29586
29587 /*
29588 * XPath:
29589 * /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
29590 */
29591 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_community_modify(
29592 struct nb_cb_modify_args *args)
29593 {
29594 switch (args->event) {
29595 case NB_EV_VALIDATE:
29596 case NB_EV_PREPARE:
29597 case NB_EV_ABORT:
29598 return NB_OK;
29599 case NB_EV_APPLY:
29600 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29601 args, PEER_FLAG_SEND_COMMUNITY,
29602 yang_dnode_get_bool(args->dnode, NULL));
29603
29604 break;
29605 }
29606
29607 return NB_OK;
29608 }
29609
29610 /*
29611 * XPath:
29612 * /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
29613 */
29614 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_ext_community_modify(
29615 struct nb_cb_modify_args *args)
29616 {
29617 switch (args->event) {
29618 case NB_EV_VALIDATE:
29619 case NB_EV_PREPARE:
29620 case NB_EV_ABORT:
29621 return NB_OK;
29622 case NB_EV_APPLY:
29623 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29624 args, PEER_FLAG_SEND_EXT_COMMUNITY,
29625 yang_dnode_get_bool(args->dnode, NULL));
29626
29627 break;
29628 }
29629
29630 return NB_OK;
29631 }
29632
29633 /*
29634 * XPath:
29635 * /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
29636 */
29637 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_send_community_send_large_community_modify(
29638 struct nb_cb_modify_args *args)
29639 {
29640 switch (args->event) {
29641 case NB_EV_VALIDATE:
29642 case NB_EV_PREPARE:
29643 case NB_EV_ABORT:
29644 return NB_OK;
29645 case NB_EV_APPLY:
29646 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29647 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
29648 yang_dnode_get_bool(args->dnode, NULL));
29649
29650 break;
29651 }
29652
29653 return NB_OK;
29654 }
29655
29656 /*
29657 * XPath:
29658 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/soft-reconfiguration
29659 */
29660 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_soft_reconfiguration_modify(
29661 struct nb_cb_modify_args *args)
29662 {
29663 switch (args->event) {
29664 case NB_EV_VALIDATE:
29665 case NB_EV_PREPARE:
29666 case NB_EV_ABORT:
29667 return NB_OK;
29668 case NB_EV_APPLY:
29669 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
29670 args, PEER_FLAG_SOFT_RECONFIG,
29671 yang_dnode_get_bool(args->dnode, NULL));
29672
29673 break;
29674 }
29675
29676 return NB_OK;
29677 }
29678
29679 /*
29680 * XPath:
29681 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-multicast/weight/weight-attribute
29682 */
29683 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_modify(
29684 struct nb_cb_modify_args *args)
29685 {
29686 switch (args->event) {
29687 case NB_EV_VALIDATE:
29688 case NB_EV_PREPARE:
29689 case NB_EV_ABORT:
29690 return NB_OK;
29691 case NB_EV_APPLY:
29692 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
29693
29694 break;
29695 }
29696
29697 return NB_OK;
29698 }
29699
29700 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_destroy(
29701 struct nb_cb_destroy_args *args)
29702 {
29703 switch (args->event) {
29704 case NB_EV_VALIDATE:
29705 case NB_EV_PREPARE:
29706 case NB_EV_ABORT:
29707 return NB_OK;
29708 case NB_EV_APPLY:
29709 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
29710
29711 break;
29712 }
29713
29714 return NB_OK;
29715 }
29716
29717 /*
29718 * XPath:
29719 * /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
29720 */
29721 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_modify(
29722 struct nb_cb_modify_args *args)
29723 {
29724 switch (args->event) {
29725 case NB_EV_VALIDATE:
29726 case NB_EV_PREPARE:
29727 case NB_EV_ABORT:
29728 break;
29729 case NB_EV_APPLY:
29730 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
29731 RMAP_IN);
29732 }
29733
29734 return NB_OK;
29735 }
29736
29737 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_destroy(
29738 struct nb_cb_destroy_args *args)
29739 {
29740 switch (args->event) {
29741 case NB_EV_VALIDATE:
29742 case NB_EV_PREPARE:
29743 case NB_EV_ABORT:
29744 break;
29745 case NB_EV_APPLY:
29746 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
29747 RMAP_IN);
29748 }
29749
29750 return NB_OK;
29751 }
29752
29753 /*
29754 * XPath:
29755 * /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
29756 */
29757 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_modify(
29758 struct nb_cb_modify_args *args)
29759 {
29760 switch (args->event) {
29761 case NB_EV_VALIDATE:
29762 case NB_EV_PREPARE:
29763 case NB_EV_ABORT:
29764 break;
29765 case NB_EV_APPLY:
29766 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
29767 RMAP_OUT);
29768 }
29769
29770 return NB_OK;
29771 }
29772
29773 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_destroy(
29774 struct nb_cb_destroy_args *args)
29775 {
29776 switch (args->event) {
29777 case NB_EV_VALIDATE:
29778 case NB_EV_PREPARE:
29779 case NB_EV_ABORT:
29780 break;
29781 case NB_EV_APPLY:
29782 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
29783 RMAP_OUT);
29784 }
29785
29786 return NB_OK;
29787 }
29788
29789 /*
29790 * XPath:
29791 * /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
29792 */
29793 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_modify(
29794 struct nb_cb_modify_args *args)
29795 {
29796 switch (args->event) {
29797 case NB_EV_VALIDATE:
29798 case NB_EV_PREPARE:
29799 case NB_EV_ABORT:
29800 break;
29801 case NB_EV_APPLY:
29802 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
29803 FILTER_IN);
29804 }
29805
29806 return NB_OK;
29807 }
29808
29809 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_destroy(
29810 struct nb_cb_destroy_args *args)
29811 {
29812 switch (args->event) {
29813 case NB_EV_VALIDATE:
29814 case NB_EV_PREPARE:
29815 case NB_EV_ABORT:
29816 break;
29817 case NB_EV_APPLY:
29818 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
29819 args, FILTER_IN);
29820 }
29821
29822 return NB_OK;
29823 }
29824
29825 /*
29826 * XPath:
29827 * /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
29828 */
29829 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_modify(
29830 struct nb_cb_modify_args *args)
29831 {
29832 switch (args->event) {
29833 case NB_EV_VALIDATE:
29834 case NB_EV_PREPARE:
29835 case NB_EV_ABORT:
29836 break;
29837 case NB_EV_APPLY:
29838 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
29839 args, FILTER_OUT);
29840 }
29841
29842 return NB_OK;
29843 }
29844
29845 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_destroy(
29846 struct nb_cb_destroy_args *args)
29847 {
29848 switch (args->event) {
29849 case NB_EV_VALIDATE:
29850 case NB_EV_PREPARE:
29851 case NB_EV_ABORT:
29852 break;
29853 case NB_EV_APPLY:
29854 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
29855 args, FILTER_OUT);
29856 }
29857
29858 return NB_OK;
29859 }
29860
29861 /*
29862 * XPath:
29863 * /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
29864 */
29865 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_modify(
29866 struct nb_cb_modify_args *args)
29867 {
29868 switch (args->event) {
29869 case NB_EV_VALIDATE:
29870 case NB_EV_PREPARE:
29871 case NB_EV_ABORT:
29872 case NB_EV_APPLY:
29873 /* TODO: implement me. */
29874 break;
29875 }
29876
29877 return NB_OK;
29878 }
29879
29880 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_destroy(
29881 struct nb_cb_destroy_args *args)
29882 {
29883 switch (args->event) {
29884 case NB_EV_VALIDATE:
29885 case NB_EV_PREPARE:
29886 case NB_EV_ABORT:
29887 case NB_EV_APPLY:
29888 /* TODO: implement me. */
29889 break;
29890 }
29891
29892 return NB_OK;
29893 }
29894
29895 /*
29896 * XPath:
29897 * /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
29898 */
29899 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_modify(
29900 struct nb_cb_modify_args *args)
29901 {
29902 switch (args->event) {
29903 case NB_EV_VALIDATE:
29904 case NB_EV_PREPARE:
29905 case NB_EV_ABORT:
29906 case NB_EV_APPLY:
29907 /* TODO: implement me. */
29908 break;
29909 }
29910
29911 return NB_OK;
29912 }
29913
29914 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_destroy(
29915 struct nb_cb_destroy_args *args)
29916 {
29917 switch (args->event) {
29918 case NB_EV_VALIDATE:
29919 case NB_EV_PREPARE:
29920 case NB_EV_ABORT:
29921 case NB_EV_APPLY:
29922 /* TODO: implement me. */
29923 break;
29924 }
29925
29926 return NB_OK;
29927 }
29928
29929 /*
29930 * XPath:
29931 * /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
29932 */
29933 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_modify(
29934 struct nb_cb_modify_args *args)
29935 {
29936 switch (args->event) {
29937 case NB_EV_VALIDATE:
29938 case NB_EV_PREPARE:
29939 case NB_EV_ABORT:
29940 case NB_EV_APPLY:
29941 /* TODO: implement me. */
29942 break;
29943 }
29944
29945 return NB_OK;
29946 }
29947
29948 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_destroy(
29949 struct nb_cb_destroy_args *args)
29950 {
29951 switch (args->event) {
29952 case NB_EV_VALIDATE:
29953 case NB_EV_PREPARE:
29954 case NB_EV_ABORT:
29955 case NB_EV_APPLY:
29956 /* TODO: implement me. */
29957 break;
29958 }
29959
29960 return NB_OK;
29961 }
29962
29963 /*
29964 * XPath:
29965 * /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
29966 */
29967 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_modify(
29968 struct nb_cb_modify_args *args)
29969 {
29970 switch (args->event) {
29971 case NB_EV_VALIDATE:
29972 case NB_EV_PREPARE:
29973 case NB_EV_ABORT:
29974 case NB_EV_APPLY:
29975 /* TODO: implement me. */
29976 break;
29977 }
29978
29979 return NB_OK;
29980 }
29981
29982 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_destroy(
29983 struct nb_cb_destroy_args *args)
29984 {
29985 switch (args->event) {
29986 case NB_EV_VALIDATE:
29987 case NB_EV_PREPARE:
29988 case NB_EV_ABORT:
29989 case NB_EV_APPLY:
29990 /* TODO: implement me. */
29991 break;
29992 }
29993
29994 return NB_OK;
29995 }
29996
29997 /*
29998 * XPath:
29999 * /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
30000 */
30001 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_modify(
30002 struct nb_cb_modify_args *args)
30003 {
30004 switch (args->event) {
30005 case NB_EV_VALIDATE:
30006 case NB_EV_PREPARE:
30007 case NB_EV_ABORT:
30008 case NB_EV_APPLY:
30009 /* TODO: implement me. */
30010 break;
30011 }
30012
30013 return NB_OK;
30014 }
30015
30016 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_destroy(
30017 struct nb_cb_destroy_args *args)
30018 {
30019 switch (args->event) {
30020 case NB_EV_VALIDATE:
30021 case NB_EV_PREPARE:
30022 case NB_EV_ABORT:
30023 case NB_EV_APPLY:
30024 /* TODO: implement me. */
30025 break;
30026 }
30027
30028 return NB_OK;
30029 }
30030
30031 /*
30032 * XPath:
30033 * /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
30034 */
30035 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_modify(
30036 struct nb_cb_modify_args *args)
30037 {
30038 switch (args->event) {
30039 case NB_EV_VALIDATE:
30040 case NB_EV_PREPARE:
30041 case NB_EV_ABORT:
30042 case NB_EV_APPLY:
30043 /* TODO: implement me. */
30044 break;
30045 }
30046
30047 return NB_OK;
30048 }
30049
30050 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_destroy(
30051 struct nb_cb_destroy_args *args)
30052 {
30053 switch (args->event) {
30054 case NB_EV_VALIDATE:
30055 case NB_EV_PREPARE:
30056 case NB_EV_ABORT:
30057 case NB_EV_APPLY:
30058 /* TODO: implement me. */
30059 break;
30060 }
30061
30062 return NB_OK;
30063 }
30064
30065 /*
30066 * XPath:
30067 * /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
30068 */
30069 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_add_paths_path_type_modify(
30070 struct nb_cb_modify_args *args)
30071 {
30072 switch (args->event) {
30073 case NB_EV_VALIDATE:
30074 case NB_EV_PREPARE:
30075 case NB_EV_ABORT:
30076 case NB_EV_APPLY:
30077 /* TODO: implement me. */
30078 break;
30079 }
30080
30081 return NB_OK;
30082 }
30083
30084 /*
30085 * XPath:
30086 * /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
30087 */
30088 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_modify(
30089 struct nb_cb_modify_args *args)
30090 {
30091 switch (args->event) {
30092 case NB_EV_VALIDATE:
30093 case NB_EV_PREPARE:
30094 case NB_EV_ABORT:
30095 case NB_EV_APPLY:
30096 /* TODO: implement me. */
30097 break;
30098 }
30099
30100 return NB_OK;
30101 }
30102
30103 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_destroy(
30104 struct nb_cb_destroy_args *args)
30105 {
30106 switch (args->event) {
30107 case NB_EV_VALIDATE:
30108 case NB_EV_PREPARE:
30109 case NB_EV_ABORT:
30110 case NB_EV_APPLY:
30111 /* TODO: implement me. */
30112 break;
30113 }
30114
30115 return NB_OK;
30116 }
30117
30118 /*
30119 * XPath:
30120 * /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
30121 */
30122 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_modify(
30123 struct nb_cb_modify_args *args)
30124 {
30125 switch (args->event) {
30126 case NB_EV_VALIDATE:
30127 case NB_EV_PREPARE:
30128 case NB_EV_ABORT:
30129 case NB_EV_APPLY:
30130 /* TODO: implement me. */
30131 break;
30132 }
30133
30134 return NB_OK;
30135 }
30136
30137 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_destroy(
30138 struct nb_cb_destroy_args *args)
30139 {
30140 switch (args->event) {
30141 case NB_EV_VALIDATE:
30142 case NB_EV_PREPARE:
30143 case NB_EV_ABORT:
30144 case NB_EV_APPLY:
30145 /* TODO: implement me. */
30146 break;
30147 }
30148
30149 return NB_OK;
30150 }
30151
30152 /*
30153 * XPath:
30154 * /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
30155 */
30156 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_as_path_options_replace_peer_as_modify(
30157 struct nb_cb_modify_args *args)
30158 {
30159 switch (args->event) {
30160 case NB_EV_VALIDATE:
30161 case NB_EV_PREPARE:
30162 case NB_EV_ABORT:
30163 return NB_OK;
30164 case NB_EV_APPLY:
30165 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30166 args, PEER_FLAG_AS_OVERRIDE,
30167 yang_dnode_get_bool(args->dnode, NULL));
30168
30169 break;
30170 }
30171
30172 return NB_OK;
30173 }
30174
30175 /*
30176 * XPath:
30177 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/default-originate/originate
30178 */
30179 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_originate_modify(
30180 struct nb_cb_modify_args *args)
30181 {
30182 switch (args->event) {
30183 case NB_EV_VALIDATE:
30184 case NB_EV_PREPARE:
30185 case NB_EV_ABORT:
30186 case NB_EV_APPLY:
30187 /* TODO: implement me. */
30188 break;
30189 }
30190
30191 return NB_OK;
30192 }
30193
30194 /*
30195 * XPath:
30196 * /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
30197 */
30198 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_modify(
30199 struct nb_cb_modify_args *args)
30200 {
30201 switch (args->event) {
30202 case NB_EV_VALIDATE:
30203 case NB_EV_PREPARE:
30204 case NB_EV_ABORT:
30205 case NB_EV_APPLY:
30206 /* TODO: implement me. */
30207 break;
30208 }
30209
30210 return NB_OK;
30211 }
30212
30213 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_destroy(
30214 struct nb_cb_destroy_args *args)
30215 {
30216 switch (args->event) {
30217 case NB_EV_VALIDATE:
30218 case NB_EV_PREPARE:
30219 case NB_EV_ABORT:
30220 case NB_EV_APPLY:
30221 /* TODO: implement me. */
30222 break;
30223 }
30224
30225 return NB_OK;
30226 }
30227
30228 /*
30229 * XPath:
30230 * /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
30231 */
30232 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_as_path_unchanged_modify(
30233 struct nb_cb_modify_args *args)
30234 {
30235 switch (args->event) {
30236 case NB_EV_VALIDATE:
30237 case NB_EV_PREPARE:
30238 case NB_EV_ABORT:
30239 return NB_OK;
30240 case NB_EV_APPLY:
30241 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30242 args, PEER_FLAG_AS_PATH_UNCHANGED,
30243 yang_dnode_get_bool(args->dnode, NULL));
30244
30245 break;
30246 }
30247
30248 return NB_OK;
30249 }
30250
30251 /*
30252 * XPath:
30253 * /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
30254 */
30255 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_next_hop_unchanged_modify(
30256 struct nb_cb_modify_args *args)
30257 {
30258 switch (args->event) {
30259 case NB_EV_VALIDATE:
30260 case NB_EV_PREPARE:
30261 case NB_EV_ABORT:
30262 return NB_OK;
30263 case NB_EV_APPLY:
30264 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30265 args, PEER_FLAG_NEXTHOP_UNCHANGED,
30266 yang_dnode_get_bool(args->dnode, NULL));
30267
30268 break;
30269 }
30270
30271 return NB_OK;
30272 }
30273
30274 /*
30275 * XPath:
30276 * /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
30277 */
30278 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_med_unchanged_modify(
30279 struct nb_cb_modify_args *args)
30280 {
30281 switch (args->event) {
30282 case NB_EV_VALIDATE:
30283 case NB_EV_PREPARE:
30284 case NB_EV_ABORT:
30285 return NB_OK;
30286 case NB_EV_APPLY:
30287 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30288 args, PEER_FLAG_MED_UNCHANGED,
30289 yang_dnode_get_bool(args->dnode, NULL));
30290
30291 break;
30292 }
30293
30294 return NB_OK;
30295 }
30296
30297 /*
30298 * XPath:
30299 * /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
30300 */
30301 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_modify(
30302 struct nb_cb_modify_args *args)
30303 {
30304 switch (args->event) {
30305 case NB_EV_VALIDATE:
30306 case NB_EV_PREPARE:
30307 case NB_EV_ABORT:
30308 case NB_EV_APPLY:
30309 /* TODO: implement me. */
30310 break;
30311 }
30312
30313 return NB_OK;
30314 }
30315
30316 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_destroy(
30317 struct nb_cb_destroy_args *args)
30318 {
30319 switch (args->event) {
30320 case NB_EV_VALIDATE:
30321 case NB_EV_PREPARE:
30322 case NB_EV_ABORT:
30323 case NB_EV_APPLY:
30324 /* TODO: implement me. */
30325 break;
30326 }
30327
30328 return NB_OK;
30329 }
30330
30331 /*
30332 * XPath:
30333 * /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
30334 */
30335 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_modify(
30336 struct nb_cb_modify_args *args)
30337 {
30338 switch (args->event) {
30339 case NB_EV_VALIDATE:
30340 case NB_EV_PREPARE:
30341 case NB_EV_ABORT:
30342 case NB_EV_APPLY:
30343 /* TODO: implement me. */
30344 break;
30345 }
30346
30347 return NB_OK;
30348 }
30349
30350 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_destroy(
30351 struct nb_cb_destroy_args *args)
30352 {
30353 switch (args->event) {
30354 case NB_EV_VALIDATE:
30355 case NB_EV_PREPARE:
30356 case NB_EV_ABORT:
30357 case NB_EV_APPLY:
30358 /* TODO: implement me. */
30359 break;
30360 }
30361
30362 return NB_OK;
30363 }
30364
30365 /*
30366 * XPath:
30367 * /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
30368 */
30369 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_modify(
30370 struct nb_cb_modify_args *args)
30371 {
30372 switch (args->event) {
30373 case NB_EV_VALIDATE:
30374 case NB_EV_PREPARE:
30375 case NB_EV_ABORT:
30376 case NB_EV_APPLY:
30377 /* TODO: implement me. */
30378 break;
30379 }
30380
30381 return NB_OK;
30382 }
30383
30384 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_destroy(
30385 struct nb_cb_destroy_args *args)
30386 {
30387 switch (args->event) {
30388 case NB_EV_VALIDATE:
30389 case NB_EV_PREPARE:
30390 case NB_EV_ABORT:
30391 case NB_EV_APPLY:
30392 /* TODO: implement me. */
30393 break;
30394 }
30395
30396 return NB_OK;
30397 }
30398
30399 /*
30400 * XPath:
30401 * /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
30402 */
30403 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_create(
30404 struct nb_cb_create_args *args)
30405 {
30406 switch (args->event) {
30407 case NB_EV_VALIDATE:
30408 case NB_EV_PREPARE:
30409 case NB_EV_ABORT:
30410 case NB_EV_APPLY:
30411 /* TODO: implement me. */
30412 break;
30413 }
30414
30415 return NB_OK;
30416 }
30417
30418 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_destroy(
30419 struct nb_cb_destroy_args *args)
30420 {
30421 switch (args->event) {
30422 case NB_EV_VALIDATE:
30423 case NB_EV_PREPARE:
30424 case NB_EV_ABORT:
30425 return NB_OK;
30426 case NB_EV_APPLY:
30427 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
30428 args);
30429 }
30430
30431 return NB_OK;
30432 }
30433
30434 /*
30435 * XPath:
30436 * /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
30437 */
30438 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_max_prefixes_modify(
30439 struct nb_cb_modify_args *args)
30440 {
30441 switch (args->event) {
30442 case NB_EV_VALIDATE:
30443 case NB_EV_PREPARE:
30444 case NB_EV_ABORT:
30445 case NB_EV_APPLY:
30446 /* TODO: implement me. */
30447 break;
30448 }
30449
30450 return NB_OK;
30451 }
30452
30453 /*
30454 * XPath:
30455 * /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
30456 */
30457 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_force_check_modify(
30458 struct nb_cb_modify_args *args)
30459 {
30460 switch (args->event) {
30461 case NB_EV_VALIDATE:
30462 case NB_EV_PREPARE:
30463 case NB_EV_ABORT:
30464 case NB_EV_APPLY:
30465 /* TODO: implement me. */
30466 break;
30467 }
30468
30469 return NB_OK;
30470 }
30471
30472 /*
30473 * XPath:
30474 * /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
30475 */
30476 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_modify(
30477 struct nb_cb_modify_args *args)
30478 {
30479 switch (args->event) {
30480 case NB_EV_VALIDATE:
30481 case NB_EV_PREPARE:
30482 case NB_EV_ABORT:
30483 case NB_EV_APPLY:
30484 /* TODO: implement me. */
30485 break;
30486 }
30487
30488 return NB_OK;
30489 }
30490
30491 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_destroy(
30492 struct nb_cb_destroy_args *args)
30493 {
30494 switch (args->event) {
30495 case NB_EV_VALIDATE:
30496 case NB_EV_PREPARE:
30497 case NB_EV_ABORT:
30498 case NB_EV_APPLY:
30499 /* TODO: implement me. */
30500 break;
30501 }
30502
30503 return NB_OK;
30504 }
30505
30506 /*
30507 * XPath:
30508 * /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
30509 */
30510 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_modify(
30511 struct nb_cb_modify_args *args)
30512 {
30513 switch (args->event) {
30514 case NB_EV_VALIDATE:
30515 case NB_EV_PREPARE:
30516 case NB_EV_ABORT:
30517 case NB_EV_APPLY:
30518 /* TODO: implement me. */
30519 break;
30520 }
30521
30522 return NB_OK;
30523 }
30524
30525 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
30526 struct nb_cb_destroy_args *args)
30527 {
30528 switch (args->event) {
30529 case NB_EV_VALIDATE:
30530 case NB_EV_PREPARE:
30531 case NB_EV_ABORT:
30532 case NB_EV_APPLY:
30533 /* TODO: implement me. */
30534 break;
30535 }
30536
30537 return NB_OK;
30538 }
30539
30540 /*
30541 * XPath:
30542 * /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
30543 */
30544 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
30545 struct nb_cb_modify_args *args)
30546 {
30547 switch (args->event) {
30548 case NB_EV_VALIDATE:
30549 case NB_EV_PREPARE:
30550 case NB_EV_ABORT:
30551 case NB_EV_APPLY:
30552 /* TODO: implement me. */
30553 break;
30554 }
30555
30556 return NB_OK;
30557 }
30558
30559 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
30560 struct nb_cb_destroy_args *args)
30561 {
30562 switch (args->event) {
30563 case NB_EV_VALIDATE:
30564 case NB_EV_PREPARE:
30565 case NB_EV_ABORT:
30566 case NB_EV_APPLY:
30567 /* TODO: implement me. */
30568 break;
30569 }
30570
30571 return NB_OK;
30572 }
30573
30574 /*
30575 * XPath:
30576 * /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
30577 */
30578 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
30579 struct nb_cb_modify_args *args)
30580 {
30581 switch (args->event) {
30582 case NB_EV_VALIDATE:
30583 case NB_EV_PREPARE:
30584 case NB_EV_ABORT:
30585 case NB_EV_APPLY:
30586 /* TODO: implement me. */
30587 break;
30588 }
30589
30590 return NB_OK;
30591 }
30592
30593 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
30594 struct nb_cb_destroy_args *args)
30595 {
30596 switch (args->event) {
30597 case NB_EV_VALIDATE:
30598 case NB_EV_PREPARE:
30599 case NB_EV_ABORT:
30600 case NB_EV_APPLY:
30601 /* TODO: implement me. */
30602 break;
30603 }
30604
30605 return NB_OK;
30606 }
30607
30608 /*
30609 * XPath:
30610 * /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
30611 */
30612 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
30613 struct nb_cb_modify_args *args)
30614 {
30615 switch (args->event) {
30616 case NB_EV_VALIDATE:
30617 case NB_EV_PREPARE:
30618 case NB_EV_ABORT:
30619 case NB_EV_APPLY:
30620 /* TODO: implement me. */
30621 break;
30622 }
30623
30624 return NB_OK;
30625 }
30626
30627 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
30628 struct nb_cb_destroy_args *args)
30629 {
30630 switch (args->event) {
30631 case NB_EV_VALIDATE:
30632 case NB_EV_PREPARE:
30633 case NB_EV_ABORT:
30634 case NB_EV_APPLY:
30635 /* TODO: implement me. */
30636 break;
30637 }
30638
30639 return NB_OK;
30640 }
30641
30642 /*
30643 * XPath:
30644 * /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
30645 */
30646 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
30647 struct nb_cb_modify_args *args)
30648 {
30649 switch (args->event) {
30650 case NB_EV_VALIDATE:
30651 case NB_EV_PREPARE:
30652 case NB_EV_ABORT:
30653 case NB_EV_APPLY:
30654 /* TODO: implement me. */
30655 break;
30656 }
30657
30658 return NB_OK;
30659 }
30660
30661 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
30662 struct nb_cb_destroy_args *args)
30663 {
30664 switch (args->event) {
30665 case NB_EV_VALIDATE:
30666 case NB_EV_PREPARE:
30667 case NB_EV_ABORT:
30668 case NB_EV_APPLY:
30669 /* TODO: implement me. */
30670 break;
30671 }
30672
30673 return NB_OK;
30674 }
30675
30676 /*
30677 * XPath:
30678 * /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
30679 */
30680 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
30681 struct nb_cb_modify_args *args)
30682 {
30683 switch (args->event) {
30684 case NB_EV_VALIDATE:
30685 case NB_EV_PREPARE:
30686 case NB_EV_ABORT:
30687 case NB_EV_APPLY:
30688 /* TODO: implement me. */
30689 break;
30690 }
30691
30692 return NB_OK;
30693 }
30694
30695 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
30696 struct nb_cb_destroy_args *args)
30697 {
30698 switch (args->event) {
30699 case NB_EV_VALIDATE:
30700 case NB_EV_PREPARE:
30701 case NB_EV_ABORT:
30702 case NB_EV_APPLY:
30703 /* TODO: implement me. */
30704 break;
30705 }
30706
30707 return NB_OK;
30708 }
30709
30710 /*
30711 * XPath:
30712 * /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
30713 */
30714 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_modify(
30715 struct nb_cb_modify_args *args)
30716 {
30717 switch (args->event) {
30718 case NB_EV_VALIDATE:
30719 case NB_EV_PREPARE:
30720 case NB_EV_ABORT:
30721 return NB_OK;
30722 case NB_EV_APPLY:
30723 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30724 args, PEER_FLAG_NEXTHOP_SELF,
30725 yang_dnode_get_bool(args->dnode, NULL));
30726
30727 break;
30728 }
30729
30730 return NB_OK;
30731 }
30732
30733 /*
30734 * XPath:
30735 * /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
30736 */
30737 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_force_modify(
30738 struct nb_cb_modify_args *args)
30739 {
30740 switch (args->event) {
30741 case NB_EV_VALIDATE:
30742 case NB_EV_PREPARE:
30743 case NB_EV_ABORT:
30744 return NB_OK;
30745 case NB_EV_APPLY:
30746 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30747 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
30748 yang_dnode_get_bool(args->dnode, NULL));
30749
30750 break;
30751 }
30752
30753 return NB_OK;
30754 }
30755
30756 /*
30757 * XPath:
30758 * /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
30759 */
30760 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_modify(
30761 struct nb_cb_modify_args *args)
30762 {
30763 switch (args->event) {
30764 case NB_EV_VALIDATE:
30765 case NB_EV_PREPARE:
30766 case NB_EV_ABORT:
30767 return NB_OK;
30768 case NB_EV_APPLY:
30769 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30770 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
30771 yang_dnode_get_bool(args->dnode, NULL));
30772
30773 break;
30774 }
30775
30776 return NB_OK;
30777 }
30778
30779 /*
30780 * XPath:
30781 * /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
30782 */
30783 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_replace_modify(
30784 struct nb_cb_modify_args *args)
30785 {
30786 switch (args->event) {
30787 case NB_EV_VALIDATE:
30788 case NB_EV_PREPARE:
30789 case NB_EV_ABORT:
30790 return NB_OK;
30791 case NB_EV_APPLY:
30792 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30793 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
30794 yang_dnode_get_bool(args->dnode, NULL));
30795
30796 break;
30797 }
30798
30799 return NB_OK;
30800 }
30801
30802 /*
30803 * XPath:
30804 * /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
30805 */
30806 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_modify(
30807 struct nb_cb_modify_args *args)
30808 {
30809 switch (args->event) {
30810 case NB_EV_VALIDATE:
30811 case NB_EV_PREPARE:
30812 case NB_EV_ABORT:
30813 return NB_OK;
30814 case NB_EV_APPLY:
30815 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30816 args, PEER_FLAG_REMOVE_PRIVATE_AS,
30817 yang_dnode_get_bool(args->dnode, NULL));
30818
30819 break;
30820 }
30821
30822 return NB_OK;
30823 }
30824
30825 /*
30826 * XPath:
30827 * /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
30828 */
30829 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_replace_modify(
30830 struct nb_cb_modify_args *args)
30831 {
30832 switch (args->event) {
30833 case NB_EV_VALIDATE:
30834 case NB_EV_PREPARE:
30835 case NB_EV_ABORT:
30836 return NB_OK;
30837 case NB_EV_APPLY:
30838 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30839 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
30840 yang_dnode_get_bool(args->dnode, NULL));
30841
30842 break;
30843 }
30844
30845 return NB_OK;
30846 }
30847
30848 /*
30849 * XPath:
30850 * /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
30851 */
30852 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_route_reflector_route_reflector_client_modify(
30853 struct nb_cb_modify_args *args)
30854 {
30855 switch (args->event) {
30856 case NB_EV_VALIDATE:
30857 case NB_EV_PREPARE:
30858 case NB_EV_ABORT:
30859 return NB_OK;
30860 case NB_EV_APPLY:
30861 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30862 args, PEER_FLAG_REFLECTOR_CLIENT,
30863 yang_dnode_get_bool(args->dnode, NULL));
30864
30865 break;
30866 }
30867
30868 return NB_OK;
30869 }
30870
30871 /*
30872 * XPath:
30873 * /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
30874 */
30875 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_route_server_route_server_client_modify(
30876 struct nb_cb_modify_args *args)
30877 {
30878 switch (args->event) {
30879 case NB_EV_VALIDATE:
30880 case NB_EV_PREPARE:
30881 case NB_EV_ABORT:
30882 return NB_OK;
30883 case NB_EV_APPLY:
30884 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30885 args, PEER_FLAG_RSERVER_CLIENT,
30886 yang_dnode_get_bool(args->dnode, NULL));
30887
30888 break;
30889 }
30890
30891 return NB_OK;
30892 }
30893
30894 /*
30895 * XPath:
30896 * /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
30897 */
30898 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_community_modify(
30899 struct nb_cb_modify_args *args)
30900 {
30901 switch (args->event) {
30902 case NB_EV_VALIDATE:
30903 case NB_EV_PREPARE:
30904 case NB_EV_ABORT:
30905 return NB_OK;
30906 case NB_EV_APPLY:
30907 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30908 args, PEER_FLAG_SEND_COMMUNITY,
30909 yang_dnode_get_bool(args->dnode, NULL));
30910
30911 break;
30912 }
30913
30914 return NB_OK;
30915 }
30916
30917 /*
30918 * XPath:
30919 * /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
30920 */
30921 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_ext_community_modify(
30922 struct nb_cb_modify_args *args)
30923 {
30924 switch (args->event) {
30925 case NB_EV_VALIDATE:
30926 case NB_EV_PREPARE:
30927 case NB_EV_ABORT:
30928 return NB_OK;
30929 case NB_EV_APPLY:
30930 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30931 args, PEER_FLAG_SEND_EXT_COMMUNITY,
30932 yang_dnode_get_bool(args->dnode, NULL));
30933
30934 break;
30935 }
30936
30937 return NB_OK;
30938 }
30939
30940 /*
30941 * XPath:
30942 * /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
30943 */
30944 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_send_community_send_large_community_modify(
30945 struct nb_cb_modify_args *args)
30946 {
30947 switch (args->event) {
30948 case NB_EV_VALIDATE:
30949 case NB_EV_PREPARE:
30950 case NB_EV_ABORT:
30951 return NB_OK;
30952 case NB_EV_APPLY:
30953 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30954 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
30955 yang_dnode_get_bool(args->dnode, NULL));
30956
30957 break;
30958 }
30959
30960 return NB_OK;
30961 }
30962
30963 /*
30964 * XPath:
30965 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/soft-reconfiguration
30966 */
30967 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_soft_reconfiguration_modify(
30968 struct nb_cb_modify_args *args)
30969 {
30970 switch (args->event) {
30971 case NB_EV_VALIDATE:
30972 case NB_EV_PREPARE:
30973 case NB_EV_ABORT:
30974 return NB_OK;
30975 case NB_EV_APPLY:
30976 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
30977 args, PEER_FLAG_SOFT_RECONFIG,
30978 yang_dnode_get_bool(args->dnode, NULL));
30979
30980 break;
30981 }
30982
30983 return NB_OK;
30984 }
30985
30986 /*
30987 * XPath:
30988 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-multicast/weight/weight-attribute
30989 */
30990 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_modify(
30991 struct nb_cb_modify_args *args)
30992 {
30993 switch (args->event) {
30994 case NB_EV_VALIDATE:
30995 case NB_EV_PREPARE:
30996 case NB_EV_ABORT:
30997 return NB_OK;
30998 case NB_EV_APPLY:
30999 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
31000
31001 break;
31002 }
31003
31004 return NB_OK;
31005 }
31006
31007 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_destroy(
31008 struct nb_cb_destroy_args *args)
31009 {
31010 switch (args->event) {
31011 case NB_EV_VALIDATE:
31012 case NB_EV_PREPARE:
31013 case NB_EV_ABORT:
31014 return NB_OK;
31015 case NB_EV_APPLY:
31016 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
31017
31018 break;
31019 }
31020
31021 return NB_OK;
31022 }
31023
31024 /*
31025 * XPath:
31026 * /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
31027 */
31028 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_modify(
31029 struct nb_cb_modify_args *args)
31030 {
31031 switch (args->event) {
31032 case NB_EV_VALIDATE:
31033 case NB_EV_PREPARE:
31034 case NB_EV_ABORT:
31035 break;
31036 case NB_EV_APPLY:
31037 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
31038 RMAP_IN);
31039 }
31040
31041 return NB_OK;
31042 }
31043
31044 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_destroy(
31045 struct nb_cb_destroy_args *args)
31046 {
31047 switch (args->event) {
31048 case NB_EV_VALIDATE:
31049 case NB_EV_PREPARE:
31050 case NB_EV_ABORT:
31051 break;
31052 case NB_EV_APPLY:
31053 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
31054 RMAP_IN);
31055 }
31056
31057 return NB_OK;
31058 }
31059
31060 /*
31061 * XPath:
31062 * /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
31063 */
31064 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_modify(
31065 struct nb_cb_modify_args *args)
31066 {
31067 switch (args->event) {
31068 case NB_EV_VALIDATE:
31069 case NB_EV_PREPARE:
31070 case NB_EV_ABORT:
31071 break;
31072 case NB_EV_APPLY:
31073 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
31074 RMAP_OUT);
31075 }
31076
31077 return NB_OK;
31078 }
31079
31080 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_destroy(
31081 struct nb_cb_destroy_args *args)
31082 {
31083 switch (args->event) {
31084 case NB_EV_VALIDATE:
31085 case NB_EV_PREPARE:
31086 case NB_EV_ABORT:
31087 break;
31088 case NB_EV_APPLY:
31089 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
31090 RMAP_OUT);
31091 }
31092
31093 return NB_OK;
31094 }
31095
31096 /*
31097 * XPath:
31098 * /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
31099 */
31100 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_modify(
31101 struct nb_cb_modify_args *args)
31102 {
31103 switch (args->event) {
31104 case NB_EV_VALIDATE:
31105 case NB_EV_PREPARE:
31106 case NB_EV_ABORT:
31107 break;
31108 case NB_EV_APPLY:
31109 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
31110 FILTER_IN);
31111 }
31112
31113 return NB_OK;
31114 }
31115
31116 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_destroy(
31117 struct nb_cb_destroy_args *args)
31118 {
31119 switch (args->event) {
31120 case NB_EV_VALIDATE:
31121 case NB_EV_PREPARE:
31122 case NB_EV_ABORT:
31123 break;
31124 case NB_EV_APPLY:
31125 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
31126 args, FILTER_IN);
31127 }
31128
31129 return NB_OK;
31130 }
31131
31132 /*
31133 * XPath:
31134 * /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
31135 */
31136 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_modify(
31137 struct nb_cb_modify_args *args)
31138 {
31139 switch (args->event) {
31140 case NB_EV_VALIDATE:
31141 case NB_EV_PREPARE:
31142 case NB_EV_ABORT:
31143 break;
31144 case NB_EV_APPLY:
31145 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
31146 args, FILTER_OUT);
31147 }
31148
31149 return NB_OK;
31150 }
31151
31152 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_destroy(
31153 struct nb_cb_destroy_args *args)
31154 {
31155 switch (args->event) {
31156 case NB_EV_VALIDATE:
31157 case NB_EV_PREPARE:
31158 case NB_EV_ABORT:
31159 break;
31160 case NB_EV_APPLY:
31161 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
31162 args, FILTER_OUT);
31163 }
31164
31165 return NB_OK;
31166 }
31167
31168 /*
31169 * XPath:
31170 * /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
31171 */
31172 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_modify(
31173 struct nb_cb_modify_args *args)
31174 {
31175 switch (args->event) {
31176 case NB_EV_VALIDATE:
31177 case NB_EV_PREPARE:
31178 case NB_EV_ABORT:
31179 case NB_EV_APPLY:
31180 /* TODO: implement me. */
31181 break;
31182 }
31183
31184 return NB_OK;
31185 }
31186
31187 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_destroy(
31188 struct nb_cb_destroy_args *args)
31189 {
31190 switch (args->event) {
31191 case NB_EV_VALIDATE:
31192 case NB_EV_PREPARE:
31193 case NB_EV_ABORT:
31194 case NB_EV_APPLY:
31195 /* TODO: implement me. */
31196 break;
31197 }
31198
31199 return NB_OK;
31200 }
31201
31202 /*
31203 * XPath:
31204 * /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
31205 */
31206 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_modify(
31207 struct nb_cb_modify_args *args)
31208 {
31209 switch (args->event) {
31210 case NB_EV_VALIDATE:
31211 case NB_EV_PREPARE:
31212 case NB_EV_ABORT:
31213 case NB_EV_APPLY:
31214 /* TODO: implement me. */
31215 break;
31216 }
31217
31218 return NB_OK;
31219 }
31220
31221 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_destroy(
31222 struct nb_cb_destroy_args *args)
31223 {
31224 switch (args->event) {
31225 case NB_EV_VALIDATE:
31226 case NB_EV_PREPARE:
31227 case NB_EV_ABORT:
31228 case NB_EV_APPLY:
31229 /* TODO: implement me. */
31230 break;
31231 }
31232
31233 return NB_OK;
31234 }
31235
31236 /*
31237 * XPath:
31238 * /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
31239 */
31240 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_modify(
31241 struct nb_cb_modify_args *args)
31242 {
31243 switch (args->event) {
31244 case NB_EV_VALIDATE:
31245 case NB_EV_PREPARE:
31246 case NB_EV_ABORT:
31247 case NB_EV_APPLY:
31248 /* TODO: implement me. */
31249 break;
31250 }
31251
31252 return NB_OK;
31253 }
31254
31255 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_destroy(
31256 struct nb_cb_destroy_args *args)
31257 {
31258 switch (args->event) {
31259 case NB_EV_VALIDATE:
31260 case NB_EV_PREPARE:
31261 case NB_EV_ABORT:
31262 case NB_EV_APPLY:
31263 /* TODO: implement me. */
31264 break;
31265 }
31266
31267 return NB_OK;
31268 }
31269
31270 /*
31271 * XPath:
31272 * /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
31273 */
31274 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_modify(
31275 struct nb_cb_modify_args *args)
31276 {
31277 switch (args->event) {
31278 case NB_EV_VALIDATE:
31279 case NB_EV_PREPARE:
31280 case NB_EV_ABORT:
31281 case NB_EV_APPLY:
31282 /* TODO: implement me. */
31283 break;
31284 }
31285
31286 return NB_OK;
31287 }
31288
31289 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_destroy(
31290 struct nb_cb_destroy_args *args)
31291 {
31292 switch (args->event) {
31293 case NB_EV_VALIDATE:
31294 case NB_EV_PREPARE:
31295 case NB_EV_ABORT:
31296 case NB_EV_APPLY:
31297 /* TODO: implement me. */
31298 break;
31299 }
31300
31301 return NB_OK;
31302 }
31303
31304 /*
31305 * XPath:
31306 * /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
31307 */
31308 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_modify(
31309 struct nb_cb_modify_args *args)
31310 {
31311 switch (args->event) {
31312 case NB_EV_VALIDATE:
31313 case NB_EV_PREPARE:
31314 case NB_EV_ABORT:
31315 case NB_EV_APPLY:
31316 /* TODO: implement me. */
31317 break;
31318 }
31319
31320 return NB_OK;
31321 }
31322
31323 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_destroy(
31324 struct nb_cb_destroy_args *args)
31325 {
31326 switch (args->event) {
31327 case NB_EV_VALIDATE:
31328 case NB_EV_PREPARE:
31329 case NB_EV_ABORT:
31330 case NB_EV_APPLY:
31331 /* TODO: implement me. */
31332 break;
31333 }
31334
31335 return NB_OK;
31336 }
31337
31338 /*
31339 * XPath:
31340 * /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
31341 */
31342 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_modify(
31343 struct nb_cb_modify_args *args)
31344 {
31345 switch (args->event) {
31346 case NB_EV_VALIDATE:
31347 case NB_EV_PREPARE:
31348 case NB_EV_ABORT:
31349 case NB_EV_APPLY:
31350 /* TODO: implement me. */
31351 break;
31352 }
31353
31354 return NB_OK;
31355 }
31356
31357 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_destroy(
31358 struct nb_cb_destroy_args *args)
31359 {
31360 switch (args->event) {
31361 case NB_EV_VALIDATE:
31362 case NB_EV_PREPARE:
31363 case NB_EV_ABORT:
31364 case NB_EV_APPLY:
31365 /* TODO: implement me. */
31366 break;
31367 }
31368
31369 return NB_OK;
31370 }
31371
31372
31373 /*
31374 * XPath:
31375 * /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
31376 */
31377 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_add_paths_path_type_modify(
31378 struct nb_cb_modify_args *args)
31379 {
31380 switch (args->event) {
31381 case NB_EV_VALIDATE:
31382 case NB_EV_PREPARE:
31383 case NB_EV_ABORT:
31384 case NB_EV_APPLY:
31385 /* TODO: implement me. */
31386 break;
31387 }
31388
31389 return NB_OK;
31390 }
31391
31392 /*
31393 * XPath:
31394 * /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
31395 */
31396 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_modify(
31397 struct nb_cb_modify_args *args)
31398 {
31399 switch (args->event) {
31400 case NB_EV_VALIDATE:
31401 case NB_EV_PREPARE:
31402 case NB_EV_ABORT:
31403 case NB_EV_APPLY:
31404 /* TODO: implement me. */
31405 break;
31406 }
31407
31408 return NB_OK;
31409 }
31410
31411 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_destroy(
31412 struct nb_cb_destroy_args *args)
31413 {
31414 switch (args->event) {
31415 case NB_EV_VALIDATE:
31416 case NB_EV_PREPARE:
31417 case NB_EV_ABORT:
31418 case NB_EV_APPLY:
31419 /* TODO: implement me. */
31420 break;
31421 }
31422
31423 return NB_OK;
31424 }
31425
31426 /*
31427 * XPath:
31428 * /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
31429 */
31430 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_modify(
31431 struct nb_cb_modify_args *args)
31432 {
31433 switch (args->event) {
31434 case NB_EV_VALIDATE:
31435 case NB_EV_PREPARE:
31436 case NB_EV_ABORT:
31437 case NB_EV_APPLY:
31438 /* TODO: implement me. */
31439 break;
31440 }
31441
31442 return NB_OK;
31443 }
31444
31445 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
31446 struct nb_cb_destroy_args *args)
31447 {
31448 switch (args->event) {
31449 case NB_EV_VALIDATE:
31450 case NB_EV_PREPARE:
31451 case NB_EV_ABORT:
31452 case NB_EV_APPLY:
31453 /* TODO: implement me. */
31454 break;
31455 }
31456
31457 return NB_OK;
31458 }
31459
31460 /*
31461 * XPath:
31462 * /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
31463 */
31464 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_replace_peer_as_modify(
31465 struct nb_cb_modify_args *args)
31466 {
31467 switch (args->event) {
31468 case NB_EV_VALIDATE:
31469 case NB_EV_PREPARE:
31470 case NB_EV_ABORT:
31471 return NB_OK;
31472 case NB_EV_APPLY:
31473 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
31474 args, PEER_FLAG_AS_OVERRIDE,
31475 yang_dnode_get_bool(args->dnode, NULL));
31476
31477 break;
31478 }
31479
31480 return NB_OK;
31481 }
31482
31483 /*
31484 * XPath:
31485 * /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
31486 */
31487 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_originate_modify(
31488 struct nb_cb_modify_args *args)
31489 {
31490 switch (args->event) {
31491 case NB_EV_VALIDATE:
31492 case NB_EV_PREPARE:
31493 case NB_EV_ABORT:
31494 case NB_EV_APPLY:
31495 /* TODO: implement me. */
31496 break;
31497 }
31498
31499 return NB_OK;
31500 }
31501
31502 /*
31503 * XPath:
31504 * /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
31505 */
31506 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_modify(
31507 struct nb_cb_modify_args *args)
31508 {
31509 switch (args->event) {
31510 case NB_EV_VALIDATE:
31511 case NB_EV_PREPARE:
31512 case NB_EV_ABORT:
31513 case NB_EV_APPLY:
31514 /* TODO: implement me. */
31515 break;
31516 }
31517
31518 return NB_OK;
31519 }
31520
31521 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_destroy(
31522 struct nb_cb_destroy_args *args)
31523 {
31524 switch (args->event) {
31525 case NB_EV_VALIDATE:
31526 case NB_EV_PREPARE:
31527 case NB_EV_ABORT:
31528 case NB_EV_APPLY:
31529 /* TODO: implement me. */
31530 break;
31531 }
31532
31533 return NB_OK;
31534 }
31535
31536 /*
31537 * XPath:
31538 * /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
31539 */
31540 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
31541 struct nb_cb_modify_args *args)
31542 {
31543 switch (args->event) {
31544 case NB_EV_VALIDATE:
31545 case NB_EV_PREPARE:
31546 case NB_EV_ABORT:
31547 return NB_OK;
31548 case NB_EV_APPLY:
31549 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
31550 args, PEER_FLAG_AS_PATH_UNCHANGED,
31551 yang_dnode_get_bool(args->dnode, NULL));
31552
31553 break;
31554 }
31555
31556 return NB_OK;
31557 }
31558
31559 /*
31560 * XPath:
31561 * /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
31562 */
31563 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
31564 struct nb_cb_modify_args *args)
31565 {
31566 switch (args->event) {
31567 case NB_EV_VALIDATE:
31568 case NB_EV_PREPARE:
31569 case NB_EV_ABORT:
31570 return NB_OK;
31571 case NB_EV_APPLY:
31572 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
31573 args, PEER_FLAG_NEXTHOP_UNCHANGED,
31574 yang_dnode_get_bool(args->dnode, NULL));
31575
31576 break;
31577 }
31578
31579 return NB_OK;
31580 }
31581
31582 /*
31583 * XPath:
31584 * /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
31585 */
31586 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_med_unchanged_modify(
31587 struct nb_cb_modify_args *args)
31588 {
31589 switch (args->event) {
31590 case NB_EV_VALIDATE:
31591 case NB_EV_PREPARE:
31592 case NB_EV_ABORT:
31593 return NB_OK;
31594 case NB_EV_APPLY:
31595 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
31596 args, PEER_FLAG_MED_UNCHANGED,
31597 yang_dnode_get_bool(args->dnode, NULL));
31598
31599 break;
31600 }
31601
31602 return NB_OK;
31603 }
31604
31605 /*
31606 * XPath:
31607 * /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
31608 */
31609 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_modify(
31610 struct nb_cb_modify_args *args)
31611 {
31612 switch (args->event) {
31613 case NB_EV_VALIDATE:
31614 case NB_EV_PREPARE:
31615 case NB_EV_ABORT:
31616 case NB_EV_APPLY:
31617 /* TODO: implement me. */
31618 break;
31619 }
31620
31621 return NB_OK;
31622 }
31623
31624 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_destroy(
31625 struct nb_cb_destroy_args *args)
31626 {
31627 switch (args->event) {
31628 case NB_EV_VALIDATE:
31629 case NB_EV_PREPARE:
31630 case NB_EV_ABORT:
31631 case NB_EV_APPLY:
31632 /* TODO: implement me. */
31633 break;
31634 }
31635
31636 return NB_OK;
31637 }
31638
31639 /*
31640 * XPath:
31641 * /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
31642 */
31643 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_modify(
31644 struct nb_cb_modify_args *args)
31645 {
31646 switch (args->event) {
31647 case NB_EV_VALIDATE:
31648 case NB_EV_PREPARE:
31649 case NB_EV_ABORT:
31650 case NB_EV_APPLY:
31651 /* TODO: implement me. */
31652 break;
31653 }
31654
31655 return NB_OK;
31656 }
31657
31658 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_destroy(
31659 struct nb_cb_destroy_args *args)
31660 {
31661 switch (args->event) {
31662 case NB_EV_VALIDATE:
31663 case NB_EV_PREPARE:
31664 case NB_EV_ABORT:
31665 case NB_EV_APPLY:
31666 /* TODO: implement me. */
31667 break;
31668 }
31669
31670 return NB_OK;
31671 }
31672
31673 /*
31674 * XPath:
31675 * /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
31676 */
31677 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_modify(
31678 struct nb_cb_modify_args *args)
31679 {
31680 switch (args->event) {
31681 case NB_EV_VALIDATE:
31682 case NB_EV_PREPARE:
31683 case NB_EV_ABORT:
31684 case NB_EV_APPLY:
31685 /* TODO: implement me. */
31686 break;
31687 }
31688
31689 return NB_OK;
31690 }
31691
31692 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_destroy(
31693 struct nb_cb_destroy_args *args)
31694 {
31695 switch (args->event) {
31696 case NB_EV_VALIDATE:
31697 case NB_EV_PREPARE:
31698 case NB_EV_ABORT:
31699 case NB_EV_APPLY:
31700 /* TODO: implement me. */
31701 break;
31702 }
31703
31704 return NB_OK;
31705 }
31706
31707 /*
31708 * XPath:
31709 * /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
31710 */
31711 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_create(
31712 struct nb_cb_create_args *args)
31713 {
31714 switch (args->event) {
31715 case NB_EV_VALIDATE:
31716 case NB_EV_PREPARE:
31717 case NB_EV_ABORT:
31718 case NB_EV_APPLY:
31719 /* TODO: implement me. */
31720 break;
31721 }
31722
31723 return NB_OK;
31724 }
31725
31726 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_destroy(
31727 struct nb_cb_destroy_args *args)
31728 {
31729 switch (args->event) {
31730 case NB_EV_VALIDATE:
31731 case NB_EV_PREPARE:
31732 case NB_EV_ABORT:
31733 return NB_OK;
31734 case NB_EV_APPLY:
31735 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
31736 args);
31737 }
31738
31739 return NB_OK;
31740 }
31741
31742 /*
31743 * XPath:
31744 * /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
31745 */
31746 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
31747 struct nb_cb_modify_args *args)
31748 {
31749 switch (args->event) {
31750 case NB_EV_VALIDATE:
31751 case NB_EV_PREPARE:
31752 case NB_EV_ABORT:
31753 case NB_EV_APPLY:
31754 /* TODO: implement me. */
31755 break;
31756 }
31757
31758 return NB_OK;
31759 }
31760
31761 /*
31762 * XPath:
31763 * /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
31764 */
31765 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_force_check_modify(
31766 struct nb_cb_modify_args *args)
31767 {
31768 switch (args->event) {
31769 case NB_EV_VALIDATE:
31770 case NB_EV_PREPARE:
31771 case NB_EV_ABORT:
31772 case NB_EV_APPLY:
31773 /* TODO: implement me. */
31774 break;
31775 }
31776
31777 return NB_OK;
31778 }
31779
31780 /*
31781 * XPath:
31782 * /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
31783 */
31784 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
31785 struct nb_cb_modify_args *args)
31786 {
31787 switch (args->event) {
31788 case NB_EV_VALIDATE:
31789 case NB_EV_PREPARE:
31790 case NB_EV_ABORT:
31791 case NB_EV_APPLY:
31792 /* TODO: implement me. */
31793 break;
31794 }
31795
31796 return NB_OK;
31797 }
31798
31799 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
31800 struct nb_cb_destroy_args *args)
31801 {
31802 switch (args->event) {
31803 case NB_EV_VALIDATE:
31804 case NB_EV_PREPARE:
31805 case NB_EV_ABORT:
31806 case NB_EV_APPLY:
31807 /* TODO: implement me. */
31808 break;
31809 }
31810
31811 return NB_OK;
31812 }
31813
31814 /*
31815 * XPath:
31816 * /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
31817 */
31818 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
31819 struct nb_cb_modify_args *args)
31820 {
31821 switch (args->event) {
31822 case NB_EV_VALIDATE:
31823 case NB_EV_PREPARE:
31824 case NB_EV_ABORT:
31825 case NB_EV_APPLY:
31826 /* TODO: implement me. */
31827 break;
31828 }
31829
31830 return NB_OK;
31831 }
31832
31833 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
31834 struct nb_cb_destroy_args *args)
31835 {
31836 switch (args->event) {
31837 case NB_EV_VALIDATE:
31838 case NB_EV_PREPARE:
31839 case NB_EV_ABORT:
31840 case NB_EV_APPLY:
31841 /* TODO: implement me. */
31842 break;
31843 }
31844
31845 return NB_OK;
31846 }
31847
31848 /*
31849 * XPath:
31850 * /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
31851 */
31852 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
31853 struct nb_cb_modify_args *args)
31854 {
31855 switch (args->event) {
31856 case NB_EV_VALIDATE:
31857 case NB_EV_PREPARE:
31858 case NB_EV_ABORT:
31859 case NB_EV_APPLY:
31860 /* TODO: implement me. */
31861 break;
31862 }
31863
31864 return NB_OK;
31865 }
31866
31867 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
31868 struct nb_cb_destroy_args *args)
31869 {
31870 switch (args->event) {
31871 case NB_EV_VALIDATE:
31872 case NB_EV_PREPARE:
31873 case NB_EV_ABORT:
31874 case NB_EV_APPLY:
31875 /* TODO: implement me. */
31876 break;
31877 }
31878
31879 return NB_OK;
31880 }
31881
31882 /*
31883 * XPath:
31884 * /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
31885 */
31886 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
31887 struct nb_cb_modify_args *args)
31888 {
31889 switch (args->event) {
31890 case NB_EV_VALIDATE:
31891 case NB_EV_PREPARE:
31892 case NB_EV_ABORT:
31893 case NB_EV_APPLY:
31894 /* TODO: implement me. */
31895 break;
31896 }
31897
31898 return NB_OK;
31899 }
31900
31901 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
31902 struct nb_cb_destroy_args *args)
31903 {
31904 switch (args->event) {
31905 case NB_EV_VALIDATE:
31906 case NB_EV_PREPARE:
31907 case NB_EV_ABORT:
31908 case NB_EV_APPLY:
31909 /* TODO: implement me. */
31910 break;
31911 }
31912
31913 return NB_OK;
31914 }
31915
31916 /*
31917 * XPath:
31918 * /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
31919 */
31920 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
31921 struct nb_cb_modify_args *args)
31922 {
31923 switch (args->event) {
31924 case NB_EV_VALIDATE:
31925 case NB_EV_PREPARE:
31926 case NB_EV_ABORT:
31927 case NB_EV_APPLY:
31928 /* TODO: implement me. */
31929 break;
31930 }
31931
31932 return NB_OK;
31933 }
31934
31935 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
31936 struct nb_cb_destroy_args *args)
31937 {
31938 switch (args->event) {
31939 case NB_EV_VALIDATE:
31940 case NB_EV_PREPARE:
31941 case NB_EV_ABORT:
31942 case NB_EV_APPLY:
31943 /* TODO: implement me. */
31944 break;
31945 }
31946
31947 return NB_OK;
31948 }
31949
31950 /*
31951 * XPath:
31952 * /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
31953 */
31954 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
31955 struct nb_cb_modify_args *args)
31956 {
31957 switch (args->event) {
31958 case NB_EV_VALIDATE:
31959 case NB_EV_PREPARE:
31960 case NB_EV_ABORT:
31961 case NB_EV_APPLY:
31962 /* TODO: implement me. */
31963 break;
31964 }
31965
31966 return NB_OK;
31967 }
31968
31969 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
31970 struct nb_cb_destroy_args *args)
31971 {
31972 switch (args->event) {
31973 case NB_EV_VALIDATE:
31974 case NB_EV_PREPARE:
31975 case NB_EV_ABORT:
31976 case NB_EV_APPLY:
31977 /* TODO: implement me. */
31978 break;
31979 }
31980
31981 return NB_OK;
31982 }
31983
31984 /*
31985 * XPath:
31986 * /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
31987 */
31988 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
31989 struct nb_cb_modify_args *args)
31990 {
31991 switch (args->event) {
31992 case NB_EV_VALIDATE:
31993 case NB_EV_PREPARE:
31994 case NB_EV_ABORT:
31995 case NB_EV_APPLY:
31996 /* TODO: implement me. */
31997 break;
31998 }
31999
32000 return NB_OK;
32001 }
32002
32003 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
32004 struct nb_cb_destroy_args *args)
32005 {
32006 switch (args->event) {
32007 case NB_EV_VALIDATE:
32008 case NB_EV_PREPARE:
32009 case NB_EV_ABORT:
32010 case NB_EV_APPLY:
32011 /* TODO: implement me. */
32012 break;
32013 }
32014
32015 return NB_OK;
32016 }
32017
32018 /*
32019 * XPath:
32020 * /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
32021 */
32022 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_modify(
32023 struct nb_cb_modify_args *args)
32024 {
32025 switch (args->event) {
32026 case NB_EV_VALIDATE:
32027 case NB_EV_PREPARE:
32028 case NB_EV_ABORT:
32029 return NB_OK;
32030 case NB_EV_APPLY:
32031 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32032 args, PEER_FLAG_NEXTHOP_SELF,
32033 yang_dnode_get_bool(args->dnode, NULL));
32034
32035 break;
32036 }
32037
32038 return NB_OK;
32039 }
32040
32041 /*
32042 * XPath:
32043 * /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
32044 */
32045 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_force_modify(
32046 struct nb_cb_modify_args *args)
32047 {
32048 switch (args->event) {
32049 case NB_EV_VALIDATE:
32050 case NB_EV_PREPARE:
32051 case NB_EV_ABORT:
32052 return NB_OK;
32053 case NB_EV_APPLY:
32054 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32055 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
32056 yang_dnode_get_bool(args->dnode, NULL));
32057
32058 break;
32059 }
32060
32061 return NB_OK;
32062 }
32063
32064 /*
32065 * XPath:
32066 * /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
32067 */
32068 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_modify(
32069 struct nb_cb_modify_args *args)
32070 {
32071 switch (args->event) {
32072 case NB_EV_VALIDATE:
32073 case NB_EV_PREPARE:
32074 case NB_EV_ABORT:
32075 return NB_OK;
32076 case NB_EV_APPLY:
32077 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32078 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
32079 yang_dnode_get_bool(args->dnode, NULL));
32080
32081 break;
32082 }
32083
32084 return NB_OK;
32085 }
32086
32087 /*
32088 * XPath:
32089 * /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
32090 */
32091 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_replace_modify(
32092 struct nb_cb_modify_args *args)
32093 {
32094 switch (args->event) {
32095 case NB_EV_VALIDATE:
32096 case NB_EV_PREPARE:
32097 case NB_EV_ABORT:
32098 return NB_OK;
32099 case NB_EV_APPLY:
32100 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32101 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
32102 yang_dnode_get_bool(args->dnode, NULL));
32103
32104 break;
32105 }
32106
32107 return NB_OK;
32108 }
32109
32110 /*
32111 * XPath:
32112 * /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
32113 */
32114 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_modify(
32115 struct nb_cb_modify_args *args)
32116 {
32117 switch (args->event) {
32118 case NB_EV_VALIDATE:
32119 case NB_EV_PREPARE:
32120 case NB_EV_ABORT:
32121 return NB_OK;
32122 case NB_EV_APPLY:
32123 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32124 args, PEER_FLAG_REMOVE_PRIVATE_AS,
32125 yang_dnode_get_bool(args->dnode, NULL));
32126
32127 break;
32128 }
32129
32130 return NB_OK;
32131 }
32132
32133 /*
32134 * XPath:
32135 * /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
32136 */
32137 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_replace_modify(
32138 struct nb_cb_modify_args *args)
32139 {
32140 switch (args->event) {
32141 case NB_EV_VALIDATE:
32142 case NB_EV_PREPARE:
32143 case NB_EV_ABORT:
32144 return NB_OK;
32145 case NB_EV_APPLY:
32146 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32147 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
32148 yang_dnode_get_bool(args->dnode, NULL));
32149
32150 break;
32151 }
32152
32153 return NB_OK;
32154 }
32155
32156 /*
32157 * XPath:
32158 * /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
32159 */
32160 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_route_reflector_route_reflector_client_modify(
32161 struct nb_cb_modify_args *args)
32162 {
32163 switch (args->event) {
32164 case NB_EV_VALIDATE:
32165 case NB_EV_PREPARE:
32166 case NB_EV_ABORT:
32167 return NB_OK;
32168 case NB_EV_APPLY:
32169 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32170 args, PEER_FLAG_REFLECTOR_CLIENT,
32171 yang_dnode_get_bool(args->dnode, NULL));
32172
32173 break;
32174 }
32175
32176 return NB_OK;
32177 }
32178
32179 /*
32180 * XPath:
32181 * /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
32182 */
32183 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_route_server_route_server_client_modify(
32184 struct nb_cb_modify_args *args)
32185 {
32186 switch (args->event) {
32187 case NB_EV_VALIDATE:
32188 case NB_EV_PREPARE:
32189 case NB_EV_ABORT:
32190 return NB_OK;
32191 case NB_EV_APPLY:
32192 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32193 args, PEER_FLAG_RSERVER_CLIENT,
32194 yang_dnode_get_bool(args->dnode, NULL));
32195
32196 break;
32197 }
32198
32199 return NB_OK;
32200 }
32201
32202 /*
32203 * XPath:
32204 * /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
32205 */
32206 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_community_modify(
32207 struct nb_cb_modify_args *args)
32208 {
32209 switch (args->event) {
32210 case NB_EV_VALIDATE:
32211 case NB_EV_PREPARE:
32212 case NB_EV_ABORT:
32213 return NB_OK;
32214 case NB_EV_APPLY:
32215 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32216 args, PEER_FLAG_SEND_COMMUNITY,
32217 yang_dnode_get_bool(args->dnode, NULL));
32218
32219 break;
32220 }
32221
32222 return NB_OK;
32223 }
32224
32225 /*
32226 * XPath:
32227 * /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
32228 */
32229 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_ext_community_modify(
32230 struct nb_cb_modify_args *args)
32231 {
32232 switch (args->event) {
32233 case NB_EV_VALIDATE:
32234 case NB_EV_PREPARE:
32235 case NB_EV_ABORT:
32236 return NB_OK;
32237 case NB_EV_APPLY:
32238 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32239 args, PEER_FLAG_SEND_EXT_COMMUNITY,
32240 yang_dnode_get_bool(args->dnode, NULL));
32241
32242 break;
32243 }
32244
32245 return NB_OK;
32246 }
32247
32248 /*
32249 * XPath:
32250 * /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
32251 */
32252 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_large_community_modify(
32253 struct nb_cb_modify_args *args)
32254 {
32255 switch (args->event) {
32256 case NB_EV_VALIDATE:
32257 case NB_EV_PREPARE:
32258 case NB_EV_ABORT:
32259 return NB_OK;
32260 case NB_EV_APPLY:
32261 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32262 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
32263 yang_dnode_get_bool(args->dnode, NULL));
32264
32265 break;
32266 }
32267
32268 return NB_OK;
32269 }
32270
32271 /*
32272 * XPath:
32273 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-labeled-unicast/soft-reconfiguration
32274 */
32275 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_soft_reconfiguration_modify(
32276 struct nb_cb_modify_args *args)
32277 {
32278 switch (args->event) {
32279 case NB_EV_VALIDATE:
32280 case NB_EV_PREPARE:
32281 case NB_EV_ABORT:
32282 return NB_OK;
32283 case NB_EV_APPLY:
32284 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32285 args, PEER_FLAG_SOFT_RECONFIG,
32286 yang_dnode_get_bool(args->dnode, NULL));
32287
32288 break;
32289 }
32290
32291 return NB_OK;
32292 }
32293
32294 /*
32295 * XPath:
32296 * /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
32297 */
32298 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_modify(
32299 struct nb_cb_modify_args *args)
32300 {
32301 switch (args->event) {
32302 case NB_EV_VALIDATE:
32303 case NB_EV_PREPARE:
32304 case NB_EV_ABORT:
32305 return NB_OK;
32306 case NB_EV_APPLY:
32307 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
32308
32309 break;
32310 }
32311
32312 return NB_OK;
32313 }
32314
32315 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_destroy(
32316 struct nb_cb_destroy_args *args)
32317 {
32318 switch (args->event) {
32319 case NB_EV_VALIDATE:
32320 case NB_EV_PREPARE:
32321 case NB_EV_ABORT:
32322 return NB_OK;
32323 case NB_EV_APPLY:
32324 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
32325
32326 break;
32327 }
32328
32329 return NB_OK;
32330 }
32331
32332 /*
32333 * XPath:
32334 * /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
32335 */
32336 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_modify(
32337 struct nb_cb_modify_args *args)
32338 {
32339 switch (args->event) {
32340 case NB_EV_VALIDATE:
32341 case NB_EV_PREPARE:
32342 case NB_EV_ABORT:
32343 break;
32344 case NB_EV_APPLY:
32345 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
32346 RMAP_IN);
32347 }
32348
32349 return NB_OK;
32350 }
32351
32352 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_destroy(
32353 struct nb_cb_destroy_args *args)
32354 {
32355 switch (args->event) {
32356 case NB_EV_VALIDATE:
32357 case NB_EV_PREPARE:
32358 case NB_EV_ABORT:
32359 break;
32360 case NB_EV_APPLY:
32361 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
32362 RMAP_IN);
32363 }
32364
32365 return NB_OK;
32366 }
32367
32368 /*
32369 * XPath:
32370 * /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
32371 */
32372 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_modify(
32373 struct nb_cb_modify_args *args)
32374 {
32375 switch (args->event) {
32376 case NB_EV_VALIDATE:
32377 case NB_EV_PREPARE:
32378 case NB_EV_ABORT:
32379 break;
32380 case NB_EV_APPLY:
32381 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
32382 RMAP_OUT);
32383 }
32384
32385 return NB_OK;
32386 }
32387
32388 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_destroy(
32389 struct nb_cb_destroy_args *args)
32390 {
32391 switch (args->event) {
32392 case NB_EV_VALIDATE:
32393 case NB_EV_PREPARE:
32394 case NB_EV_ABORT:
32395 break;
32396 case NB_EV_APPLY:
32397 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
32398 RMAP_OUT);
32399 }
32400
32401 return NB_OK;
32402 }
32403
32404 /*
32405 * XPath:
32406 * /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
32407 */
32408 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_modify(
32409 struct nb_cb_modify_args *args)
32410 {
32411 switch (args->event) {
32412 case NB_EV_VALIDATE:
32413 case NB_EV_PREPARE:
32414 case NB_EV_ABORT:
32415 break;
32416 case NB_EV_APPLY:
32417 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
32418 FILTER_IN);
32419 }
32420
32421 return NB_OK;
32422 }
32423
32424 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_destroy(
32425 struct nb_cb_destroy_args *args)
32426 {
32427 switch (args->event) {
32428 case NB_EV_VALIDATE:
32429 case NB_EV_PREPARE:
32430 case NB_EV_ABORT:
32431 break;
32432 case NB_EV_APPLY:
32433 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
32434 args, FILTER_IN);
32435 }
32436
32437 return NB_OK;
32438 }
32439
32440 /*
32441 * XPath:
32442 * /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
32443 */
32444 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_modify(
32445 struct nb_cb_modify_args *args)
32446 {
32447 switch (args->event) {
32448 case NB_EV_VALIDATE:
32449 case NB_EV_PREPARE:
32450 case NB_EV_ABORT:
32451 break;
32452 case NB_EV_APPLY:
32453 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
32454 args, FILTER_OUT);
32455 }
32456
32457 return NB_OK;
32458 }
32459
32460 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_destroy(
32461 struct nb_cb_destroy_args *args)
32462 {
32463 switch (args->event) {
32464 case NB_EV_VALIDATE:
32465 case NB_EV_PREPARE:
32466 case NB_EV_ABORT:
32467 break;
32468 case NB_EV_APPLY:
32469 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
32470 args, FILTER_OUT);
32471 }
32472
32473 return NB_OK;
32474 }
32475
32476 /*
32477 * XPath:
32478 * /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
32479 */
32480 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_modify(
32481 struct nb_cb_modify_args *args)
32482 {
32483 switch (args->event) {
32484 case NB_EV_VALIDATE:
32485 case NB_EV_PREPARE:
32486 case NB_EV_ABORT:
32487 case NB_EV_APPLY:
32488 /* TODO: implement me. */
32489 break;
32490 }
32491
32492 return NB_OK;
32493 }
32494
32495 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_destroy(
32496 struct nb_cb_destroy_args *args)
32497 {
32498 switch (args->event) {
32499 case NB_EV_VALIDATE:
32500 case NB_EV_PREPARE:
32501 case NB_EV_ABORT:
32502 case NB_EV_APPLY:
32503 /* TODO: implement me. */
32504 break;
32505 }
32506
32507 return NB_OK;
32508 }
32509
32510 /*
32511 * XPath:
32512 * /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
32513 */
32514 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_modify(
32515 struct nb_cb_modify_args *args)
32516 {
32517 switch (args->event) {
32518 case NB_EV_VALIDATE:
32519 case NB_EV_PREPARE:
32520 case NB_EV_ABORT:
32521 case NB_EV_APPLY:
32522 /* TODO: implement me. */
32523 break;
32524 }
32525
32526 return NB_OK;
32527 }
32528
32529 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_destroy(
32530 struct nb_cb_destroy_args *args)
32531 {
32532 switch (args->event) {
32533 case NB_EV_VALIDATE:
32534 case NB_EV_PREPARE:
32535 case NB_EV_ABORT:
32536 case NB_EV_APPLY:
32537 /* TODO: implement me. */
32538 break;
32539 }
32540
32541 return NB_OK;
32542 }
32543
32544 /*
32545 * XPath:
32546 * /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
32547 */
32548 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_modify(
32549 struct nb_cb_modify_args *args)
32550 {
32551 switch (args->event) {
32552 case NB_EV_VALIDATE:
32553 case NB_EV_PREPARE:
32554 case NB_EV_ABORT:
32555 case NB_EV_APPLY:
32556 /* TODO: implement me. */
32557 break;
32558 }
32559
32560 return NB_OK;
32561 }
32562
32563 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_destroy(
32564 struct nb_cb_destroy_args *args)
32565 {
32566 switch (args->event) {
32567 case NB_EV_VALIDATE:
32568 case NB_EV_PREPARE:
32569 case NB_EV_ABORT:
32570 case NB_EV_APPLY:
32571 /* TODO: implement me. */
32572 break;
32573 }
32574
32575 return NB_OK;
32576 }
32577
32578 /*
32579 * XPath:
32580 * /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
32581 */
32582 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_modify(
32583 struct nb_cb_modify_args *args)
32584 {
32585 switch (args->event) {
32586 case NB_EV_VALIDATE:
32587 case NB_EV_PREPARE:
32588 case NB_EV_ABORT:
32589 case NB_EV_APPLY:
32590 /* TODO: implement me. */
32591 break;
32592 }
32593
32594 return NB_OK;
32595 }
32596
32597 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_destroy(
32598 struct nb_cb_destroy_args *args)
32599 {
32600 switch (args->event) {
32601 case NB_EV_VALIDATE:
32602 case NB_EV_PREPARE:
32603 case NB_EV_ABORT:
32604 case NB_EV_APPLY:
32605 /* TODO: implement me. */
32606 break;
32607 }
32608
32609 return NB_OK;
32610 }
32611
32612 /*
32613 * XPath:
32614 * /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
32615 */
32616 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_modify(
32617 struct nb_cb_modify_args *args)
32618 {
32619 switch (args->event) {
32620 case NB_EV_VALIDATE:
32621 case NB_EV_PREPARE:
32622 case NB_EV_ABORT:
32623 case NB_EV_APPLY:
32624 /* TODO: implement me. */
32625 break;
32626 }
32627
32628 return NB_OK;
32629 }
32630
32631 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_destroy(
32632 struct nb_cb_destroy_args *args)
32633 {
32634 switch (args->event) {
32635 case NB_EV_VALIDATE:
32636 case NB_EV_PREPARE:
32637 case NB_EV_ABORT:
32638 case NB_EV_APPLY:
32639 /* TODO: implement me. */
32640 break;
32641 }
32642
32643 return NB_OK;
32644 }
32645
32646 /*
32647 * XPath:
32648 * /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
32649 */
32650 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_modify(
32651 struct nb_cb_modify_args *args)
32652 {
32653 switch (args->event) {
32654 case NB_EV_VALIDATE:
32655 case NB_EV_PREPARE:
32656 case NB_EV_ABORT:
32657 case NB_EV_APPLY:
32658 /* TODO: implement me. */
32659 break;
32660 }
32661
32662 return NB_OK;
32663 }
32664
32665 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_destroy(
32666 struct nb_cb_destroy_args *args)
32667 {
32668 switch (args->event) {
32669 case NB_EV_VALIDATE:
32670 case NB_EV_PREPARE:
32671 case NB_EV_ABORT:
32672 case NB_EV_APPLY:
32673 /* TODO: implement me. */
32674 break;
32675 }
32676
32677 return NB_OK;
32678 }
32679
32680 /*
32681 * XPath:
32682 * /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
32683 */
32684 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_add_paths_path_type_modify(
32685 struct nb_cb_modify_args *args)
32686 {
32687 switch (args->event) {
32688 case NB_EV_VALIDATE:
32689 case NB_EV_PREPARE:
32690 case NB_EV_ABORT:
32691 case NB_EV_APPLY:
32692 /* TODO: implement me. */
32693 break;
32694 }
32695
32696 return NB_OK;
32697 }
32698
32699 /*
32700 * XPath:
32701 * /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
32702 */
32703 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_modify(
32704 struct nb_cb_modify_args *args)
32705 {
32706 switch (args->event) {
32707 case NB_EV_VALIDATE:
32708 case NB_EV_PREPARE:
32709 case NB_EV_ABORT:
32710 case NB_EV_APPLY:
32711 /* TODO: implement me. */
32712 break;
32713 }
32714
32715 return NB_OK;
32716 }
32717
32718 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_destroy(
32719 struct nb_cb_destroy_args *args)
32720 {
32721 switch (args->event) {
32722 case NB_EV_VALIDATE:
32723 case NB_EV_PREPARE:
32724 case NB_EV_ABORT:
32725 case NB_EV_APPLY:
32726 /* TODO: implement me. */
32727 break;
32728 }
32729
32730 return NB_OK;
32731 }
32732
32733 /*
32734 * XPath:
32735 * /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
32736 */
32737 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_modify(
32738 struct nb_cb_modify_args *args)
32739 {
32740 switch (args->event) {
32741 case NB_EV_VALIDATE:
32742 case NB_EV_PREPARE:
32743 case NB_EV_ABORT:
32744 case NB_EV_APPLY:
32745 /* TODO: implement me. */
32746 break;
32747 }
32748
32749 return NB_OK;
32750 }
32751
32752 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
32753 struct nb_cb_destroy_args *args)
32754 {
32755 switch (args->event) {
32756 case NB_EV_VALIDATE:
32757 case NB_EV_PREPARE:
32758 case NB_EV_ABORT:
32759 case NB_EV_APPLY:
32760 /* TODO: implement me. */
32761 break;
32762 }
32763
32764 return NB_OK;
32765 }
32766
32767 /*
32768 * XPath:
32769 * /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
32770 */
32771 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_replace_peer_as_modify(
32772 struct nb_cb_modify_args *args)
32773 {
32774 switch (args->event) {
32775 case NB_EV_VALIDATE:
32776 case NB_EV_PREPARE:
32777 case NB_EV_ABORT:
32778 return NB_OK;
32779 case NB_EV_APPLY:
32780 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32781 args, PEER_FLAG_AS_OVERRIDE,
32782 yang_dnode_get_bool(args->dnode, NULL));
32783
32784 break;
32785 }
32786
32787 return NB_OK;
32788 }
32789
32790 /*
32791 * XPath:
32792 * /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
32793 */
32794 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_originate_modify(
32795 struct nb_cb_modify_args *args)
32796 {
32797 switch (args->event) {
32798 case NB_EV_VALIDATE:
32799 case NB_EV_PREPARE:
32800 case NB_EV_ABORT:
32801 case NB_EV_APPLY:
32802 /* TODO: implement me. */
32803 break;
32804 }
32805
32806 return NB_OK;
32807 }
32808
32809 /*
32810 * XPath:
32811 * /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
32812 */
32813 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_modify(
32814 struct nb_cb_modify_args *args)
32815 {
32816 switch (args->event) {
32817 case NB_EV_VALIDATE:
32818 case NB_EV_PREPARE:
32819 case NB_EV_ABORT:
32820 case NB_EV_APPLY:
32821 /* TODO: implement me. */
32822 break;
32823 }
32824
32825 return NB_OK;
32826 }
32827
32828 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_destroy(
32829 struct nb_cb_destroy_args *args)
32830 {
32831 switch (args->event) {
32832 case NB_EV_VALIDATE:
32833 case NB_EV_PREPARE:
32834 case NB_EV_ABORT:
32835 case NB_EV_APPLY:
32836 /* TODO: implement me. */
32837 break;
32838 }
32839
32840 return NB_OK;
32841 }
32842
32843 /*
32844 * XPath:
32845 * /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
32846 */
32847 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
32848 struct nb_cb_modify_args *args)
32849 {
32850 switch (args->event) {
32851 case NB_EV_VALIDATE:
32852 case NB_EV_PREPARE:
32853 case NB_EV_ABORT:
32854 return NB_OK;
32855 case NB_EV_APPLY:
32856 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32857 args, PEER_FLAG_AS_PATH_UNCHANGED,
32858 yang_dnode_get_bool(args->dnode, NULL));
32859
32860 break;
32861 }
32862
32863 return NB_OK;
32864 }
32865
32866 /*
32867 * XPath:
32868 * /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
32869 */
32870 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
32871 struct nb_cb_modify_args *args)
32872 {
32873 switch (args->event) {
32874 case NB_EV_VALIDATE:
32875 case NB_EV_PREPARE:
32876 case NB_EV_ABORT:
32877 return NB_OK;
32878 case NB_EV_APPLY:
32879 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32880 args, PEER_FLAG_NEXTHOP_UNCHANGED,
32881 yang_dnode_get_bool(args->dnode, NULL));
32882
32883 break;
32884 }
32885
32886 return NB_OK;
32887 }
32888
32889 /*
32890 * XPath:
32891 * /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
32892 */
32893 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_med_unchanged_modify(
32894 struct nb_cb_modify_args *args)
32895 {
32896 switch (args->event) {
32897 case NB_EV_VALIDATE:
32898 case NB_EV_PREPARE:
32899 case NB_EV_ABORT:
32900 return NB_OK;
32901 case NB_EV_APPLY:
32902 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
32903 args, PEER_FLAG_MED_UNCHANGED,
32904 yang_dnode_get_bool(args->dnode, NULL));
32905
32906 break;
32907 }
32908
32909 return NB_OK;
32910 }
32911
32912 /*
32913 * XPath:
32914 * /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
32915 */
32916 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_modify(
32917 struct nb_cb_modify_args *args)
32918 {
32919 switch (args->event) {
32920 case NB_EV_VALIDATE:
32921 case NB_EV_PREPARE:
32922 case NB_EV_ABORT:
32923 case NB_EV_APPLY:
32924 /* TODO: implement me. */
32925 break;
32926 }
32927
32928 return NB_OK;
32929 }
32930
32931 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_destroy(
32932 struct nb_cb_destroy_args *args)
32933 {
32934 switch (args->event) {
32935 case NB_EV_VALIDATE:
32936 case NB_EV_PREPARE:
32937 case NB_EV_ABORT:
32938 case NB_EV_APPLY:
32939 /* TODO: implement me. */
32940 break;
32941 }
32942
32943 return NB_OK;
32944 }
32945
32946 /*
32947 * XPath:
32948 * /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
32949 */
32950 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_modify(
32951 struct nb_cb_modify_args *args)
32952 {
32953 switch (args->event) {
32954 case NB_EV_VALIDATE:
32955 case NB_EV_PREPARE:
32956 case NB_EV_ABORT:
32957 case NB_EV_APPLY:
32958 /* TODO: implement me. */
32959 break;
32960 }
32961
32962 return NB_OK;
32963 }
32964
32965 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_destroy(
32966 struct nb_cb_destroy_args *args)
32967 {
32968 switch (args->event) {
32969 case NB_EV_VALIDATE:
32970 case NB_EV_PREPARE:
32971 case NB_EV_ABORT:
32972 case NB_EV_APPLY:
32973 /* TODO: implement me. */
32974 break;
32975 }
32976
32977 return NB_OK;
32978 }
32979
32980 /*
32981 * XPath:
32982 * /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
32983 */
32984 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_modify(
32985 struct nb_cb_modify_args *args)
32986 {
32987 switch (args->event) {
32988 case NB_EV_VALIDATE:
32989 case NB_EV_PREPARE:
32990 case NB_EV_ABORT:
32991 case NB_EV_APPLY:
32992 /* TODO: implement me. */
32993 break;
32994 }
32995
32996 return NB_OK;
32997 }
32998
32999 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_destroy(
33000 struct nb_cb_destroy_args *args)
33001 {
33002 switch (args->event) {
33003 case NB_EV_VALIDATE:
33004 case NB_EV_PREPARE:
33005 case NB_EV_ABORT:
33006 case NB_EV_APPLY:
33007 /* TODO: implement me. */
33008 break;
33009 }
33010
33011 return NB_OK;
33012 }
33013
33014 /*
33015 * XPath:
33016 * /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
33017 */
33018 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_create(
33019 struct nb_cb_create_args *args)
33020 {
33021 switch (args->event) {
33022 case NB_EV_VALIDATE:
33023 case NB_EV_PREPARE:
33024 case NB_EV_ABORT:
33025 case NB_EV_APPLY:
33026 /* TODO: implement me. */
33027 break;
33028 }
33029
33030 return NB_OK;
33031 }
33032
33033 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_destroy(
33034 struct nb_cb_destroy_args *args)
33035 {
33036 switch (args->event) {
33037 case NB_EV_VALIDATE:
33038 case NB_EV_PREPARE:
33039 case NB_EV_ABORT:
33040 return NB_OK;
33041 case NB_EV_APPLY:
33042 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
33043 args);
33044 }
33045
33046 return NB_OK;
33047 }
33048
33049 /*
33050 * XPath:
33051 * /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
33052 */
33053 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
33054 struct nb_cb_modify_args *args)
33055 {
33056 switch (args->event) {
33057 case NB_EV_VALIDATE:
33058 case NB_EV_PREPARE:
33059 case NB_EV_ABORT:
33060 case NB_EV_APPLY:
33061 /* TODO: implement me. */
33062 break;
33063 }
33064
33065 return NB_OK;
33066 }
33067
33068 /*
33069 * XPath:
33070 * /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
33071 */
33072 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_force_check_modify(
33073 struct nb_cb_modify_args *args)
33074 {
33075 switch (args->event) {
33076 case NB_EV_VALIDATE:
33077 case NB_EV_PREPARE:
33078 case NB_EV_ABORT:
33079 case NB_EV_APPLY:
33080 /* TODO: implement me. */
33081 break;
33082 }
33083
33084 return NB_OK;
33085 }
33086
33087 /*
33088 * XPath:
33089 * /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
33090 */
33091 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
33092 struct nb_cb_modify_args *args)
33093 {
33094 switch (args->event) {
33095 case NB_EV_VALIDATE:
33096 case NB_EV_PREPARE:
33097 case NB_EV_ABORT:
33098 case NB_EV_APPLY:
33099 /* TODO: implement me. */
33100 break;
33101 }
33102
33103 return NB_OK;
33104 }
33105
33106 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
33107 struct nb_cb_destroy_args *args)
33108 {
33109 switch (args->event) {
33110 case NB_EV_VALIDATE:
33111 case NB_EV_PREPARE:
33112 case NB_EV_ABORT:
33113 case NB_EV_APPLY:
33114 /* TODO: implement me. */
33115 break;
33116 }
33117
33118 return NB_OK;
33119 }
33120
33121 /*
33122 * XPath:
33123 * /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
33124 */
33125 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
33126 struct nb_cb_modify_args *args)
33127 {
33128 switch (args->event) {
33129 case NB_EV_VALIDATE:
33130 case NB_EV_PREPARE:
33131 case NB_EV_ABORT:
33132 case NB_EV_APPLY:
33133 /* TODO: implement me. */
33134 break;
33135 }
33136
33137 return NB_OK;
33138 }
33139
33140 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
33141 struct nb_cb_destroy_args *args)
33142 {
33143 switch (args->event) {
33144 case NB_EV_VALIDATE:
33145 case NB_EV_PREPARE:
33146 case NB_EV_ABORT:
33147 case NB_EV_APPLY:
33148 /* TODO: implement me. */
33149 break;
33150 }
33151
33152 return NB_OK;
33153 }
33154
33155 /*
33156 * XPath:
33157 * /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
33158 */
33159 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
33160 struct nb_cb_modify_args *args)
33161 {
33162 switch (args->event) {
33163 case NB_EV_VALIDATE:
33164 case NB_EV_PREPARE:
33165 case NB_EV_ABORT:
33166 case NB_EV_APPLY:
33167 /* TODO: implement me. */
33168 break;
33169 }
33170
33171 return NB_OK;
33172 }
33173
33174 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
33175 struct nb_cb_destroy_args *args)
33176 {
33177 switch (args->event) {
33178 case NB_EV_VALIDATE:
33179 case NB_EV_PREPARE:
33180 case NB_EV_ABORT:
33181 case NB_EV_APPLY:
33182 /* TODO: implement me. */
33183 break;
33184 }
33185
33186 return NB_OK;
33187 }
33188
33189 /*
33190 * XPath:
33191 * /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
33192 */
33193 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
33194 struct nb_cb_modify_args *args)
33195 {
33196 switch (args->event) {
33197 case NB_EV_VALIDATE:
33198 case NB_EV_PREPARE:
33199 case NB_EV_ABORT:
33200 case NB_EV_APPLY:
33201 /* TODO: implement me. */
33202 break;
33203 }
33204
33205 return NB_OK;
33206 }
33207
33208 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
33209 struct nb_cb_destroy_args *args)
33210 {
33211 switch (args->event) {
33212 case NB_EV_VALIDATE:
33213 case NB_EV_PREPARE:
33214 case NB_EV_ABORT:
33215 case NB_EV_APPLY:
33216 /* TODO: implement me. */
33217 break;
33218 }
33219
33220 return NB_OK;
33221 }
33222
33223 /*
33224 * XPath:
33225 * /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
33226 */
33227 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
33228 struct nb_cb_modify_args *args)
33229 {
33230 switch (args->event) {
33231 case NB_EV_VALIDATE:
33232 case NB_EV_PREPARE:
33233 case NB_EV_ABORT:
33234 case NB_EV_APPLY:
33235 /* TODO: implement me. */
33236 break;
33237 }
33238
33239 return NB_OK;
33240 }
33241
33242 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
33243 struct nb_cb_destroy_args *args)
33244 {
33245 switch (args->event) {
33246 case NB_EV_VALIDATE:
33247 case NB_EV_PREPARE:
33248 case NB_EV_ABORT:
33249 case NB_EV_APPLY:
33250 /* TODO: implement me. */
33251 break;
33252 }
33253
33254 return NB_OK;
33255 }
33256
33257 /*
33258 * XPath:
33259 * /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
33260 */
33261 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
33262 struct nb_cb_modify_args *args)
33263 {
33264 switch (args->event) {
33265 case NB_EV_VALIDATE:
33266 case NB_EV_PREPARE:
33267 case NB_EV_ABORT:
33268 case NB_EV_APPLY:
33269 /* TODO: implement me. */
33270 break;
33271 }
33272
33273 return NB_OK;
33274 }
33275
33276 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
33277 struct nb_cb_destroy_args *args)
33278 {
33279 switch (args->event) {
33280 case NB_EV_VALIDATE:
33281 case NB_EV_PREPARE:
33282 case NB_EV_ABORT:
33283 case NB_EV_APPLY:
33284 /* TODO: implement me. */
33285 break;
33286 }
33287
33288 return NB_OK;
33289 }
33290
33291 /*
33292 * XPath:
33293 * /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
33294 */
33295 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
33296 struct nb_cb_modify_args *args)
33297 {
33298 switch (args->event) {
33299 case NB_EV_VALIDATE:
33300 case NB_EV_PREPARE:
33301 case NB_EV_ABORT:
33302 case NB_EV_APPLY:
33303 /* TODO: implement me. */
33304 break;
33305 }
33306
33307 return NB_OK;
33308 }
33309
33310 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
33311 struct nb_cb_destroy_args *args)
33312 {
33313 switch (args->event) {
33314 case NB_EV_VALIDATE:
33315 case NB_EV_PREPARE:
33316 case NB_EV_ABORT:
33317 case NB_EV_APPLY:
33318 /* TODO: implement me. */
33319 break;
33320 }
33321
33322 return NB_OK;
33323 }
33324
33325 /*
33326 * XPath:
33327 * /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
33328 */
33329 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_modify(
33330 struct nb_cb_modify_args *args)
33331 {
33332 switch (args->event) {
33333 case NB_EV_VALIDATE:
33334 case NB_EV_PREPARE:
33335 case NB_EV_ABORT:
33336 return NB_OK;
33337 case NB_EV_APPLY:
33338 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33339 args, PEER_FLAG_NEXTHOP_SELF,
33340 yang_dnode_get_bool(args->dnode, NULL));
33341
33342 break;
33343 }
33344
33345 return NB_OK;
33346 }
33347
33348 /*
33349 * XPath:
33350 * /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
33351 */
33352 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_force_modify(
33353 struct nb_cb_modify_args *args)
33354 {
33355 switch (args->event) {
33356 case NB_EV_VALIDATE:
33357 case NB_EV_PREPARE:
33358 case NB_EV_ABORT:
33359 return NB_OK;
33360 case NB_EV_APPLY:
33361 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33362 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
33363 yang_dnode_get_bool(args->dnode, NULL));
33364
33365 break;
33366 }
33367
33368 return NB_OK;
33369 }
33370
33371 /*
33372 * XPath:
33373 * /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
33374 */
33375 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_modify(
33376 struct nb_cb_modify_args *args)
33377 {
33378 switch (args->event) {
33379 case NB_EV_VALIDATE:
33380 case NB_EV_PREPARE:
33381 case NB_EV_ABORT:
33382 return NB_OK;
33383 case NB_EV_APPLY:
33384 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33385 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
33386 yang_dnode_get_bool(args->dnode, NULL));
33387
33388 break;
33389 }
33390
33391 return NB_OK;
33392 }
33393
33394 /*
33395 * XPath:
33396 * /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
33397 */
33398 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_replace_modify(
33399 struct nb_cb_modify_args *args)
33400 {
33401 switch (args->event) {
33402 case NB_EV_VALIDATE:
33403 case NB_EV_PREPARE:
33404 case NB_EV_ABORT:
33405 return NB_OK;
33406 case NB_EV_APPLY:
33407 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33408 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
33409 yang_dnode_get_bool(args->dnode, NULL));
33410
33411 break;
33412 }
33413
33414 return NB_OK;
33415 }
33416
33417 /*
33418 * XPath:
33419 * /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
33420 */
33421 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_modify(
33422 struct nb_cb_modify_args *args)
33423 {
33424 switch (args->event) {
33425 case NB_EV_VALIDATE:
33426 case NB_EV_PREPARE:
33427 case NB_EV_ABORT:
33428 return NB_OK;
33429 case NB_EV_APPLY:
33430 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33431 args, PEER_FLAG_REMOVE_PRIVATE_AS,
33432 yang_dnode_get_bool(args->dnode, NULL));
33433
33434 break;
33435 }
33436
33437 return NB_OK;
33438 }
33439
33440 /*
33441 * XPath:
33442 * /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
33443 */
33444 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_replace_modify(
33445 struct nb_cb_modify_args *args)
33446 {
33447 switch (args->event) {
33448 case NB_EV_VALIDATE:
33449 case NB_EV_PREPARE:
33450 case NB_EV_ABORT:
33451 return NB_OK;
33452 case NB_EV_APPLY:
33453 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33454 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
33455 yang_dnode_get_bool(args->dnode, NULL));
33456
33457 break;
33458 }
33459
33460 return NB_OK;
33461 }
33462
33463 /*
33464 * XPath:
33465 * /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
33466 */
33467 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_route_reflector_route_reflector_client_modify(
33468 struct nb_cb_modify_args *args)
33469 {
33470 switch (args->event) {
33471 case NB_EV_VALIDATE:
33472 case NB_EV_PREPARE:
33473 case NB_EV_ABORT:
33474 return NB_OK;
33475 case NB_EV_APPLY:
33476 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33477 args, PEER_FLAG_REFLECTOR_CLIENT,
33478 yang_dnode_get_bool(args->dnode, NULL));
33479
33480 break;
33481 }
33482
33483 return NB_OK;
33484 }
33485
33486 /*
33487 * XPath:
33488 * /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
33489 */
33490 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_route_server_route_server_client_modify(
33491 struct nb_cb_modify_args *args)
33492 {
33493 switch (args->event) {
33494 case NB_EV_VALIDATE:
33495 case NB_EV_PREPARE:
33496 case NB_EV_ABORT:
33497 return NB_OK;
33498 case NB_EV_APPLY:
33499 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33500 args, PEER_FLAG_RSERVER_CLIENT,
33501 yang_dnode_get_bool(args->dnode, NULL));
33502
33503 break;
33504 }
33505
33506 return NB_OK;
33507 }
33508
33509 /*
33510 * XPath:
33511 * /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
33512 */
33513 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_community_modify(
33514 struct nb_cb_modify_args *args)
33515 {
33516 switch (args->event) {
33517 case NB_EV_VALIDATE:
33518 case NB_EV_PREPARE:
33519 case NB_EV_ABORT:
33520 return NB_OK;
33521 case NB_EV_APPLY:
33522 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33523 args, PEER_FLAG_SEND_COMMUNITY,
33524 yang_dnode_get_bool(args->dnode, NULL));
33525
33526 break;
33527 }
33528
33529 return NB_OK;
33530 }
33531
33532 /*
33533 * XPath:
33534 * /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
33535 */
33536 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_ext_community_modify(
33537 struct nb_cb_modify_args *args)
33538 {
33539 switch (args->event) {
33540 case NB_EV_VALIDATE:
33541 case NB_EV_PREPARE:
33542 case NB_EV_ABORT:
33543 return NB_OK;
33544 case NB_EV_APPLY:
33545 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33546 args, PEER_FLAG_SEND_EXT_COMMUNITY,
33547 yang_dnode_get_bool(args->dnode, NULL));
33548
33549 break;
33550 }
33551
33552 return NB_OK;
33553 }
33554
33555 /*
33556 * XPath:
33557 * /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
33558 */
33559 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_large_community_modify(
33560 struct nb_cb_modify_args *args)
33561 {
33562 switch (args->event) {
33563 case NB_EV_VALIDATE:
33564 case NB_EV_PREPARE:
33565 case NB_EV_ABORT:
33566 return NB_OK;
33567 case NB_EV_APPLY:
33568 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33569 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
33570 yang_dnode_get_bool(args->dnode, NULL));
33571
33572 break;
33573 }
33574
33575 return NB_OK;
33576 }
33577
33578 /*
33579 * XPath:
33580 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-labeled-unicast/soft-reconfiguration
33581 */
33582 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_soft_reconfiguration_modify(
33583 struct nb_cb_modify_args *args)
33584 {
33585 switch (args->event) {
33586 case NB_EV_VALIDATE:
33587 case NB_EV_PREPARE:
33588 case NB_EV_ABORT:
33589 return NB_OK;
33590 case NB_EV_APPLY:
33591 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33592 args, PEER_FLAG_SOFT_RECONFIG,
33593 yang_dnode_get_bool(args->dnode, NULL));
33594
33595 break;
33596 }
33597
33598 return NB_OK;
33599 }
33600
33601 /*
33602 * XPath:
33603 * /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
33604 */
33605 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_modify(
33606 struct nb_cb_modify_args *args)
33607 {
33608 switch (args->event) {
33609 case NB_EV_VALIDATE:
33610 case NB_EV_PREPARE:
33611 case NB_EV_ABORT:
33612 return NB_OK;
33613 case NB_EV_APPLY:
33614 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
33615
33616 break;
33617 }
33618
33619 return NB_OK;
33620 }
33621
33622 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_destroy(
33623 struct nb_cb_destroy_args *args)
33624 {
33625 switch (args->event) {
33626 case NB_EV_VALIDATE:
33627 case NB_EV_PREPARE:
33628 case NB_EV_ABORT:
33629 return NB_OK;
33630 case NB_EV_APPLY:
33631 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
33632
33633 break;
33634 }
33635
33636 return NB_OK;
33637 }
33638
33639 /*
33640 * XPath:
33641 * /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
33642 */
33643 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_add_paths_path_type_modify(
33644 struct nb_cb_modify_args *args)
33645 {
33646 switch (args->event) {
33647 case NB_EV_VALIDATE:
33648 case NB_EV_PREPARE:
33649 case NB_EV_ABORT:
33650 case NB_EV_APPLY:
33651 /* TODO: implement me. */
33652 break;
33653 }
33654
33655 return NB_OK;
33656 }
33657
33658 /*
33659 * XPath:
33660 * /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
33661 */
33662 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_modify(
33663 struct nb_cb_modify_args *args)
33664 {
33665 switch (args->event) {
33666 case NB_EV_VALIDATE:
33667 case NB_EV_PREPARE:
33668 case NB_EV_ABORT:
33669 case NB_EV_APPLY:
33670 /* TODO: implement me. */
33671 break;
33672 }
33673
33674 return NB_OK;
33675 }
33676
33677 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_destroy(
33678 struct nb_cb_destroy_args *args)
33679 {
33680 switch (args->event) {
33681 case NB_EV_VALIDATE:
33682 case NB_EV_PREPARE:
33683 case NB_EV_ABORT:
33684 case NB_EV_APPLY:
33685 /* TODO: implement me. */
33686 break;
33687 }
33688
33689 return NB_OK;
33690 }
33691
33692 /*
33693 * XPath:
33694 * /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
33695 */
33696 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
33697 struct nb_cb_modify_args *args)
33698 {
33699 switch (args->event) {
33700 case NB_EV_VALIDATE:
33701 case NB_EV_PREPARE:
33702 case NB_EV_ABORT:
33703 case NB_EV_APPLY:
33704 /* TODO: implement me. */
33705 break;
33706 }
33707
33708 return NB_OK;
33709 }
33710
33711 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
33712 struct nb_cb_destroy_args *args)
33713 {
33714 switch (args->event) {
33715 case NB_EV_VALIDATE:
33716 case NB_EV_PREPARE:
33717 case NB_EV_ABORT:
33718 case NB_EV_APPLY:
33719 /* TODO: implement me. */
33720 break;
33721 }
33722
33723 return NB_OK;
33724 }
33725
33726 /*
33727 * XPath:
33728 * /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
33729 */
33730 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_replace_peer_as_modify(
33731 struct nb_cb_modify_args *args)
33732 {
33733 switch (args->event) {
33734 case NB_EV_VALIDATE:
33735 case NB_EV_PREPARE:
33736 case NB_EV_ABORT:
33737 return NB_OK;
33738 case NB_EV_APPLY:
33739 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33740 args, PEER_FLAG_AS_OVERRIDE,
33741 yang_dnode_get_bool(args->dnode, NULL));
33742
33743 break;
33744 }
33745
33746 return NB_OK;
33747 }
33748
33749 /*
33750 * XPath:
33751 * /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
33752 */
33753 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
33754 struct nb_cb_modify_args *args)
33755 {
33756 switch (args->event) {
33757 case NB_EV_VALIDATE:
33758 case NB_EV_PREPARE:
33759 case NB_EV_ABORT:
33760 return NB_OK;
33761 case NB_EV_APPLY:
33762 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33763 args, PEER_FLAG_AS_PATH_UNCHANGED,
33764 yang_dnode_get_bool(args->dnode, NULL));
33765
33766 break;
33767 }
33768
33769 return NB_OK;
33770 }
33771
33772 /*
33773 * XPath:
33774 * /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
33775 */
33776 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
33777 struct nb_cb_modify_args *args)
33778 {
33779 switch (args->event) {
33780 case NB_EV_VALIDATE:
33781 case NB_EV_PREPARE:
33782 case NB_EV_ABORT:
33783 return NB_OK;
33784 case NB_EV_APPLY:
33785 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33786 args, PEER_FLAG_NEXTHOP_UNCHANGED,
33787 yang_dnode_get_bool(args->dnode, NULL));
33788
33789 break;
33790 }
33791
33792 return NB_OK;
33793 }
33794
33795 /*
33796 * XPath:
33797 * /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
33798 */
33799 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_med_unchanged_modify(
33800 struct nb_cb_modify_args *args)
33801 {
33802 switch (args->event) {
33803 case NB_EV_VALIDATE:
33804 case NB_EV_PREPARE:
33805 case NB_EV_ABORT:
33806 return NB_OK;
33807 case NB_EV_APPLY:
33808 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
33809 args, PEER_FLAG_MED_UNCHANGED,
33810 yang_dnode_get_bool(args->dnode, NULL));
33811
33812 break;
33813 }
33814
33815 return NB_OK;
33816 }
33817
33818 /*
33819 * XPath:
33820 * /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
33821 */
33822 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_create(
33823 struct nb_cb_create_args *args)
33824 {
33825 switch (args->event) {
33826 case NB_EV_VALIDATE:
33827 case NB_EV_PREPARE:
33828 case NB_EV_ABORT:
33829 case NB_EV_APPLY:
33830 /* TODO: implement me. */
33831 break;
33832 }
33833
33834 return NB_OK;
33835 }
33836
33837 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_destroy(
33838 struct nb_cb_destroy_args *args)
33839 {
33840 switch (args->event) {
33841 case NB_EV_VALIDATE:
33842 case NB_EV_PREPARE:
33843 case NB_EV_ABORT:
33844 return NB_OK;
33845 case NB_EV_APPLY:
33846 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
33847 args);
33848 }
33849
33850 return NB_OK;
33851 }
33852
33853 /*
33854 * XPath:
33855 * /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
33856 */
33857 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
33858 struct nb_cb_modify_args *args)
33859 {
33860 switch (args->event) {
33861 case NB_EV_VALIDATE:
33862 case NB_EV_PREPARE:
33863 case NB_EV_ABORT:
33864 case NB_EV_APPLY:
33865 /* TODO: implement me. */
33866 break;
33867 }
33868
33869 return NB_OK;
33870 }
33871
33872 /*
33873 * XPath:
33874 * /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
33875 */
33876 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
33877 struct nb_cb_modify_args *args)
33878 {
33879 switch (args->event) {
33880 case NB_EV_VALIDATE:
33881 case NB_EV_PREPARE:
33882 case NB_EV_ABORT:
33883 case NB_EV_APPLY:
33884 /* TODO: implement me. */
33885 break;
33886 }
33887
33888 return NB_OK;
33889 }
33890
33891 /*
33892 * XPath:
33893 * /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
33894 */
33895 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
33896 struct nb_cb_modify_args *args)
33897 {
33898 switch (args->event) {
33899 case NB_EV_VALIDATE:
33900 case NB_EV_PREPARE:
33901 case NB_EV_ABORT:
33902 case NB_EV_APPLY:
33903 /* TODO: implement me. */
33904 break;
33905 }
33906
33907 return NB_OK;
33908 }
33909
33910 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
33911 struct nb_cb_destroy_args *args)
33912 {
33913 switch (args->event) {
33914 case NB_EV_VALIDATE:
33915 case NB_EV_PREPARE:
33916 case NB_EV_ABORT:
33917 case NB_EV_APPLY:
33918 /* TODO: implement me. */
33919 break;
33920 }
33921
33922 return NB_OK;
33923 }
33924
33925 /*
33926 * XPath:
33927 * /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
33928 */
33929 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
33930 struct nb_cb_modify_args *args)
33931 {
33932 switch (args->event) {
33933 case NB_EV_VALIDATE:
33934 case NB_EV_PREPARE:
33935 case NB_EV_ABORT:
33936 case NB_EV_APPLY:
33937 /* TODO: implement me. */
33938 break;
33939 }
33940
33941 return NB_OK;
33942 }
33943
33944 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
33945 struct nb_cb_destroy_args *args)
33946 {
33947 switch (args->event) {
33948 case NB_EV_VALIDATE:
33949 case NB_EV_PREPARE:
33950 case NB_EV_ABORT:
33951 case NB_EV_APPLY:
33952 /* TODO: implement me. */
33953 break;
33954 }
33955
33956 return NB_OK;
33957 }
33958
33959 /*
33960 * XPath:
33961 * /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
33962 */
33963 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
33964 struct nb_cb_modify_args *args)
33965 {
33966 switch (args->event) {
33967 case NB_EV_VALIDATE:
33968 case NB_EV_PREPARE:
33969 case NB_EV_ABORT:
33970 case NB_EV_APPLY:
33971 /* TODO: implement me. */
33972 break;
33973 }
33974
33975 return NB_OK;
33976 }
33977
33978 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
33979 struct nb_cb_destroy_args *args)
33980 {
33981 switch (args->event) {
33982 case NB_EV_VALIDATE:
33983 case NB_EV_PREPARE:
33984 case NB_EV_ABORT:
33985 case NB_EV_APPLY:
33986 /* TODO: implement me. */
33987 break;
33988 }
33989
33990 return NB_OK;
33991 }
33992
33993 /*
33994 * XPath:
33995 * /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
33996 */
33997 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
33998 struct nb_cb_modify_args *args)
33999 {
34000 switch (args->event) {
34001 case NB_EV_VALIDATE:
34002 case NB_EV_PREPARE:
34003 case NB_EV_ABORT:
34004 case NB_EV_APPLY:
34005 /* TODO: implement me. */
34006 break;
34007 }
34008
34009 return NB_OK;
34010 }
34011
34012 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
34013 struct nb_cb_destroy_args *args)
34014 {
34015 switch (args->event) {
34016 case NB_EV_VALIDATE:
34017 case NB_EV_PREPARE:
34018 case NB_EV_ABORT:
34019 case NB_EV_APPLY:
34020 /* TODO: implement me. */
34021 break;
34022 }
34023
34024 return NB_OK;
34025 }
34026
34027 /*
34028 * XPath:
34029 * /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
34030 */
34031 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
34032 struct nb_cb_modify_args *args)
34033 {
34034 switch (args->event) {
34035 case NB_EV_VALIDATE:
34036 case NB_EV_PREPARE:
34037 case NB_EV_ABORT:
34038 case NB_EV_APPLY:
34039 /* TODO: implement me. */
34040 break;
34041 }
34042
34043 return NB_OK;
34044 }
34045
34046 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
34047 struct nb_cb_destroy_args *args)
34048 {
34049 switch (args->event) {
34050 case NB_EV_VALIDATE:
34051 case NB_EV_PREPARE:
34052 case NB_EV_ABORT:
34053 case NB_EV_APPLY:
34054 /* TODO: implement me. */
34055 break;
34056 }
34057
34058 return NB_OK;
34059 }
34060
34061 /*
34062 * XPath:
34063 * /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
34064 */
34065 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
34066 struct nb_cb_modify_args *args)
34067 {
34068 switch (args->event) {
34069 case NB_EV_VALIDATE:
34070 case NB_EV_PREPARE:
34071 case NB_EV_ABORT:
34072 case NB_EV_APPLY:
34073 /* TODO: implement me. */
34074 break;
34075 }
34076
34077 return NB_OK;
34078 }
34079
34080 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
34081 struct nb_cb_destroy_args *args)
34082 {
34083 switch (args->event) {
34084 case NB_EV_VALIDATE:
34085 case NB_EV_PREPARE:
34086 case NB_EV_ABORT:
34087 case NB_EV_APPLY:
34088 /* TODO: implement me. */
34089 break;
34090 }
34091
34092 return NB_OK;
34093 }
34094
34095 /*
34096 * XPath:
34097 * /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
34098 */
34099 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
34100 struct nb_cb_modify_args *args)
34101 {
34102 switch (args->event) {
34103 case NB_EV_VALIDATE:
34104 case NB_EV_PREPARE:
34105 case NB_EV_ABORT:
34106 case NB_EV_APPLY:
34107 /* TODO: implement me. */
34108 break;
34109 }
34110
34111 return NB_OK;
34112 }
34113
34114 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
34115 struct nb_cb_destroy_args *args)
34116 {
34117 switch (args->event) {
34118 case NB_EV_VALIDATE:
34119 case NB_EV_PREPARE:
34120 case NB_EV_ABORT:
34121 case NB_EV_APPLY:
34122 /* TODO: implement me. */
34123 break;
34124 }
34125
34126 return NB_OK;
34127 }
34128
34129 /*
34130 * XPath:
34131 * /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
34132 */
34133 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_modify(
34134 struct nb_cb_modify_args *args)
34135 {
34136 switch (args->event) {
34137 case NB_EV_VALIDATE:
34138 case NB_EV_PREPARE:
34139 case NB_EV_ABORT:
34140 return NB_OK;
34141 case NB_EV_APPLY:
34142 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34143 args, PEER_FLAG_NEXTHOP_SELF,
34144 yang_dnode_get_bool(args->dnode, NULL));
34145
34146 break;
34147 }
34148
34149 return NB_OK;
34150 }
34151
34152 /*
34153 * XPath:
34154 * /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
34155 */
34156 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
34157 struct nb_cb_modify_args *args)
34158 {
34159 switch (args->event) {
34160 case NB_EV_VALIDATE:
34161 case NB_EV_PREPARE:
34162 case NB_EV_ABORT:
34163 return NB_OK;
34164 case NB_EV_APPLY:
34165 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34166 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
34167 yang_dnode_get_bool(args->dnode, NULL));
34168
34169 break;
34170 }
34171
34172 return NB_OK;
34173 }
34174
34175 /*
34176 * XPath:
34177 * /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
34178 */
34179 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_modify(
34180 struct nb_cb_modify_args *args)
34181 {
34182 switch (args->event) {
34183 case NB_EV_VALIDATE:
34184 case NB_EV_PREPARE:
34185 case NB_EV_ABORT:
34186 return NB_OK;
34187 case NB_EV_APPLY:
34188 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34189 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
34190 yang_dnode_get_bool(args->dnode, NULL));
34191
34192 break;
34193 }
34194
34195 return NB_OK;
34196 }
34197
34198 /*
34199 * XPath:
34200 * /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
34201 */
34202 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
34203 struct nb_cb_modify_args *args)
34204 {
34205 switch (args->event) {
34206 case NB_EV_VALIDATE:
34207 case NB_EV_PREPARE:
34208 case NB_EV_ABORT:
34209 return NB_OK;
34210 case NB_EV_APPLY:
34211 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34212 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
34213 yang_dnode_get_bool(args->dnode, NULL));
34214
34215 break;
34216 }
34217
34218 return NB_OK;
34219 }
34220
34221 /*
34222 * XPath:
34223 * /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
34224 */
34225 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_modify(
34226 struct nb_cb_modify_args *args)
34227 {
34228 switch (args->event) {
34229 case NB_EV_VALIDATE:
34230 case NB_EV_PREPARE:
34231 case NB_EV_ABORT:
34232 return NB_OK;
34233 case NB_EV_APPLY:
34234 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34235 args, PEER_FLAG_REMOVE_PRIVATE_AS,
34236 yang_dnode_get_bool(args->dnode, NULL));
34237
34238 break;
34239 }
34240
34241 return NB_OK;
34242 }
34243
34244 /*
34245 * XPath:
34246 * /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
34247 */
34248 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_replace_modify(
34249 struct nb_cb_modify_args *args)
34250 {
34251 switch (args->event) {
34252 case NB_EV_VALIDATE:
34253 case NB_EV_PREPARE:
34254 case NB_EV_ABORT:
34255 return NB_OK;
34256 case NB_EV_APPLY:
34257 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34258 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
34259 yang_dnode_get_bool(args->dnode, NULL));
34260
34261 break;
34262 }
34263
34264 return NB_OK;
34265 }
34266
34267 /*
34268 * XPath:
34269 * /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
34270 */
34271 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_reflector_route_reflector_client_modify(
34272 struct nb_cb_modify_args *args)
34273 {
34274 switch (args->event) {
34275 case NB_EV_VALIDATE:
34276 case NB_EV_PREPARE:
34277 case NB_EV_ABORT:
34278 return NB_OK;
34279 case NB_EV_APPLY:
34280 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34281 args, PEER_FLAG_REFLECTOR_CLIENT,
34282 yang_dnode_get_bool(args->dnode, NULL));
34283
34284 break;
34285 }
34286
34287 return NB_OK;
34288 }
34289
34290 /*
34291 * XPath:
34292 * /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
34293 */
34294 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_server_route_server_client_modify(
34295 struct nb_cb_modify_args *args)
34296 {
34297 switch (args->event) {
34298 case NB_EV_VALIDATE:
34299 case NB_EV_PREPARE:
34300 case NB_EV_ABORT:
34301 return NB_OK;
34302 case NB_EV_APPLY:
34303 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34304 args, PEER_FLAG_RSERVER_CLIENT,
34305 yang_dnode_get_bool(args->dnode, NULL));
34306
34307 break;
34308 }
34309
34310 return NB_OK;
34311 }
34312
34313 /*
34314 * XPath:
34315 * /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
34316 */
34317 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_community_modify(
34318 struct nb_cb_modify_args *args)
34319 {
34320 switch (args->event) {
34321 case NB_EV_VALIDATE:
34322 case NB_EV_PREPARE:
34323 case NB_EV_ABORT:
34324 return NB_OK;
34325 case NB_EV_APPLY:
34326 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34327 args, PEER_FLAG_SEND_COMMUNITY,
34328 yang_dnode_get_bool(args->dnode, NULL));
34329
34330 break;
34331 }
34332
34333 return NB_OK;
34334 }
34335
34336 /*
34337 * XPath:
34338 * /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
34339 */
34340 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_ext_community_modify(
34341 struct nb_cb_modify_args *args)
34342 {
34343 switch (args->event) {
34344 case NB_EV_VALIDATE:
34345 case NB_EV_PREPARE:
34346 case NB_EV_ABORT:
34347 return NB_OK;
34348 case NB_EV_APPLY:
34349 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34350 args, PEER_FLAG_SEND_EXT_COMMUNITY,
34351 yang_dnode_get_bool(args->dnode, NULL));
34352
34353 break;
34354 }
34355
34356 return NB_OK;
34357 }
34358
34359 /*
34360 * XPath:
34361 * /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
34362 */
34363 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_large_community_modify(
34364 struct nb_cb_modify_args *args)
34365 {
34366 switch (args->event) {
34367 case NB_EV_VALIDATE:
34368 case NB_EV_PREPARE:
34369 case NB_EV_ABORT:
34370 return NB_OK;
34371 case NB_EV_APPLY:
34372 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34373 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
34374 yang_dnode_get_bool(args->dnode, NULL));
34375
34376 break;
34377 }
34378
34379 return NB_OK;
34380 }
34381
34382 /*
34383 * XPath:
34384 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv4-unicast/soft-reconfiguration
34385 */
34386 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_soft_reconfiguration_modify(
34387 struct nb_cb_modify_args *args)
34388 {
34389 switch (args->event) {
34390 case NB_EV_VALIDATE:
34391 case NB_EV_PREPARE:
34392 case NB_EV_ABORT:
34393 return NB_OK;
34394 case NB_EV_APPLY:
34395 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34396 args, PEER_FLAG_SOFT_RECONFIG,
34397 yang_dnode_get_bool(args->dnode, NULL));
34398
34399 break;
34400 }
34401
34402 return NB_OK;
34403 }
34404
34405 /*
34406 * XPath:
34407 * /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
34408 */
34409 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_modify(
34410 struct nb_cb_modify_args *args)
34411 {
34412 switch (args->event) {
34413 case NB_EV_VALIDATE:
34414 case NB_EV_PREPARE:
34415 case NB_EV_ABORT:
34416 return NB_OK;
34417 case NB_EV_APPLY:
34418 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
34419
34420 break;
34421 }
34422
34423 return NB_OK;
34424 }
34425
34426 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_destroy(
34427 struct nb_cb_destroy_args *args)
34428 {
34429 switch (args->event) {
34430 case NB_EV_VALIDATE:
34431 case NB_EV_PREPARE:
34432 case NB_EV_ABORT:
34433 return NB_OK;
34434 case NB_EV_APPLY:
34435 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
34436
34437 break;
34438 }
34439
34440 return NB_OK;
34441 }
34442
34443 /*
34444 * XPath:
34445 * /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
34446 */
34447 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_add_paths_path_type_modify(
34448 struct nb_cb_modify_args *args)
34449 {
34450 switch (args->event) {
34451 case NB_EV_VALIDATE:
34452 case NB_EV_PREPARE:
34453 case NB_EV_ABORT:
34454 case NB_EV_APPLY:
34455 /* TODO: implement me. */
34456 break;
34457 }
34458
34459 return NB_OK;
34460 }
34461
34462 /*
34463 * XPath:
34464 * /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
34465 */
34466 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_modify(
34467 struct nb_cb_modify_args *args)
34468 {
34469 switch (args->event) {
34470 case NB_EV_VALIDATE:
34471 case NB_EV_PREPARE:
34472 case NB_EV_ABORT:
34473 case NB_EV_APPLY:
34474 /* TODO: implement me. */
34475 break;
34476 }
34477
34478 return NB_OK;
34479 }
34480
34481 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_destroy(
34482 struct nb_cb_destroy_args *args)
34483 {
34484 switch (args->event) {
34485 case NB_EV_VALIDATE:
34486 case NB_EV_PREPARE:
34487 case NB_EV_ABORT:
34488 case NB_EV_APPLY:
34489 /* TODO: implement me. */
34490 break;
34491 }
34492
34493 return NB_OK;
34494 }
34495
34496 /*
34497 * XPath:
34498 * /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
34499 */
34500 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
34501 struct nb_cb_modify_args *args)
34502 {
34503 switch (args->event) {
34504 case NB_EV_VALIDATE:
34505 case NB_EV_PREPARE:
34506 case NB_EV_ABORT:
34507 case NB_EV_APPLY:
34508 /* TODO: implement me. */
34509 break;
34510 }
34511
34512 return NB_OK;
34513 }
34514
34515 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
34516 struct nb_cb_destroy_args *args)
34517 {
34518 switch (args->event) {
34519 case NB_EV_VALIDATE:
34520 case NB_EV_PREPARE:
34521 case NB_EV_ABORT:
34522 case NB_EV_APPLY:
34523 /* TODO: implement me. */
34524 break;
34525 }
34526
34527 return NB_OK;
34528 }
34529
34530 /*
34531 * XPath:
34532 * /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
34533 */
34534 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_replace_peer_as_modify(
34535 struct nb_cb_modify_args *args)
34536 {
34537 switch (args->event) {
34538 case NB_EV_VALIDATE:
34539 case NB_EV_PREPARE:
34540 case NB_EV_ABORT:
34541 return NB_OK;
34542 case NB_EV_APPLY:
34543 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34544 args, PEER_FLAG_AS_OVERRIDE,
34545 yang_dnode_get_bool(args->dnode, NULL));
34546
34547 break;
34548 }
34549
34550 return NB_OK;
34551 }
34552
34553 /*
34554 * XPath:
34555 * /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
34556 */
34557 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
34558 struct nb_cb_modify_args *args)
34559 {
34560 switch (args->event) {
34561 case NB_EV_VALIDATE:
34562 case NB_EV_PREPARE:
34563 case NB_EV_ABORT:
34564 return NB_OK;
34565 case NB_EV_APPLY:
34566 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34567 args, PEER_FLAG_AS_PATH_UNCHANGED,
34568 yang_dnode_get_bool(args->dnode, NULL));
34569
34570 break;
34571 }
34572
34573 return NB_OK;
34574 }
34575
34576 /*
34577 * XPath:
34578 * /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
34579 */
34580 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
34581 struct nb_cb_modify_args *args)
34582 {
34583 switch (args->event) {
34584 case NB_EV_VALIDATE:
34585 case NB_EV_PREPARE:
34586 case NB_EV_ABORT:
34587 return NB_OK;
34588 case NB_EV_APPLY:
34589 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34590 args, PEER_FLAG_NEXTHOP_UNCHANGED,
34591 yang_dnode_get_bool(args->dnode, NULL));
34592
34593 break;
34594 }
34595
34596 return NB_OK;
34597 }
34598
34599 /*
34600 * XPath:
34601 * /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
34602 */
34603 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_med_unchanged_modify(
34604 struct nb_cb_modify_args *args)
34605 {
34606 switch (args->event) {
34607 case NB_EV_VALIDATE:
34608 case NB_EV_PREPARE:
34609 case NB_EV_ABORT:
34610 return NB_OK;
34611 case NB_EV_APPLY:
34612 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34613 args, PEER_FLAG_MED_UNCHANGED,
34614 yang_dnode_get_bool(args->dnode, NULL));
34615
34616 break;
34617 }
34618
34619 return NB_OK;
34620 }
34621
34622 /*
34623 * XPath:
34624 * /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
34625 */
34626 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_create(
34627 struct nb_cb_create_args *args)
34628 {
34629 switch (args->event) {
34630 case NB_EV_VALIDATE:
34631 case NB_EV_PREPARE:
34632 case NB_EV_ABORT:
34633 case NB_EV_APPLY:
34634 /* TODO: implement me. */
34635 break;
34636 }
34637
34638 return NB_OK;
34639 }
34640
34641 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_destroy(
34642 struct nb_cb_destroy_args *args)
34643 {
34644 switch (args->event) {
34645 case NB_EV_VALIDATE:
34646 case NB_EV_PREPARE:
34647 case NB_EV_ABORT:
34648 return NB_OK;
34649 case NB_EV_APPLY:
34650 return bgp_unnumbered_neighbor_afi_safi_prefix_limit_list_destroy(
34651 args);
34652 }
34653
34654 return NB_OK;
34655 }
34656
34657 /*
34658 * XPath:
34659 * /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
34660 */
34661 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
34662 struct nb_cb_modify_args *args)
34663 {
34664 switch (args->event) {
34665 case NB_EV_VALIDATE:
34666 case NB_EV_PREPARE:
34667 case NB_EV_ABORT:
34668 case NB_EV_APPLY:
34669 /* TODO: implement me. */
34670 break;
34671 }
34672
34673 return NB_OK;
34674 }
34675
34676 /*
34677 * XPath:
34678 * /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
34679 */
34680 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
34681 struct nb_cb_modify_args *args)
34682 {
34683 switch (args->event) {
34684 case NB_EV_VALIDATE:
34685 case NB_EV_PREPARE:
34686 case NB_EV_ABORT:
34687 case NB_EV_APPLY:
34688 /* TODO: implement me. */
34689 break;
34690 }
34691
34692 return NB_OK;
34693 }
34694
34695 /*
34696 * XPath:
34697 * /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
34698 */
34699 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
34700 struct nb_cb_modify_args *args)
34701 {
34702 switch (args->event) {
34703 case NB_EV_VALIDATE:
34704 case NB_EV_PREPARE:
34705 case NB_EV_ABORT:
34706 case NB_EV_APPLY:
34707 /* TODO: implement me. */
34708 break;
34709 }
34710
34711 return NB_OK;
34712 }
34713
34714 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
34715 struct nb_cb_destroy_args *args)
34716 {
34717 switch (args->event) {
34718 case NB_EV_VALIDATE:
34719 case NB_EV_PREPARE:
34720 case NB_EV_ABORT:
34721 case NB_EV_APPLY:
34722 /* TODO: implement me. */
34723 break;
34724 }
34725
34726 return NB_OK;
34727 }
34728
34729 /*
34730 * XPath:
34731 * /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
34732 */
34733 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
34734 struct nb_cb_modify_args *args)
34735 {
34736 switch (args->event) {
34737 case NB_EV_VALIDATE:
34738 case NB_EV_PREPARE:
34739 case NB_EV_ABORT:
34740 case NB_EV_APPLY:
34741 /* TODO: implement me. */
34742 break;
34743 }
34744
34745 return NB_OK;
34746 }
34747
34748 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
34749 struct nb_cb_destroy_args *args)
34750 {
34751 switch (args->event) {
34752 case NB_EV_VALIDATE:
34753 case NB_EV_PREPARE:
34754 case NB_EV_ABORT:
34755 case NB_EV_APPLY:
34756 /* TODO: implement me. */
34757 break;
34758 }
34759
34760 return NB_OK;
34761 }
34762
34763 /*
34764 * XPath:
34765 * /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
34766 */
34767 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
34768 struct nb_cb_modify_args *args)
34769 {
34770 switch (args->event) {
34771 case NB_EV_VALIDATE:
34772 case NB_EV_PREPARE:
34773 case NB_EV_ABORT:
34774 case NB_EV_APPLY:
34775 /* TODO: implement me. */
34776 break;
34777 }
34778
34779 return NB_OK;
34780 }
34781
34782 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
34783 struct nb_cb_destroy_args *args)
34784 {
34785 switch (args->event) {
34786 case NB_EV_VALIDATE:
34787 case NB_EV_PREPARE:
34788 case NB_EV_ABORT:
34789 case NB_EV_APPLY:
34790 /* TODO: implement me. */
34791 break;
34792 }
34793
34794 return NB_OK;
34795 }
34796
34797 /*
34798 * XPath:
34799 * /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
34800 */
34801 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
34802 struct nb_cb_modify_args *args)
34803 {
34804 switch (args->event) {
34805 case NB_EV_VALIDATE:
34806 case NB_EV_PREPARE:
34807 case NB_EV_ABORT:
34808 case NB_EV_APPLY:
34809 /* TODO: implement me. */
34810 break;
34811 }
34812
34813 return NB_OK;
34814 }
34815
34816 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
34817 struct nb_cb_destroy_args *args)
34818 {
34819 switch (args->event) {
34820 case NB_EV_VALIDATE:
34821 case NB_EV_PREPARE:
34822 case NB_EV_ABORT:
34823 case NB_EV_APPLY:
34824 /* TODO: implement me. */
34825 break;
34826 }
34827
34828 return NB_OK;
34829 }
34830
34831 /*
34832 * XPath:
34833 * /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
34834 */
34835 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
34836 struct nb_cb_modify_args *args)
34837 {
34838 switch (args->event) {
34839 case NB_EV_VALIDATE:
34840 case NB_EV_PREPARE:
34841 case NB_EV_ABORT:
34842 case NB_EV_APPLY:
34843 /* TODO: implement me. */
34844 break;
34845 }
34846
34847 return NB_OK;
34848 }
34849
34850 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
34851 struct nb_cb_destroy_args *args)
34852 {
34853 switch (args->event) {
34854 case NB_EV_VALIDATE:
34855 case NB_EV_PREPARE:
34856 case NB_EV_ABORT:
34857 case NB_EV_APPLY:
34858 /* TODO: implement me. */
34859 break;
34860 }
34861
34862 return NB_OK;
34863 }
34864
34865 /*
34866 * XPath:
34867 * /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
34868 */
34869 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
34870 struct nb_cb_modify_args *args)
34871 {
34872 switch (args->event) {
34873 case NB_EV_VALIDATE:
34874 case NB_EV_PREPARE:
34875 case NB_EV_ABORT:
34876 case NB_EV_APPLY:
34877 /* TODO: implement me. */
34878 break;
34879 }
34880
34881 return NB_OK;
34882 }
34883
34884 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
34885 struct nb_cb_destroy_args *args)
34886 {
34887 switch (args->event) {
34888 case NB_EV_VALIDATE:
34889 case NB_EV_PREPARE:
34890 case NB_EV_ABORT:
34891 case NB_EV_APPLY:
34892 /* TODO: implement me. */
34893 break;
34894 }
34895
34896 return NB_OK;
34897 }
34898
34899 /*
34900 * XPath:
34901 * /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
34902 */
34903 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
34904 struct nb_cb_modify_args *args)
34905 {
34906 switch (args->event) {
34907 case NB_EV_VALIDATE:
34908 case NB_EV_PREPARE:
34909 case NB_EV_ABORT:
34910 case NB_EV_APPLY:
34911 /* TODO: implement me. */
34912 break;
34913 }
34914
34915 return NB_OK;
34916 }
34917
34918 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
34919 struct nb_cb_destroy_args *args)
34920 {
34921 switch (args->event) {
34922 case NB_EV_VALIDATE:
34923 case NB_EV_PREPARE:
34924 case NB_EV_ABORT:
34925 case NB_EV_APPLY:
34926 /* TODO: implement me. */
34927 break;
34928 }
34929
34930 return NB_OK;
34931 }
34932
34933 /*
34934 * XPath:
34935 * /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
34936 */
34937 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_modify(
34938 struct nb_cb_modify_args *args)
34939 {
34940 switch (args->event) {
34941 case NB_EV_VALIDATE:
34942 case NB_EV_PREPARE:
34943 case NB_EV_ABORT:
34944 return NB_OK;
34945 case NB_EV_APPLY:
34946 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34947 args, PEER_FLAG_NEXTHOP_SELF,
34948 yang_dnode_get_bool(args->dnode, NULL));
34949
34950 break;
34951 }
34952
34953 return NB_OK;
34954 }
34955
34956 /*
34957 * XPath:
34958 * /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
34959 */
34960 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
34961 struct nb_cb_modify_args *args)
34962 {
34963 switch (args->event) {
34964 case NB_EV_VALIDATE:
34965 case NB_EV_PREPARE:
34966 case NB_EV_ABORT:
34967 return NB_OK;
34968 case NB_EV_APPLY:
34969 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34970 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
34971 yang_dnode_get_bool(args->dnode, NULL));
34972
34973 break;
34974 }
34975
34976 return NB_OK;
34977 }
34978
34979 /*
34980 * XPath:
34981 * /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
34982 */
34983 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_modify(
34984 struct nb_cb_modify_args *args)
34985 {
34986 switch (args->event) {
34987 case NB_EV_VALIDATE:
34988 case NB_EV_PREPARE:
34989 case NB_EV_ABORT:
34990 return NB_OK;
34991 case NB_EV_APPLY:
34992 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
34993 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
34994 yang_dnode_get_bool(args->dnode, NULL));
34995
34996 break;
34997 }
34998
34999 return NB_OK;
35000 }
35001
35002 /*
35003 * XPath:
35004 * /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
35005 */
35006 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
35007 struct nb_cb_modify_args *args)
35008 {
35009 switch (args->event) {
35010 case NB_EV_VALIDATE:
35011 case NB_EV_PREPARE:
35012 case NB_EV_ABORT:
35013 return NB_OK;
35014 case NB_EV_APPLY:
35015 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35016 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
35017 yang_dnode_get_bool(args->dnode, NULL));
35018
35019 break;
35020 }
35021
35022 return NB_OK;
35023 }
35024
35025 /*
35026 * XPath:
35027 * /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
35028 */
35029 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_modify(
35030 struct nb_cb_modify_args *args)
35031 {
35032 switch (args->event) {
35033 case NB_EV_VALIDATE:
35034 case NB_EV_PREPARE:
35035 case NB_EV_ABORT:
35036 return NB_OK;
35037 case NB_EV_APPLY:
35038 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35039 args, PEER_FLAG_REMOVE_PRIVATE_AS,
35040 yang_dnode_get_bool(args->dnode, NULL));
35041
35042 break;
35043 }
35044
35045 return NB_OK;
35046 }
35047
35048 /*
35049 * XPath:
35050 * /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
35051 */
35052 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_replace_modify(
35053 struct nb_cb_modify_args *args)
35054 {
35055 switch (args->event) {
35056 case NB_EV_VALIDATE:
35057 case NB_EV_PREPARE:
35058 case NB_EV_ABORT:
35059 return NB_OK;
35060 case NB_EV_APPLY:
35061 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35062 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
35063 yang_dnode_get_bool(args->dnode, NULL));
35064
35065 break;
35066 }
35067
35068 return NB_OK;
35069 }
35070
35071 /*
35072 * XPath:
35073 * /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
35074 */
35075 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_reflector_route_reflector_client_modify(
35076 struct nb_cb_modify_args *args)
35077 {
35078 switch (args->event) {
35079 case NB_EV_VALIDATE:
35080 case NB_EV_PREPARE:
35081 case NB_EV_ABORT:
35082 return NB_OK;
35083 case NB_EV_APPLY:
35084 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35085 args, PEER_FLAG_REFLECTOR_CLIENT,
35086 yang_dnode_get_bool(args->dnode, NULL));
35087
35088 break;
35089 }
35090
35091 return NB_OK;
35092 }
35093
35094 /*
35095 * XPath:
35096 * /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
35097 */
35098 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_server_route_server_client_modify(
35099 struct nb_cb_modify_args *args)
35100 {
35101 switch (args->event) {
35102 case NB_EV_VALIDATE:
35103 case NB_EV_PREPARE:
35104 case NB_EV_ABORT:
35105 return NB_OK;
35106 case NB_EV_APPLY:
35107 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35108 args, PEER_FLAG_RSERVER_CLIENT,
35109 yang_dnode_get_bool(args->dnode, NULL));
35110
35111 break;
35112 }
35113
35114 return NB_OK;
35115 }
35116
35117 /*
35118 * XPath:
35119 * /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
35120 */
35121 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_community_modify(
35122 struct nb_cb_modify_args *args)
35123 {
35124 switch (args->event) {
35125 case NB_EV_VALIDATE:
35126 case NB_EV_PREPARE:
35127 case NB_EV_ABORT:
35128 return NB_OK;
35129 case NB_EV_APPLY:
35130 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35131 args, PEER_FLAG_SEND_COMMUNITY,
35132 yang_dnode_get_bool(args->dnode, NULL));
35133
35134 break;
35135 }
35136
35137 return NB_OK;
35138 }
35139
35140 /*
35141 * XPath:
35142 * /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
35143 */
35144 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_ext_community_modify(
35145 struct nb_cb_modify_args *args)
35146 {
35147 switch (args->event) {
35148 case NB_EV_VALIDATE:
35149 case NB_EV_PREPARE:
35150 case NB_EV_ABORT:
35151 return NB_OK;
35152 case NB_EV_APPLY:
35153 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35154 args, PEER_FLAG_SEND_EXT_COMMUNITY,
35155 yang_dnode_get_bool(args->dnode, NULL));
35156
35157 break;
35158 }
35159
35160 return NB_OK;
35161 }
35162
35163 /*
35164 * XPath:
35165 * /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
35166 */
35167 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_large_community_modify(
35168 struct nb_cb_modify_args *args)
35169 {
35170 switch (args->event) {
35171 case NB_EV_VALIDATE:
35172 case NB_EV_PREPARE:
35173 case NB_EV_ABORT:
35174 return NB_OK;
35175 case NB_EV_APPLY:
35176 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35177 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
35178 yang_dnode_get_bool(args->dnode, NULL));
35179
35180 break;
35181 }
35182
35183 return NB_OK;
35184 }
35185
35186 /*
35187 * XPath:
35188 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l3vpn-ipv6-unicast/soft-reconfiguration
35189 */
35190 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_soft_reconfiguration_modify(
35191 struct nb_cb_modify_args *args)
35192 {
35193 switch (args->event) {
35194 case NB_EV_VALIDATE:
35195 case NB_EV_PREPARE:
35196 case NB_EV_ABORT:
35197 return NB_OK;
35198 case NB_EV_APPLY:
35199 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35200 args, PEER_FLAG_SOFT_RECONFIG,
35201 yang_dnode_get_bool(args->dnode, NULL));
35202
35203 break;
35204 }
35205
35206 return NB_OK;
35207 }
35208
35209 /*
35210 * XPath:
35211 * /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
35212 */
35213 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_modify(
35214 struct nb_cb_modify_args *args)
35215 {
35216 switch (args->event) {
35217 case NB_EV_VALIDATE:
35218 case NB_EV_PREPARE:
35219 case NB_EV_ABORT:
35220 return NB_OK;
35221 case NB_EV_APPLY:
35222 return bgp_unnumbered_neighbor_afi_safi_weight_modify(args);
35223
35224 break;
35225 }
35226
35227 return NB_OK;
35228 }
35229
35230 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_destroy(
35231 struct nb_cb_destroy_args *args)
35232 {
35233 switch (args->event) {
35234 case NB_EV_VALIDATE:
35235 case NB_EV_PREPARE:
35236 case NB_EV_ABORT:
35237 return NB_OK;
35238 case NB_EV_APPLY:
35239 return bgp_unnumbered_neighbor_afi_safi_weight_destroy(args);
35240
35241 break;
35242 }
35243
35244 return NB_OK;
35245 }
35246
35247 /*
35248 * XPath:
35249 * /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
35250 */
35251 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_modify(
35252 struct nb_cb_modify_args *args)
35253 {
35254 switch (args->event) {
35255 case NB_EV_VALIDATE:
35256 case NB_EV_PREPARE:
35257 case NB_EV_ABORT:
35258 case NB_EV_APPLY:
35259 /* TODO: implement me. */
35260 break;
35261 }
35262
35263 return NB_OK;
35264 }
35265
35266 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_destroy(
35267 struct nb_cb_destroy_args *args)
35268 {
35269 switch (args->event) {
35270 case NB_EV_VALIDATE:
35271 case NB_EV_PREPARE:
35272 case NB_EV_ABORT:
35273 case NB_EV_APPLY:
35274 /* TODO: implement me. */
35275 break;
35276 }
35277
35278 return NB_OK;
35279 }
35280
35281 /*
35282 * XPath:
35283 * /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
35284 */
35285 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_modify(
35286 struct nb_cb_modify_args *args)
35287 {
35288 switch (args->event) {
35289 case NB_EV_VALIDATE:
35290 case NB_EV_PREPARE:
35291 case NB_EV_ABORT:
35292 case NB_EV_APPLY:
35293 /* TODO: implement me. */
35294 break;
35295 }
35296
35297 return NB_OK;
35298 }
35299
35300 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_destroy(
35301 struct nb_cb_destroy_args *args)
35302 {
35303 switch (args->event) {
35304 case NB_EV_VALIDATE:
35305 case NB_EV_PREPARE:
35306 case NB_EV_ABORT:
35307 case NB_EV_APPLY:
35308 /* TODO: implement me. */
35309 break;
35310 }
35311
35312 return NB_OK;
35313 }
35314
35315 /*
35316 * XPath:
35317 * /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
35318 */
35319 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_as_path_options_replace_peer_as_modify(
35320 struct nb_cb_modify_args *args)
35321 {
35322 switch (args->event) {
35323 case NB_EV_VALIDATE:
35324 case NB_EV_PREPARE:
35325 case NB_EV_ABORT:
35326 return NB_OK;
35327 case NB_EV_APPLY:
35328 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35329 args, PEER_FLAG_AS_OVERRIDE,
35330 yang_dnode_get_bool(args->dnode, NULL));
35331
35332 break;
35333 }
35334
35335 return NB_OK;
35336 }
35337
35338 /*
35339 * XPath:
35340 * /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
35341 */
35342 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_as_path_unchanged_modify(
35343 struct nb_cb_modify_args *args)
35344 {
35345 switch (args->event) {
35346 case NB_EV_VALIDATE:
35347 case NB_EV_PREPARE:
35348 case NB_EV_ABORT:
35349 return NB_OK;
35350 case NB_EV_APPLY:
35351 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35352 args, PEER_FLAG_AS_PATH_UNCHANGED,
35353 yang_dnode_get_bool(args->dnode, NULL));
35354
35355 break;
35356 }
35357
35358 return NB_OK;
35359 }
35360
35361 /*
35362 * XPath:
35363 * /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
35364 */
35365 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_next_hop_unchanged_modify(
35366 struct nb_cb_modify_args *args)
35367 {
35368 switch (args->event) {
35369 case NB_EV_VALIDATE:
35370 case NB_EV_PREPARE:
35371 case NB_EV_ABORT:
35372 return NB_OK;
35373 case NB_EV_APPLY:
35374 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35375 args, PEER_FLAG_NEXTHOP_UNCHANGED,
35376 yang_dnode_get_bool(args->dnode, NULL));
35377
35378 break;
35379 }
35380
35381 return NB_OK;
35382 }
35383
35384 /*
35385 * XPath:
35386 * /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
35387 */
35388 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_med_unchanged_modify(
35389 struct nb_cb_modify_args *args)
35390 {
35391 switch (args->event) {
35392 case NB_EV_VALIDATE:
35393 case NB_EV_PREPARE:
35394 case NB_EV_ABORT:
35395 return NB_OK;
35396 case NB_EV_APPLY:
35397 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35398 args, PEER_FLAG_MED_UNCHANGED,
35399 yang_dnode_get_bool(args->dnode, NULL));
35400
35401 break;
35402 }
35403
35404 return NB_OK;
35405 }
35406
35407 /*
35408 * XPath:
35409 * /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
35410 */
35411 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_modify(
35412 struct nb_cb_modify_args *args)
35413 {
35414 switch (args->event) {
35415 case NB_EV_VALIDATE:
35416 case NB_EV_PREPARE:
35417 case NB_EV_ABORT:
35418 return NB_OK;
35419 case NB_EV_APPLY:
35420 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35421 args, PEER_FLAG_NEXTHOP_SELF,
35422 yang_dnode_get_bool(args->dnode, NULL));
35423
35424 break;
35425 }
35426
35427 return NB_OK;
35428 }
35429
35430 /*
35431 * XPath:
35432 * /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
35433 */
35434 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_force_modify(
35435 struct nb_cb_modify_args *args)
35436 {
35437 switch (args->event) {
35438 case NB_EV_VALIDATE:
35439 case NB_EV_PREPARE:
35440 case NB_EV_ABORT:
35441 return NB_OK;
35442 case NB_EV_APPLY:
35443 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35444 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
35445 yang_dnode_get_bool(args->dnode, NULL));
35446
35447 break;
35448 }
35449
35450 return NB_OK;
35451 }
35452
35453 /*
35454 * XPath:
35455 * /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
35456 */
35457 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_route_reflector_route_reflector_client_modify(
35458 struct nb_cb_modify_args *args)
35459 {
35460 switch (args->event) {
35461 case NB_EV_VALIDATE:
35462 case NB_EV_PREPARE:
35463 case NB_EV_ABORT:
35464 return NB_OK;
35465 case NB_EV_APPLY:
35466 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35467 args, PEER_FLAG_REFLECTOR_CLIENT,
35468 yang_dnode_get_bool(args->dnode, NULL));
35469
35470 break;
35471 }
35472
35473 return NB_OK;
35474 }
35475
35476 /*
35477 * XPath:
35478 * /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
35479 */
35480 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_route_server_route_server_client_modify(
35481 struct nb_cb_modify_args *args)
35482 {
35483 switch (args->event) {
35484 case NB_EV_VALIDATE:
35485 case NB_EV_PREPARE:
35486 case NB_EV_ABORT:
35487 return NB_OK;
35488 case NB_EV_APPLY:
35489 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35490 args, PEER_FLAG_RSERVER_CLIENT,
35491 yang_dnode_get_bool(args->dnode, NULL));
35492
35493 break;
35494 }
35495
35496 return NB_OK;
35497 }
35498
35499 /*
35500 * XPath:
35501 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/l2vpn-evpn/soft-reconfiguration
35502 */
35503 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_l2vpn_evpn_soft_reconfiguration_modify(
35504 struct nb_cb_modify_args *args)
35505 {
35506 switch (args->event) {
35507 case NB_EV_VALIDATE:
35508 case NB_EV_PREPARE:
35509 case NB_EV_ABORT:
35510 return NB_OK;
35511 case NB_EV_APPLY:
35512 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35513 args, PEER_FLAG_SOFT_RECONFIG,
35514 yang_dnode_get_bool(args->dnode, NULL));
35515
35516 break;
35517 }
35518
35519 return NB_OK;
35520 }
35521
35522 /*
35523 * XPath:
35524 * /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
35525 */
35526 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_route_reflector_route_reflector_client_modify(
35527 struct nb_cb_modify_args *args)
35528 {
35529 switch (args->event) {
35530 case NB_EV_VALIDATE:
35531 case NB_EV_PREPARE:
35532 case NB_EV_ABORT:
35533 return NB_OK;
35534 case NB_EV_APPLY:
35535 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35536 args, PEER_FLAG_REFLECTOR_CLIENT,
35537 yang_dnode_get_bool(args->dnode, NULL));
35538
35539 break;
35540 }
35541
35542 return NB_OK;
35543 }
35544
35545 /*
35546 * XPath:
35547 * /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
35548 */
35549 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_route_server_route_server_client_modify(
35550 struct nb_cb_modify_args *args)
35551 {
35552 switch (args->event) {
35553 case NB_EV_VALIDATE:
35554 case NB_EV_PREPARE:
35555 case NB_EV_ABORT:
35556 return NB_OK;
35557 case NB_EV_APPLY:
35558 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35559 args, PEER_FLAG_RSERVER_CLIENT,
35560 yang_dnode_get_bool(args->dnode, NULL));
35561
35562 break;
35563 }
35564
35565 return NB_OK;
35566 }
35567
35568 /*
35569 * XPath:
35570 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-flowspec/soft-reconfiguration
35571 */
35572 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_soft_reconfiguration_modify(
35573 struct nb_cb_modify_args *args)
35574 {
35575 switch (args->event) {
35576 case NB_EV_VALIDATE:
35577 case NB_EV_PREPARE:
35578 case NB_EV_ABORT:
35579 return NB_OK;
35580 case NB_EV_APPLY:
35581 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35582 args, PEER_FLAG_SOFT_RECONFIG,
35583 yang_dnode_get_bool(args->dnode, NULL));
35584
35585 break;
35586 }
35587
35588 return NB_OK;
35589 }
35590
35591 /*
35592 * XPath:
35593 * /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
35594 */
35595 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_modify(
35596 struct nb_cb_modify_args *args)
35597 {
35598 switch (args->event) {
35599 case NB_EV_VALIDATE:
35600 case NB_EV_PREPARE:
35601 case NB_EV_ABORT:
35602 break;
35603 case NB_EV_APPLY:
35604 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
35605 RMAP_IN);
35606 }
35607
35608 return NB_OK;
35609 }
35610
35611 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_destroy(
35612 struct nb_cb_destroy_args *args)
35613 {
35614 switch (args->event) {
35615 case NB_EV_VALIDATE:
35616 case NB_EV_PREPARE:
35617 case NB_EV_ABORT:
35618 break;
35619 case NB_EV_APPLY:
35620 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
35621 RMAP_IN);
35622 }
35623
35624 return NB_OK;
35625 }
35626
35627 /*
35628 * XPath:
35629 * /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
35630 */
35631 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_modify(
35632 struct nb_cb_modify_args *args)
35633 {
35634 switch (args->event) {
35635 case NB_EV_VALIDATE:
35636 case NB_EV_PREPARE:
35637 case NB_EV_ABORT:
35638 break;
35639 case NB_EV_APPLY:
35640 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
35641 RMAP_OUT);
35642 }
35643
35644 return NB_OK;
35645 }
35646
35647 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_destroy(
35648 struct nb_cb_destroy_args *args)
35649 {
35650 switch (args->event) {
35651 case NB_EV_VALIDATE:
35652 case NB_EV_PREPARE:
35653 case NB_EV_ABORT:
35654 break;
35655 case NB_EV_APPLY:
35656 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
35657 RMAP_OUT);
35658 }
35659
35660 return NB_OK;
35661 }
35662
35663 /*
35664 * XPath:
35665 * /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
35666 */
35667 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_modify(
35668 struct nb_cb_modify_args *args)
35669 {
35670 switch (args->event) {
35671 case NB_EV_VALIDATE:
35672 case NB_EV_PREPARE:
35673 case NB_EV_ABORT:
35674 break;
35675 case NB_EV_APPLY:
35676 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
35677 FILTER_IN);
35678 }
35679
35680 return NB_OK;
35681 }
35682
35683 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_destroy(
35684 struct nb_cb_destroy_args *args)
35685 {
35686 switch (args->event) {
35687 case NB_EV_VALIDATE:
35688 case NB_EV_PREPARE:
35689 case NB_EV_ABORT:
35690 break;
35691 case NB_EV_APPLY:
35692 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
35693 args, FILTER_IN);
35694 }
35695
35696 return NB_OK;
35697 }
35698
35699 /*
35700 * XPath:
35701 * /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
35702 */
35703 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_modify(
35704 struct nb_cb_modify_args *args)
35705 {
35706 switch (args->event) {
35707 case NB_EV_VALIDATE:
35708 case NB_EV_PREPARE:
35709 case NB_EV_ABORT:
35710 break;
35711 case NB_EV_APPLY:
35712 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
35713 args, FILTER_OUT);
35714 }
35715
35716 return NB_OK;
35717 }
35718
35719 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_destroy(
35720 struct nb_cb_destroy_args *args)
35721 {
35722 switch (args->event) {
35723 case NB_EV_VALIDATE:
35724 case NB_EV_PREPARE:
35725 case NB_EV_ABORT:
35726 break;
35727 case NB_EV_APPLY:
35728 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
35729 args, FILTER_OUT);
35730 }
35731
35732 return NB_OK;
35733 }
35734
35735 /*
35736 * XPath:
35737 * /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
35738 */
35739 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_modify(
35740 struct nb_cb_modify_args *args)
35741 {
35742 switch (args->event) {
35743 case NB_EV_VALIDATE:
35744 case NB_EV_PREPARE:
35745 case NB_EV_ABORT:
35746 case NB_EV_APPLY:
35747 /* TODO: implement me. */
35748 break;
35749 }
35750
35751 return NB_OK;
35752 }
35753
35754 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_destroy(
35755 struct nb_cb_destroy_args *args)
35756 {
35757 switch (args->event) {
35758 case NB_EV_VALIDATE:
35759 case NB_EV_PREPARE:
35760 case NB_EV_ABORT:
35761 case NB_EV_APPLY:
35762 /* TODO: implement me. */
35763 break;
35764 }
35765
35766 return NB_OK;
35767 }
35768
35769 /*
35770 * XPath:
35771 * /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
35772 */
35773 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_modify(
35774 struct nb_cb_modify_args *args)
35775 {
35776 switch (args->event) {
35777 case NB_EV_VALIDATE:
35778 case NB_EV_PREPARE:
35779 case NB_EV_ABORT:
35780 case NB_EV_APPLY:
35781 /* TODO: implement me. */
35782 break;
35783 }
35784
35785 return NB_OK;
35786 }
35787
35788 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_destroy(
35789 struct nb_cb_destroy_args *args)
35790 {
35791 switch (args->event) {
35792 case NB_EV_VALIDATE:
35793 case NB_EV_PREPARE:
35794 case NB_EV_ABORT:
35795 case NB_EV_APPLY:
35796 /* TODO: implement me. */
35797 break;
35798 }
35799
35800 return NB_OK;
35801 }
35802
35803 /*
35804 * XPath:
35805 * /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
35806 */
35807 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_modify(
35808 struct nb_cb_modify_args *args)
35809 {
35810 switch (args->event) {
35811 case NB_EV_VALIDATE:
35812 case NB_EV_PREPARE:
35813 case NB_EV_ABORT:
35814 case NB_EV_APPLY:
35815 /* TODO: implement me. */
35816 break;
35817 }
35818
35819 return NB_OK;
35820 }
35821
35822 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_destroy(
35823 struct nb_cb_destroy_args *args)
35824 {
35825 switch (args->event) {
35826 case NB_EV_VALIDATE:
35827 case NB_EV_PREPARE:
35828 case NB_EV_ABORT:
35829 case NB_EV_APPLY:
35830 /* TODO: implement me. */
35831 break;
35832 }
35833
35834 return NB_OK;
35835 }
35836
35837 /*
35838 * XPath:
35839 * /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
35840 */
35841 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_modify(
35842 struct nb_cb_modify_args *args)
35843 {
35844 switch (args->event) {
35845 case NB_EV_VALIDATE:
35846 case NB_EV_PREPARE:
35847 case NB_EV_ABORT:
35848 case NB_EV_APPLY:
35849 /* TODO: implement me. */
35850 break;
35851 }
35852
35853 return NB_OK;
35854 }
35855
35856 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_destroy(
35857 struct nb_cb_destroy_args *args)
35858 {
35859 switch (args->event) {
35860 case NB_EV_VALIDATE:
35861 case NB_EV_PREPARE:
35862 case NB_EV_ABORT:
35863 case NB_EV_APPLY:
35864 /* TODO: implement me. */
35865 break;
35866 }
35867
35868 return NB_OK;
35869 }
35870
35871 /*
35872 * XPath:
35873 * /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
35874 */
35875 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_modify(
35876 struct nb_cb_modify_args *args)
35877 {
35878 switch (args->event) {
35879 case NB_EV_VALIDATE:
35880 case NB_EV_PREPARE:
35881 case NB_EV_ABORT:
35882 case NB_EV_APPLY:
35883 /* TODO: implement me. */
35884 break;
35885 }
35886
35887 return NB_OK;
35888 }
35889
35890 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_destroy(
35891 struct nb_cb_destroy_args *args)
35892 {
35893 switch (args->event) {
35894 case NB_EV_VALIDATE:
35895 case NB_EV_PREPARE:
35896 case NB_EV_ABORT:
35897 case NB_EV_APPLY:
35898 /* TODO: implement me. */
35899 break;
35900 }
35901
35902 return NB_OK;
35903 }
35904
35905 /*
35906 * XPath:
35907 * /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
35908 */
35909 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_modify(
35910 struct nb_cb_modify_args *args)
35911 {
35912 switch (args->event) {
35913 case NB_EV_VALIDATE:
35914 case NB_EV_PREPARE:
35915 case NB_EV_ABORT:
35916 case NB_EV_APPLY:
35917 /* TODO: implement me. */
35918 break;
35919 }
35920
35921 return NB_OK;
35922 }
35923
35924 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_destroy(
35925 struct nb_cb_destroy_args *args)
35926 {
35927 switch (args->event) {
35928 case NB_EV_VALIDATE:
35929 case NB_EV_PREPARE:
35930 case NB_EV_ABORT:
35931 case NB_EV_APPLY:
35932 /* TODO: implement me. */
35933 break;
35934 }
35935
35936 return NB_OK;
35937 }
35938
35939 /*
35940 * XPath:
35941 * /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
35942 */
35943 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_route_reflector_route_reflector_client_modify(
35944 struct nb_cb_modify_args *args)
35945 {
35946 switch (args->event) {
35947 case NB_EV_VALIDATE:
35948 case NB_EV_PREPARE:
35949 case NB_EV_ABORT:
35950 return NB_OK;
35951 case NB_EV_APPLY:
35952 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35953 args, PEER_FLAG_REFLECTOR_CLIENT,
35954 yang_dnode_get_bool(args->dnode, NULL));
35955
35956 break;
35957 }
35958
35959 return NB_OK;
35960 }
35961
35962 /*
35963 * XPath:
35964 * /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
35965 */
35966 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_route_server_route_server_client_modify(
35967 struct nb_cb_modify_args *args)
35968 {
35969 switch (args->event) {
35970 case NB_EV_VALIDATE:
35971 case NB_EV_PREPARE:
35972 case NB_EV_ABORT:
35973 return NB_OK;
35974 case NB_EV_APPLY:
35975 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35976 args, PEER_FLAG_RSERVER_CLIENT,
35977 yang_dnode_get_bool(args->dnode, NULL));
35978
35979 break;
35980 }
35981
35982 return NB_OK;
35983 }
35984
35985 /*
35986 * XPath:
35987 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv6-flowspec/soft-reconfiguration
35988 */
35989 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_soft_reconfiguration_modify(
35990 struct nb_cb_modify_args *args)
35991 {
35992 switch (args->event) {
35993 case NB_EV_VALIDATE:
35994 case NB_EV_PREPARE:
35995 case NB_EV_ABORT:
35996 return NB_OK;
35997 case NB_EV_APPLY:
35998 return bgp_unnumbered_neighbor_afi_safi_flag_modify(
35999 args, PEER_FLAG_SOFT_RECONFIG,
36000 yang_dnode_get_bool(args->dnode, NULL));
36001
36002 break;
36003 }
36004
36005 return NB_OK;
36006 }
36007
36008 /*
36009 * XPath:
36010 * /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
36011 */
36012 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_modify(
36013 struct nb_cb_modify_args *args)
36014 {
36015 switch (args->event) {
36016 case NB_EV_VALIDATE:
36017 case NB_EV_PREPARE:
36018 case NB_EV_ABORT:
36019 break;
36020 case NB_EV_APPLY:
36021 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
36022 RMAP_IN);
36023 }
36024
36025 return NB_OK;
36026 }
36027
36028 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_destroy(
36029 struct nb_cb_destroy_args *args)
36030 {
36031 switch (args->event) {
36032 case NB_EV_VALIDATE:
36033 case NB_EV_PREPARE:
36034 case NB_EV_ABORT:
36035 break;
36036 case NB_EV_APPLY:
36037 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
36038 RMAP_IN);
36039 }
36040
36041 return NB_OK;
36042 }
36043
36044 /*
36045 * XPath:
36046 * /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
36047 */
36048 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_modify(
36049 struct nb_cb_modify_args *args)
36050 {
36051 switch (args->event) {
36052 case NB_EV_VALIDATE:
36053 case NB_EV_PREPARE:
36054 case NB_EV_ABORT:
36055 break;
36056 case NB_EV_APPLY:
36057 return bgp_unnumbered_neighbor_afi_safi_rmap_modify(args,
36058 RMAP_OUT);
36059 }
36060
36061 return NB_OK;
36062 }
36063
36064 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_destroy(
36065 struct nb_cb_destroy_args *args)
36066 {
36067 switch (args->event) {
36068 case NB_EV_VALIDATE:
36069 case NB_EV_PREPARE:
36070 case NB_EV_ABORT:
36071 break;
36072 case NB_EV_APPLY:
36073 return bgp_unnumbered_neighbor_afi_safi_rmap_destroy(args,
36074 RMAP_OUT);
36075 }
36076
36077 return NB_OK;
36078 }
36079
36080 /*
36081 * XPath:
36082 * /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
36083 */
36084 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_modify(
36085 struct nb_cb_modify_args *args)
36086 {
36087 switch (args->event) {
36088 case NB_EV_VALIDATE:
36089 case NB_EV_PREPARE:
36090 case NB_EV_ABORT:
36091 break;
36092 case NB_EV_APPLY:
36093 return bgp_unnumbered_neighbor_afi_safi_plist_modify(args,
36094 FILTER_IN);
36095 }
36096
36097 return NB_OK;
36098 }
36099
36100 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_destroy(
36101 struct nb_cb_destroy_args *args)
36102 {
36103 switch (args->event) {
36104 case NB_EV_VALIDATE:
36105 case NB_EV_PREPARE:
36106 case NB_EV_ABORT:
36107 break;
36108 case NB_EV_APPLY:
36109 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
36110 args, FILTER_IN);
36111 }
36112
36113 return NB_OK;
36114 }
36115
36116 /*
36117 * XPath:
36118 * /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
36119 */
36120 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_modify(
36121 struct nb_cb_modify_args *args)
36122 {
36123 switch (args->event) {
36124 case NB_EV_VALIDATE:
36125 case NB_EV_PREPARE:
36126 case NB_EV_ABORT:
36127 break;
36128 case NB_EV_APPLY:
36129 return bgp_unnumbered_neighbor_afi_safi_plist_modify(
36130 args, FILTER_OUT);
36131 }
36132
36133 return NB_OK;
36134 }
36135
36136 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_destroy(
36137 struct nb_cb_destroy_args *args)
36138 {
36139 switch (args->event) {
36140 case NB_EV_VALIDATE:
36141 case NB_EV_PREPARE:
36142 case NB_EV_ABORT:
36143 break;
36144 case NB_EV_APPLY:
36145 return bgp_unnumbered_neighbor_afi_safi_plist_destroy(
36146 args, FILTER_OUT);
36147 }
36148
36149 return NB_OK;
36150 }
36151
36152 /*
36153 * XPath:
36154 * /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
36155 */
36156 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_modify(
36157 struct nb_cb_modify_args *args)
36158 {
36159 switch (args->event) {
36160 case NB_EV_VALIDATE:
36161 case NB_EV_PREPARE:
36162 case NB_EV_ABORT:
36163 case NB_EV_APPLY:
36164 /* TODO: implement me. */
36165 break;
36166 }
36167
36168 return NB_OK;
36169 }
36170
36171 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_destroy(
36172 struct nb_cb_destroy_args *args)
36173 {
36174 switch (args->event) {
36175 case NB_EV_VALIDATE:
36176 case NB_EV_PREPARE:
36177 case NB_EV_ABORT:
36178 case NB_EV_APPLY:
36179 /* TODO: implement me. */
36180 break;
36181 }
36182
36183 return NB_OK;
36184 }
36185
36186 /*
36187 * XPath:
36188 * /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
36189 */
36190 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_modify(
36191 struct nb_cb_modify_args *args)
36192 {
36193 switch (args->event) {
36194 case NB_EV_VALIDATE:
36195 case NB_EV_PREPARE:
36196 case NB_EV_ABORT:
36197 case NB_EV_APPLY:
36198 /* TODO: implement me. */
36199 break;
36200 }
36201
36202 return NB_OK;
36203 }
36204
36205 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_destroy(
36206 struct nb_cb_destroy_args *args)
36207 {
36208 switch (args->event) {
36209 case NB_EV_VALIDATE:
36210 case NB_EV_PREPARE:
36211 case NB_EV_ABORT:
36212 case NB_EV_APPLY:
36213 /* TODO: implement me. */
36214 break;
36215 }
36216
36217 return NB_OK;
36218 }
36219
36220 /*
36221 * XPath:
36222 * /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
36223 */
36224 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_modify(
36225 struct nb_cb_modify_args *args)
36226 {
36227 switch (args->event) {
36228 case NB_EV_VALIDATE:
36229 case NB_EV_PREPARE:
36230 case NB_EV_ABORT:
36231 case NB_EV_APPLY:
36232 /* TODO: implement me. */
36233 break;
36234 }
36235
36236 return NB_OK;
36237 }
36238
36239 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_destroy(
36240 struct nb_cb_destroy_args *args)
36241 {
36242 switch (args->event) {
36243 case NB_EV_VALIDATE:
36244 case NB_EV_PREPARE:
36245 case NB_EV_ABORT:
36246 case NB_EV_APPLY:
36247 /* TODO: implement me. */
36248 break;
36249 }
36250
36251 return NB_OK;
36252 }
36253
36254 /*
36255 * XPath:
36256 * /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
36257 */
36258 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_modify(
36259 struct nb_cb_modify_args *args)
36260 {
36261 switch (args->event) {
36262 case NB_EV_VALIDATE:
36263 case NB_EV_PREPARE:
36264 case NB_EV_ABORT:
36265 case NB_EV_APPLY:
36266 /* TODO: implement me. */
36267 break;
36268 }
36269
36270 return NB_OK;
36271 }
36272
36273 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_destroy(
36274 struct nb_cb_destroy_args *args)
36275 {
36276 switch (args->event) {
36277 case NB_EV_VALIDATE:
36278 case NB_EV_PREPARE:
36279 case NB_EV_ABORT:
36280 case NB_EV_APPLY:
36281 /* TODO: implement me. */
36282 break;
36283 }
36284
36285 return NB_OK;
36286 }
36287
36288 /*
36289 * XPath:
36290 * /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
36291 */
36292 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_modify(
36293 struct nb_cb_modify_args *args)
36294 {
36295 switch (args->event) {
36296 case NB_EV_VALIDATE:
36297 case NB_EV_PREPARE:
36298 case NB_EV_ABORT:
36299 case NB_EV_APPLY:
36300 /* TODO: implement me. */
36301 break;
36302 }
36303
36304 return NB_OK;
36305 }
36306
36307 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_destroy(
36308 struct nb_cb_destroy_args *args)
36309 {
36310 switch (args->event) {
36311 case NB_EV_VALIDATE:
36312 case NB_EV_PREPARE:
36313 case NB_EV_ABORT:
36314 case NB_EV_APPLY:
36315 /* TODO: implement me. */
36316 break;
36317 }
36318
36319 return NB_OK;
36320 }
36321
36322 /*
36323 * XPath:
36324 * /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
36325 */
36326 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_modify(
36327 struct nb_cb_modify_args *args)
36328 {
36329 switch (args->event) {
36330 case NB_EV_VALIDATE:
36331 case NB_EV_PREPARE:
36332 case NB_EV_ABORT:
36333 case NB_EV_APPLY:
36334 /* TODO: implement me. */
36335 break;
36336 }
36337
36338 return NB_OK;
36339 }
36340
36341 int bgp_neighbors_unnumbered_neighbor_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_destroy(
36342 struct nb_cb_destroy_args *args)
36343 {
36344 switch (args->event) {
36345 case NB_EV_VALIDATE:
36346 case NB_EV_PREPARE:
36347 case NB_EV_ABORT:
36348 case NB_EV_APPLY:
36349 /* TODO: implement me. */
36350 break;
36351 }
36352
36353 return NB_OK;
36354 }
36355
36356 static int bgp_peer_group_afi_safi_flag_modify(struct nb_cb_modify_args *args,
36357 uint32_t flags, bool set)
36358 {
36359 struct bgp *bgp;
36360 const char *peer_str;
36361 struct peer *peer;
36362 const struct lyd_node *nbr_dnode;
36363 const struct lyd_node *nbr_af_dnode;
36364 const char *af_name;
36365 afi_t afi;
36366 safi_t safi;
36367
36368 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
36369 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
36370 yang_afi_safi_identity2value(af_name, &afi, &safi);
36371 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
36372 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
36373 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
36374 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
36375
36376 if (peer_af_flag_modify_nb(peer, afi, safi, flags, set, args->errmsg,
36377 args->errmsg_len)
36378 < 0)
36379 return NB_ERR_INCONSISTENCY;
36380
36381 return NB_OK;
36382 }
36383
36384 /*
36385 * XPath:
36386 * /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
36387 */
36388 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_add_paths_path_type_modify(
36389 struct nb_cb_modify_args *args)
36390 {
36391 switch (args->event) {
36392 case NB_EV_VALIDATE:
36393 case NB_EV_PREPARE:
36394 case NB_EV_ABORT:
36395 case NB_EV_APPLY:
36396 /* TODO: implement me. */
36397 break;
36398 }
36399
36400 return NB_OK;
36401 }
36402
36403 /*
36404 * XPath:
36405 * /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
36406 */
36407 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_modify(
36408 struct nb_cb_modify_args *args)
36409 {
36410 switch (args->event) {
36411 case NB_EV_VALIDATE:
36412 case NB_EV_PREPARE:
36413 case NB_EV_ABORT:
36414 case NB_EV_APPLY:
36415 /* TODO: implement me. */
36416 break;
36417 }
36418
36419 return NB_OK;
36420 }
36421
36422 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_as_destroy(
36423 struct nb_cb_destroy_args *args)
36424 {
36425 switch (args->event) {
36426 case NB_EV_VALIDATE:
36427 case NB_EV_PREPARE:
36428 case NB_EV_ABORT:
36429 case NB_EV_APPLY:
36430 /* TODO: implement me. */
36431 break;
36432 }
36433
36434 return NB_OK;
36435 }
36436
36437 /*
36438 * XPath:
36439 * /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
36440 */
36441 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
36442 struct nb_cb_modify_args *args)
36443 {
36444 switch (args->event) {
36445 case NB_EV_VALIDATE:
36446 case NB_EV_PREPARE:
36447 case NB_EV_ABORT:
36448 case NB_EV_APPLY:
36449 /* TODO: implement me. */
36450 break;
36451 }
36452
36453 return NB_OK;
36454 }
36455
36456 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
36457 struct nb_cb_destroy_args *args)
36458 {
36459 switch (args->event) {
36460 case NB_EV_VALIDATE:
36461 case NB_EV_PREPARE:
36462 case NB_EV_ABORT:
36463 case NB_EV_APPLY:
36464 /* TODO: implement me. */
36465 break;
36466 }
36467
36468 return NB_OK;
36469 }
36470
36471 /*
36472 * XPath:
36473 * /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
36474 */
36475 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_as_path_options_replace_peer_as_modify(
36476 struct nb_cb_modify_args *args)
36477 {
36478 switch (args->event) {
36479 case NB_EV_VALIDATE:
36480 case NB_EV_PREPARE:
36481 case NB_EV_ABORT:
36482 return NB_OK;
36483 case NB_EV_APPLY:
36484 return bgp_peer_group_afi_safi_flag_modify(
36485 args, PEER_FLAG_AS_OVERRIDE,
36486 yang_dnode_get_bool(args->dnode, NULL));
36487
36488 break;
36489 }
36490
36491 return NB_OK;
36492 }
36493
36494 /*
36495 * XPath:
36496 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/neighbors/unnumbered-neighbor/afi-safis/afi-safi/ipv4-unicast/default-originate
36497 */
36498 void bgp_peer_group_afi_safi_default_originate_apply_finish(
36499 struct nb_cb_apply_finish_args *args)
36500 {
36501 struct bgp *bgp;
36502 const char *peer_str;
36503 struct peer *peer;
36504 const struct lyd_node *nbr_dnode;
36505 const struct lyd_node *nbr_af_dnode;
36506 const char *af_name;
36507 afi_t afi;
36508 safi_t safi;
36509
36510 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
36511 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
36512 yang_afi_safi_identity2value(af_name, &afi, &safi);
36513
36514 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
36515 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
36516 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
36517 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
36518 if (!peer)
36519 return;
36520
36521 bgp_peer_afi_safi_default_originate_apply(args, peer, afi, safi);
36522 }
36523
36524 /*
36525 * XPath:
36526 * /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
36527 */
36528 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_default_originate_originate_modify(
36529 struct nb_cb_modify_args *args)
36530 {
36531 switch (args->event) {
36532 case NB_EV_VALIDATE:
36533 case NB_EV_PREPARE:
36534 case NB_EV_ABORT:
36535 case NB_EV_APPLY:
36536 /* TODO: implement me. */
36537 break;
36538 }
36539
36540 return NB_OK;
36541 }
36542
36543 /*
36544 * XPath:
36545 * /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
36546 */
36547 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_modify(
36548 struct nb_cb_modify_args *args)
36549 {
36550 switch (args->event) {
36551 case NB_EV_VALIDATE:
36552 case NB_EV_PREPARE:
36553 case NB_EV_ABORT:
36554 case NB_EV_APPLY:
36555 /* TODO: implement me. */
36556 break;
36557 }
36558
36559 return NB_OK;
36560 }
36561
36562 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_default_originate_route_map_destroy(
36563 struct nb_cb_destroy_args *args)
36564 {
36565 switch (args->event) {
36566 case NB_EV_VALIDATE:
36567 case NB_EV_PREPARE:
36568 case NB_EV_ABORT:
36569 case NB_EV_APPLY:
36570 /* TODO: implement me. */
36571 break;
36572 }
36573
36574 return NB_OK;
36575 }
36576
36577 static int bgp_peer_group_afi_safi_prefix_limit_list_destroy(
36578 struct nb_cb_destroy_args *args)
36579 {
36580 struct bgp *bgp;
36581 const char *peer_str;
36582 struct peer *peer;
36583 const struct lyd_node *nbr_dnode;
36584 const struct lyd_node *nbr_af_dnode;
36585 const char *af_name;
36586 afi_t afi;
36587 safi_t safi;
36588 int direction;
36589
36590 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
36591 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
36592 yang_afi_safi_identity2value(af_name, &afi, &safi);
36593
36594 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
36595 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
36596 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
36597 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
36598 if (!peer)
36599 return NB_ERR_INCONSISTENCY;
36600
36601 direction = yang_dnode_get_enum(args->dnode, "./direction");
36602
36603 switch (direction) {
36604 case 1:
36605 peer_maximum_prefix_unset(peer, afi, safi);
36606 break;
36607 case 2:
36608 UNSET_FLAG(peer->af_flags[afi][safi], PEER_FLAG_MAX_PREFIX_OUT);
36609 peer->pmax_out[afi][safi] = 0;
36610 break;
36611 }
36612
36613 return NB_OK;
36614 }
36615 /*
36616 * XPath:
36617 * /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
36618 */
36619 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_create(
36620 struct nb_cb_create_args *args)
36621 {
36622 switch (args->event) {
36623 case NB_EV_VALIDATE:
36624 case NB_EV_PREPARE:
36625 case NB_EV_ABORT:
36626 case NB_EV_APPLY:
36627 /* TODO: implement me. */
36628 break;
36629 }
36630
36631 return NB_OK;
36632 }
36633
36634 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_destroy(
36635 struct nb_cb_destroy_args *args)
36636 {
36637 switch (args->event) {
36638 case NB_EV_VALIDATE:
36639 case NB_EV_PREPARE:
36640 case NB_EV_ABORT:
36641 return NB_OK;
36642 case NB_EV_APPLY:
36643 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
36644 }
36645
36646 return NB_OK;
36647 }
36648
36649 void bgp_peer_group_afi_safi_prefix_limit_apply_finish(
36650 struct nb_cb_apply_finish_args *args)
36651 {
36652 struct bgp *bgp;
36653 const char *peer_str;
36654 struct peer *peer;
36655 const struct lyd_node *nbr_dnode;
36656 const struct lyd_node *nbr_af_dnode;
36657 const char *af_name;
36658 afi_t afi;
36659 safi_t safi;
36660
36661 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
36662 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
36663 yang_afi_safi_identity2value(af_name, &afi, &safi);
36664
36665 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
36666 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
36667 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
36668 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
36669 if (!peer)
36670 return;
36671
36672 bgp_peer_afi_safi_maximum_prefix_set(args, peer, afi, safi);
36673 }
36674 /*
36675 * XPath:
36676 * /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
36677 */
36678 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
36679 struct nb_cb_modify_args *args)
36680 {
36681 switch (args->event) {
36682 case NB_EV_VALIDATE:
36683 case NB_EV_PREPARE:
36684 case NB_EV_ABORT:
36685 case NB_EV_APPLY:
36686 /* TODO: implement me. */
36687 break;
36688 }
36689
36690 return NB_OK;
36691 }
36692
36693 /*
36694 * XPath:
36695 * /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
36696 */
36697 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
36698 struct nb_cb_modify_args *args)
36699 {
36700 switch (args->event) {
36701 case NB_EV_VALIDATE:
36702 case NB_EV_PREPARE:
36703 case NB_EV_ABORT:
36704 case NB_EV_APPLY:
36705 /* TODO: implement me. */
36706 break;
36707 }
36708
36709 return NB_OK;
36710 }
36711
36712 /*
36713 * XPath:
36714 * /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
36715 */
36716 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
36717 struct nb_cb_modify_args *args)
36718 {
36719 switch (args->event) {
36720 case NB_EV_VALIDATE:
36721 case NB_EV_PREPARE:
36722 case NB_EV_ABORT:
36723 case NB_EV_APPLY:
36724 /* TODO: implement me. */
36725 break;
36726 }
36727
36728 return NB_OK;
36729 }
36730
36731 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
36732 struct nb_cb_destroy_args *args)
36733 {
36734 switch (args->event) {
36735 case NB_EV_VALIDATE:
36736 case NB_EV_PREPARE:
36737 case NB_EV_ABORT:
36738 case NB_EV_APPLY:
36739 /* TODO: implement me. */
36740 break;
36741 }
36742
36743 return NB_OK;
36744 }
36745
36746 /*
36747 * XPath:
36748 * /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
36749 */
36750 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
36751 struct nb_cb_modify_args *args)
36752 {
36753 switch (args->event) {
36754 case NB_EV_VALIDATE:
36755 case NB_EV_PREPARE:
36756 case NB_EV_ABORT:
36757 case NB_EV_APPLY:
36758 /* TODO: implement me. */
36759 break;
36760 }
36761
36762 return NB_OK;
36763 }
36764
36765 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
36766 struct nb_cb_destroy_args *args)
36767 {
36768 switch (args->event) {
36769 case NB_EV_VALIDATE:
36770 case NB_EV_PREPARE:
36771 case NB_EV_ABORT:
36772 case NB_EV_APPLY:
36773 /* TODO: implement me. */
36774 break;
36775 }
36776
36777 return NB_OK;
36778 }
36779
36780 /*
36781 * XPath:
36782 * /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
36783 */
36784 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
36785 struct nb_cb_modify_args *args)
36786 {
36787 switch (args->event) {
36788 case NB_EV_VALIDATE:
36789 case NB_EV_PREPARE:
36790 case NB_EV_ABORT:
36791 case NB_EV_APPLY:
36792 /* TODO: implement me. */
36793 break;
36794 }
36795
36796 return NB_OK;
36797 }
36798
36799 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
36800 struct nb_cb_destroy_args *args)
36801 {
36802 switch (args->event) {
36803 case NB_EV_VALIDATE:
36804 case NB_EV_PREPARE:
36805 case NB_EV_ABORT:
36806 case NB_EV_APPLY:
36807 /* TODO: implement me. */
36808 break;
36809 }
36810
36811 return NB_OK;
36812 }
36813
36814 /*
36815 * XPath:
36816 * /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
36817 */
36818 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
36819 struct nb_cb_modify_args *args)
36820 {
36821 switch (args->event) {
36822 case NB_EV_VALIDATE:
36823 case NB_EV_PREPARE:
36824 case NB_EV_ABORT:
36825 case NB_EV_APPLY:
36826 /* TODO: implement me. */
36827 break;
36828 }
36829
36830 return NB_OK;
36831 }
36832
36833 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
36834 struct nb_cb_destroy_args *args)
36835 {
36836 switch (args->event) {
36837 case NB_EV_VALIDATE:
36838 case NB_EV_PREPARE:
36839 case NB_EV_ABORT:
36840 case NB_EV_APPLY:
36841 /* TODO: implement me. */
36842 break;
36843 }
36844
36845 return NB_OK;
36846 }
36847
36848 /*
36849 * XPath:
36850 * /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
36851 */
36852 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
36853 struct nb_cb_modify_args *args)
36854 {
36855 switch (args->event) {
36856 case NB_EV_VALIDATE:
36857 case NB_EV_PREPARE:
36858 case NB_EV_ABORT:
36859 case NB_EV_APPLY:
36860 /* TODO: implement me. */
36861 break;
36862 }
36863
36864 return NB_OK;
36865 }
36866
36867 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
36868 struct nb_cb_destroy_args *args)
36869 {
36870 switch (args->event) {
36871 case NB_EV_VALIDATE:
36872 case NB_EV_PREPARE:
36873 case NB_EV_ABORT:
36874 case NB_EV_APPLY:
36875 /* TODO: implement me. */
36876 break;
36877 }
36878
36879 return NB_OK;
36880 }
36881
36882 /*
36883 * XPath:
36884 * /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
36885 */
36886 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
36887 struct nb_cb_modify_args *args)
36888 {
36889 switch (args->event) {
36890 case NB_EV_VALIDATE:
36891 case NB_EV_PREPARE:
36892 case NB_EV_ABORT:
36893 case NB_EV_APPLY:
36894 /* TODO: implement me. */
36895 break;
36896 }
36897
36898 return NB_OK;
36899 }
36900
36901 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
36902 struct nb_cb_destroy_args *args)
36903 {
36904 switch (args->event) {
36905 case NB_EV_VALIDATE:
36906 case NB_EV_PREPARE:
36907 case NB_EV_ABORT:
36908 case NB_EV_APPLY:
36909 /* TODO: implement me. */
36910 break;
36911 }
36912
36913 return NB_OK;
36914 }
36915
36916 /*
36917 * XPath:
36918 * /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
36919 */
36920 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
36921 struct nb_cb_modify_args *args)
36922 {
36923 switch (args->event) {
36924 case NB_EV_VALIDATE:
36925 case NB_EV_PREPARE:
36926 case NB_EV_ABORT:
36927 case NB_EV_APPLY:
36928 /* TODO: implement me. */
36929 break;
36930 }
36931
36932 return NB_OK;
36933 }
36934
36935 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
36936 struct nb_cb_destroy_args *args)
36937 {
36938 switch (args->event) {
36939 case NB_EV_VALIDATE:
36940 case NB_EV_PREPARE:
36941 case NB_EV_ABORT:
36942 case NB_EV_APPLY:
36943 /* TODO: implement me. */
36944 break;
36945 }
36946
36947 return NB_OK;
36948 }
36949
36950 /*
36951 * XPath:
36952 * /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
36953 */
36954 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_modify(
36955 struct nb_cb_modify_args *args)
36956 {
36957 switch (args->event) {
36958 case NB_EV_VALIDATE:
36959 case NB_EV_PREPARE:
36960 case NB_EV_ABORT:
36961 return NB_OK;
36962 case NB_EV_APPLY:
36963 return bgp_peer_group_afi_safi_flag_modify(
36964 args, PEER_FLAG_NEXTHOP_SELF,
36965 yang_dnode_get_bool(args->dnode, NULL));
36966
36967 break;
36968 }
36969
36970 return NB_OK;
36971 }
36972
36973 /*
36974 * XPath:
36975 * /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
36976 */
36977 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
36978 struct nb_cb_modify_args *args)
36979 {
36980 switch (args->event) {
36981 case NB_EV_VALIDATE:
36982 case NB_EV_PREPARE:
36983 case NB_EV_ABORT:
36984 return NB_OK;
36985 case NB_EV_APPLY:
36986 return bgp_peer_group_afi_safi_flag_modify(
36987 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
36988 yang_dnode_get_bool(args->dnode, NULL));
36989
36990 break;
36991 }
36992
36993 return NB_OK;
36994 }
36995
36996 /*
36997 * XPath:
36998 * /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
36999 */
37000 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_modify(
37001 struct nb_cb_modify_args *args)
37002 {
37003 switch (args->event) {
37004 case NB_EV_VALIDATE:
37005 case NB_EV_PREPARE:
37006 case NB_EV_ABORT:
37007 return NB_OK;
37008 case NB_EV_APPLY:
37009 return bgp_peer_group_afi_safi_flag_modify(
37010 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
37011 yang_dnode_get_bool(args->dnode, NULL));
37012
37013 break;
37014 }
37015
37016 return NB_OK;
37017 }
37018
37019 /*
37020 * XPath:
37021 * /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
37022 */
37023 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
37024 struct nb_cb_modify_args *args)
37025 {
37026 switch (args->event) {
37027 case NB_EV_VALIDATE:
37028 case NB_EV_PREPARE:
37029 case NB_EV_ABORT:
37030 return NB_OK;
37031 case NB_EV_APPLY:
37032 return bgp_peer_group_afi_safi_flag_modify(
37033 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
37034 yang_dnode_get_bool(args->dnode, NULL));
37035
37036 break;
37037 }
37038
37039 return NB_OK;
37040 }
37041
37042 /*
37043 * XPath:
37044 * /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
37045 */
37046 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_modify(
37047 struct nb_cb_modify_args *args)
37048 {
37049 switch (args->event) {
37050 case NB_EV_VALIDATE:
37051 case NB_EV_PREPARE:
37052 case NB_EV_ABORT:
37053 return NB_OK;
37054 case NB_EV_APPLY:
37055 return bgp_peer_group_afi_safi_flag_modify(
37056 args, PEER_FLAG_REMOVE_PRIVATE_AS,
37057 yang_dnode_get_bool(args->dnode, NULL));
37058
37059 break;
37060 }
37061
37062 return NB_OK;
37063 }
37064
37065 /*
37066 * XPath:
37067 * /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
37068 */
37069 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_private_as_remove_private_as_replace_modify(
37070 struct nb_cb_modify_args *args)
37071 {
37072 switch (args->event) {
37073 case NB_EV_VALIDATE:
37074 case NB_EV_PREPARE:
37075 case NB_EV_ABORT:
37076 return NB_OK;
37077 case NB_EV_APPLY:
37078 return bgp_peer_group_afi_safi_flag_modify(
37079 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
37080 yang_dnode_get_bool(args->dnode, NULL));
37081
37082 break;
37083 }
37084
37085 return NB_OK;
37086 }
37087
37088 static int bgp_peer_group_afi_safi_weight_modify(struct nb_cb_modify_args *args)
37089 {
37090 struct bgp *bgp;
37091 const char *peer_str;
37092 struct peer *peer;
37093 const struct lyd_node *nbr_dnode;
37094 const struct lyd_node *nbr_af_dnode;
37095 const char *af_name;
37096 uint16_t weight;
37097 afi_t afi;
37098 safi_t safi;
37099 int ret;
37100
37101 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37102 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37103 yang_afi_safi_identity2value(af_name, &afi, &safi);
37104
37105 nbr_dnode = yang_dnode_get_parent(args->dnode, "peer-group");
37106 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37107 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37108 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37109
37110 weight = yang_dnode_get_uint16(args->dnode, NULL);
37111
37112 ret = peer_weight_set(peer, afi, safi, weight);
37113 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
37114 return NB_ERR_INCONSISTENCY;
37115
37116 return NB_OK;
37117 }
37118
37119 static int
37120 bgp_peer_group_afi_safi_weight_destroy(struct nb_cb_destroy_args *args)
37121 {
37122 struct bgp *bgp;
37123 const char *peer_str;
37124 struct peer *peer;
37125 const struct lyd_node *nbr_dnode;
37126 const struct lyd_node *nbr_af_dnode;
37127 const char *af_name;
37128 afi_t afi;
37129 safi_t safi;
37130 int ret;
37131
37132 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37133 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37134 yang_afi_safi_identity2value(af_name, &afi, &safi);
37135 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
37136 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37137 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37138 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37139
37140 ret = peer_weight_unset(peer, afi, safi);
37141 if (bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret) < 0)
37142 return NB_ERR_INCONSISTENCY;
37143
37144 return NB_OK;
37145 }
37146
37147 /*
37148 * XPath:
37149 * /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
37150 */
37151 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_modify(
37152 struct nb_cb_modify_args *args)
37153 {
37154 switch (args->event) {
37155 case NB_EV_VALIDATE:
37156 case NB_EV_PREPARE:
37157 case NB_EV_ABORT:
37158 return NB_OK;
37159 case NB_EV_APPLY:
37160 return bgp_peer_group_afi_safi_weight_modify(args);
37161
37162 break;
37163 }
37164
37165 return NB_OK;
37166 }
37167
37168 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_weight_weight_attribute_destroy(
37169 struct nb_cb_destroy_args *args)
37170 {
37171 switch (args->event) {
37172 case NB_EV_VALIDATE:
37173 case NB_EV_PREPARE:
37174 case NB_EV_ABORT:
37175 return NB_OK;
37176 case NB_EV_APPLY:
37177 return bgp_peer_group_afi_safi_weight_destroy(args);
37178
37179 break;
37180 }
37181
37182 return NB_OK;
37183 }
37184
37185 /*
37186 * XPath:
37187 * /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
37188 */
37189 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_route_reflector_route_reflector_client_modify(
37190 struct nb_cb_modify_args *args)
37191 {
37192 switch (args->event) {
37193 case NB_EV_VALIDATE:
37194 case NB_EV_PREPARE:
37195 case NB_EV_ABORT:
37196 return NB_OK;
37197 case NB_EV_APPLY:
37198 return bgp_peer_group_afi_safi_flag_modify(
37199 args, PEER_FLAG_REFLECTOR_CLIENT,
37200 yang_dnode_get_bool(args->dnode, NULL));
37201
37202 break;
37203 }
37204
37205 return NB_OK;
37206 }
37207
37208 /*
37209 * XPath:
37210 * /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
37211 */
37212 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_route_server_route_server_client_modify(
37213 struct nb_cb_modify_args *args)
37214 {
37215 switch (args->event) {
37216 case NB_EV_VALIDATE:
37217 case NB_EV_PREPARE:
37218 case NB_EV_ABORT:
37219 return NB_OK;
37220 case NB_EV_APPLY:
37221 return bgp_peer_group_afi_safi_flag_modify(
37222 args, PEER_FLAG_RSERVER_CLIENT,
37223 yang_dnode_get_bool(args->dnode, NULL));
37224
37225 break;
37226 }
37227
37228 return NB_OK;
37229 }
37230
37231 /*
37232 * XPath:
37233 * /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
37234 */
37235 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_send_community_send_community_modify(
37236 struct nb_cb_modify_args *args)
37237 {
37238 switch (args->event) {
37239 case NB_EV_VALIDATE:
37240 case NB_EV_PREPARE:
37241 case NB_EV_ABORT:
37242 return NB_OK;
37243 case NB_EV_APPLY:
37244 return bgp_peer_group_afi_safi_flag_modify(
37245 args, PEER_FLAG_SEND_COMMUNITY,
37246 yang_dnode_get_bool(args->dnode, NULL));
37247
37248 break;
37249 }
37250
37251 return NB_OK;
37252 }
37253
37254 /*
37255 * XPath:
37256 * /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
37257 */
37258 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_send_community_send_ext_community_modify(
37259 struct nb_cb_modify_args *args)
37260 {
37261 switch (args->event) {
37262 case NB_EV_VALIDATE:
37263 case NB_EV_PREPARE:
37264 case NB_EV_ABORT:
37265 return NB_OK;
37266 case NB_EV_APPLY:
37267 return bgp_peer_group_afi_safi_flag_modify(
37268 args, PEER_FLAG_SEND_EXT_COMMUNITY,
37269 yang_dnode_get_bool(args->dnode, NULL));
37270
37271 break;
37272 }
37273
37274 return NB_OK;
37275 }
37276
37277 /*
37278 * XPath:
37279 * /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
37280 */
37281 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_send_community_send_large_community_modify(
37282 struct nb_cb_modify_args *args)
37283 {
37284 switch (args->event) {
37285 case NB_EV_VALIDATE:
37286 case NB_EV_PREPARE:
37287 case NB_EV_ABORT:
37288 return NB_OK;
37289 case NB_EV_APPLY:
37290 return bgp_peer_group_afi_safi_flag_modify(
37291 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
37292 yang_dnode_get_bool(args->dnode, NULL));
37293
37294 break;
37295 }
37296
37297 return NB_OK;
37298 }
37299
37300 /*
37301 * XPath:
37302 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-unicast/soft-reconfiguration
37303 */
37304 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_soft_reconfiguration_modify(
37305 struct nb_cb_modify_args *args)
37306 {
37307 switch (args->event) {
37308 case NB_EV_VALIDATE:
37309 case NB_EV_PREPARE:
37310 case NB_EV_ABORT:
37311 return NB_OK;
37312 case NB_EV_APPLY:
37313 return bgp_peer_group_afi_safi_flag_modify(
37314 args, PEER_FLAG_SOFT_RECONFIG,
37315 yang_dnode_get_bool(args->dnode, NULL));
37316
37317 break;
37318 }
37319
37320 return NB_OK;
37321 }
37322
37323 /*
37324 * XPath:
37325 * /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
37326 */
37327 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
37328 struct nb_cb_modify_args *args)
37329 {
37330 switch (args->event) {
37331 case NB_EV_VALIDATE:
37332 case NB_EV_PREPARE:
37333 case NB_EV_ABORT:
37334 return NB_OK;
37335 case NB_EV_APPLY:
37336 return bgp_peer_group_afi_safi_flag_modify(
37337 args, PEER_FLAG_AS_PATH_UNCHANGED,
37338 yang_dnode_get_bool(args->dnode, NULL));
37339
37340 break;
37341 }
37342
37343 return NB_OK;
37344 }
37345
37346 /*
37347 * XPath:
37348 * /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
37349 */
37350 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
37351 struct nb_cb_modify_args *args)
37352 {
37353 switch (args->event) {
37354 case NB_EV_VALIDATE:
37355 case NB_EV_PREPARE:
37356 case NB_EV_ABORT:
37357 return NB_OK;
37358 case NB_EV_APPLY:
37359 return bgp_peer_group_afi_safi_flag_modify(
37360 args, PEER_FLAG_NEXTHOP_UNCHANGED,
37361 yang_dnode_get_bool(args->dnode, NULL));
37362
37363 break;
37364 }
37365
37366 return NB_OK;
37367 }
37368
37369 /*
37370 * XPath:
37371 * /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
37372 */
37373 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_attr_unchanged_med_unchanged_modify(
37374 struct nb_cb_modify_args *args)
37375 {
37376 switch (args->event) {
37377 case NB_EV_VALIDATE:
37378 case NB_EV_PREPARE:
37379 case NB_EV_ABORT:
37380 return NB_OK;
37381 case NB_EV_APPLY:
37382 return bgp_peer_group_afi_safi_flag_modify(
37383 args, PEER_FLAG_MED_UNCHANGED,
37384 yang_dnode_get_bool(args->dnode, NULL));
37385
37386 break;
37387 }
37388
37389 return NB_OK;
37390 }
37391
37392 /*
37393 * XPath:
37394 * /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
37395 */
37396 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_modify(
37397 struct nb_cb_modify_args *args)
37398 {
37399 switch (args->event) {
37400 case NB_EV_VALIDATE:
37401 case NB_EV_PREPARE:
37402 case NB_EV_ABORT:
37403 case NB_EV_APPLY:
37404 /* TODO: implement me. */
37405 break;
37406 }
37407
37408 return NB_OK;
37409 }
37410
37411 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_send_destroy(
37412 struct nb_cb_destroy_args *args)
37413 {
37414 switch (args->event) {
37415 case NB_EV_VALIDATE:
37416 case NB_EV_PREPARE:
37417 case NB_EV_ABORT:
37418 case NB_EV_APPLY:
37419 /* TODO: implement me. */
37420 break;
37421 }
37422
37423 return NB_OK;
37424 }
37425
37426 /*
37427 * XPath:
37428 * /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
37429 */
37430 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_modify(
37431 struct nb_cb_modify_args *args)
37432 {
37433 switch (args->event) {
37434 case NB_EV_VALIDATE:
37435 case NB_EV_PREPARE:
37436 case NB_EV_ABORT:
37437 case NB_EV_APPLY:
37438 /* TODO: implement me. */
37439 break;
37440 }
37441
37442 return NB_OK;
37443 }
37444
37445 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_receive_destroy(
37446 struct nb_cb_destroy_args *args)
37447 {
37448 switch (args->event) {
37449 case NB_EV_VALIDATE:
37450 case NB_EV_PREPARE:
37451 case NB_EV_ABORT:
37452 case NB_EV_APPLY:
37453 /* TODO: implement me. */
37454 break;
37455 }
37456
37457 return NB_OK;
37458 }
37459
37460 /*
37461 * XPath:
37462 * /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
37463 */
37464 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_modify(
37465 struct nb_cb_modify_args *args)
37466 {
37467 switch (args->event) {
37468 case NB_EV_VALIDATE:
37469 case NB_EV_PREPARE:
37470 case NB_EV_ABORT:
37471 case NB_EV_APPLY:
37472 /* TODO: implement me. */
37473 break;
37474 }
37475
37476 return NB_OK;
37477 }
37478
37479 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_orf_capability_orf_both_destroy(
37480 struct nb_cb_destroy_args *args)
37481 {
37482 switch (args->event) {
37483 case NB_EV_VALIDATE:
37484 case NB_EV_PREPARE:
37485 case NB_EV_ABORT:
37486 case NB_EV_APPLY:
37487 /* TODO: implement me. */
37488 break;
37489 }
37490
37491 return NB_OK;
37492 }
37493
37494 static int bgp_peer_group_afi_safi_rmap_modify(struct nb_cb_modify_args *args,
37495 int direct)
37496 {
37497 struct bgp *bgp;
37498 const char *peer_str;
37499 struct peer *peer;
37500 const struct lyd_node *nbr_dnode;
37501 const struct lyd_node *nbr_af_dnode;
37502 const char *af_name;
37503 afi_t afi;
37504 safi_t safi;
37505 const char *name_str;
37506 struct route_map *route_map;
37507 int ret;
37508
37509 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37510 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37511 yang_afi_safi_identity2value(af_name, &afi, &safi);
37512 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
37513 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37514 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37515 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37516
37517 name_str = yang_dnode_get_string(args->dnode, NULL);
37518 route_map = route_map_lookup_by_name(name_str);
37519 ret = peer_route_map_set(peer, afi, safi, direct, name_str, route_map);
37520
37521 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
37522 }
37523
37524 static int bgp_peer_group_afi_safi_rmap_destroy(struct nb_cb_destroy_args *args,
37525 int direct)
37526 {
37527 struct bgp *bgp;
37528 const char *peer_str;
37529 struct peer *peer;
37530 const struct lyd_node *nbr_dnode;
37531 const struct lyd_node *nbr_af_dnode;
37532 const char *af_name;
37533 afi_t afi;
37534 safi_t safi;
37535 int ret;
37536
37537 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37538 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37539 yang_afi_safi_identity2value(af_name, &afi, &safi);
37540 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
37541 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37542 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37543 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37544
37545 ret = peer_route_map_unset(peer, afi, safi, direct);
37546
37547 return bgp_nb_errmsg_return(args->errmsg, args->errmsg_len, ret);
37548 }
37549
37550 /*
37551 * XPath:
37552 * /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
37553 */
37554 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_modify(
37555 struct nb_cb_modify_args *args)
37556 {
37557 switch (args->event) {
37558 case NB_EV_VALIDATE:
37559 case NB_EV_PREPARE:
37560 case NB_EV_ABORT:
37561 break;
37562 case NB_EV_APPLY:
37563 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
37564 }
37565
37566 return NB_OK;
37567 }
37568
37569 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_import_destroy(
37570 struct nb_cb_destroy_args *args)
37571 {
37572 switch (args->event) {
37573 case NB_EV_VALIDATE:
37574 case NB_EV_PREPARE:
37575 case NB_EV_ABORT:
37576 break;
37577 case NB_EV_APPLY:
37578 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
37579 }
37580
37581 return NB_OK;
37582 }
37583
37584 /*
37585 * XPath:
37586 * /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
37587 */
37588 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_modify(
37589 struct nb_cb_modify_args *args)
37590 {
37591 switch (args->event) {
37592 case NB_EV_VALIDATE:
37593 case NB_EV_PREPARE:
37594 case NB_EV_ABORT:
37595 break;
37596 case NB_EV_APPLY:
37597 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
37598 }
37599
37600 return NB_OK;
37601 }
37602
37603 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_rmap_export_destroy(
37604 struct nb_cb_destroy_args *args)
37605 {
37606 switch (args->event) {
37607 case NB_EV_VALIDATE:
37608 case NB_EV_PREPARE:
37609 case NB_EV_ABORT:
37610 break;
37611 case NB_EV_APPLY:
37612 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
37613 }
37614
37615 return NB_OK;
37616 }
37617
37618 static int bgp_peer_group_afi_safi_plist_modify(struct nb_cb_modify_args *args,
37619 int direct)
37620 {
37621 struct bgp *bgp;
37622 const char *peer_str;
37623 struct peer *peer;
37624 const struct lyd_node *nbr_dnode;
37625 const struct lyd_node *nbr_af_dnode;
37626 const char *af_name;
37627 afi_t afi;
37628 safi_t safi;
37629 const char *name_str;
37630
37631 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37632 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37633 yang_afi_safi_identity2value(af_name, &afi, &safi);
37634 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
37635 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37636 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37637 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37638
37639 name_str = yang_dnode_get_string(args->dnode, NULL);
37640 if (peer_prefix_list_set(peer, afi, safi, direct, name_str) < 0)
37641 return NB_ERR_INCONSISTENCY;
37642
37643 return NB_OK;
37644 }
37645
37646 static int
37647 bgp_peer_group_afi_safi_plist_destroy(struct nb_cb_destroy_args *args,
37648 int direct)
37649 {
37650 struct bgp *bgp;
37651 const char *peer_str;
37652 struct peer *peer;
37653 const struct lyd_node *nbr_dnode;
37654 const struct lyd_node *nbr_af_dnode;
37655 const char *af_name;
37656 afi_t afi;
37657 safi_t safi;
37658
37659 nbr_af_dnode = yang_dnode_get_parent(args->dnode, "afi-safi");
37660 af_name = yang_dnode_get_string(nbr_af_dnode, "./afi-safi-name");
37661 yang_afi_safi_identity2value(af_name, &afi, &safi);
37662 nbr_dnode = yang_dnode_get_parent(nbr_af_dnode, "peer-group");
37663 bgp = nb_running_get_entry(nbr_dnode, NULL, true);
37664 peer_str = yang_dnode_get_string(nbr_dnode, "./peer-group-name");
37665 peer = bgp_peer_group_peer_lookup(bgp, peer_str);
37666
37667 if (peer_prefix_list_unset(peer, afi, safi, direct) < 0)
37668 return NB_ERR_INCONSISTENCY;
37669
37670 return NB_OK;
37671 }
37672
37673 /*
37674 * XPath:
37675 * /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
37676 */
37677 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_modify(
37678 struct nb_cb_modify_args *args)
37679 {
37680 switch (args->event) {
37681 case NB_EV_VALIDATE:
37682 case NB_EV_PREPARE:
37683 case NB_EV_ABORT:
37684 break;
37685 case NB_EV_APPLY:
37686 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
37687 }
37688
37689 return NB_OK;
37690 }
37691
37692 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_import_destroy(
37693 struct nb_cb_destroy_args *args)
37694 {
37695 switch (args->event) {
37696 case NB_EV_VALIDATE:
37697 case NB_EV_PREPARE:
37698 case NB_EV_ABORT:
37699 break;
37700 case NB_EV_APPLY:
37701 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
37702 }
37703
37704 return NB_OK;
37705 }
37706
37707 /*
37708 * XPath:
37709 * /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
37710 */
37711 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_modify(
37712 struct nb_cb_modify_args *args)
37713 {
37714 switch (args->event) {
37715 case NB_EV_VALIDATE:
37716 case NB_EV_PREPARE:
37717 case NB_EV_ABORT:
37718 break;
37719 case NB_EV_APPLY:
37720 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
37721 }
37722
37723 return NB_OK;
37724 }
37725
37726 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_plist_export_destroy(
37727 struct nb_cb_destroy_args *args)
37728 {
37729 switch (args->event) {
37730 case NB_EV_VALIDATE:
37731 case NB_EV_PREPARE:
37732 case NB_EV_ABORT:
37733 break;
37734 case NB_EV_APPLY:
37735 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
37736 }
37737
37738 return NB_OK;
37739 }
37740
37741 /*
37742 * XPath:
37743 * /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
37744 */
37745 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_modify(
37746 struct nb_cb_modify_args *args)
37747 {
37748 switch (args->event) {
37749 case NB_EV_VALIDATE:
37750 case NB_EV_PREPARE:
37751 case NB_EV_ABORT:
37752 case NB_EV_APPLY:
37753 /* TODO: implement me. */
37754 break;
37755 }
37756
37757 return NB_OK;
37758 }
37759
37760 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_import_destroy(
37761 struct nb_cb_destroy_args *args)
37762 {
37763 switch (args->event) {
37764 case NB_EV_VALIDATE:
37765 case NB_EV_PREPARE:
37766 case NB_EV_ABORT:
37767 case NB_EV_APPLY:
37768 /* TODO: implement me. */
37769 break;
37770 }
37771
37772 return NB_OK;
37773 }
37774
37775 /*
37776 * XPath:
37777 * /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
37778 */
37779 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_modify(
37780 struct nb_cb_modify_args *args)
37781 {
37782 switch (args->event) {
37783 case NB_EV_VALIDATE:
37784 case NB_EV_PREPARE:
37785 case NB_EV_ABORT:
37786 case NB_EV_APPLY:
37787 /* TODO: implement me. */
37788 break;
37789 }
37790
37791 return NB_OK;
37792 }
37793
37794 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_access_list_export_destroy(
37795 struct nb_cb_destroy_args *args)
37796 {
37797 switch (args->event) {
37798 case NB_EV_VALIDATE:
37799 case NB_EV_PREPARE:
37800 case NB_EV_ABORT:
37801 case NB_EV_APPLY:
37802 /* TODO: implement me. */
37803 break;
37804 }
37805
37806 return NB_OK;
37807 }
37808
37809 /*
37810 * XPath:
37811 * /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
37812 */
37813 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_modify(
37814 struct nb_cb_modify_args *args)
37815 {
37816 switch (args->event) {
37817 case NB_EV_VALIDATE:
37818 case NB_EV_PREPARE:
37819 case NB_EV_ABORT:
37820 case NB_EV_APPLY:
37821 /* TODO: implement me. */
37822 break;
37823 }
37824
37825 return NB_OK;
37826 }
37827
37828 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_import_destroy(
37829 struct nb_cb_destroy_args *args)
37830 {
37831 switch (args->event) {
37832 case NB_EV_VALIDATE:
37833 case NB_EV_PREPARE:
37834 case NB_EV_ABORT:
37835 case NB_EV_APPLY:
37836 /* TODO: implement me. */
37837 break;
37838 }
37839
37840 return NB_OK;
37841 }
37842
37843 /*
37844 * XPath:
37845 * /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
37846 */
37847 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_modify(
37848 struct nb_cb_modify_args *args)
37849 {
37850 switch (args->event) {
37851 case NB_EV_VALIDATE:
37852 case NB_EV_PREPARE:
37853 case NB_EV_ABORT:
37854 case NB_EV_APPLY:
37855 /* TODO: implement me. */
37856 break;
37857 }
37858
37859 return NB_OK;
37860 }
37861
37862 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_as_path_filter_list_export_destroy(
37863 struct nb_cb_destroy_args *args)
37864 {
37865 switch (args->event) {
37866 case NB_EV_VALIDATE:
37867 case NB_EV_PREPARE:
37868 case NB_EV_ABORT:
37869 case NB_EV_APPLY:
37870 /* TODO: implement me. */
37871 break;
37872 }
37873
37874 return NB_OK;
37875 }
37876
37877 /*
37878 * XPath:
37879 * /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
37880 */
37881 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_modify(
37882 struct nb_cb_modify_args *args)
37883 {
37884 switch (args->event) {
37885 case NB_EV_VALIDATE:
37886 case NB_EV_PREPARE:
37887 case NB_EV_ABORT:
37888 case NB_EV_APPLY:
37889 /* TODO: implement me. */
37890 break;
37891 }
37892
37893 return NB_OK;
37894 }
37895
37896 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_import_destroy(
37897 struct nb_cb_destroy_args *args)
37898 {
37899 switch (args->event) {
37900 case NB_EV_VALIDATE:
37901 case NB_EV_PREPARE:
37902 case NB_EV_ABORT:
37903 case NB_EV_APPLY:
37904 /* TODO: implement me. */
37905 break;
37906 }
37907
37908 return NB_OK;
37909 }
37910
37911 /*
37912 * XPath:
37913 * /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
37914 */
37915 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_modify(
37916 struct nb_cb_modify_args *args)
37917 {
37918 switch (args->event) {
37919 case NB_EV_VALIDATE:
37920 case NB_EV_PREPARE:
37921 case NB_EV_ABORT:
37922 case NB_EV_APPLY:
37923 /* TODO: implement me. */
37924 break;
37925 }
37926
37927 return NB_OK;
37928 }
37929
37930 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_unicast_filter_config_unsuppress_map_export_destroy(
37931 struct nb_cb_destroy_args *args)
37932 {
37933 switch (args->event) {
37934 case NB_EV_VALIDATE:
37935 case NB_EV_PREPARE:
37936 case NB_EV_ABORT:
37937 case NB_EV_APPLY:
37938 /* TODO: implement me. */
37939 break;
37940 }
37941
37942 return NB_OK;
37943 }
37944
37945 /*
37946 * XPath:
37947 * /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
37948 */
37949 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_nexthop_local_unchanged_modify(
37950 struct nb_cb_modify_args *args)
37951 {
37952 switch (args->event) {
37953 case NB_EV_VALIDATE:
37954 case NB_EV_PREPARE:
37955 case NB_EV_ABORT:
37956 case NB_EV_APPLY:
37957 /* TODO: implement me. */
37958 break;
37959 }
37960
37961 return NB_OK;
37962 }
37963
37964 /*
37965 * XPath:
37966 * /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
37967 */
37968 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_add_paths_path_type_modify(
37969 struct nb_cb_modify_args *args)
37970 {
37971 switch (args->event) {
37972 case NB_EV_VALIDATE:
37973 case NB_EV_PREPARE:
37974 case NB_EV_ABORT:
37975 case NB_EV_APPLY:
37976 /* TODO: implement me. */
37977 break;
37978 }
37979
37980 return NB_OK;
37981 }
37982
37983 /*
37984 * XPath:
37985 * /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
37986 */
37987 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_modify(
37988 struct nb_cb_modify_args *args)
37989 {
37990 switch (args->event) {
37991 case NB_EV_VALIDATE:
37992 case NB_EV_PREPARE:
37993 case NB_EV_ABORT:
37994 case NB_EV_APPLY:
37995 /* TODO: implement me. */
37996 break;
37997 }
37998
37999 return NB_OK;
38000 }
38001
38002 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_as_destroy(
38003 struct nb_cb_destroy_args *args)
38004 {
38005 switch (args->event) {
38006 case NB_EV_VALIDATE:
38007 case NB_EV_PREPARE:
38008 case NB_EV_ABORT:
38009 case NB_EV_APPLY:
38010 /* TODO: implement me. */
38011 break;
38012 }
38013
38014 return NB_OK;
38015 }
38016
38017 /*
38018 * XPath:
38019 * /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
38020 */
38021 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
38022 struct nb_cb_modify_args *args)
38023 {
38024 switch (args->event) {
38025 case NB_EV_VALIDATE:
38026 case NB_EV_PREPARE:
38027 case NB_EV_ABORT:
38028 case NB_EV_APPLY:
38029 /* TODO: implement me. */
38030 break;
38031 }
38032
38033 return NB_OK;
38034 }
38035
38036 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
38037 struct nb_cb_destroy_args *args)
38038 {
38039 switch (args->event) {
38040 case NB_EV_VALIDATE:
38041 case NB_EV_PREPARE:
38042 case NB_EV_ABORT:
38043 case NB_EV_APPLY:
38044 /* TODO: implement me. */
38045 break;
38046 }
38047
38048 return NB_OK;
38049 }
38050
38051 /*
38052 * XPath:
38053 * /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
38054 */
38055 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_as_path_options_replace_peer_as_modify(
38056 struct nb_cb_modify_args *args)
38057 {
38058 switch (args->event) {
38059 case NB_EV_VALIDATE:
38060 case NB_EV_PREPARE:
38061 case NB_EV_ABORT:
38062 return NB_OK;
38063 case NB_EV_APPLY:
38064 return bgp_peer_group_afi_safi_flag_modify(
38065 args, PEER_FLAG_AS_OVERRIDE,
38066 yang_dnode_get_bool(args->dnode, NULL));
38067
38068 break;
38069 }
38070
38071 return NB_OK;
38072 }
38073
38074 /*
38075 * XPath:
38076 * /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
38077 */
38078 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_default_originate_originate_modify(
38079 struct nb_cb_modify_args *args)
38080 {
38081 switch (args->event) {
38082 case NB_EV_VALIDATE:
38083 case NB_EV_PREPARE:
38084 case NB_EV_ABORT:
38085 case NB_EV_APPLY:
38086 /* TODO: implement me. */
38087 break;
38088 }
38089
38090 return NB_OK;
38091 }
38092
38093 /*
38094 * XPath:
38095 * /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
38096 */
38097 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_modify(
38098 struct nb_cb_modify_args *args)
38099 {
38100 switch (args->event) {
38101 case NB_EV_VALIDATE:
38102 case NB_EV_PREPARE:
38103 case NB_EV_ABORT:
38104 case NB_EV_APPLY:
38105 /* TODO: implement me. */
38106 break;
38107 }
38108
38109 return NB_OK;
38110 }
38111
38112 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_default_originate_route_map_destroy(
38113 struct nb_cb_destroy_args *args)
38114 {
38115 switch (args->event) {
38116 case NB_EV_VALIDATE:
38117 case NB_EV_PREPARE:
38118 case NB_EV_ABORT:
38119 case NB_EV_APPLY:
38120 /* TODO: implement me. */
38121 break;
38122 }
38123
38124 return NB_OK;
38125 }
38126
38127 /*
38128 * XPath:
38129 * /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
38130 */
38131 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
38132 struct nb_cb_modify_args *args)
38133 {
38134 switch (args->event) {
38135 case NB_EV_VALIDATE:
38136 case NB_EV_PREPARE:
38137 case NB_EV_ABORT:
38138 return NB_OK;
38139 case NB_EV_APPLY:
38140 return bgp_peer_group_afi_safi_flag_modify(
38141 args, PEER_FLAG_AS_PATH_UNCHANGED,
38142 yang_dnode_get_bool(args->dnode, NULL));
38143
38144 break;
38145 }
38146
38147 return NB_OK;
38148 }
38149
38150 /*
38151 * XPath:
38152 * /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
38153 */
38154 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
38155 struct nb_cb_modify_args *args)
38156 {
38157 switch (args->event) {
38158 case NB_EV_VALIDATE:
38159 case NB_EV_PREPARE:
38160 case NB_EV_ABORT:
38161 return NB_OK;
38162 case NB_EV_APPLY:
38163 return bgp_peer_group_afi_safi_flag_modify(
38164 args, PEER_FLAG_NEXTHOP_UNCHANGED,
38165 yang_dnode_get_bool(args->dnode, NULL));
38166
38167 break;
38168 }
38169
38170 return NB_OK;
38171 }
38172
38173 /*
38174 * XPath:
38175 * /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
38176 */
38177 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_attr_unchanged_med_unchanged_modify(
38178 struct nb_cb_modify_args *args)
38179 {
38180 switch (args->event) {
38181 case NB_EV_VALIDATE:
38182 case NB_EV_PREPARE:
38183 case NB_EV_ABORT:
38184 return NB_OK;
38185 case NB_EV_APPLY:
38186 return bgp_peer_group_afi_safi_flag_modify(
38187 args, PEER_FLAG_MED_UNCHANGED,
38188 yang_dnode_get_bool(args->dnode, NULL));
38189
38190 break;
38191 }
38192
38193 return NB_OK;
38194 }
38195
38196 /*
38197 * XPath:
38198 * /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
38199 */
38200 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_modify(
38201 struct nb_cb_modify_args *args)
38202 {
38203 switch (args->event) {
38204 case NB_EV_VALIDATE:
38205 case NB_EV_PREPARE:
38206 case NB_EV_ABORT:
38207 case NB_EV_APPLY:
38208 /* TODO: implement me. */
38209 break;
38210 }
38211
38212 return NB_OK;
38213 }
38214
38215 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_send_destroy(
38216 struct nb_cb_destroy_args *args)
38217 {
38218 switch (args->event) {
38219 case NB_EV_VALIDATE:
38220 case NB_EV_PREPARE:
38221 case NB_EV_ABORT:
38222 case NB_EV_APPLY:
38223 /* TODO: implement me. */
38224 break;
38225 }
38226
38227 return NB_OK;
38228 }
38229
38230 /*
38231 * XPath:
38232 * /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
38233 */
38234 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_modify(
38235 struct nb_cb_modify_args *args)
38236 {
38237 switch (args->event) {
38238 case NB_EV_VALIDATE:
38239 case NB_EV_PREPARE:
38240 case NB_EV_ABORT:
38241 case NB_EV_APPLY:
38242 /* TODO: implement me. */
38243 break;
38244 }
38245
38246 return NB_OK;
38247 }
38248
38249 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_receive_destroy(
38250 struct nb_cb_destroy_args *args)
38251 {
38252 switch (args->event) {
38253 case NB_EV_VALIDATE:
38254 case NB_EV_PREPARE:
38255 case NB_EV_ABORT:
38256 case NB_EV_APPLY:
38257 /* TODO: implement me. */
38258 break;
38259 }
38260
38261 return NB_OK;
38262 }
38263
38264 /*
38265 * XPath:
38266 * /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
38267 */
38268 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_modify(
38269 struct nb_cb_modify_args *args)
38270 {
38271 switch (args->event) {
38272 case NB_EV_VALIDATE:
38273 case NB_EV_PREPARE:
38274 case NB_EV_ABORT:
38275 case NB_EV_APPLY:
38276 /* TODO: implement me. */
38277 break;
38278 }
38279
38280 return NB_OK;
38281 }
38282
38283 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_orf_capability_orf_both_destroy(
38284 struct nb_cb_destroy_args *args)
38285 {
38286 switch (args->event) {
38287 case NB_EV_VALIDATE:
38288 case NB_EV_PREPARE:
38289 case NB_EV_ABORT:
38290 case NB_EV_APPLY:
38291 /* TODO: implement me. */
38292 break;
38293 }
38294
38295 return NB_OK;
38296 }
38297
38298 /*
38299 * XPath:
38300 * /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
38301 */
38302 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_create(
38303 struct nb_cb_create_args *args)
38304 {
38305 switch (args->event) {
38306 case NB_EV_VALIDATE:
38307 case NB_EV_PREPARE:
38308 case NB_EV_ABORT:
38309 case NB_EV_APPLY:
38310 /* TODO: implement me. */
38311 break;
38312 }
38313
38314 return NB_OK;
38315 }
38316
38317 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_destroy(
38318 struct nb_cb_destroy_args *args)
38319 {
38320 switch (args->event) {
38321 case NB_EV_VALIDATE:
38322 case NB_EV_PREPARE:
38323 case NB_EV_ABORT:
38324 return NB_OK;
38325 case NB_EV_APPLY:
38326 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
38327 }
38328
38329 return NB_OK;
38330 }
38331
38332 /*
38333 * XPath:
38334 * /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
38335 */
38336 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
38337 struct nb_cb_modify_args *args)
38338 {
38339 switch (args->event) {
38340 case NB_EV_VALIDATE:
38341 case NB_EV_PREPARE:
38342 case NB_EV_ABORT:
38343 case NB_EV_APPLY:
38344 /* TODO: implement me. */
38345 break;
38346 }
38347
38348 return NB_OK;
38349 }
38350
38351 /*
38352 * XPath:
38353 * /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
38354 */
38355 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
38356 struct nb_cb_modify_args *args)
38357 {
38358 switch (args->event) {
38359 case NB_EV_VALIDATE:
38360 case NB_EV_PREPARE:
38361 case NB_EV_ABORT:
38362 case NB_EV_APPLY:
38363 /* TODO: implement me. */
38364 break;
38365 }
38366
38367 return NB_OK;
38368 }
38369
38370 /*
38371 * XPath:
38372 * /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
38373 */
38374 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
38375 struct nb_cb_modify_args *args)
38376 {
38377 switch (args->event) {
38378 case NB_EV_VALIDATE:
38379 case NB_EV_PREPARE:
38380 case NB_EV_ABORT:
38381 case NB_EV_APPLY:
38382 /* TODO: implement me. */
38383 break;
38384 }
38385
38386 return NB_OK;
38387 }
38388
38389 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
38390 struct nb_cb_destroy_args *args)
38391 {
38392 switch (args->event) {
38393 case NB_EV_VALIDATE:
38394 case NB_EV_PREPARE:
38395 case NB_EV_ABORT:
38396 case NB_EV_APPLY:
38397 /* TODO: implement me. */
38398 break;
38399 }
38400
38401 return NB_OK;
38402 }
38403
38404 /*
38405 * XPath:
38406 * /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
38407 */
38408 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
38409 struct nb_cb_modify_args *args)
38410 {
38411 switch (args->event) {
38412 case NB_EV_VALIDATE:
38413 case NB_EV_PREPARE:
38414 case NB_EV_ABORT:
38415 case NB_EV_APPLY:
38416 /* TODO: implement me. */
38417 break;
38418 }
38419
38420 return NB_OK;
38421 }
38422
38423 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
38424 struct nb_cb_destroy_args *args)
38425 {
38426 switch (args->event) {
38427 case NB_EV_VALIDATE:
38428 case NB_EV_PREPARE:
38429 case NB_EV_ABORT:
38430 case NB_EV_APPLY:
38431 /* TODO: implement me. */
38432 break;
38433 }
38434
38435 return NB_OK;
38436 }
38437
38438 /*
38439 * XPath:
38440 * /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
38441 */
38442 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
38443 struct nb_cb_modify_args *args)
38444 {
38445 switch (args->event) {
38446 case NB_EV_VALIDATE:
38447 case NB_EV_PREPARE:
38448 case NB_EV_ABORT:
38449 case NB_EV_APPLY:
38450 /* TODO: implement me. */
38451 break;
38452 }
38453
38454 return NB_OK;
38455 }
38456
38457 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
38458 struct nb_cb_destroy_args *args)
38459 {
38460 switch (args->event) {
38461 case NB_EV_VALIDATE:
38462 case NB_EV_PREPARE:
38463 case NB_EV_ABORT:
38464 case NB_EV_APPLY:
38465 /* TODO: implement me. */
38466 break;
38467 }
38468
38469 return NB_OK;
38470 }
38471
38472 /*
38473 * XPath:
38474 * /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
38475 */
38476 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
38477 struct nb_cb_modify_args *args)
38478 {
38479 switch (args->event) {
38480 case NB_EV_VALIDATE:
38481 case NB_EV_PREPARE:
38482 case NB_EV_ABORT:
38483 case NB_EV_APPLY:
38484 /* TODO: implement me. */
38485 break;
38486 }
38487
38488 return NB_OK;
38489 }
38490
38491 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
38492 struct nb_cb_destroy_args *args)
38493 {
38494 switch (args->event) {
38495 case NB_EV_VALIDATE:
38496 case NB_EV_PREPARE:
38497 case NB_EV_ABORT:
38498 case NB_EV_APPLY:
38499 /* TODO: implement me. */
38500 break;
38501 }
38502
38503 return NB_OK;
38504 }
38505
38506 /*
38507 * XPath:
38508 * /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
38509 */
38510 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
38511 struct nb_cb_modify_args *args)
38512 {
38513 switch (args->event) {
38514 case NB_EV_VALIDATE:
38515 case NB_EV_PREPARE:
38516 case NB_EV_ABORT:
38517 case NB_EV_APPLY:
38518 /* TODO: implement me. */
38519 break;
38520 }
38521
38522 return NB_OK;
38523 }
38524
38525 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
38526 struct nb_cb_destroy_args *args)
38527 {
38528 switch (args->event) {
38529 case NB_EV_VALIDATE:
38530 case NB_EV_PREPARE:
38531 case NB_EV_ABORT:
38532 case NB_EV_APPLY:
38533 /* TODO: implement me. */
38534 break;
38535 }
38536
38537 return NB_OK;
38538 }
38539
38540 /*
38541 * XPath:
38542 * /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
38543 */
38544 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
38545 struct nb_cb_modify_args *args)
38546 {
38547 switch (args->event) {
38548 case NB_EV_VALIDATE:
38549 case NB_EV_PREPARE:
38550 case NB_EV_ABORT:
38551 case NB_EV_APPLY:
38552 /* TODO: implement me. */
38553 break;
38554 }
38555
38556 return NB_OK;
38557 }
38558
38559 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
38560 struct nb_cb_destroy_args *args)
38561 {
38562 switch (args->event) {
38563 case NB_EV_VALIDATE:
38564 case NB_EV_PREPARE:
38565 case NB_EV_ABORT:
38566 case NB_EV_APPLY:
38567 /* TODO: implement me. */
38568 break;
38569 }
38570
38571 return NB_OK;
38572 }
38573
38574 /*
38575 * XPath:
38576 * /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
38577 */
38578 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
38579 struct nb_cb_modify_args *args)
38580 {
38581 switch (args->event) {
38582 case NB_EV_VALIDATE:
38583 case NB_EV_PREPARE:
38584 case NB_EV_ABORT:
38585 case NB_EV_APPLY:
38586 /* TODO: implement me. */
38587 break;
38588 }
38589
38590 return NB_OK;
38591 }
38592
38593 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
38594 struct nb_cb_destroy_args *args)
38595 {
38596 switch (args->event) {
38597 case NB_EV_VALIDATE:
38598 case NB_EV_PREPARE:
38599 case NB_EV_ABORT:
38600 case NB_EV_APPLY:
38601 /* TODO: implement me. */
38602 break;
38603 }
38604
38605 return NB_OK;
38606 }
38607
38608 /*
38609 * XPath:
38610 * /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
38611 */
38612 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_modify(
38613 struct nb_cb_modify_args *args)
38614 {
38615 switch (args->event) {
38616 case NB_EV_VALIDATE:
38617 case NB_EV_PREPARE:
38618 case NB_EV_ABORT:
38619 return NB_OK;
38620 case NB_EV_APPLY:
38621 return bgp_peer_group_afi_safi_flag_modify(
38622 args, PEER_FLAG_NEXTHOP_SELF,
38623 yang_dnode_get_bool(args->dnode, NULL));
38624
38625 break;
38626 }
38627
38628 return NB_OK;
38629 }
38630
38631 /*
38632 * XPath:
38633 * /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
38634 */
38635 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
38636 struct nb_cb_modify_args *args)
38637 {
38638 switch (args->event) {
38639 case NB_EV_VALIDATE:
38640 case NB_EV_PREPARE:
38641 case NB_EV_ABORT:
38642 return NB_OK;
38643 case NB_EV_APPLY:
38644 return bgp_peer_group_afi_safi_flag_modify(
38645 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
38646 yang_dnode_get_bool(args->dnode, NULL));
38647
38648 break;
38649 }
38650
38651 return NB_OK;
38652 }
38653
38654 /*
38655 * XPath:
38656 * /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
38657 */
38658 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_modify(
38659 struct nb_cb_modify_args *args)
38660 {
38661 switch (args->event) {
38662 case NB_EV_VALIDATE:
38663 case NB_EV_PREPARE:
38664 case NB_EV_ABORT:
38665 return NB_OK;
38666 case NB_EV_APPLY:
38667 return bgp_peer_group_afi_safi_flag_modify(
38668 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
38669 yang_dnode_get_bool(args->dnode, NULL));
38670
38671 break;
38672 }
38673
38674 return NB_OK;
38675 }
38676
38677 /*
38678 * XPath:
38679 * /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
38680 */
38681 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
38682 struct nb_cb_modify_args *args)
38683 {
38684 switch (args->event) {
38685 case NB_EV_VALIDATE:
38686 case NB_EV_PREPARE:
38687 case NB_EV_ABORT:
38688 return NB_OK;
38689 case NB_EV_APPLY:
38690 return bgp_peer_group_afi_safi_flag_modify(
38691 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
38692 yang_dnode_get_bool(args->dnode, NULL));
38693
38694 break;
38695 }
38696
38697 return NB_OK;
38698 }
38699
38700 /*
38701 * XPath:
38702 * /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
38703 */
38704 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_modify(
38705 struct nb_cb_modify_args *args)
38706 {
38707 switch (args->event) {
38708 case NB_EV_VALIDATE:
38709 case NB_EV_PREPARE:
38710 case NB_EV_ABORT:
38711 return NB_OK;
38712 case NB_EV_APPLY:
38713 return bgp_peer_group_afi_safi_flag_modify(
38714 args, PEER_FLAG_REMOVE_PRIVATE_AS,
38715 yang_dnode_get_bool(args->dnode, NULL));
38716
38717 break;
38718 }
38719
38720 return NB_OK;
38721 }
38722
38723 /*
38724 * XPath:
38725 * /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
38726 */
38727 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_private_as_remove_private_as_replace_modify(
38728 struct nb_cb_modify_args *args)
38729 {
38730 switch (args->event) {
38731 case NB_EV_VALIDATE:
38732 case NB_EV_PREPARE:
38733 case NB_EV_ABORT:
38734 return NB_OK;
38735 case NB_EV_APPLY:
38736 return bgp_peer_group_afi_safi_flag_modify(
38737 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
38738 yang_dnode_get_bool(args->dnode, NULL));
38739
38740 break;
38741 }
38742
38743 return NB_OK;
38744 }
38745
38746 /*
38747 * XPath:
38748 * /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
38749 */
38750 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_route_reflector_route_reflector_client_modify(
38751 struct nb_cb_modify_args *args)
38752 {
38753 switch (args->event) {
38754 case NB_EV_VALIDATE:
38755 case NB_EV_PREPARE:
38756 case NB_EV_ABORT:
38757 return NB_OK;
38758 case NB_EV_APPLY:
38759 return bgp_peer_group_afi_safi_flag_modify(
38760 args, PEER_FLAG_REFLECTOR_CLIENT,
38761 yang_dnode_get_bool(args->dnode, NULL));
38762
38763 break;
38764 }
38765
38766 return NB_OK;
38767 }
38768
38769 /*
38770 * XPath:
38771 * /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
38772 */
38773 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_route_server_route_server_client_modify(
38774 struct nb_cb_modify_args *args)
38775 {
38776 switch (args->event) {
38777 case NB_EV_VALIDATE:
38778 case NB_EV_PREPARE:
38779 case NB_EV_ABORT:
38780 return NB_OK;
38781 case NB_EV_APPLY:
38782 return bgp_peer_group_afi_safi_flag_modify(
38783 args, PEER_FLAG_RSERVER_CLIENT,
38784 yang_dnode_get_bool(args->dnode, NULL));
38785
38786 break;
38787 }
38788
38789 return NB_OK;
38790 }
38791
38792 /*
38793 * XPath:
38794 * /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
38795 */
38796 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_send_community_send_community_modify(
38797 struct nb_cb_modify_args *args)
38798 {
38799 switch (args->event) {
38800 case NB_EV_VALIDATE:
38801 case NB_EV_PREPARE:
38802 case NB_EV_ABORT:
38803 return NB_OK;
38804 case NB_EV_APPLY:
38805 return bgp_peer_group_afi_safi_flag_modify(
38806 args, PEER_FLAG_SEND_COMMUNITY,
38807 yang_dnode_get_bool(args->dnode, NULL));
38808
38809 break;
38810 }
38811
38812 return NB_OK;
38813 }
38814
38815 /*
38816 * XPath:
38817 * /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
38818 */
38819 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_send_community_send_ext_community_modify(
38820 struct nb_cb_modify_args *args)
38821 {
38822 switch (args->event) {
38823 case NB_EV_VALIDATE:
38824 case NB_EV_PREPARE:
38825 case NB_EV_ABORT:
38826 return NB_OK;
38827 case NB_EV_APPLY:
38828 return bgp_peer_group_afi_safi_flag_modify(
38829 args, PEER_FLAG_SEND_EXT_COMMUNITY,
38830 yang_dnode_get_bool(args->dnode, NULL));
38831
38832 break;
38833 }
38834
38835 return NB_OK;
38836 }
38837
38838 /*
38839 * XPath:
38840 * /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
38841 */
38842 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_send_community_send_large_community_modify(
38843 struct nb_cb_modify_args *args)
38844 {
38845 switch (args->event) {
38846 case NB_EV_VALIDATE:
38847 case NB_EV_PREPARE:
38848 case NB_EV_ABORT:
38849 return NB_OK;
38850 case NB_EV_APPLY:
38851 return bgp_peer_group_afi_safi_flag_modify(
38852 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
38853 yang_dnode_get_bool(args->dnode, NULL));
38854
38855 break;
38856 }
38857
38858 return NB_OK;
38859 }
38860
38861 /*
38862 * XPath:
38863 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-unicast/soft-reconfiguration
38864 */
38865 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_soft_reconfiguration_modify(
38866 struct nb_cb_modify_args *args)
38867 {
38868 switch (args->event) {
38869 case NB_EV_VALIDATE:
38870 case NB_EV_PREPARE:
38871 case NB_EV_ABORT:
38872 return NB_OK;
38873 case NB_EV_APPLY:
38874 return bgp_peer_group_afi_safi_flag_modify(
38875 args, PEER_FLAG_SOFT_RECONFIG,
38876 yang_dnode_get_bool(args->dnode, NULL));
38877
38878 break;
38879 }
38880
38881 return NB_OK;
38882 }
38883
38884 /*
38885 * XPath:
38886 * /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
38887 */
38888 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_modify(
38889 struct nb_cb_modify_args *args)
38890 {
38891 switch (args->event) {
38892 case NB_EV_VALIDATE:
38893 case NB_EV_PREPARE:
38894 case NB_EV_ABORT:
38895 return NB_OK;
38896 case NB_EV_APPLY:
38897 return bgp_peer_group_afi_safi_weight_modify(args);
38898
38899 break;
38900 }
38901
38902 return NB_OK;
38903 }
38904
38905 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_weight_weight_attribute_destroy(
38906 struct nb_cb_destroy_args *args)
38907 {
38908 switch (args->event) {
38909 case NB_EV_VALIDATE:
38910 case NB_EV_PREPARE:
38911 case NB_EV_ABORT:
38912 return NB_OK;
38913 case NB_EV_APPLY:
38914 return bgp_peer_group_afi_safi_weight_destroy(args);
38915
38916 break;
38917 }
38918
38919 return NB_OK;
38920 }
38921
38922 /*
38923 * XPath:
38924 * /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
38925 */
38926 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_modify(
38927 struct nb_cb_modify_args *args)
38928 {
38929 switch (args->event) {
38930 case NB_EV_VALIDATE:
38931 case NB_EV_PREPARE:
38932 case NB_EV_ABORT:
38933 break;
38934 case NB_EV_APPLY:
38935 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
38936 }
38937
38938 return NB_OK;
38939 }
38940
38941 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_import_destroy(
38942 struct nb_cb_destroy_args *args)
38943 {
38944 switch (args->event) {
38945 case NB_EV_VALIDATE:
38946 case NB_EV_PREPARE:
38947 case NB_EV_ABORT:
38948 break;
38949 case NB_EV_APPLY:
38950 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
38951 }
38952
38953 return NB_OK;
38954 }
38955
38956 /*
38957 * XPath:
38958 * /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
38959 */
38960 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_modify(
38961 struct nb_cb_modify_args *args)
38962 {
38963 switch (args->event) {
38964 case NB_EV_VALIDATE:
38965 case NB_EV_PREPARE:
38966 case NB_EV_ABORT:
38967 break;
38968 case NB_EV_APPLY:
38969 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
38970 }
38971
38972 return NB_OK;
38973 }
38974
38975 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_rmap_export_destroy(
38976 struct nb_cb_destroy_args *args)
38977 {
38978 switch (args->event) {
38979 case NB_EV_VALIDATE:
38980 case NB_EV_PREPARE:
38981 case NB_EV_ABORT:
38982 break;
38983 case NB_EV_APPLY:
38984 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
38985 }
38986
38987 return NB_OK;
38988 }
38989
38990 /*
38991 * XPath:
38992 * /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
38993 */
38994 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_modify(
38995 struct nb_cb_modify_args *args)
38996 {
38997 switch (args->event) {
38998 case NB_EV_VALIDATE:
38999 case NB_EV_PREPARE:
39000 case NB_EV_ABORT:
39001 break;
39002 case NB_EV_APPLY:
39003 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
39004 }
39005
39006 return NB_OK;
39007 }
39008
39009 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_import_destroy(
39010 struct nb_cb_destroy_args *args)
39011 {
39012 switch (args->event) {
39013 case NB_EV_VALIDATE:
39014 case NB_EV_PREPARE:
39015 case NB_EV_ABORT:
39016 break;
39017 case NB_EV_APPLY:
39018 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
39019 }
39020
39021 return NB_OK;
39022 }
39023
39024 /*
39025 * XPath:
39026 * /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
39027 */
39028 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_modify(
39029 struct nb_cb_modify_args *args)
39030 {
39031 switch (args->event) {
39032 case NB_EV_VALIDATE:
39033 case NB_EV_PREPARE:
39034 case NB_EV_ABORT:
39035 break;
39036 case NB_EV_APPLY:
39037 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
39038 }
39039
39040 return NB_OK;
39041 }
39042
39043 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_plist_export_destroy(
39044 struct nb_cb_destroy_args *args)
39045 {
39046 switch (args->event) {
39047 case NB_EV_VALIDATE:
39048 case NB_EV_PREPARE:
39049 case NB_EV_ABORT:
39050 break;
39051 case NB_EV_APPLY:
39052 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
39053 }
39054
39055 return NB_OK;
39056 }
39057
39058 /*
39059 * XPath:
39060 * /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
39061 */
39062 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_modify(
39063 struct nb_cb_modify_args *args)
39064 {
39065 switch (args->event) {
39066 case NB_EV_VALIDATE:
39067 case NB_EV_PREPARE:
39068 case NB_EV_ABORT:
39069 case NB_EV_APPLY:
39070 /* TODO: implement me. */
39071 break;
39072 }
39073
39074 return NB_OK;
39075 }
39076
39077 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_import_destroy(
39078 struct nb_cb_destroy_args *args)
39079 {
39080 switch (args->event) {
39081 case NB_EV_VALIDATE:
39082 case NB_EV_PREPARE:
39083 case NB_EV_ABORT:
39084 case NB_EV_APPLY:
39085 /* TODO: implement me. */
39086 break;
39087 }
39088
39089 return NB_OK;
39090 }
39091
39092 /*
39093 * XPath:
39094 * /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
39095 */
39096 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_modify(
39097 struct nb_cb_modify_args *args)
39098 {
39099 switch (args->event) {
39100 case NB_EV_VALIDATE:
39101 case NB_EV_PREPARE:
39102 case NB_EV_ABORT:
39103 case NB_EV_APPLY:
39104 /* TODO: implement me. */
39105 break;
39106 }
39107
39108 return NB_OK;
39109 }
39110
39111 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_access_list_export_destroy(
39112 struct nb_cb_destroy_args *args)
39113 {
39114 switch (args->event) {
39115 case NB_EV_VALIDATE:
39116 case NB_EV_PREPARE:
39117 case NB_EV_ABORT:
39118 case NB_EV_APPLY:
39119 /* TODO: implement me. */
39120 break;
39121 }
39122
39123 return NB_OK;
39124 }
39125
39126 /*
39127 * XPath:
39128 * /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
39129 */
39130 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_modify(
39131 struct nb_cb_modify_args *args)
39132 {
39133 switch (args->event) {
39134 case NB_EV_VALIDATE:
39135 case NB_EV_PREPARE:
39136 case NB_EV_ABORT:
39137 case NB_EV_APPLY:
39138 /* TODO: implement me. */
39139 break;
39140 }
39141
39142 return NB_OK;
39143 }
39144
39145 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_import_destroy(
39146 struct nb_cb_destroy_args *args)
39147 {
39148 switch (args->event) {
39149 case NB_EV_VALIDATE:
39150 case NB_EV_PREPARE:
39151 case NB_EV_ABORT:
39152 case NB_EV_APPLY:
39153 /* TODO: implement me. */
39154 break;
39155 }
39156
39157 return NB_OK;
39158 }
39159
39160 /*
39161 * XPath:
39162 * /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
39163 */
39164 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_modify(
39165 struct nb_cb_modify_args *args)
39166 {
39167 switch (args->event) {
39168 case NB_EV_VALIDATE:
39169 case NB_EV_PREPARE:
39170 case NB_EV_ABORT:
39171 case NB_EV_APPLY:
39172 /* TODO: implement me. */
39173 break;
39174 }
39175
39176 return NB_OK;
39177 }
39178
39179 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_as_path_filter_list_export_destroy(
39180 struct nb_cb_destroy_args *args)
39181 {
39182 switch (args->event) {
39183 case NB_EV_VALIDATE:
39184 case NB_EV_PREPARE:
39185 case NB_EV_ABORT:
39186 case NB_EV_APPLY:
39187 /* TODO: implement me. */
39188 break;
39189 }
39190
39191 return NB_OK;
39192 }
39193
39194 /*
39195 * XPath:
39196 * /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
39197 */
39198 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_modify(
39199 struct nb_cb_modify_args *args)
39200 {
39201 switch (args->event) {
39202 case NB_EV_VALIDATE:
39203 case NB_EV_PREPARE:
39204 case NB_EV_ABORT:
39205 case NB_EV_APPLY:
39206 /* TODO: implement me. */
39207 break;
39208 }
39209
39210 return NB_OK;
39211 }
39212
39213 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_import_destroy(
39214 struct nb_cb_destroy_args *args)
39215 {
39216 switch (args->event) {
39217 case NB_EV_VALIDATE:
39218 case NB_EV_PREPARE:
39219 case NB_EV_ABORT:
39220 case NB_EV_APPLY:
39221 /* TODO: implement me. */
39222 break;
39223 }
39224
39225 return NB_OK;
39226 }
39227
39228 /*
39229 * XPath:
39230 * /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
39231 */
39232 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_modify(
39233 struct nb_cb_modify_args *args)
39234 {
39235 switch (args->event) {
39236 case NB_EV_VALIDATE:
39237 case NB_EV_PREPARE:
39238 case NB_EV_ABORT:
39239 case NB_EV_APPLY:
39240 /* TODO: implement me. */
39241 break;
39242 }
39243
39244 return NB_OK;
39245 }
39246
39247 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_unicast_filter_config_unsuppress_map_export_destroy(
39248 struct nb_cb_destroy_args *args)
39249 {
39250 switch (args->event) {
39251 case NB_EV_VALIDATE:
39252 case NB_EV_PREPARE:
39253 case NB_EV_ABORT:
39254 case NB_EV_APPLY:
39255 /* TODO: implement me. */
39256 break;
39257 }
39258
39259 return NB_OK;
39260 }
39261
39262 /*
39263 * XPath:
39264 * /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
39265 */
39266 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_add_paths_path_type_modify(
39267 struct nb_cb_modify_args *args)
39268 {
39269 switch (args->event) {
39270 case NB_EV_VALIDATE:
39271 case NB_EV_PREPARE:
39272 case NB_EV_ABORT:
39273 case NB_EV_APPLY:
39274 /* TODO: implement me. */
39275 break;
39276 }
39277
39278 return NB_OK;
39279 }
39280
39281 /*
39282 * XPath:
39283 * /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
39284 */
39285 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_modify(
39286 struct nb_cb_modify_args *args)
39287 {
39288 switch (args->event) {
39289 case NB_EV_VALIDATE:
39290 case NB_EV_PREPARE:
39291 case NB_EV_ABORT:
39292 case NB_EV_APPLY:
39293 /* TODO: implement me. */
39294 break;
39295 }
39296
39297 return NB_OK;
39298 }
39299
39300 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_as_destroy(
39301 struct nb_cb_destroy_args *args)
39302 {
39303 switch (args->event) {
39304 case NB_EV_VALIDATE:
39305 case NB_EV_PREPARE:
39306 case NB_EV_ABORT:
39307 case NB_EV_APPLY:
39308 /* TODO: implement me. */
39309 break;
39310 }
39311
39312 return NB_OK;
39313 }
39314
39315 /*
39316 * XPath:
39317 * /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
39318 */
39319 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_modify(
39320 struct nb_cb_modify_args *args)
39321 {
39322 switch (args->event) {
39323 case NB_EV_VALIDATE:
39324 case NB_EV_PREPARE:
39325 case NB_EV_ABORT:
39326 case NB_EV_APPLY:
39327 /* TODO: implement me. */
39328 break;
39329 }
39330
39331 return NB_OK;
39332 }
39333
39334 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_as_path_options_allow_own_origin_as_destroy(
39335 struct nb_cb_destroy_args *args)
39336 {
39337 switch (args->event) {
39338 case NB_EV_VALIDATE:
39339 case NB_EV_PREPARE:
39340 case NB_EV_ABORT:
39341 case NB_EV_APPLY:
39342 /* TODO: implement me. */
39343 break;
39344 }
39345
39346 return NB_OK;
39347 }
39348
39349 /*
39350 * XPath:
39351 * /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
39352 */
39353 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_as_path_options_replace_peer_as_modify(
39354 struct nb_cb_modify_args *args)
39355 {
39356 switch (args->event) {
39357 case NB_EV_VALIDATE:
39358 case NB_EV_PREPARE:
39359 case NB_EV_ABORT:
39360 return NB_OK;
39361 case NB_EV_APPLY:
39362 return bgp_peer_group_afi_safi_flag_modify(
39363 args, PEER_FLAG_AS_OVERRIDE,
39364 yang_dnode_get_bool(args->dnode, NULL));
39365
39366 break;
39367 }
39368
39369 return NB_OK;
39370 }
39371
39372 /*
39373 * XPath:
39374 * /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
39375 */
39376 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_default_originate_originate_modify(
39377 struct nb_cb_modify_args *args)
39378 {
39379 switch (args->event) {
39380 case NB_EV_VALIDATE:
39381 case NB_EV_PREPARE:
39382 case NB_EV_ABORT:
39383 case NB_EV_APPLY:
39384 /* TODO: implement me. */
39385 break;
39386 }
39387
39388 return NB_OK;
39389 }
39390
39391 /*
39392 * XPath:
39393 * /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
39394 */
39395 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_modify(
39396 struct nb_cb_modify_args *args)
39397 {
39398 switch (args->event) {
39399 case NB_EV_VALIDATE:
39400 case NB_EV_PREPARE:
39401 case NB_EV_ABORT:
39402 case NB_EV_APPLY:
39403 /* TODO: implement me. */
39404 break;
39405 }
39406
39407 return NB_OK;
39408 }
39409
39410 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_default_originate_route_map_destroy(
39411 struct nb_cb_destroy_args *args)
39412 {
39413 switch (args->event) {
39414 case NB_EV_VALIDATE:
39415 case NB_EV_PREPARE:
39416 case NB_EV_ABORT:
39417 case NB_EV_APPLY:
39418 /* TODO: implement me. */
39419 break;
39420 }
39421
39422 return NB_OK;
39423 }
39424
39425 /*
39426 * XPath:
39427 * /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
39428 */
39429 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_as_path_unchanged_modify(
39430 struct nb_cb_modify_args *args)
39431 {
39432 switch (args->event) {
39433 case NB_EV_VALIDATE:
39434 case NB_EV_PREPARE:
39435 case NB_EV_ABORT:
39436 return NB_OK;
39437 case NB_EV_APPLY:
39438 return bgp_peer_group_afi_safi_flag_modify(
39439 args, PEER_FLAG_AS_PATH_UNCHANGED,
39440 yang_dnode_get_bool(args->dnode, NULL));
39441
39442 break;
39443 }
39444
39445 return NB_OK;
39446 }
39447
39448 /*
39449 * XPath:
39450 * /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
39451 */
39452 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_next_hop_unchanged_modify(
39453 struct nb_cb_modify_args *args)
39454 {
39455 switch (args->event) {
39456 case NB_EV_VALIDATE:
39457 case NB_EV_PREPARE:
39458 case NB_EV_ABORT:
39459 return NB_OK;
39460 case NB_EV_APPLY:
39461 return bgp_peer_group_afi_safi_flag_modify(
39462 args, PEER_FLAG_NEXTHOP_UNCHANGED,
39463 yang_dnode_get_bool(args->dnode, NULL));
39464
39465 break;
39466 }
39467
39468 return NB_OK;
39469 }
39470
39471 /*
39472 * XPath:
39473 * /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
39474 */
39475 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_attr_unchanged_med_unchanged_modify(
39476 struct nb_cb_modify_args *args)
39477 {
39478 switch (args->event) {
39479 case NB_EV_VALIDATE:
39480 case NB_EV_PREPARE:
39481 case NB_EV_ABORT:
39482 return NB_OK;
39483 case NB_EV_APPLY:
39484 return bgp_peer_group_afi_safi_flag_modify(
39485 args, PEER_FLAG_MED_UNCHANGED,
39486 yang_dnode_get_bool(args->dnode, NULL));
39487
39488 break;
39489 }
39490
39491 return NB_OK;
39492 }
39493
39494 /*
39495 * XPath:
39496 * /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
39497 */
39498 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_modify(
39499 struct nb_cb_modify_args *args)
39500 {
39501 switch (args->event) {
39502 case NB_EV_VALIDATE:
39503 case NB_EV_PREPARE:
39504 case NB_EV_ABORT:
39505 case NB_EV_APPLY:
39506 /* TODO: implement me. */
39507 break;
39508 }
39509
39510 return NB_OK;
39511 }
39512
39513 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_send_destroy(
39514 struct nb_cb_destroy_args *args)
39515 {
39516 switch (args->event) {
39517 case NB_EV_VALIDATE:
39518 case NB_EV_PREPARE:
39519 case NB_EV_ABORT:
39520 case NB_EV_APPLY:
39521 /* TODO: implement me. */
39522 break;
39523 }
39524
39525 return NB_OK;
39526 }
39527
39528 /*
39529 * XPath:
39530 * /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
39531 */
39532 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_modify(
39533 struct nb_cb_modify_args *args)
39534 {
39535 switch (args->event) {
39536 case NB_EV_VALIDATE:
39537 case NB_EV_PREPARE:
39538 case NB_EV_ABORT:
39539 case NB_EV_APPLY:
39540 /* TODO: implement me. */
39541 break;
39542 }
39543
39544 return NB_OK;
39545 }
39546
39547 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_receive_destroy(
39548 struct nb_cb_destroy_args *args)
39549 {
39550 switch (args->event) {
39551 case NB_EV_VALIDATE:
39552 case NB_EV_PREPARE:
39553 case NB_EV_ABORT:
39554 case NB_EV_APPLY:
39555 /* TODO: implement me. */
39556 break;
39557 }
39558
39559 return NB_OK;
39560 }
39561
39562 /*
39563 * XPath:
39564 * /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
39565 */
39566 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_modify(
39567 struct nb_cb_modify_args *args)
39568 {
39569 switch (args->event) {
39570 case NB_EV_VALIDATE:
39571 case NB_EV_PREPARE:
39572 case NB_EV_ABORT:
39573 case NB_EV_APPLY:
39574 /* TODO: implement me. */
39575 break;
39576 }
39577
39578 return NB_OK;
39579 }
39580
39581 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_orf_capability_orf_both_destroy(
39582 struct nb_cb_destroy_args *args)
39583 {
39584 switch (args->event) {
39585 case NB_EV_VALIDATE:
39586 case NB_EV_PREPARE:
39587 case NB_EV_ABORT:
39588 case NB_EV_APPLY:
39589 /* TODO: implement me. */
39590 break;
39591 }
39592
39593 return NB_OK;
39594 }
39595
39596 /*
39597 * XPath:
39598 * /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
39599 */
39600 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_create(
39601 struct nb_cb_create_args *args)
39602 {
39603 switch (args->event) {
39604 case NB_EV_VALIDATE:
39605 case NB_EV_PREPARE:
39606 case NB_EV_ABORT:
39607 case NB_EV_APPLY:
39608 /* TODO: implement me. */
39609 break;
39610 }
39611
39612 return NB_OK;
39613 }
39614
39615 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_destroy(
39616 struct nb_cb_destroy_args *args)
39617 {
39618 switch (args->event) {
39619 case NB_EV_VALIDATE:
39620 case NB_EV_PREPARE:
39621 case NB_EV_ABORT:
39622 return NB_OK;
39623 case NB_EV_APPLY:
39624 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
39625 }
39626
39627 return NB_OK;
39628 }
39629
39630 /*
39631 * XPath:
39632 * /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
39633 */
39634 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_max_prefixes_modify(
39635 struct nb_cb_modify_args *args)
39636 {
39637 switch (args->event) {
39638 case NB_EV_VALIDATE:
39639 case NB_EV_PREPARE:
39640 case NB_EV_ABORT:
39641 case NB_EV_APPLY:
39642 /* TODO: implement me. */
39643 break;
39644 }
39645
39646 return NB_OK;
39647 }
39648
39649 /*
39650 * XPath:
39651 * /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
39652 */
39653 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_force_check_modify(
39654 struct nb_cb_modify_args *args)
39655 {
39656 switch (args->event) {
39657 case NB_EV_VALIDATE:
39658 case NB_EV_PREPARE:
39659 case NB_EV_ABORT:
39660 case NB_EV_APPLY:
39661 /* TODO: implement me. */
39662 break;
39663 }
39664
39665 return NB_OK;
39666 }
39667
39668 /*
39669 * XPath:
39670 * /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
39671 */
39672 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_modify(
39673 struct nb_cb_modify_args *args)
39674 {
39675 switch (args->event) {
39676 case NB_EV_VALIDATE:
39677 case NB_EV_PREPARE:
39678 case NB_EV_ABORT:
39679 case NB_EV_APPLY:
39680 /* TODO: implement me. */
39681 break;
39682 }
39683
39684 return NB_OK;
39685 }
39686
39687 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_warning_only_destroy(
39688 struct nb_cb_destroy_args *args)
39689 {
39690 switch (args->event) {
39691 case NB_EV_VALIDATE:
39692 case NB_EV_PREPARE:
39693 case NB_EV_ABORT:
39694 case NB_EV_APPLY:
39695 /* TODO: implement me. */
39696 break;
39697 }
39698
39699 return NB_OK;
39700 }
39701
39702 /*
39703 * XPath:
39704 * /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
39705 */
39706 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_modify(
39707 struct nb_cb_modify_args *args)
39708 {
39709 switch (args->event) {
39710 case NB_EV_VALIDATE:
39711 case NB_EV_PREPARE:
39712 case NB_EV_ABORT:
39713 case NB_EV_APPLY:
39714 /* TODO: implement me. */
39715 break;
39716 }
39717
39718 return NB_OK;
39719 }
39720
39721 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
39722 struct nb_cb_destroy_args *args)
39723 {
39724 switch (args->event) {
39725 case NB_EV_VALIDATE:
39726 case NB_EV_PREPARE:
39727 case NB_EV_ABORT:
39728 case NB_EV_APPLY:
39729 /* TODO: implement me. */
39730 break;
39731 }
39732
39733 return NB_OK;
39734 }
39735
39736 /*
39737 * XPath:
39738 * /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
39739 */
39740 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
39741 struct nb_cb_modify_args *args)
39742 {
39743 switch (args->event) {
39744 case NB_EV_VALIDATE:
39745 case NB_EV_PREPARE:
39746 case NB_EV_ABORT:
39747 case NB_EV_APPLY:
39748 /* TODO: implement me. */
39749 break;
39750 }
39751
39752 return NB_OK;
39753 }
39754
39755 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
39756 struct nb_cb_destroy_args *args)
39757 {
39758 switch (args->event) {
39759 case NB_EV_VALIDATE:
39760 case NB_EV_PREPARE:
39761 case NB_EV_ABORT:
39762 case NB_EV_APPLY:
39763 /* TODO: implement me. */
39764 break;
39765 }
39766
39767 return NB_OK;
39768 }
39769
39770 /*
39771 * XPath:
39772 * /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
39773 */
39774 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
39775 struct nb_cb_modify_args *args)
39776 {
39777 switch (args->event) {
39778 case NB_EV_VALIDATE:
39779 case NB_EV_PREPARE:
39780 case NB_EV_ABORT:
39781 case NB_EV_APPLY:
39782 /* TODO: implement me. */
39783 break;
39784 }
39785
39786 return NB_OK;
39787 }
39788
39789 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
39790 struct nb_cb_destroy_args *args)
39791 {
39792 switch (args->event) {
39793 case NB_EV_VALIDATE:
39794 case NB_EV_PREPARE:
39795 case NB_EV_ABORT:
39796 case NB_EV_APPLY:
39797 /* TODO: implement me. */
39798 break;
39799 }
39800
39801 return NB_OK;
39802 }
39803
39804 /*
39805 * XPath:
39806 * /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
39807 */
39808 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
39809 struct nb_cb_modify_args *args)
39810 {
39811 switch (args->event) {
39812 case NB_EV_VALIDATE:
39813 case NB_EV_PREPARE:
39814 case NB_EV_ABORT:
39815 case NB_EV_APPLY:
39816 /* TODO: implement me. */
39817 break;
39818 }
39819
39820 return NB_OK;
39821 }
39822
39823 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
39824 struct nb_cb_destroy_args *args)
39825 {
39826 switch (args->event) {
39827 case NB_EV_VALIDATE:
39828 case NB_EV_PREPARE:
39829 case NB_EV_ABORT:
39830 case NB_EV_APPLY:
39831 /* TODO: implement me. */
39832 break;
39833 }
39834
39835 return NB_OK;
39836 }
39837
39838 /*
39839 * XPath:
39840 * /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
39841 */
39842 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
39843 struct nb_cb_modify_args *args)
39844 {
39845 switch (args->event) {
39846 case NB_EV_VALIDATE:
39847 case NB_EV_PREPARE:
39848 case NB_EV_ABORT:
39849 case NB_EV_APPLY:
39850 /* TODO: implement me. */
39851 break;
39852 }
39853
39854 return NB_OK;
39855 }
39856
39857 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
39858 struct nb_cb_destroy_args *args)
39859 {
39860 switch (args->event) {
39861 case NB_EV_VALIDATE:
39862 case NB_EV_PREPARE:
39863 case NB_EV_ABORT:
39864 case NB_EV_APPLY:
39865 /* TODO: implement me. */
39866 break;
39867 }
39868
39869 return NB_OK;
39870 }
39871
39872 /*
39873 * XPath:
39874 * /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
39875 */
39876 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
39877 struct nb_cb_modify_args *args)
39878 {
39879 switch (args->event) {
39880 case NB_EV_VALIDATE:
39881 case NB_EV_PREPARE:
39882 case NB_EV_ABORT:
39883 case NB_EV_APPLY:
39884 /* TODO: implement me. */
39885 break;
39886 }
39887
39888 return NB_OK;
39889 }
39890
39891 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
39892 struct nb_cb_destroy_args *args)
39893 {
39894 switch (args->event) {
39895 case NB_EV_VALIDATE:
39896 case NB_EV_PREPARE:
39897 case NB_EV_ABORT:
39898 case NB_EV_APPLY:
39899 /* TODO: implement me. */
39900 break;
39901 }
39902
39903 return NB_OK;
39904 }
39905
39906 /*
39907 * XPath:
39908 * /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
39909 */
39910 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_modify(
39911 struct nb_cb_modify_args *args)
39912 {
39913 switch (args->event) {
39914 case NB_EV_VALIDATE:
39915 case NB_EV_PREPARE:
39916 case NB_EV_ABORT:
39917 return NB_OK;
39918 case NB_EV_APPLY:
39919 return bgp_peer_group_afi_safi_flag_modify(
39920 args, PEER_FLAG_NEXTHOP_SELF,
39921 yang_dnode_get_bool(args->dnode, NULL));
39922
39923 break;
39924 }
39925
39926 return NB_OK;
39927 }
39928
39929 /*
39930 * XPath:
39931 * /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
39932 */
39933 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_nexthop_self_next_hop_self_force_modify(
39934 struct nb_cb_modify_args *args)
39935 {
39936 switch (args->event) {
39937 case NB_EV_VALIDATE:
39938 case NB_EV_PREPARE:
39939 case NB_EV_ABORT:
39940 return NB_OK;
39941 case NB_EV_APPLY:
39942 return bgp_peer_group_afi_safi_flag_modify(
39943 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
39944 yang_dnode_get_bool(args->dnode, NULL));
39945
39946 break;
39947 }
39948
39949 return NB_OK;
39950 }
39951
39952 /*
39953 * XPath:
39954 * /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
39955 */
39956 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_modify(
39957 struct nb_cb_modify_args *args)
39958 {
39959 switch (args->event) {
39960 case NB_EV_VALIDATE:
39961 case NB_EV_PREPARE:
39962 case NB_EV_ABORT:
39963 return NB_OK;
39964 case NB_EV_APPLY:
39965 return bgp_peer_group_afi_safi_flag_modify(
39966 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
39967 yang_dnode_get_bool(args->dnode, NULL));
39968
39969 break;
39970 }
39971
39972 return NB_OK;
39973 }
39974
39975 /*
39976 * XPath:
39977 * /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
39978 */
39979 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_all_replace_modify(
39980 struct nb_cb_modify_args *args)
39981 {
39982 switch (args->event) {
39983 case NB_EV_VALIDATE:
39984 case NB_EV_PREPARE:
39985 case NB_EV_ABORT:
39986 return NB_OK;
39987 case NB_EV_APPLY:
39988 return bgp_peer_group_afi_safi_flag_modify(
39989 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
39990 yang_dnode_get_bool(args->dnode, NULL));
39991
39992 break;
39993 }
39994
39995 return NB_OK;
39996 }
39997
39998 /*
39999 * XPath:
40000 * /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
40001 */
40002 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_modify(
40003 struct nb_cb_modify_args *args)
40004 {
40005 switch (args->event) {
40006 case NB_EV_VALIDATE:
40007 case NB_EV_PREPARE:
40008 case NB_EV_ABORT:
40009 return NB_OK;
40010 case NB_EV_APPLY:
40011 return bgp_peer_group_afi_safi_flag_modify(
40012 args, PEER_FLAG_REMOVE_PRIVATE_AS,
40013 yang_dnode_get_bool(args->dnode, NULL));
40014
40015 break;
40016 }
40017
40018 return NB_OK;
40019 }
40020
40021 /*
40022 * XPath:
40023 * /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
40024 */
40025 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_private_as_remove_private_as_replace_modify(
40026 struct nb_cb_modify_args *args)
40027 {
40028 switch (args->event) {
40029 case NB_EV_VALIDATE:
40030 case NB_EV_PREPARE:
40031 case NB_EV_ABORT:
40032 return NB_OK;
40033 case NB_EV_APPLY:
40034 return bgp_peer_group_afi_safi_flag_modify(
40035 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
40036 yang_dnode_get_bool(args->dnode, NULL));
40037
40038 break;
40039 }
40040
40041 return NB_OK;
40042 }
40043
40044 /*
40045 * XPath:
40046 * /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
40047 */
40048 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_route_reflector_route_reflector_client_modify(
40049 struct nb_cb_modify_args *args)
40050 {
40051 switch (args->event) {
40052 case NB_EV_VALIDATE:
40053 case NB_EV_PREPARE:
40054 case NB_EV_ABORT:
40055 return NB_OK;
40056 case NB_EV_APPLY:
40057 return bgp_peer_group_afi_safi_flag_modify(
40058 args, PEER_FLAG_REFLECTOR_CLIENT,
40059 yang_dnode_get_bool(args->dnode, NULL));
40060
40061 break;
40062 }
40063
40064 return NB_OK;
40065 }
40066
40067 /*
40068 * XPath:
40069 * /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
40070 */
40071 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_route_server_route_server_client_modify(
40072 struct nb_cb_modify_args *args)
40073 {
40074 switch (args->event) {
40075 case NB_EV_VALIDATE:
40076 case NB_EV_PREPARE:
40077 case NB_EV_ABORT:
40078 return NB_OK;
40079 case NB_EV_APPLY:
40080 return bgp_peer_group_afi_safi_flag_modify(
40081 args, PEER_FLAG_RSERVER_CLIENT,
40082 yang_dnode_get_bool(args->dnode, NULL));
40083
40084 break;
40085 }
40086
40087 return NB_OK;
40088 }
40089
40090 /*
40091 * XPath:
40092 * /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
40093 */
40094 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_send_community_send_community_modify(
40095 struct nb_cb_modify_args *args)
40096 {
40097 switch (args->event) {
40098 case NB_EV_VALIDATE:
40099 case NB_EV_PREPARE:
40100 case NB_EV_ABORT:
40101 return NB_OK;
40102 case NB_EV_APPLY:
40103 return bgp_peer_group_afi_safi_flag_modify(
40104 args, PEER_FLAG_SEND_COMMUNITY,
40105 yang_dnode_get_bool(args->dnode, NULL));
40106
40107 break;
40108 }
40109
40110 return NB_OK;
40111 }
40112
40113 /*
40114 * XPath:
40115 * /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
40116 */
40117 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_send_community_send_ext_community_modify(
40118 struct nb_cb_modify_args *args)
40119 {
40120 switch (args->event) {
40121 case NB_EV_VALIDATE:
40122 case NB_EV_PREPARE:
40123 case NB_EV_ABORT:
40124 return NB_OK;
40125 case NB_EV_APPLY:
40126 return bgp_peer_group_afi_safi_flag_modify(
40127 args, PEER_FLAG_SEND_EXT_COMMUNITY,
40128 yang_dnode_get_bool(args->dnode, NULL));
40129
40130 break;
40131 }
40132
40133 return NB_OK;
40134 }
40135
40136 /*
40137 * XPath:
40138 * /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
40139 */
40140 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_send_community_send_large_community_modify(
40141 struct nb_cb_modify_args *args)
40142 {
40143 switch (args->event) {
40144 case NB_EV_VALIDATE:
40145 case NB_EV_PREPARE:
40146 case NB_EV_ABORT:
40147 return NB_OK;
40148 case NB_EV_APPLY:
40149 return bgp_peer_group_afi_safi_flag_modify(
40150 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
40151 yang_dnode_get_bool(args->dnode, NULL));
40152
40153 break;
40154 }
40155
40156 return NB_OK;
40157 }
40158
40159 /*
40160 * XPath:
40161 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-multicast/soft-reconfiguration
40162 */
40163 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_soft_reconfiguration_modify(
40164 struct nb_cb_modify_args *args)
40165 {
40166 switch (args->event) {
40167 case NB_EV_VALIDATE:
40168 case NB_EV_PREPARE:
40169 case NB_EV_ABORT:
40170 return NB_OK;
40171 case NB_EV_APPLY:
40172 return bgp_peer_group_afi_safi_flag_modify(
40173 args, PEER_FLAG_SOFT_RECONFIG,
40174 yang_dnode_get_bool(args->dnode, NULL));
40175
40176 break;
40177 }
40178
40179 return NB_OK;
40180 }
40181
40182 /*
40183 * XPath:
40184 * /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
40185 */
40186 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_modify(
40187 struct nb_cb_modify_args *args)
40188 {
40189 switch (args->event) {
40190 case NB_EV_VALIDATE:
40191 case NB_EV_PREPARE:
40192 case NB_EV_ABORT:
40193 return NB_OK;
40194 case NB_EV_APPLY:
40195 return bgp_peer_group_afi_safi_weight_modify(args);
40196
40197 break;
40198 }
40199
40200 return NB_OK;
40201 }
40202
40203 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_weight_weight_attribute_destroy(
40204 struct nb_cb_destroy_args *args)
40205 {
40206 switch (args->event) {
40207 case NB_EV_VALIDATE:
40208 case NB_EV_PREPARE:
40209 case NB_EV_ABORT:
40210 return NB_OK;
40211 case NB_EV_APPLY:
40212 return bgp_peer_group_afi_safi_weight_destroy(args);
40213
40214 break;
40215 }
40216
40217 return NB_OK;
40218 }
40219
40220 /*
40221 * XPath:
40222 * /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
40223 */
40224 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_modify(
40225 struct nb_cb_modify_args *args)
40226 {
40227 switch (args->event) {
40228 case NB_EV_VALIDATE:
40229 case NB_EV_PREPARE:
40230 case NB_EV_ABORT:
40231 break;
40232 case NB_EV_APPLY:
40233 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
40234 }
40235
40236 return NB_OK;
40237 }
40238
40239 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_import_destroy(
40240 struct nb_cb_destroy_args *args)
40241 {
40242 switch (args->event) {
40243 case NB_EV_VALIDATE:
40244 case NB_EV_PREPARE:
40245 case NB_EV_ABORT:
40246 break;
40247 case NB_EV_APPLY:
40248 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
40249 }
40250
40251 return NB_OK;
40252 }
40253
40254 /*
40255 * XPath:
40256 * /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
40257 */
40258 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_modify(
40259 struct nb_cb_modify_args *args)
40260 {
40261 switch (args->event) {
40262 case NB_EV_VALIDATE:
40263 case NB_EV_PREPARE:
40264 case NB_EV_ABORT:
40265 break;
40266 case NB_EV_APPLY:
40267 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
40268 }
40269
40270 return NB_OK;
40271 }
40272
40273 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_rmap_export_destroy(
40274 struct nb_cb_destroy_args *args)
40275 {
40276 switch (args->event) {
40277 case NB_EV_VALIDATE:
40278 case NB_EV_PREPARE:
40279 case NB_EV_ABORT:
40280 break;
40281 case NB_EV_APPLY:
40282 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
40283 }
40284
40285 return NB_OK;
40286 }
40287
40288 /*
40289 * XPath:
40290 * /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
40291 */
40292 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_modify(
40293 struct nb_cb_modify_args *args)
40294 {
40295 switch (args->event) {
40296 case NB_EV_VALIDATE:
40297 case NB_EV_PREPARE:
40298 case NB_EV_ABORT:
40299 break;
40300 case NB_EV_APPLY:
40301 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
40302 }
40303
40304 return NB_OK;
40305 }
40306
40307 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_import_destroy(
40308 struct nb_cb_destroy_args *args)
40309 {
40310 switch (args->event) {
40311 case NB_EV_VALIDATE:
40312 case NB_EV_PREPARE:
40313 case NB_EV_ABORT:
40314 break;
40315 case NB_EV_APPLY:
40316 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
40317 }
40318
40319 return NB_OK;
40320 }
40321
40322 /*
40323 * XPath:
40324 * /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
40325 */
40326 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_modify(
40327 struct nb_cb_modify_args *args)
40328 {
40329 switch (args->event) {
40330 case NB_EV_VALIDATE:
40331 case NB_EV_PREPARE:
40332 case NB_EV_ABORT:
40333 break;
40334 case NB_EV_APPLY:
40335 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
40336 }
40337
40338 return NB_OK;
40339 }
40340
40341 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_plist_export_destroy(
40342 struct nb_cb_destroy_args *args)
40343 {
40344 switch (args->event) {
40345 case NB_EV_VALIDATE:
40346 case NB_EV_PREPARE:
40347 case NB_EV_ABORT:
40348 break;
40349 case NB_EV_APPLY:
40350 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
40351 }
40352
40353 return NB_OK;
40354 }
40355
40356 /*
40357 * XPath:
40358 * /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
40359 */
40360 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_modify(
40361 struct nb_cb_modify_args *args)
40362 {
40363 switch (args->event) {
40364 case NB_EV_VALIDATE:
40365 case NB_EV_PREPARE:
40366 case NB_EV_ABORT:
40367 case NB_EV_APPLY:
40368 /* TODO: implement me. */
40369 break;
40370 }
40371
40372 return NB_OK;
40373 }
40374
40375 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_import_destroy(
40376 struct nb_cb_destroy_args *args)
40377 {
40378 switch (args->event) {
40379 case NB_EV_VALIDATE:
40380 case NB_EV_PREPARE:
40381 case NB_EV_ABORT:
40382 case NB_EV_APPLY:
40383 /* TODO: implement me. */
40384 break;
40385 }
40386
40387 return NB_OK;
40388 }
40389
40390 /*
40391 * XPath:
40392 * /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
40393 */
40394 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_modify(
40395 struct nb_cb_modify_args *args)
40396 {
40397 switch (args->event) {
40398 case NB_EV_VALIDATE:
40399 case NB_EV_PREPARE:
40400 case NB_EV_ABORT:
40401 case NB_EV_APPLY:
40402 /* TODO: implement me. */
40403 break;
40404 }
40405
40406 return NB_OK;
40407 }
40408
40409 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_access_list_export_destroy(
40410 struct nb_cb_destroy_args *args)
40411 {
40412 switch (args->event) {
40413 case NB_EV_VALIDATE:
40414 case NB_EV_PREPARE:
40415 case NB_EV_ABORT:
40416 case NB_EV_APPLY:
40417 /* TODO: implement me. */
40418 break;
40419 }
40420
40421 return NB_OK;
40422 }
40423
40424 /*
40425 * XPath:
40426 * /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
40427 */
40428 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_modify(
40429 struct nb_cb_modify_args *args)
40430 {
40431 switch (args->event) {
40432 case NB_EV_VALIDATE:
40433 case NB_EV_PREPARE:
40434 case NB_EV_ABORT:
40435 case NB_EV_APPLY:
40436 /* TODO: implement me. */
40437 break;
40438 }
40439
40440 return NB_OK;
40441 }
40442
40443 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_import_destroy(
40444 struct nb_cb_destroy_args *args)
40445 {
40446 switch (args->event) {
40447 case NB_EV_VALIDATE:
40448 case NB_EV_PREPARE:
40449 case NB_EV_ABORT:
40450 case NB_EV_APPLY:
40451 /* TODO: implement me. */
40452 break;
40453 }
40454
40455 return NB_OK;
40456 }
40457
40458 /*
40459 * XPath:
40460 * /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
40461 */
40462 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_modify(
40463 struct nb_cb_modify_args *args)
40464 {
40465 switch (args->event) {
40466 case NB_EV_VALIDATE:
40467 case NB_EV_PREPARE:
40468 case NB_EV_ABORT:
40469 case NB_EV_APPLY:
40470 /* TODO: implement me. */
40471 break;
40472 }
40473
40474 return NB_OK;
40475 }
40476
40477 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_as_path_filter_list_export_destroy(
40478 struct nb_cb_destroy_args *args)
40479 {
40480 switch (args->event) {
40481 case NB_EV_VALIDATE:
40482 case NB_EV_PREPARE:
40483 case NB_EV_ABORT:
40484 case NB_EV_APPLY:
40485 /* TODO: implement me. */
40486 break;
40487 }
40488
40489 return NB_OK;
40490 }
40491
40492 /*
40493 * XPath:
40494 * /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
40495 */
40496 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_modify(
40497 struct nb_cb_modify_args *args)
40498 {
40499 switch (args->event) {
40500 case NB_EV_VALIDATE:
40501 case NB_EV_PREPARE:
40502 case NB_EV_ABORT:
40503 case NB_EV_APPLY:
40504 /* TODO: implement me. */
40505 break;
40506 }
40507
40508 return NB_OK;
40509 }
40510
40511 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_import_destroy(
40512 struct nb_cb_destroy_args *args)
40513 {
40514 switch (args->event) {
40515 case NB_EV_VALIDATE:
40516 case NB_EV_PREPARE:
40517 case NB_EV_ABORT:
40518 case NB_EV_APPLY:
40519 /* TODO: implement me. */
40520 break;
40521 }
40522
40523 return NB_OK;
40524 }
40525
40526 /*
40527 * XPath:
40528 * /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
40529 */
40530 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_modify(
40531 struct nb_cb_modify_args *args)
40532 {
40533 switch (args->event) {
40534 case NB_EV_VALIDATE:
40535 case NB_EV_PREPARE:
40536 case NB_EV_ABORT:
40537 case NB_EV_APPLY:
40538 /* TODO: implement me. */
40539 break;
40540 }
40541
40542 return NB_OK;
40543 }
40544
40545 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_multicast_filter_config_unsuppress_map_export_destroy(
40546 struct nb_cb_destroy_args *args)
40547 {
40548 switch (args->event) {
40549 case NB_EV_VALIDATE:
40550 case NB_EV_PREPARE:
40551 case NB_EV_ABORT:
40552 case NB_EV_APPLY:
40553 /* TODO: implement me. */
40554 break;
40555 }
40556
40557 return NB_OK;
40558 }
40559
40560 /*
40561 * XPath:
40562 * /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
40563 */
40564 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_add_paths_path_type_modify(
40565 struct nb_cb_modify_args *args)
40566 {
40567 switch (args->event) {
40568 case NB_EV_VALIDATE:
40569 case NB_EV_PREPARE:
40570 case NB_EV_ABORT:
40571 case NB_EV_APPLY:
40572 /* TODO: implement me. */
40573 break;
40574 }
40575
40576 return NB_OK;
40577 }
40578
40579 /*
40580 * XPath:
40581 * /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
40582 */
40583 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_modify(
40584 struct nb_cb_modify_args *args)
40585 {
40586 switch (args->event) {
40587 case NB_EV_VALIDATE:
40588 case NB_EV_PREPARE:
40589 case NB_EV_ABORT:
40590 case NB_EV_APPLY:
40591 /* TODO: implement me. */
40592 break;
40593 }
40594
40595 return NB_OK;
40596 }
40597
40598 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_as_destroy(
40599 struct nb_cb_destroy_args *args)
40600 {
40601 switch (args->event) {
40602 case NB_EV_VALIDATE:
40603 case NB_EV_PREPARE:
40604 case NB_EV_ABORT:
40605 case NB_EV_APPLY:
40606 /* TODO: implement me. */
40607 break;
40608 }
40609
40610 return NB_OK;
40611 }
40612
40613 /*
40614 * XPath:
40615 * /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
40616 */
40617 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_modify(
40618 struct nb_cb_modify_args *args)
40619 {
40620 switch (args->event) {
40621 case NB_EV_VALIDATE:
40622 case NB_EV_PREPARE:
40623 case NB_EV_ABORT:
40624 case NB_EV_APPLY:
40625 /* TODO: implement me. */
40626 break;
40627 }
40628
40629 return NB_OK;
40630 }
40631
40632 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_as_path_options_allow_own_origin_as_destroy(
40633 struct nb_cb_destroy_args *args)
40634 {
40635 switch (args->event) {
40636 case NB_EV_VALIDATE:
40637 case NB_EV_PREPARE:
40638 case NB_EV_ABORT:
40639 case NB_EV_APPLY:
40640 /* TODO: implement me. */
40641 break;
40642 }
40643
40644 return NB_OK;
40645 }
40646
40647 /*
40648 * XPath:
40649 * /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
40650 */
40651 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_as_path_options_replace_peer_as_modify(
40652 struct nb_cb_modify_args *args)
40653 {
40654 switch (args->event) {
40655 case NB_EV_VALIDATE:
40656 case NB_EV_PREPARE:
40657 case NB_EV_ABORT:
40658 return NB_OK;
40659 case NB_EV_APPLY:
40660 return bgp_peer_group_afi_safi_flag_modify(
40661 args, PEER_FLAG_AS_OVERRIDE,
40662 yang_dnode_get_bool(args->dnode, NULL));
40663
40664 break;
40665 }
40666
40667 return NB_OK;
40668 }
40669
40670 /*
40671 * XPath:
40672 * /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
40673 */
40674 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_default_originate_originate_modify(
40675 struct nb_cb_modify_args *args)
40676 {
40677 switch (args->event) {
40678 case NB_EV_VALIDATE:
40679 case NB_EV_PREPARE:
40680 case NB_EV_ABORT:
40681 case NB_EV_APPLY:
40682 /* TODO: implement me. */
40683 break;
40684 }
40685
40686 return NB_OK;
40687 }
40688
40689 /*
40690 * XPath:
40691 * /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
40692 */
40693 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_modify(
40694 struct nb_cb_modify_args *args)
40695 {
40696 switch (args->event) {
40697 case NB_EV_VALIDATE:
40698 case NB_EV_PREPARE:
40699 case NB_EV_ABORT:
40700 case NB_EV_APPLY:
40701 /* TODO: implement me. */
40702 break;
40703 }
40704
40705 return NB_OK;
40706 }
40707
40708 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_default_originate_route_map_destroy(
40709 struct nb_cb_destroy_args *args)
40710 {
40711 switch (args->event) {
40712 case NB_EV_VALIDATE:
40713 case NB_EV_PREPARE:
40714 case NB_EV_ABORT:
40715 case NB_EV_APPLY:
40716 /* TODO: implement me. */
40717 break;
40718 }
40719
40720 return NB_OK;
40721 }
40722
40723 /*
40724 * XPath:
40725 * /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
40726 */
40727 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_as_path_unchanged_modify(
40728 struct nb_cb_modify_args *args)
40729 {
40730 switch (args->event) {
40731 case NB_EV_VALIDATE:
40732 case NB_EV_PREPARE:
40733 case NB_EV_ABORT:
40734 return NB_OK;
40735 case NB_EV_APPLY:
40736 return bgp_peer_group_afi_safi_flag_modify(
40737 args, PEER_FLAG_AS_PATH_UNCHANGED,
40738 yang_dnode_get_bool(args->dnode, NULL));
40739
40740 break;
40741 }
40742
40743 return NB_OK;
40744 }
40745
40746 /*
40747 * XPath:
40748 * /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
40749 */
40750 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_next_hop_unchanged_modify(
40751 struct nb_cb_modify_args *args)
40752 {
40753 switch (args->event) {
40754 case NB_EV_VALIDATE:
40755 case NB_EV_PREPARE:
40756 case NB_EV_ABORT:
40757 return NB_OK;
40758 case NB_EV_APPLY:
40759 return bgp_peer_group_afi_safi_flag_modify(
40760 args, PEER_FLAG_NEXTHOP_UNCHANGED,
40761 yang_dnode_get_bool(args->dnode, NULL));
40762
40763 break;
40764 }
40765
40766 return NB_OK;
40767 }
40768
40769 /*
40770 * XPath:
40771 * /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
40772 */
40773 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_attr_unchanged_med_unchanged_modify(
40774 struct nb_cb_modify_args *args)
40775 {
40776 switch (args->event) {
40777 case NB_EV_VALIDATE:
40778 case NB_EV_PREPARE:
40779 case NB_EV_ABORT:
40780 return NB_OK;
40781 case NB_EV_APPLY:
40782 return bgp_peer_group_afi_safi_flag_modify(
40783 args, PEER_FLAG_MED_UNCHANGED,
40784 yang_dnode_get_bool(args->dnode, NULL));
40785
40786 break;
40787 }
40788
40789 return NB_OK;
40790 }
40791
40792 /*
40793 * XPath:
40794 * /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
40795 */
40796 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_modify(
40797 struct nb_cb_modify_args *args)
40798 {
40799 switch (args->event) {
40800 case NB_EV_VALIDATE:
40801 case NB_EV_PREPARE:
40802 case NB_EV_ABORT:
40803 case NB_EV_APPLY:
40804 /* TODO: implement me. */
40805 break;
40806 }
40807
40808 return NB_OK;
40809 }
40810
40811 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_send_destroy(
40812 struct nb_cb_destroy_args *args)
40813 {
40814 switch (args->event) {
40815 case NB_EV_VALIDATE:
40816 case NB_EV_PREPARE:
40817 case NB_EV_ABORT:
40818 case NB_EV_APPLY:
40819 /* TODO: implement me. */
40820 break;
40821 }
40822
40823 return NB_OK;
40824 }
40825
40826 /*
40827 * XPath:
40828 * /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
40829 */
40830 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_modify(
40831 struct nb_cb_modify_args *args)
40832 {
40833 switch (args->event) {
40834 case NB_EV_VALIDATE:
40835 case NB_EV_PREPARE:
40836 case NB_EV_ABORT:
40837 case NB_EV_APPLY:
40838 /* TODO: implement me. */
40839 break;
40840 }
40841
40842 return NB_OK;
40843 }
40844
40845 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_receive_destroy(
40846 struct nb_cb_destroy_args *args)
40847 {
40848 switch (args->event) {
40849 case NB_EV_VALIDATE:
40850 case NB_EV_PREPARE:
40851 case NB_EV_ABORT:
40852 case NB_EV_APPLY:
40853 /* TODO: implement me. */
40854 break;
40855 }
40856
40857 return NB_OK;
40858 }
40859
40860 /*
40861 * XPath:
40862 * /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
40863 */
40864 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_modify(
40865 struct nb_cb_modify_args *args)
40866 {
40867 switch (args->event) {
40868 case NB_EV_VALIDATE:
40869 case NB_EV_PREPARE:
40870 case NB_EV_ABORT:
40871 case NB_EV_APPLY:
40872 /* TODO: implement me. */
40873 break;
40874 }
40875
40876 return NB_OK;
40877 }
40878
40879 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_orf_capability_orf_both_destroy(
40880 struct nb_cb_destroy_args *args)
40881 {
40882 switch (args->event) {
40883 case NB_EV_VALIDATE:
40884 case NB_EV_PREPARE:
40885 case NB_EV_ABORT:
40886 case NB_EV_APPLY:
40887 /* TODO: implement me. */
40888 break;
40889 }
40890
40891 return NB_OK;
40892 }
40893
40894 /*
40895 * XPath:
40896 * /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
40897 */
40898 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_create(
40899 struct nb_cb_create_args *args)
40900 {
40901 switch (args->event) {
40902 case NB_EV_VALIDATE:
40903 case NB_EV_PREPARE:
40904 case NB_EV_ABORT:
40905 case NB_EV_APPLY:
40906 /* TODO: implement me. */
40907 break;
40908 }
40909
40910 return NB_OK;
40911 }
40912
40913 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_destroy(
40914 struct nb_cb_destroy_args *args)
40915 {
40916 switch (args->event) {
40917 case NB_EV_VALIDATE:
40918 case NB_EV_PREPARE:
40919 case NB_EV_ABORT:
40920 return NB_OK;
40921 case NB_EV_APPLY:
40922 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
40923 }
40924
40925 return NB_OK;
40926 }
40927
40928 /*
40929 * XPath:
40930 * /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
40931 */
40932 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_max_prefixes_modify(
40933 struct nb_cb_modify_args *args)
40934 {
40935 switch (args->event) {
40936 case NB_EV_VALIDATE:
40937 case NB_EV_PREPARE:
40938 case NB_EV_ABORT:
40939 case NB_EV_APPLY:
40940 /* TODO: implement me. */
40941 break;
40942 }
40943
40944 return NB_OK;
40945 }
40946
40947 /*
40948 * XPath:
40949 * /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
40950 */
40951 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_force_check_modify(
40952 struct nb_cb_modify_args *args)
40953 {
40954 switch (args->event) {
40955 case NB_EV_VALIDATE:
40956 case NB_EV_PREPARE:
40957 case NB_EV_ABORT:
40958 case NB_EV_APPLY:
40959 /* TODO: implement me. */
40960 break;
40961 }
40962
40963 return NB_OK;
40964 }
40965
40966 /*
40967 * XPath:
40968 * /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
40969 */
40970 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_modify(
40971 struct nb_cb_modify_args *args)
40972 {
40973 switch (args->event) {
40974 case NB_EV_VALIDATE:
40975 case NB_EV_PREPARE:
40976 case NB_EV_ABORT:
40977 case NB_EV_APPLY:
40978 /* TODO: implement me. */
40979 break;
40980 }
40981
40982 return NB_OK;
40983 }
40984
40985 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_warning_only_destroy(
40986 struct nb_cb_destroy_args *args)
40987 {
40988 switch (args->event) {
40989 case NB_EV_VALIDATE:
40990 case NB_EV_PREPARE:
40991 case NB_EV_ABORT:
40992 case NB_EV_APPLY:
40993 /* TODO: implement me. */
40994 break;
40995 }
40996
40997 return NB_OK;
40998 }
40999
41000 /*
41001 * XPath:
41002 * /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
41003 */
41004 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_modify(
41005 struct nb_cb_modify_args *args)
41006 {
41007 switch (args->event) {
41008 case NB_EV_VALIDATE:
41009 case NB_EV_PREPARE:
41010 case NB_EV_ABORT:
41011 case NB_EV_APPLY:
41012 /* TODO: implement me. */
41013 break;
41014 }
41015
41016 return NB_OK;
41017 }
41018
41019 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_restart_timer_destroy(
41020 struct nb_cb_destroy_args *args)
41021 {
41022 switch (args->event) {
41023 case NB_EV_VALIDATE:
41024 case NB_EV_PREPARE:
41025 case NB_EV_ABORT:
41026 case NB_EV_APPLY:
41027 /* TODO: implement me. */
41028 break;
41029 }
41030
41031 return NB_OK;
41032 }
41033
41034 /*
41035 * XPath:
41036 * /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
41037 */
41038 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
41039 struct nb_cb_modify_args *args)
41040 {
41041 switch (args->event) {
41042 case NB_EV_VALIDATE:
41043 case NB_EV_PREPARE:
41044 case NB_EV_ABORT:
41045 case NB_EV_APPLY:
41046 /* TODO: implement me. */
41047 break;
41048 }
41049
41050 return NB_OK;
41051 }
41052
41053 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
41054 struct nb_cb_destroy_args *args)
41055 {
41056 switch (args->event) {
41057 case NB_EV_VALIDATE:
41058 case NB_EV_PREPARE:
41059 case NB_EV_ABORT:
41060 case NB_EV_APPLY:
41061 /* TODO: implement me. */
41062 break;
41063 }
41064
41065 return NB_OK;
41066 }
41067
41068 /*
41069 * XPath:
41070 * /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
41071 */
41072 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
41073 struct nb_cb_modify_args *args)
41074 {
41075 switch (args->event) {
41076 case NB_EV_VALIDATE:
41077 case NB_EV_PREPARE:
41078 case NB_EV_ABORT:
41079 case NB_EV_APPLY:
41080 /* TODO: implement me. */
41081 break;
41082 }
41083
41084 return NB_OK;
41085 }
41086
41087 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
41088 struct nb_cb_destroy_args *args)
41089 {
41090 switch (args->event) {
41091 case NB_EV_VALIDATE:
41092 case NB_EV_PREPARE:
41093 case NB_EV_ABORT:
41094 case NB_EV_APPLY:
41095 /* TODO: implement me. */
41096 break;
41097 }
41098
41099 return NB_OK;
41100 }
41101
41102 /*
41103 * XPath:
41104 * /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
41105 */
41106 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
41107 struct nb_cb_modify_args *args)
41108 {
41109 switch (args->event) {
41110 case NB_EV_VALIDATE:
41111 case NB_EV_PREPARE:
41112 case NB_EV_ABORT:
41113 case NB_EV_APPLY:
41114 /* TODO: implement me. */
41115 break;
41116 }
41117
41118 return NB_OK;
41119 }
41120
41121 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
41122 struct nb_cb_destroy_args *args)
41123 {
41124 switch (args->event) {
41125 case NB_EV_VALIDATE:
41126 case NB_EV_PREPARE:
41127 case NB_EV_ABORT:
41128 case NB_EV_APPLY:
41129 /* TODO: implement me. */
41130 break;
41131 }
41132
41133 return NB_OK;
41134 }
41135
41136 /*
41137 * XPath:
41138 * /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
41139 */
41140 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
41141 struct nb_cb_modify_args *args)
41142 {
41143 switch (args->event) {
41144 case NB_EV_VALIDATE:
41145 case NB_EV_PREPARE:
41146 case NB_EV_ABORT:
41147 case NB_EV_APPLY:
41148 /* TODO: implement me. */
41149 break;
41150 }
41151
41152 return NB_OK;
41153 }
41154
41155 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
41156 struct nb_cb_destroy_args *args)
41157 {
41158 switch (args->event) {
41159 case NB_EV_VALIDATE:
41160 case NB_EV_PREPARE:
41161 case NB_EV_ABORT:
41162 case NB_EV_APPLY:
41163 /* TODO: implement me. */
41164 break;
41165 }
41166
41167 return NB_OK;
41168 }
41169
41170 /*
41171 * XPath:
41172 * /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
41173 */
41174 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_modify(
41175 struct nb_cb_modify_args *args)
41176 {
41177 switch (args->event) {
41178 case NB_EV_VALIDATE:
41179 case NB_EV_PREPARE:
41180 case NB_EV_ABORT:
41181 case NB_EV_APPLY:
41182 /* TODO: implement me. */
41183 break;
41184 }
41185
41186 return NB_OK;
41187 }
41188
41189 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
41190 struct nb_cb_destroy_args *args)
41191 {
41192 switch (args->event) {
41193 case NB_EV_VALIDATE:
41194 case NB_EV_PREPARE:
41195 case NB_EV_ABORT:
41196 case NB_EV_APPLY:
41197 /* TODO: implement me. */
41198 break;
41199 }
41200
41201 return NB_OK;
41202 }
41203
41204 /*
41205 * XPath:
41206 * /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
41207 */
41208 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_modify(
41209 struct nb_cb_modify_args *args)
41210 {
41211 switch (args->event) {
41212 case NB_EV_VALIDATE:
41213 case NB_EV_PREPARE:
41214 case NB_EV_ABORT:
41215 return NB_OK;
41216 case NB_EV_APPLY:
41217 return bgp_peer_group_afi_safi_flag_modify(
41218 args, PEER_FLAG_NEXTHOP_SELF,
41219 yang_dnode_get_bool(args->dnode, NULL));
41220
41221 break;
41222 }
41223
41224 return NB_OK;
41225 }
41226
41227 /*
41228 * XPath:
41229 * /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
41230 */
41231 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_nexthop_self_next_hop_self_force_modify(
41232 struct nb_cb_modify_args *args)
41233 {
41234 switch (args->event) {
41235 case NB_EV_VALIDATE:
41236 case NB_EV_PREPARE:
41237 case NB_EV_ABORT:
41238 return NB_OK;
41239 case NB_EV_APPLY:
41240 return bgp_peer_group_afi_safi_flag_modify(
41241 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
41242 yang_dnode_get_bool(args->dnode, NULL));
41243
41244 break;
41245 }
41246
41247 return NB_OK;
41248 }
41249
41250 /*
41251 * XPath:
41252 * /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
41253 */
41254 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_modify(
41255 struct nb_cb_modify_args *args)
41256 {
41257 switch (args->event) {
41258 case NB_EV_VALIDATE:
41259 case NB_EV_PREPARE:
41260 case NB_EV_ABORT:
41261 return NB_OK;
41262 case NB_EV_APPLY:
41263 return bgp_peer_group_afi_safi_flag_modify(
41264 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
41265 yang_dnode_get_bool(args->dnode, NULL));
41266
41267 break;
41268 }
41269
41270 return NB_OK;
41271 }
41272
41273 /*
41274 * XPath:
41275 * /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
41276 */
41277 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_all_replace_modify(
41278 struct nb_cb_modify_args *args)
41279 {
41280 switch (args->event) {
41281 case NB_EV_VALIDATE:
41282 case NB_EV_PREPARE:
41283 case NB_EV_ABORT:
41284 return NB_OK;
41285 case NB_EV_APPLY:
41286 return bgp_peer_group_afi_safi_flag_modify(
41287 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
41288 yang_dnode_get_bool(args->dnode, NULL));
41289
41290 break;
41291 }
41292
41293 return NB_OK;
41294 }
41295
41296 /*
41297 * XPath:
41298 * /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
41299 */
41300 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_modify(
41301 struct nb_cb_modify_args *args)
41302 {
41303 switch (args->event) {
41304 case NB_EV_VALIDATE:
41305 case NB_EV_PREPARE:
41306 case NB_EV_ABORT:
41307 return NB_OK;
41308 case NB_EV_APPLY:
41309 return bgp_peer_group_afi_safi_flag_modify(
41310 args, PEER_FLAG_REMOVE_PRIVATE_AS,
41311 yang_dnode_get_bool(args->dnode, NULL));
41312
41313 break;
41314 }
41315
41316 return NB_OK;
41317 }
41318
41319 /*
41320 * XPath:
41321 * /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
41322 */
41323 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_private_as_remove_private_as_replace_modify(
41324 struct nb_cb_modify_args *args)
41325 {
41326 switch (args->event) {
41327 case NB_EV_VALIDATE:
41328 case NB_EV_PREPARE:
41329 case NB_EV_ABORT:
41330 return NB_OK;
41331 case NB_EV_APPLY:
41332 return bgp_peer_group_afi_safi_flag_modify(
41333 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
41334 yang_dnode_get_bool(args->dnode, NULL));
41335
41336 break;
41337 }
41338
41339 return NB_OK;
41340 }
41341
41342 /*
41343 * XPath:
41344 * /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
41345 */
41346 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_route_reflector_route_reflector_client_modify(
41347 struct nb_cb_modify_args *args)
41348 {
41349 switch (args->event) {
41350 case NB_EV_VALIDATE:
41351 case NB_EV_PREPARE:
41352 case NB_EV_ABORT:
41353 return NB_OK;
41354 case NB_EV_APPLY:
41355 return bgp_peer_group_afi_safi_flag_modify(
41356 args, PEER_FLAG_REFLECTOR_CLIENT,
41357 yang_dnode_get_bool(args->dnode, NULL));
41358
41359 break;
41360 }
41361
41362 return NB_OK;
41363 }
41364
41365 /*
41366 * XPath:
41367 * /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
41368 */
41369 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_route_server_route_server_client_modify(
41370 struct nb_cb_modify_args *args)
41371 {
41372 switch (args->event) {
41373 case NB_EV_VALIDATE:
41374 case NB_EV_PREPARE:
41375 case NB_EV_ABORT:
41376 return NB_OK;
41377 case NB_EV_APPLY:
41378 return bgp_peer_group_afi_safi_flag_modify(
41379 args, PEER_FLAG_RSERVER_CLIENT,
41380 yang_dnode_get_bool(args->dnode, NULL));
41381
41382 break;
41383 }
41384
41385 return NB_OK;
41386 }
41387
41388 /*
41389 * XPath:
41390 * /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
41391 */
41392 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_send_community_send_community_modify(
41393 struct nb_cb_modify_args *args)
41394 {
41395 switch (args->event) {
41396 case NB_EV_VALIDATE:
41397 case NB_EV_PREPARE:
41398 case NB_EV_ABORT:
41399 return NB_OK;
41400 case NB_EV_APPLY:
41401 return bgp_peer_group_afi_safi_flag_modify(
41402 args, PEER_FLAG_SEND_COMMUNITY,
41403 yang_dnode_get_bool(args->dnode, NULL));
41404
41405 break;
41406 }
41407
41408 return NB_OK;
41409 }
41410
41411 /*
41412 * XPath:
41413 * /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
41414 */
41415 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_send_community_send_ext_community_modify(
41416 struct nb_cb_modify_args *args)
41417 {
41418 switch (args->event) {
41419 case NB_EV_VALIDATE:
41420 case NB_EV_PREPARE:
41421 case NB_EV_ABORT:
41422 return NB_OK;
41423 case NB_EV_APPLY:
41424 return bgp_peer_group_afi_safi_flag_modify(
41425 args, PEER_FLAG_SEND_EXT_COMMUNITY,
41426 yang_dnode_get_bool(args->dnode, NULL));
41427
41428 break;
41429 }
41430
41431 return NB_OK;
41432 }
41433
41434 /*
41435 * XPath:
41436 * /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
41437 */
41438 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_send_community_send_large_community_modify(
41439 struct nb_cb_modify_args *args)
41440 {
41441 switch (args->event) {
41442 case NB_EV_VALIDATE:
41443 case NB_EV_PREPARE:
41444 case NB_EV_ABORT:
41445 return NB_OK;
41446 case NB_EV_APPLY:
41447 return bgp_peer_group_afi_safi_flag_modify(
41448 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
41449 yang_dnode_get_bool(args->dnode, NULL));
41450
41451 break;
41452 }
41453
41454 return NB_OK;
41455 }
41456
41457 /*
41458 * XPath:
41459 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-multicast/soft-reconfiguration
41460 */
41461 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_soft_reconfiguration_modify(
41462 struct nb_cb_modify_args *args)
41463 {
41464 switch (args->event) {
41465 case NB_EV_VALIDATE:
41466 case NB_EV_PREPARE:
41467 case NB_EV_ABORT:
41468 return NB_OK;
41469 case NB_EV_APPLY:
41470 return bgp_peer_group_afi_safi_flag_modify(
41471 args, PEER_FLAG_SOFT_RECONFIG,
41472 yang_dnode_get_bool(args->dnode, NULL));
41473
41474 break;
41475 }
41476
41477 return NB_OK;
41478 }
41479
41480 /*
41481 * XPath:
41482 * /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
41483 */
41484 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_modify(
41485 struct nb_cb_modify_args *args)
41486 {
41487 switch (args->event) {
41488 case NB_EV_VALIDATE:
41489 case NB_EV_PREPARE:
41490 case NB_EV_ABORT:
41491 return NB_OK;
41492 case NB_EV_APPLY:
41493 return bgp_peer_group_afi_safi_weight_modify(args);
41494
41495 break;
41496 }
41497
41498 return NB_OK;
41499 }
41500
41501 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_weight_weight_attribute_destroy(
41502 struct nb_cb_destroy_args *args)
41503 {
41504 switch (args->event) {
41505 case NB_EV_VALIDATE:
41506 case NB_EV_PREPARE:
41507 case NB_EV_ABORT:
41508 return NB_OK;
41509 case NB_EV_APPLY:
41510 return bgp_peer_group_afi_safi_weight_destroy(args);
41511
41512 break;
41513 }
41514
41515 return NB_OK;
41516 }
41517
41518 /*
41519 * XPath:
41520 * /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
41521 */
41522 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_modify(
41523 struct nb_cb_modify_args *args)
41524 {
41525 switch (args->event) {
41526 case NB_EV_VALIDATE:
41527 case NB_EV_PREPARE:
41528 case NB_EV_ABORT:
41529 break;
41530 case NB_EV_APPLY:
41531 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
41532 }
41533
41534 return NB_OK;
41535 }
41536
41537 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_import_destroy(
41538 struct nb_cb_destroy_args *args)
41539 {
41540 switch (args->event) {
41541 case NB_EV_VALIDATE:
41542 case NB_EV_PREPARE:
41543 case NB_EV_ABORT:
41544 break;
41545 case NB_EV_APPLY:
41546 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
41547 }
41548
41549 return NB_OK;
41550 }
41551
41552 /*
41553 * XPath:
41554 * /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
41555 */
41556 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_modify(
41557 struct nb_cb_modify_args *args)
41558 {
41559 switch (args->event) {
41560 case NB_EV_VALIDATE:
41561 case NB_EV_PREPARE:
41562 case NB_EV_ABORT:
41563 break;
41564 case NB_EV_APPLY:
41565 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
41566 }
41567
41568 return NB_OK;
41569 }
41570
41571 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_rmap_export_destroy(
41572 struct nb_cb_destroy_args *args)
41573 {
41574 switch (args->event) {
41575 case NB_EV_VALIDATE:
41576 case NB_EV_PREPARE:
41577 case NB_EV_ABORT:
41578 break;
41579 case NB_EV_APPLY:
41580 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
41581 }
41582
41583 return NB_OK;
41584 }
41585
41586 /*
41587 * XPath:
41588 * /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
41589 */
41590 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_modify(
41591 struct nb_cb_modify_args *args)
41592 {
41593 switch (args->event) {
41594 case NB_EV_VALIDATE:
41595 case NB_EV_PREPARE:
41596 case NB_EV_ABORT:
41597 break;
41598 case NB_EV_APPLY:
41599 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
41600 }
41601
41602 return NB_OK;
41603 }
41604
41605 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_import_destroy(
41606 struct nb_cb_destroy_args *args)
41607 {
41608 switch (args->event) {
41609 case NB_EV_VALIDATE:
41610 case NB_EV_PREPARE:
41611 case NB_EV_ABORT:
41612 break;
41613 case NB_EV_APPLY:
41614 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
41615 }
41616
41617 return NB_OK;
41618 }
41619
41620 /*
41621 * XPath:
41622 * /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
41623 */
41624 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_modify(
41625 struct nb_cb_modify_args *args)
41626 {
41627 switch (args->event) {
41628 case NB_EV_VALIDATE:
41629 case NB_EV_PREPARE:
41630 case NB_EV_ABORT:
41631 break;
41632 case NB_EV_APPLY:
41633 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
41634 }
41635
41636 return NB_OK;
41637 }
41638
41639 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_plist_export_destroy(
41640 struct nb_cb_destroy_args *args)
41641 {
41642 switch (args->event) {
41643 case NB_EV_VALIDATE:
41644 case NB_EV_PREPARE:
41645 case NB_EV_ABORT:
41646 break;
41647 case NB_EV_APPLY:
41648 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
41649 }
41650
41651 return NB_OK;
41652 }
41653
41654 /*
41655 * XPath:
41656 * /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
41657 */
41658 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_modify(
41659 struct nb_cb_modify_args *args)
41660 {
41661 switch (args->event) {
41662 case NB_EV_VALIDATE:
41663 case NB_EV_PREPARE:
41664 case NB_EV_ABORT:
41665 case NB_EV_APPLY:
41666 /* TODO: implement me. */
41667 break;
41668 }
41669
41670 return NB_OK;
41671 }
41672
41673 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_import_destroy(
41674 struct nb_cb_destroy_args *args)
41675 {
41676 switch (args->event) {
41677 case NB_EV_VALIDATE:
41678 case NB_EV_PREPARE:
41679 case NB_EV_ABORT:
41680 case NB_EV_APPLY:
41681 /* TODO: implement me. */
41682 break;
41683 }
41684
41685 return NB_OK;
41686 }
41687
41688 /*
41689 * XPath:
41690 * /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
41691 */
41692 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_modify(
41693 struct nb_cb_modify_args *args)
41694 {
41695 switch (args->event) {
41696 case NB_EV_VALIDATE:
41697 case NB_EV_PREPARE:
41698 case NB_EV_ABORT:
41699 case NB_EV_APPLY:
41700 /* TODO: implement me. */
41701 break;
41702 }
41703
41704 return NB_OK;
41705 }
41706
41707 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_access_list_export_destroy(
41708 struct nb_cb_destroy_args *args)
41709 {
41710 switch (args->event) {
41711 case NB_EV_VALIDATE:
41712 case NB_EV_PREPARE:
41713 case NB_EV_ABORT:
41714 case NB_EV_APPLY:
41715 /* TODO: implement me. */
41716 break;
41717 }
41718
41719 return NB_OK;
41720 }
41721
41722 /*
41723 * XPath:
41724 * /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
41725 */
41726 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_modify(
41727 struct nb_cb_modify_args *args)
41728 {
41729 switch (args->event) {
41730 case NB_EV_VALIDATE:
41731 case NB_EV_PREPARE:
41732 case NB_EV_ABORT:
41733 case NB_EV_APPLY:
41734 /* TODO: implement me. */
41735 break;
41736 }
41737
41738 return NB_OK;
41739 }
41740
41741 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_import_destroy(
41742 struct nb_cb_destroy_args *args)
41743 {
41744 switch (args->event) {
41745 case NB_EV_VALIDATE:
41746 case NB_EV_PREPARE:
41747 case NB_EV_ABORT:
41748 case NB_EV_APPLY:
41749 /* TODO: implement me. */
41750 break;
41751 }
41752
41753 return NB_OK;
41754 }
41755
41756 /*
41757 * XPath:
41758 * /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
41759 */
41760 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_modify(
41761 struct nb_cb_modify_args *args)
41762 {
41763 switch (args->event) {
41764 case NB_EV_VALIDATE:
41765 case NB_EV_PREPARE:
41766 case NB_EV_ABORT:
41767 case NB_EV_APPLY:
41768 /* TODO: implement me. */
41769 break;
41770 }
41771
41772 return NB_OK;
41773 }
41774
41775 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_as_path_filter_list_export_destroy(
41776 struct nb_cb_destroy_args *args)
41777 {
41778 switch (args->event) {
41779 case NB_EV_VALIDATE:
41780 case NB_EV_PREPARE:
41781 case NB_EV_ABORT:
41782 case NB_EV_APPLY:
41783 /* TODO: implement me. */
41784 break;
41785 }
41786
41787 return NB_OK;
41788 }
41789
41790 /*
41791 * XPath:
41792 * /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
41793 */
41794 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_modify(
41795 struct nb_cb_modify_args *args)
41796 {
41797 switch (args->event) {
41798 case NB_EV_VALIDATE:
41799 case NB_EV_PREPARE:
41800 case NB_EV_ABORT:
41801 case NB_EV_APPLY:
41802 /* TODO: implement me. */
41803 break;
41804 }
41805
41806 return NB_OK;
41807 }
41808
41809 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_import_destroy(
41810 struct nb_cb_destroy_args *args)
41811 {
41812 switch (args->event) {
41813 case NB_EV_VALIDATE:
41814 case NB_EV_PREPARE:
41815 case NB_EV_ABORT:
41816 case NB_EV_APPLY:
41817 /* TODO: implement me. */
41818 break;
41819 }
41820
41821 return NB_OK;
41822 }
41823
41824 /*
41825 * XPath:
41826 * /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
41827 */
41828 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_modify(
41829 struct nb_cb_modify_args *args)
41830 {
41831 switch (args->event) {
41832 case NB_EV_VALIDATE:
41833 case NB_EV_PREPARE:
41834 case NB_EV_ABORT:
41835 case NB_EV_APPLY:
41836 /* TODO: implement me. */
41837 break;
41838 }
41839
41840 return NB_OK;
41841 }
41842
41843 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_multicast_filter_config_unsuppress_map_export_destroy(
41844 struct nb_cb_destroy_args *args)
41845 {
41846 switch (args->event) {
41847 case NB_EV_VALIDATE:
41848 case NB_EV_PREPARE:
41849 case NB_EV_ABORT:
41850 case NB_EV_APPLY:
41851 /* TODO: implement me. */
41852 break;
41853 }
41854
41855 return NB_OK;
41856 }
41857
41858 /*
41859 * XPath:
41860 * /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
41861 */
41862 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_add_paths_path_type_modify(
41863 struct nb_cb_modify_args *args)
41864 {
41865 switch (args->event) {
41866 case NB_EV_VALIDATE:
41867 case NB_EV_PREPARE:
41868 case NB_EV_ABORT:
41869 case NB_EV_APPLY:
41870 /* TODO: implement me. */
41871 break;
41872 }
41873
41874 return NB_OK;
41875 }
41876
41877 /*
41878 * XPath:
41879 * /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
41880 */
41881 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_modify(
41882 struct nb_cb_modify_args *args)
41883 {
41884 switch (args->event) {
41885 case NB_EV_VALIDATE:
41886 case NB_EV_PREPARE:
41887 case NB_EV_ABORT:
41888 case NB_EV_APPLY:
41889 /* TODO: implement me. */
41890 break;
41891 }
41892
41893 return NB_OK;
41894 }
41895
41896 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_as_destroy(
41897 struct nb_cb_destroy_args *args)
41898 {
41899 switch (args->event) {
41900 case NB_EV_VALIDATE:
41901 case NB_EV_PREPARE:
41902 case NB_EV_ABORT:
41903 case NB_EV_APPLY:
41904 /* TODO: implement me. */
41905 break;
41906 }
41907
41908 return NB_OK;
41909 }
41910
41911 /*
41912 * XPath:
41913 * /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
41914 */
41915 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_modify(
41916 struct nb_cb_modify_args *args)
41917 {
41918 switch (args->event) {
41919 case NB_EV_VALIDATE:
41920 case NB_EV_PREPARE:
41921 case NB_EV_ABORT:
41922 case NB_EV_APPLY:
41923 /* TODO: implement me. */
41924 break;
41925 }
41926
41927 return NB_OK;
41928 }
41929
41930 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
41931 struct nb_cb_destroy_args *args)
41932 {
41933 switch (args->event) {
41934 case NB_EV_VALIDATE:
41935 case NB_EV_PREPARE:
41936 case NB_EV_ABORT:
41937 case NB_EV_APPLY:
41938 /* TODO: implement me. */
41939 break;
41940 }
41941
41942 return NB_OK;
41943 }
41944
41945 /*
41946 * XPath:
41947 * /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
41948 */
41949 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_as_path_options_replace_peer_as_modify(
41950 struct nb_cb_modify_args *args)
41951 {
41952 switch (args->event) {
41953 case NB_EV_VALIDATE:
41954 case NB_EV_PREPARE:
41955 case NB_EV_ABORT:
41956 return NB_OK;
41957 case NB_EV_APPLY:
41958 return bgp_peer_group_afi_safi_flag_modify(
41959 args, PEER_FLAG_AS_OVERRIDE,
41960 yang_dnode_get_bool(args->dnode, NULL));
41961
41962 break;
41963 }
41964
41965 return NB_OK;
41966 }
41967
41968 /*
41969 * XPath:
41970 * /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
41971 */
41972 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_originate_modify(
41973 struct nb_cb_modify_args *args)
41974 {
41975 switch (args->event) {
41976 case NB_EV_VALIDATE:
41977 case NB_EV_PREPARE:
41978 case NB_EV_ABORT:
41979 case NB_EV_APPLY:
41980 /* TODO: implement me. */
41981 break;
41982 }
41983
41984 return NB_OK;
41985 }
41986
41987 /*
41988 * XPath:
41989 * /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
41990 */
41991 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_modify(
41992 struct nb_cb_modify_args *args)
41993 {
41994 switch (args->event) {
41995 case NB_EV_VALIDATE:
41996 case NB_EV_PREPARE:
41997 case NB_EV_ABORT:
41998 case NB_EV_APPLY:
41999 /* TODO: implement me. */
42000 break;
42001 }
42002
42003 return NB_OK;
42004 }
42005
42006 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_default_originate_route_map_destroy(
42007 struct nb_cb_destroy_args *args)
42008 {
42009 switch (args->event) {
42010 case NB_EV_VALIDATE:
42011 case NB_EV_PREPARE:
42012 case NB_EV_ABORT:
42013 case NB_EV_APPLY:
42014 /* TODO: implement me. */
42015 break;
42016 }
42017
42018 return NB_OK;
42019 }
42020
42021 /*
42022 * XPath:
42023 * /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
42024 */
42025 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
42026 struct nb_cb_modify_args *args)
42027 {
42028 switch (args->event) {
42029 case NB_EV_VALIDATE:
42030 case NB_EV_PREPARE:
42031 case NB_EV_ABORT:
42032 return NB_OK;
42033 case NB_EV_APPLY:
42034 return bgp_peer_group_afi_safi_flag_modify(
42035 args, PEER_FLAG_AS_PATH_UNCHANGED,
42036 yang_dnode_get_bool(args->dnode, NULL));
42037
42038 break;
42039 }
42040
42041 return NB_OK;
42042 }
42043
42044 /*
42045 * XPath:
42046 * /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
42047 */
42048 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
42049 struct nb_cb_modify_args *args)
42050 {
42051 switch (args->event) {
42052 case NB_EV_VALIDATE:
42053 case NB_EV_PREPARE:
42054 case NB_EV_ABORT:
42055 return NB_OK;
42056 case NB_EV_APPLY:
42057 return bgp_peer_group_afi_safi_flag_modify(
42058 args, PEER_FLAG_NEXTHOP_UNCHANGED,
42059 yang_dnode_get_bool(args->dnode, NULL));
42060
42061 break;
42062 }
42063
42064 return NB_OK;
42065 }
42066
42067 /*
42068 * XPath:
42069 * /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
42070 */
42071 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_attr_unchanged_med_unchanged_modify(
42072 struct nb_cb_modify_args *args)
42073 {
42074 switch (args->event) {
42075 case NB_EV_VALIDATE:
42076 case NB_EV_PREPARE:
42077 case NB_EV_ABORT:
42078 return NB_OK;
42079 case NB_EV_APPLY:
42080 return bgp_peer_group_afi_safi_flag_modify(
42081 args, PEER_FLAG_MED_UNCHANGED,
42082 yang_dnode_get_bool(args->dnode, NULL));
42083
42084 break;
42085 }
42086
42087 return NB_OK;
42088 }
42089
42090 /*
42091 * XPath:
42092 * /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
42093 */
42094 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_modify(
42095 struct nb_cb_modify_args *args)
42096 {
42097 switch (args->event) {
42098 case NB_EV_VALIDATE:
42099 case NB_EV_PREPARE:
42100 case NB_EV_ABORT:
42101 case NB_EV_APPLY:
42102 /* TODO: implement me. */
42103 break;
42104 }
42105
42106 return NB_OK;
42107 }
42108
42109 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_send_destroy(
42110 struct nb_cb_destroy_args *args)
42111 {
42112 switch (args->event) {
42113 case NB_EV_VALIDATE:
42114 case NB_EV_PREPARE:
42115 case NB_EV_ABORT:
42116 case NB_EV_APPLY:
42117 /* TODO: implement me. */
42118 break;
42119 }
42120
42121 return NB_OK;
42122 }
42123
42124 /*
42125 * XPath:
42126 * /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
42127 */
42128 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_modify(
42129 struct nb_cb_modify_args *args)
42130 {
42131 switch (args->event) {
42132 case NB_EV_VALIDATE:
42133 case NB_EV_PREPARE:
42134 case NB_EV_ABORT:
42135 case NB_EV_APPLY:
42136 /* TODO: implement me. */
42137 break;
42138 }
42139
42140 return NB_OK;
42141 }
42142
42143 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_receive_destroy(
42144 struct nb_cb_destroy_args *args)
42145 {
42146 switch (args->event) {
42147 case NB_EV_VALIDATE:
42148 case NB_EV_PREPARE:
42149 case NB_EV_ABORT:
42150 case NB_EV_APPLY:
42151 /* TODO: implement me. */
42152 break;
42153 }
42154
42155 return NB_OK;
42156 }
42157
42158 /*
42159 * XPath:
42160 * /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
42161 */
42162 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_modify(
42163 struct nb_cb_modify_args *args)
42164 {
42165 switch (args->event) {
42166 case NB_EV_VALIDATE:
42167 case NB_EV_PREPARE:
42168 case NB_EV_ABORT:
42169 case NB_EV_APPLY:
42170 /* TODO: implement me. */
42171 break;
42172 }
42173
42174 return NB_OK;
42175 }
42176
42177 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_orf_capability_orf_both_destroy(
42178 struct nb_cb_destroy_args *args)
42179 {
42180 switch (args->event) {
42181 case NB_EV_VALIDATE:
42182 case NB_EV_PREPARE:
42183 case NB_EV_ABORT:
42184 case NB_EV_APPLY:
42185 /* TODO: implement me. */
42186 break;
42187 }
42188
42189 return NB_OK;
42190 }
42191
42192 /*
42193 * XPath:
42194 * /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
42195 */
42196 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_create(
42197 struct nb_cb_create_args *args)
42198 {
42199 switch (args->event) {
42200 case NB_EV_VALIDATE:
42201 case NB_EV_PREPARE:
42202 case NB_EV_ABORT:
42203 case NB_EV_APPLY:
42204 /* TODO: implement me. */
42205 break;
42206 }
42207
42208 return NB_OK;
42209 }
42210
42211 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_destroy(
42212 struct nb_cb_destroy_args *args)
42213 {
42214 switch (args->event) {
42215 case NB_EV_VALIDATE:
42216 case NB_EV_PREPARE:
42217 case NB_EV_ABORT:
42218 return NB_OK;
42219 case NB_EV_APPLY:
42220 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
42221 }
42222
42223 return NB_OK;
42224 }
42225
42226 /*
42227 * XPath:
42228 * /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
42229 */
42230 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
42231 struct nb_cb_modify_args *args)
42232 {
42233 switch (args->event) {
42234 case NB_EV_VALIDATE:
42235 case NB_EV_PREPARE:
42236 case NB_EV_ABORT:
42237 case NB_EV_APPLY:
42238 /* TODO: implement me. */
42239 break;
42240 }
42241
42242 return NB_OK;
42243 }
42244
42245 /*
42246 * XPath:
42247 * /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
42248 */
42249 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_force_check_modify(
42250 struct nb_cb_modify_args *args)
42251 {
42252 switch (args->event) {
42253 case NB_EV_VALIDATE:
42254 case NB_EV_PREPARE:
42255 case NB_EV_ABORT:
42256 case NB_EV_APPLY:
42257 /* TODO: implement me. */
42258 break;
42259 }
42260
42261 return NB_OK;
42262 }
42263
42264 /*
42265 * XPath:
42266 * /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
42267 */
42268 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
42269 struct nb_cb_modify_args *args)
42270 {
42271 switch (args->event) {
42272 case NB_EV_VALIDATE:
42273 case NB_EV_PREPARE:
42274 case NB_EV_ABORT:
42275 case NB_EV_APPLY:
42276 /* TODO: implement me. */
42277 break;
42278 }
42279
42280 return NB_OK;
42281 }
42282
42283 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
42284 struct nb_cb_destroy_args *args)
42285 {
42286 switch (args->event) {
42287 case NB_EV_VALIDATE:
42288 case NB_EV_PREPARE:
42289 case NB_EV_ABORT:
42290 case NB_EV_APPLY:
42291 /* TODO: implement me. */
42292 break;
42293 }
42294
42295 return NB_OK;
42296 }
42297
42298 /*
42299 * XPath:
42300 * /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
42301 */
42302 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
42303 struct nb_cb_modify_args *args)
42304 {
42305 switch (args->event) {
42306 case NB_EV_VALIDATE:
42307 case NB_EV_PREPARE:
42308 case NB_EV_ABORT:
42309 case NB_EV_APPLY:
42310 /* TODO: implement me. */
42311 break;
42312 }
42313
42314 return NB_OK;
42315 }
42316
42317 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
42318 struct nb_cb_destroy_args *args)
42319 {
42320 switch (args->event) {
42321 case NB_EV_VALIDATE:
42322 case NB_EV_PREPARE:
42323 case NB_EV_ABORT:
42324 case NB_EV_APPLY:
42325 /* TODO: implement me. */
42326 break;
42327 }
42328
42329 return NB_OK;
42330 }
42331
42332 /*
42333 * XPath:
42334 * /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
42335 */
42336 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
42337 struct nb_cb_modify_args *args)
42338 {
42339 switch (args->event) {
42340 case NB_EV_VALIDATE:
42341 case NB_EV_PREPARE:
42342 case NB_EV_ABORT:
42343 case NB_EV_APPLY:
42344 /* TODO: implement me. */
42345 break;
42346 }
42347
42348 return NB_OK;
42349 }
42350
42351 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
42352 struct nb_cb_destroy_args *args)
42353 {
42354 switch (args->event) {
42355 case NB_EV_VALIDATE:
42356 case NB_EV_PREPARE:
42357 case NB_EV_ABORT:
42358 case NB_EV_APPLY:
42359 /* TODO: implement me. */
42360 break;
42361 }
42362
42363 return NB_OK;
42364 }
42365
42366 /*
42367 * XPath:
42368 * /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
42369 */
42370 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
42371 struct nb_cb_modify_args *args)
42372 {
42373 switch (args->event) {
42374 case NB_EV_VALIDATE:
42375 case NB_EV_PREPARE:
42376 case NB_EV_ABORT:
42377 case NB_EV_APPLY:
42378 /* TODO: implement me. */
42379 break;
42380 }
42381
42382 return NB_OK;
42383 }
42384
42385 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
42386 struct nb_cb_destroy_args *args)
42387 {
42388 switch (args->event) {
42389 case NB_EV_VALIDATE:
42390 case NB_EV_PREPARE:
42391 case NB_EV_ABORT:
42392 case NB_EV_APPLY:
42393 /* TODO: implement me. */
42394 break;
42395 }
42396
42397 return NB_OK;
42398 }
42399
42400 /*
42401 * XPath:
42402 * /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
42403 */
42404 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
42405 struct nb_cb_modify_args *args)
42406 {
42407 switch (args->event) {
42408 case NB_EV_VALIDATE:
42409 case NB_EV_PREPARE:
42410 case NB_EV_ABORT:
42411 case NB_EV_APPLY:
42412 /* TODO: implement me. */
42413 break;
42414 }
42415
42416 return NB_OK;
42417 }
42418
42419 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
42420 struct nb_cb_destroy_args *args)
42421 {
42422 switch (args->event) {
42423 case NB_EV_VALIDATE:
42424 case NB_EV_PREPARE:
42425 case NB_EV_ABORT:
42426 case NB_EV_APPLY:
42427 /* TODO: implement me. */
42428 break;
42429 }
42430
42431 return NB_OK;
42432 }
42433
42434 /*
42435 * XPath:
42436 * /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
42437 */
42438 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
42439 struct nb_cb_modify_args *args)
42440 {
42441 switch (args->event) {
42442 case NB_EV_VALIDATE:
42443 case NB_EV_PREPARE:
42444 case NB_EV_ABORT:
42445 case NB_EV_APPLY:
42446 /* TODO: implement me. */
42447 break;
42448 }
42449
42450 return NB_OK;
42451 }
42452
42453 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
42454 struct nb_cb_destroy_args *args)
42455 {
42456 switch (args->event) {
42457 case NB_EV_VALIDATE:
42458 case NB_EV_PREPARE:
42459 case NB_EV_ABORT:
42460 case NB_EV_APPLY:
42461 /* TODO: implement me. */
42462 break;
42463 }
42464
42465 return NB_OK;
42466 }
42467
42468 /*
42469 * XPath:
42470 * /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
42471 */
42472 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
42473 struct nb_cb_modify_args *args)
42474 {
42475 switch (args->event) {
42476 case NB_EV_VALIDATE:
42477 case NB_EV_PREPARE:
42478 case NB_EV_ABORT:
42479 case NB_EV_APPLY:
42480 /* TODO: implement me. */
42481 break;
42482 }
42483
42484 return NB_OK;
42485 }
42486
42487 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
42488 struct nb_cb_destroy_args *args)
42489 {
42490 switch (args->event) {
42491 case NB_EV_VALIDATE:
42492 case NB_EV_PREPARE:
42493 case NB_EV_ABORT:
42494 case NB_EV_APPLY:
42495 /* TODO: implement me. */
42496 break;
42497 }
42498
42499 return NB_OK;
42500 }
42501
42502 /*
42503 * XPath:
42504 * /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
42505 */
42506 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_modify(
42507 struct nb_cb_modify_args *args)
42508 {
42509 switch (args->event) {
42510 case NB_EV_VALIDATE:
42511 case NB_EV_PREPARE:
42512 case NB_EV_ABORT:
42513 return NB_OK;
42514 case NB_EV_APPLY:
42515 return bgp_peer_group_afi_safi_flag_modify(
42516 args, PEER_FLAG_NEXTHOP_SELF,
42517 yang_dnode_get_bool(args->dnode, NULL));
42518
42519 break;
42520 }
42521
42522 return NB_OK;
42523 }
42524
42525 /*
42526 * XPath:
42527 * /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
42528 */
42529 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_nexthop_self_next_hop_self_force_modify(
42530 struct nb_cb_modify_args *args)
42531 {
42532 switch (args->event) {
42533 case NB_EV_VALIDATE:
42534 case NB_EV_PREPARE:
42535 case NB_EV_ABORT:
42536 return NB_OK;
42537 case NB_EV_APPLY:
42538 return bgp_peer_group_afi_safi_flag_modify(
42539 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
42540 yang_dnode_get_bool(args->dnode, NULL));
42541
42542 break;
42543 }
42544
42545 return NB_OK;
42546 }
42547
42548 /*
42549 * XPath:
42550 * /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
42551 */
42552 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_modify(
42553 struct nb_cb_modify_args *args)
42554 {
42555 switch (args->event) {
42556 case NB_EV_VALIDATE:
42557 case NB_EV_PREPARE:
42558 case NB_EV_ABORT:
42559 return NB_OK;
42560 case NB_EV_APPLY:
42561 return bgp_peer_group_afi_safi_flag_modify(
42562 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
42563 yang_dnode_get_bool(args->dnode, NULL));
42564
42565 break;
42566 }
42567
42568 return NB_OK;
42569 }
42570
42571 /*
42572 * XPath:
42573 * /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
42574 */
42575 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_all_replace_modify(
42576 struct nb_cb_modify_args *args)
42577 {
42578 switch (args->event) {
42579 case NB_EV_VALIDATE:
42580 case NB_EV_PREPARE:
42581 case NB_EV_ABORT:
42582 return NB_OK;
42583 case NB_EV_APPLY:
42584 return bgp_peer_group_afi_safi_flag_modify(
42585 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
42586 yang_dnode_get_bool(args->dnode, NULL));
42587
42588 break;
42589 }
42590
42591 return NB_OK;
42592 }
42593
42594 /*
42595 * XPath:
42596 * /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
42597 */
42598 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_modify(
42599 struct nb_cb_modify_args *args)
42600 {
42601 switch (args->event) {
42602 case NB_EV_VALIDATE:
42603 case NB_EV_PREPARE:
42604 case NB_EV_ABORT:
42605 return NB_OK;
42606 case NB_EV_APPLY:
42607 return bgp_peer_group_afi_safi_flag_modify(
42608 args, PEER_FLAG_REMOVE_PRIVATE_AS,
42609 yang_dnode_get_bool(args->dnode, NULL));
42610
42611 break;
42612 }
42613
42614 return NB_OK;
42615 }
42616
42617 /*
42618 * XPath:
42619 * /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
42620 */
42621 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_private_as_remove_private_as_replace_modify(
42622 struct nb_cb_modify_args *args)
42623 {
42624 switch (args->event) {
42625 case NB_EV_VALIDATE:
42626 case NB_EV_PREPARE:
42627 case NB_EV_ABORT:
42628 return NB_OK;
42629 case NB_EV_APPLY:
42630 return bgp_peer_group_afi_safi_flag_modify(
42631 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
42632 yang_dnode_get_bool(args->dnode, NULL));
42633
42634 break;
42635 }
42636
42637 return NB_OK;
42638 }
42639
42640 /*
42641 * XPath:
42642 * /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
42643 */
42644 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_route_reflector_route_reflector_client_modify(
42645 struct nb_cb_modify_args *args)
42646 {
42647 switch (args->event) {
42648 case NB_EV_VALIDATE:
42649 case NB_EV_PREPARE:
42650 case NB_EV_ABORT:
42651 return NB_OK;
42652 case NB_EV_APPLY:
42653 return bgp_peer_group_afi_safi_flag_modify(
42654 args, PEER_FLAG_REFLECTOR_CLIENT,
42655 yang_dnode_get_bool(args->dnode, NULL));
42656
42657 break;
42658 }
42659
42660 return NB_OK;
42661 }
42662
42663 /*
42664 * XPath:
42665 * /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
42666 */
42667 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_route_server_route_server_client_modify(
42668 struct nb_cb_modify_args *args)
42669 {
42670 switch (args->event) {
42671 case NB_EV_VALIDATE:
42672 case NB_EV_PREPARE:
42673 case NB_EV_ABORT:
42674 return NB_OK;
42675 case NB_EV_APPLY:
42676 return bgp_peer_group_afi_safi_flag_modify(
42677 args, PEER_FLAG_RSERVER_CLIENT,
42678 yang_dnode_get_bool(args->dnode, NULL));
42679
42680 break;
42681 }
42682
42683 return NB_OK;
42684 }
42685
42686 /*
42687 * XPath:
42688 * /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
42689 */
42690 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_community_modify(
42691 struct nb_cb_modify_args *args)
42692 {
42693 switch (args->event) {
42694 case NB_EV_VALIDATE:
42695 case NB_EV_PREPARE:
42696 case NB_EV_ABORT:
42697 return NB_OK;
42698 case NB_EV_APPLY:
42699 return bgp_peer_group_afi_safi_flag_modify(
42700 args, PEER_FLAG_SEND_COMMUNITY,
42701 yang_dnode_get_bool(args->dnode, NULL));
42702
42703 break;
42704 }
42705
42706 return NB_OK;
42707 }
42708
42709 /*
42710 * XPath:
42711 * /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
42712 */
42713 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_ext_community_modify(
42714 struct nb_cb_modify_args *args)
42715 {
42716 switch (args->event) {
42717 case NB_EV_VALIDATE:
42718 case NB_EV_PREPARE:
42719 case NB_EV_ABORT:
42720 return NB_OK;
42721 case NB_EV_APPLY:
42722 return bgp_peer_group_afi_safi_flag_modify(
42723 args, PEER_FLAG_SEND_EXT_COMMUNITY,
42724 yang_dnode_get_bool(args->dnode, NULL));
42725
42726 break;
42727 }
42728
42729 return NB_OK;
42730 }
42731
42732 /*
42733 * XPath:
42734 * /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
42735 */
42736 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_send_community_send_large_community_modify(
42737 struct nb_cb_modify_args *args)
42738 {
42739 switch (args->event) {
42740 case NB_EV_VALIDATE:
42741 case NB_EV_PREPARE:
42742 case NB_EV_ABORT:
42743 return NB_OK;
42744 case NB_EV_APPLY:
42745 return bgp_peer_group_afi_safi_flag_modify(
42746 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
42747 yang_dnode_get_bool(args->dnode, NULL));
42748
42749 break;
42750 }
42751
42752 return NB_OK;
42753 }
42754
42755 /*
42756 * XPath:
42757 * /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
42758 */
42759 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_soft_reconfiguration_modify(
42760 struct nb_cb_modify_args *args)
42761 {
42762 switch (args->event) {
42763 case NB_EV_VALIDATE:
42764 case NB_EV_PREPARE:
42765 case NB_EV_ABORT:
42766 return NB_OK;
42767 case NB_EV_APPLY:
42768 return bgp_peer_group_afi_safi_flag_modify(
42769 args, PEER_FLAG_SOFT_RECONFIG,
42770 yang_dnode_get_bool(args->dnode, NULL));
42771
42772 break;
42773 }
42774
42775 return NB_OK;
42776 }
42777
42778 /*
42779 * XPath:
42780 * /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
42781 */
42782 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_modify(
42783 struct nb_cb_modify_args *args)
42784 {
42785 switch (args->event) {
42786 case NB_EV_VALIDATE:
42787 case NB_EV_PREPARE:
42788 case NB_EV_ABORT:
42789 return NB_OK;
42790 case NB_EV_APPLY:
42791 return bgp_peer_group_afi_safi_weight_modify(args);
42792
42793 break;
42794 }
42795
42796 return NB_OK;
42797 }
42798
42799 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_weight_weight_attribute_destroy(
42800 struct nb_cb_destroy_args *args)
42801 {
42802 switch (args->event) {
42803 case NB_EV_VALIDATE:
42804 case NB_EV_PREPARE:
42805 case NB_EV_ABORT:
42806 return NB_OK;
42807 case NB_EV_APPLY:
42808 return bgp_peer_group_afi_safi_weight_destroy(args);
42809
42810 break;
42811 }
42812
42813 return NB_OK;
42814 }
42815
42816 /*
42817 * XPath:
42818 * /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
42819 */
42820 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_modify(
42821 struct nb_cb_modify_args *args)
42822 {
42823 switch (args->event) {
42824 case NB_EV_VALIDATE:
42825 case NB_EV_PREPARE:
42826 case NB_EV_ABORT:
42827 break;
42828 case NB_EV_APPLY:
42829 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
42830 }
42831
42832 return NB_OK;
42833 }
42834
42835 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_import_destroy(
42836 struct nb_cb_destroy_args *args)
42837 {
42838 switch (args->event) {
42839 case NB_EV_VALIDATE:
42840 case NB_EV_PREPARE:
42841 case NB_EV_ABORT:
42842 break;
42843 case NB_EV_APPLY:
42844 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
42845 }
42846
42847 return NB_OK;
42848 }
42849
42850 /*
42851 * XPath:
42852 * /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
42853 */
42854 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_modify(
42855 struct nb_cb_modify_args *args)
42856 {
42857 switch (args->event) {
42858 case NB_EV_VALIDATE:
42859 case NB_EV_PREPARE:
42860 case NB_EV_ABORT:
42861 break;
42862 case NB_EV_APPLY:
42863 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
42864 }
42865
42866 return NB_OK;
42867 }
42868
42869 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_rmap_export_destroy(
42870 struct nb_cb_destroy_args *args)
42871 {
42872 switch (args->event) {
42873 case NB_EV_VALIDATE:
42874 case NB_EV_PREPARE:
42875 case NB_EV_ABORT:
42876 break;
42877 case NB_EV_APPLY:
42878 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
42879 }
42880
42881 return NB_OK;
42882 }
42883
42884 /*
42885 * XPath:
42886 * /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
42887 */
42888 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_modify(
42889 struct nb_cb_modify_args *args)
42890 {
42891 switch (args->event) {
42892 case NB_EV_VALIDATE:
42893 case NB_EV_PREPARE:
42894 case NB_EV_ABORT:
42895 break;
42896 case NB_EV_APPLY:
42897 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
42898 }
42899
42900 return NB_OK;
42901 }
42902
42903 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_import_destroy(
42904 struct nb_cb_destroy_args *args)
42905 {
42906 switch (args->event) {
42907 case NB_EV_VALIDATE:
42908 case NB_EV_PREPARE:
42909 case NB_EV_ABORT:
42910 break;
42911 case NB_EV_APPLY:
42912 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
42913 }
42914
42915 return NB_OK;
42916 }
42917
42918 /*
42919 * XPath:
42920 * /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
42921 */
42922 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_modify(
42923 struct nb_cb_modify_args *args)
42924 {
42925 switch (args->event) {
42926 case NB_EV_VALIDATE:
42927 case NB_EV_PREPARE:
42928 case NB_EV_ABORT:
42929 break;
42930 case NB_EV_APPLY:
42931 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
42932 }
42933
42934 return NB_OK;
42935 }
42936
42937 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_plist_export_destroy(
42938 struct nb_cb_destroy_args *args)
42939 {
42940 switch (args->event) {
42941 case NB_EV_VALIDATE:
42942 case NB_EV_PREPARE:
42943 case NB_EV_ABORT:
42944 break;
42945 case NB_EV_APPLY:
42946 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
42947 }
42948
42949 return NB_OK;
42950 }
42951
42952 /*
42953 * XPath:
42954 * /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
42955 */
42956 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_modify(
42957 struct nb_cb_modify_args *args)
42958 {
42959 switch (args->event) {
42960 case NB_EV_VALIDATE:
42961 case NB_EV_PREPARE:
42962 case NB_EV_ABORT:
42963 case NB_EV_APPLY:
42964 /* TODO: implement me. */
42965 break;
42966 }
42967
42968 return NB_OK;
42969 }
42970
42971 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_import_destroy(
42972 struct nb_cb_destroy_args *args)
42973 {
42974 switch (args->event) {
42975 case NB_EV_VALIDATE:
42976 case NB_EV_PREPARE:
42977 case NB_EV_ABORT:
42978 case NB_EV_APPLY:
42979 /* TODO: implement me. */
42980 break;
42981 }
42982
42983 return NB_OK;
42984 }
42985
42986 /*
42987 * XPath:
42988 * /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
42989 */
42990 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_modify(
42991 struct nb_cb_modify_args *args)
42992 {
42993 switch (args->event) {
42994 case NB_EV_VALIDATE:
42995 case NB_EV_PREPARE:
42996 case NB_EV_ABORT:
42997 case NB_EV_APPLY:
42998 /* TODO: implement me. */
42999 break;
43000 }
43001
43002 return NB_OK;
43003 }
43004
43005 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_access_list_export_destroy(
43006 struct nb_cb_destroy_args *args)
43007 {
43008 switch (args->event) {
43009 case NB_EV_VALIDATE:
43010 case NB_EV_PREPARE:
43011 case NB_EV_ABORT:
43012 case NB_EV_APPLY:
43013 /* TODO: implement me. */
43014 break;
43015 }
43016
43017 return NB_OK;
43018 }
43019
43020 /*
43021 * XPath:
43022 * /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
43023 */
43024 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_modify(
43025 struct nb_cb_modify_args *args)
43026 {
43027 switch (args->event) {
43028 case NB_EV_VALIDATE:
43029 case NB_EV_PREPARE:
43030 case NB_EV_ABORT:
43031 case NB_EV_APPLY:
43032 /* TODO: implement me. */
43033 break;
43034 }
43035
43036 return NB_OK;
43037 }
43038
43039 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_import_destroy(
43040 struct nb_cb_destroy_args *args)
43041 {
43042 switch (args->event) {
43043 case NB_EV_VALIDATE:
43044 case NB_EV_PREPARE:
43045 case NB_EV_ABORT:
43046 case NB_EV_APPLY:
43047 /* TODO: implement me. */
43048 break;
43049 }
43050
43051 return NB_OK;
43052 }
43053
43054 /*
43055 * XPath:
43056 * /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
43057 */
43058 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_modify(
43059 struct nb_cb_modify_args *args)
43060 {
43061 switch (args->event) {
43062 case NB_EV_VALIDATE:
43063 case NB_EV_PREPARE:
43064 case NB_EV_ABORT:
43065 case NB_EV_APPLY:
43066 /* TODO: implement me. */
43067 break;
43068 }
43069
43070 return NB_OK;
43071 }
43072
43073 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_as_path_filter_list_export_destroy(
43074 struct nb_cb_destroy_args *args)
43075 {
43076 switch (args->event) {
43077 case NB_EV_VALIDATE:
43078 case NB_EV_PREPARE:
43079 case NB_EV_ABORT:
43080 case NB_EV_APPLY:
43081 /* TODO: implement me. */
43082 break;
43083 }
43084
43085 return NB_OK;
43086 }
43087
43088 /*
43089 * XPath:
43090 * /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
43091 */
43092 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_modify(
43093 struct nb_cb_modify_args *args)
43094 {
43095 switch (args->event) {
43096 case NB_EV_VALIDATE:
43097 case NB_EV_PREPARE:
43098 case NB_EV_ABORT:
43099 case NB_EV_APPLY:
43100 /* TODO: implement me. */
43101 break;
43102 }
43103
43104 return NB_OK;
43105 }
43106
43107 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_import_destroy(
43108 struct nb_cb_destroy_args *args)
43109 {
43110 switch (args->event) {
43111 case NB_EV_VALIDATE:
43112 case NB_EV_PREPARE:
43113 case NB_EV_ABORT:
43114 case NB_EV_APPLY:
43115 /* TODO: implement me. */
43116 break;
43117 }
43118
43119 return NB_OK;
43120 }
43121
43122 /*
43123 * XPath:
43124 * /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
43125 */
43126 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_modify(
43127 struct nb_cb_modify_args *args)
43128 {
43129 switch (args->event) {
43130 case NB_EV_VALIDATE:
43131 case NB_EV_PREPARE:
43132 case NB_EV_ABORT:
43133 case NB_EV_APPLY:
43134 /* TODO: implement me. */
43135 break;
43136 }
43137
43138 return NB_OK;
43139 }
43140
43141 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_labeled_unicast_filter_config_unsuppress_map_export_destroy(
43142 struct nb_cb_destroy_args *args)
43143 {
43144 switch (args->event) {
43145 case NB_EV_VALIDATE:
43146 case NB_EV_PREPARE:
43147 case NB_EV_ABORT:
43148 case NB_EV_APPLY:
43149 /* TODO: implement me. */
43150 break;
43151 }
43152
43153 return NB_OK;
43154 }
43155
43156 /*
43157 * XPath:
43158 * /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
43159 */
43160 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_add_paths_path_type_modify(
43161 struct nb_cb_modify_args *args)
43162 {
43163 switch (args->event) {
43164 case NB_EV_VALIDATE:
43165 case NB_EV_PREPARE:
43166 case NB_EV_ABORT:
43167 case NB_EV_APPLY:
43168 /* TODO: implement me. */
43169 break;
43170 }
43171
43172 return NB_OK;
43173 }
43174
43175 /*
43176 * XPath:
43177 * /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
43178 */
43179 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_modify(
43180 struct nb_cb_modify_args *args)
43181 {
43182 switch (args->event) {
43183 case NB_EV_VALIDATE:
43184 case NB_EV_PREPARE:
43185 case NB_EV_ABORT:
43186 case NB_EV_APPLY:
43187 /* TODO: implement me. */
43188 break;
43189 }
43190
43191 return NB_OK;
43192 }
43193
43194 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_as_destroy(
43195 struct nb_cb_destroy_args *args)
43196 {
43197 switch (args->event) {
43198 case NB_EV_VALIDATE:
43199 case NB_EV_PREPARE:
43200 case NB_EV_ABORT:
43201 case NB_EV_APPLY:
43202 /* TODO: implement me. */
43203 break;
43204 }
43205
43206 return NB_OK;
43207 }
43208
43209 /*
43210 * XPath:
43211 * /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
43212 */
43213 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_modify(
43214 struct nb_cb_modify_args *args)
43215 {
43216 switch (args->event) {
43217 case NB_EV_VALIDATE:
43218 case NB_EV_PREPARE:
43219 case NB_EV_ABORT:
43220 case NB_EV_APPLY:
43221 /* TODO: implement me. */
43222 break;
43223 }
43224
43225 return NB_OK;
43226 }
43227
43228 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_allow_own_origin_as_destroy(
43229 struct nb_cb_destroy_args *args)
43230 {
43231 switch (args->event) {
43232 case NB_EV_VALIDATE:
43233 case NB_EV_PREPARE:
43234 case NB_EV_ABORT:
43235 case NB_EV_APPLY:
43236 /* TODO: implement me. */
43237 break;
43238 }
43239
43240 return NB_OK;
43241 }
43242
43243 /*
43244 * XPath:
43245 * /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
43246 */
43247 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_as_path_options_replace_peer_as_modify(
43248 struct nb_cb_modify_args *args)
43249 {
43250 switch (args->event) {
43251 case NB_EV_VALIDATE:
43252 case NB_EV_PREPARE:
43253 case NB_EV_ABORT:
43254 return NB_OK;
43255 case NB_EV_APPLY:
43256 return bgp_peer_group_afi_safi_flag_modify(
43257 args, PEER_FLAG_AS_OVERRIDE,
43258 yang_dnode_get_bool(args->dnode, NULL));
43259
43260 break;
43261 }
43262
43263 return NB_OK;
43264 }
43265
43266 /*
43267 * XPath:
43268 * /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
43269 */
43270 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_originate_modify(
43271 struct nb_cb_modify_args *args)
43272 {
43273 switch (args->event) {
43274 case NB_EV_VALIDATE:
43275 case NB_EV_PREPARE:
43276 case NB_EV_ABORT:
43277 case NB_EV_APPLY:
43278 /* TODO: implement me. */
43279 break;
43280 }
43281
43282 return NB_OK;
43283 }
43284
43285 /*
43286 * XPath:
43287 * /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
43288 */
43289 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_modify(
43290 struct nb_cb_modify_args *args)
43291 {
43292 switch (args->event) {
43293 case NB_EV_VALIDATE:
43294 case NB_EV_PREPARE:
43295 case NB_EV_ABORT:
43296 case NB_EV_APPLY:
43297 /* TODO: implement me. */
43298 break;
43299 }
43300
43301 return NB_OK;
43302 }
43303
43304 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_default_originate_route_map_destroy(
43305 struct nb_cb_destroy_args *args)
43306 {
43307 switch (args->event) {
43308 case NB_EV_VALIDATE:
43309 case NB_EV_PREPARE:
43310 case NB_EV_ABORT:
43311 case NB_EV_APPLY:
43312 /* TODO: implement me. */
43313 break;
43314 }
43315
43316 return NB_OK;
43317 }
43318
43319 /*
43320 * XPath:
43321 * /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
43322 */
43323 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_as_path_unchanged_modify(
43324 struct nb_cb_modify_args *args)
43325 {
43326 switch (args->event) {
43327 case NB_EV_VALIDATE:
43328 case NB_EV_PREPARE:
43329 case NB_EV_ABORT:
43330 return NB_OK;
43331 case NB_EV_APPLY:
43332 return bgp_peer_group_afi_safi_flag_modify(
43333 args, PEER_FLAG_AS_PATH_UNCHANGED,
43334 yang_dnode_get_bool(args->dnode, NULL));
43335
43336 break;
43337 }
43338
43339 return NB_OK;
43340 }
43341
43342 /*
43343 * XPath:
43344 * /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
43345 */
43346 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_next_hop_unchanged_modify(
43347 struct nb_cb_modify_args *args)
43348 {
43349 switch (args->event) {
43350 case NB_EV_VALIDATE:
43351 case NB_EV_PREPARE:
43352 case NB_EV_ABORT:
43353 return NB_OK;
43354 case NB_EV_APPLY:
43355 return bgp_peer_group_afi_safi_flag_modify(
43356 args, PEER_FLAG_NEXTHOP_UNCHANGED,
43357 yang_dnode_get_bool(args->dnode, NULL));
43358
43359 break;
43360 }
43361
43362 return NB_OK;
43363 }
43364
43365 /*
43366 * XPath:
43367 * /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
43368 */
43369 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_attr_unchanged_med_unchanged_modify(
43370 struct nb_cb_modify_args *args)
43371 {
43372 switch (args->event) {
43373 case NB_EV_VALIDATE:
43374 case NB_EV_PREPARE:
43375 case NB_EV_ABORT:
43376 return NB_OK;
43377 case NB_EV_APPLY:
43378 return bgp_peer_group_afi_safi_flag_modify(
43379 args, PEER_FLAG_MED_UNCHANGED,
43380 yang_dnode_get_bool(args->dnode, NULL));
43381
43382 break;
43383 }
43384
43385 return NB_OK;
43386 }
43387
43388 /*
43389 * XPath:
43390 * /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
43391 */
43392 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_modify(
43393 struct nb_cb_modify_args *args)
43394 {
43395 switch (args->event) {
43396 case NB_EV_VALIDATE:
43397 case NB_EV_PREPARE:
43398 case NB_EV_ABORT:
43399 case NB_EV_APPLY:
43400 /* TODO: implement me. */
43401 break;
43402 }
43403
43404 return NB_OK;
43405 }
43406
43407 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_send_destroy(
43408 struct nb_cb_destroy_args *args)
43409 {
43410 switch (args->event) {
43411 case NB_EV_VALIDATE:
43412 case NB_EV_PREPARE:
43413 case NB_EV_ABORT:
43414 case NB_EV_APPLY:
43415 /* TODO: implement me. */
43416 break;
43417 }
43418
43419 return NB_OK;
43420 }
43421
43422 /*
43423 * XPath:
43424 * /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
43425 */
43426 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_modify(
43427 struct nb_cb_modify_args *args)
43428 {
43429 switch (args->event) {
43430 case NB_EV_VALIDATE:
43431 case NB_EV_PREPARE:
43432 case NB_EV_ABORT:
43433 case NB_EV_APPLY:
43434 /* TODO: implement me. */
43435 break;
43436 }
43437
43438 return NB_OK;
43439 }
43440
43441 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_receive_destroy(
43442 struct nb_cb_destroy_args *args)
43443 {
43444 switch (args->event) {
43445 case NB_EV_VALIDATE:
43446 case NB_EV_PREPARE:
43447 case NB_EV_ABORT:
43448 case NB_EV_APPLY:
43449 /* TODO: implement me. */
43450 break;
43451 }
43452
43453 return NB_OK;
43454 }
43455
43456 /*
43457 * XPath:
43458 * /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
43459 */
43460 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_modify(
43461 struct nb_cb_modify_args *args)
43462 {
43463 switch (args->event) {
43464 case NB_EV_VALIDATE:
43465 case NB_EV_PREPARE:
43466 case NB_EV_ABORT:
43467 case NB_EV_APPLY:
43468 /* TODO: implement me. */
43469 break;
43470 }
43471
43472 return NB_OK;
43473 }
43474
43475 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_orf_capability_orf_both_destroy(
43476 struct nb_cb_destroy_args *args)
43477 {
43478 switch (args->event) {
43479 case NB_EV_VALIDATE:
43480 case NB_EV_PREPARE:
43481 case NB_EV_ABORT:
43482 case NB_EV_APPLY:
43483 /* TODO: implement me. */
43484 break;
43485 }
43486
43487 return NB_OK;
43488 }
43489
43490 /*
43491 * XPath:
43492 * /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
43493 */
43494 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_create(
43495 struct nb_cb_create_args *args)
43496 {
43497 switch (args->event) {
43498 case NB_EV_VALIDATE:
43499 case NB_EV_PREPARE:
43500 case NB_EV_ABORT:
43501 case NB_EV_APPLY:
43502 /* TODO: implement me. */
43503 break;
43504 }
43505
43506 return NB_OK;
43507 }
43508
43509 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_destroy(
43510 struct nb_cb_destroy_args *args)
43511 {
43512 switch (args->event) {
43513 case NB_EV_VALIDATE:
43514 case NB_EV_PREPARE:
43515 case NB_EV_ABORT:
43516 return NB_OK;
43517 case NB_EV_APPLY:
43518 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
43519 }
43520
43521 return NB_OK;
43522 }
43523
43524 /*
43525 * XPath:
43526 * /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
43527 */
43528 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_max_prefixes_modify(
43529 struct nb_cb_modify_args *args)
43530 {
43531 switch (args->event) {
43532 case NB_EV_VALIDATE:
43533 case NB_EV_PREPARE:
43534 case NB_EV_ABORT:
43535 case NB_EV_APPLY:
43536 /* TODO: implement me. */
43537 break;
43538 }
43539
43540 return NB_OK;
43541 }
43542
43543 /*
43544 * XPath:
43545 * /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
43546 */
43547 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_force_check_modify(
43548 struct nb_cb_modify_args *args)
43549 {
43550 switch (args->event) {
43551 case NB_EV_VALIDATE:
43552 case NB_EV_PREPARE:
43553 case NB_EV_ABORT:
43554 case NB_EV_APPLY:
43555 /* TODO: implement me. */
43556 break;
43557 }
43558
43559 return NB_OK;
43560 }
43561
43562 /*
43563 * XPath:
43564 * /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
43565 */
43566 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_modify(
43567 struct nb_cb_modify_args *args)
43568 {
43569 switch (args->event) {
43570 case NB_EV_VALIDATE:
43571 case NB_EV_PREPARE:
43572 case NB_EV_ABORT:
43573 case NB_EV_APPLY:
43574 /* TODO: implement me. */
43575 break;
43576 }
43577
43578 return NB_OK;
43579 }
43580
43581 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_warning_only_destroy(
43582 struct nb_cb_destroy_args *args)
43583 {
43584 switch (args->event) {
43585 case NB_EV_VALIDATE:
43586 case NB_EV_PREPARE:
43587 case NB_EV_ABORT:
43588 case NB_EV_APPLY:
43589 /* TODO: implement me. */
43590 break;
43591 }
43592
43593 return NB_OK;
43594 }
43595
43596 /*
43597 * XPath:
43598 * /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
43599 */
43600 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_modify(
43601 struct nb_cb_modify_args *args)
43602 {
43603 switch (args->event) {
43604 case NB_EV_VALIDATE:
43605 case NB_EV_PREPARE:
43606 case NB_EV_ABORT:
43607 case NB_EV_APPLY:
43608 /* TODO: implement me. */
43609 break;
43610 }
43611
43612 return NB_OK;
43613 }
43614
43615 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
43616 struct nb_cb_destroy_args *args)
43617 {
43618 switch (args->event) {
43619 case NB_EV_VALIDATE:
43620 case NB_EV_PREPARE:
43621 case NB_EV_ABORT:
43622 case NB_EV_APPLY:
43623 /* TODO: implement me. */
43624 break;
43625 }
43626
43627 return NB_OK;
43628 }
43629
43630 /*
43631 * XPath:
43632 * /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
43633 */
43634 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
43635 struct nb_cb_modify_args *args)
43636 {
43637 switch (args->event) {
43638 case NB_EV_VALIDATE:
43639 case NB_EV_PREPARE:
43640 case NB_EV_ABORT:
43641 case NB_EV_APPLY:
43642 /* TODO: implement me. */
43643 break;
43644 }
43645
43646 return NB_OK;
43647 }
43648
43649 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
43650 struct nb_cb_destroy_args *args)
43651 {
43652 switch (args->event) {
43653 case NB_EV_VALIDATE:
43654 case NB_EV_PREPARE:
43655 case NB_EV_ABORT:
43656 case NB_EV_APPLY:
43657 /* TODO: implement me. */
43658 break;
43659 }
43660
43661 return NB_OK;
43662 }
43663
43664 /*
43665 * XPath:
43666 * /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
43667 */
43668 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
43669 struct nb_cb_modify_args *args)
43670 {
43671 switch (args->event) {
43672 case NB_EV_VALIDATE:
43673 case NB_EV_PREPARE:
43674 case NB_EV_ABORT:
43675 case NB_EV_APPLY:
43676 /* TODO: implement me. */
43677 break;
43678 }
43679
43680 return NB_OK;
43681 }
43682
43683 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
43684 struct nb_cb_destroy_args *args)
43685 {
43686 switch (args->event) {
43687 case NB_EV_VALIDATE:
43688 case NB_EV_PREPARE:
43689 case NB_EV_ABORT:
43690 case NB_EV_APPLY:
43691 /* TODO: implement me. */
43692 break;
43693 }
43694
43695 return NB_OK;
43696 }
43697
43698 /*
43699 * XPath:
43700 * /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
43701 */
43702 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
43703 struct nb_cb_modify_args *args)
43704 {
43705 switch (args->event) {
43706 case NB_EV_VALIDATE:
43707 case NB_EV_PREPARE:
43708 case NB_EV_ABORT:
43709 case NB_EV_APPLY:
43710 /* TODO: implement me. */
43711 break;
43712 }
43713
43714 return NB_OK;
43715 }
43716
43717 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
43718 struct nb_cb_destroy_args *args)
43719 {
43720 switch (args->event) {
43721 case NB_EV_VALIDATE:
43722 case NB_EV_PREPARE:
43723 case NB_EV_ABORT:
43724 case NB_EV_APPLY:
43725 /* TODO: implement me. */
43726 break;
43727 }
43728
43729 return NB_OK;
43730 }
43731
43732 /*
43733 * XPath:
43734 * /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
43735 */
43736 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
43737 struct nb_cb_modify_args *args)
43738 {
43739 switch (args->event) {
43740 case NB_EV_VALIDATE:
43741 case NB_EV_PREPARE:
43742 case NB_EV_ABORT:
43743 case NB_EV_APPLY:
43744 /* TODO: implement me. */
43745 break;
43746 }
43747
43748 return NB_OK;
43749 }
43750
43751 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
43752 struct nb_cb_destroy_args *args)
43753 {
43754 switch (args->event) {
43755 case NB_EV_VALIDATE:
43756 case NB_EV_PREPARE:
43757 case NB_EV_ABORT:
43758 case NB_EV_APPLY:
43759 /* TODO: implement me. */
43760 break;
43761 }
43762
43763 return NB_OK;
43764 }
43765
43766 /*
43767 * XPath:
43768 * /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
43769 */
43770 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
43771 struct nb_cb_modify_args *args)
43772 {
43773 switch (args->event) {
43774 case NB_EV_VALIDATE:
43775 case NB_EV_PREPARE:
43776 case NB_EV_ABORT:
43777 case NB_EV_APPLY:
43778 /* TODO: implement me. */
43779 break;
43780 }
43781
43782 return NB_OK;
43783 }
43784
43785 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
43786 struct nb_cb_destroy_args *args)
43787 {
43788 switch (args->event) {
43789 case NB_EV_VALIDATE:
43790 case NB_EV_PREPARE:
43791 case NB_EV_ABORT:
43792 case NB_EV_APPLY:
43793 /* TODO: implement me. */
43794 break;
43795 }
43796
43797 return NB_OK;
43798 }
43799
43800 /*
43801 * XPath:
43802 * /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
43803 */
43804 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_modify(
43805 struct nb_cb_modify_args *args)
43806 {
43807 switch (args->event) {
43808 case NB_EV_VALIDATE:
43809 case NB_EV_PREPARE:
43810 case NB_EV_ABORT:
43811 return NB_OK;
43812 case NB_EV_APPLY:
43813 return bgp_peer_group_afi_safi_flag_modify(
43814 args, PEER_FLAG_NEXTHOP_SELF,
43815 yang_dnode_get_bool(args->dnode, NULL));
43816
43817 break;
43818 }
43819
43820 return NB_OK;
43821 }
43822
43823 /*
43824 * XPath:
43825 * /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
43826 */
43827 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_nexthop_self_next_hop_self_force_modify(
43828 struct nb_cb_modify_args *args)
43829 {
43830 switch (args->event) {
43831 case NB_EV_VALIDATE:
43832 case NB_EV_PREPARE:
43833 case NB_EV_ABORT:
43834 return NB_OK;
43835 case NB_EV_APPLY:
43836 return bgp_peer_group_afi_safi_flag_modify(
43837 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
43838 yang_dnode_get_bool(args->dnode, NULL));
43839
43840 break;
43841 }
43842
43843 return NB_OK;
43844 }
43845
43846 /*
43847 * XPath:
43848 * /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
43849 */
43850 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_modify(
43851 struct nb_cb_modify_args *args)
43852 {
43853 switch (args->event) {
43854 case NB_EV_VALIDATE:
43855 case NB_EV_PREPARE:
43856 case NB_EV_ABORT:
43857 return NB_OK;
43858 case NB_EV_APPLY:
43859 return bgp_peer_group_afi_safi_flag_modify(
43860 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
43861 yang_dnode_get_bool(args->dnode, NULL));
43862
43863 break;
43864 }
43865
43866 return NB_OK;
43867 }
43868
43869 /*
43870 * XPath:
43871 * /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
43872 */
43873 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_all_replace_modify(
43874 struct nb_cb_modify_args *args)
43875 {
43876 switch (args->event) {
43877 case NB_EV_VALIDATE:
43878 case NB_EV_PREPARE:
43879 case NB_EV_ABORT:
43880 return NB_OK;
43881 case NB_EV_APPLY:
43882 return bgp_peer_group_afi_safi_flag_modify(
43883 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
43884 yang_dnode_get_bool(args->dnode, NULL));
43885
43886 break;
43887 }
43888
43889 return NB_OK;
43890 }
43891
43892 /*
43893 * XPath:
43894 * /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
43895 */
43896 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_modify(
43897 struct nb_cb_modify_args *args)
43898 {
43899 switch (args->event) {
43900 case NB_EV_VALIDATE:
43901 case NB_EV_PREPARE:
43902 case NB_EV_ABORT:
43903 return NB_OK;
43904 case NB_EV_APPLY:
43905 return bgp_peer_group_afi_safi_flag_modify(
43906 args, PEER_FLAG_REMOVE_PRIVATE_AS,
43907 yang_dnode_get_bool(args->dnode, NULL));
43908
43909 break;
43910 }
43911
43912 return NB_OK;
43913 }
43914
43915 /*
43916 * XPath:
43917 * /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
43918 */
43919 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_private_as_remove_private_as_replace_modify(
43920 struct nb_cb_modify_args *args)
43921 {
43922 switch (args->event) {
43923 case NB_EV_VALIDATE:
43924 case NB_EV_PREPARE:
43925 case NB_EV_ABORT:
43926 return NB_OK;
43927 case NB_EV_APPLY:
43928 return bgp_peer_group_afi_safi_flag_modify(
43929 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
43930 yang_dnode_get_bool(args->dnode, NULL));
43931
43932 break;
43933 }
43934
43935 return NB_OK;
43936 }
43937
43938 /*
43939 * XPath:
43940 * /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
43941 */
43942 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_route_reflector_route_reflector_client_modify(
43943 struct nb_cb_modify_args *args)
43944 {
43945 switch (args->event) {
43946 case NB_EV_VALIDATE:
43947 case NB_EV_PREPARE:
43948 case NB_EV_ABORT:
43949 return NB_OK;
43950 case NB_EV_APPLY:
43951 return bgp_peer_group_afi_safi_flag_modify(
43952 args, PEER_FLAG_REFLECTOR_CLIENT,
43953 yang_dnode_get_bool(args->dnode, NULL));
43954
43955 break;
43956 }
43957
43958 return NB_OK;
43959 }
43960
43961 /*
43962 * XPath:
43963 * /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
43964 */
43965 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_route_server_route_server_client_modify(
43966 struct nb_cb_modify_args *args)
43967 {
43968 switch (args->event) {
43969 case NB_EV_VALIDATE:
43970 case NB_EV_PREPARE:
43971 case NB_EV_ABORT:
43972 return NB_OK;
43973 case NB_EV_APPLY:
43974 return bgp_peer_group_afi_safi_flag_modify(
43975 args, PEER_FLAG_RSERVER_CLIENT,
43976 yang_dnode_get_bool(args->dnode, NULL));
43977
43978 break;
43979 }
43980
43981 return NB_OK;
43982 }
43983
43984 /*
43985 * XPath:
43986 * /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
43987 */
43988 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_community_modify(
43989 struct nb_cb_modify_args *args)
43990 {
43991 switch (args->event) {
43992 case NB_EV_VALIDATE:
43993 case NB_EV_PREPARE:
43994 case NB_EV_ABORT:
43995 return NB_OK;
43996 case NB_EV_APPLY:
43997 return bgp_peer_group_afi_safi_flag_modify(
43998 args, PEER_FLAG_SEND_COMMUNITY,
43999 yang_dnode_get_bool(args->dnode, NULL));
44000
44001 break;
44002 }
44003
44004 return NB_OK;
44005 }
44006
44007 /*
44008 * XPath:
44009 * /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
44010 */
44011 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_ext_community_modify(
44012 struct nb_cb_modify_args *args)
44013 {
44014 switch (args->event) {
44015 case NB_EV_VALIDATE:
44016 case NB_EV_PREPARE:
44017 case NB_EV_ABORT:
44018 return NB_OK;
44019 case NB_EV_APPLY:
44020 return bgp_peer_group_afi_safi_flag_modify(
44021 args, PEER_FLAG_SEND_EXT_COMMUNITY,
44022 yang_dnode_get_bool(args->dnode, NULL));
44023
44024 break;
44025 }
44026
44027 return NB_OK;
44028 }
44029
44030 /*
44031 * XPath:
44032 * /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
44033 */
44034 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_send_community_send_large_community_modify(
44035 struct nb_cb_modify_args *args)
44036 {
44037 switch (args->event) {
44038 case NB_EV_VALIDATE:
44039 case NB_EV_PREPARE:
44040 case NB_EV_ABORT:
44041 return NB_OK;
44042 case NB_EV_APPLY:
44043 return bgp_peer_group_afi_safi_flag_modify(
44044 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
44045 yang_dnode_get_bool(args->dnode, NULL));
44046
44047 break;
44048 }
44049
44050 return NB_OK;
44051 }
44052
44053 /*
44054 * XPath:
44055 * /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
44056 */
44057 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_soft_reconfiguration_modify(
44058 struct nb_cb_modify_args *args)
44059 {
44060 switch (args->event) {
44061 case NB_EV_VALIDATE:
44062 case NB_EV_PREPARE:
44063 case NB_EV_ABORT:
44064 return NB_OK;
44065 case NB_EV_APPLY:
44066 return bgp_peer_group_afi_safi_flag_modify(
44067 args, PEER_FLAG_SOFT_RECONFIG,
44068 yang_dnode_get_bool(args->dnode, NULL));
44069
44070 break;
44071 }
44072
44073 return NB_OK;
44074 }
44075
44076 /*
44077 * XPath:
44078 * /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
44079 */
44080 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_modify(
44081 struct nb_cb_modify_args *args)
44082 {
44083 switch (args->event) {
44084 case NB_EV_VALIDATE:
44085 case NB_EV_PREPARE:
44086 case NB_EV_ABORT:
44087 return NB_OK;
44088 case NB_EV_APPLY:
44089 return bgp_peer_group_afi_safi_weight_modify(args);
44090
44091 break;
44092 }
44093
44094 return NB_OK;
44095 }
44096
44097 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_weight_weight_attribute_destroy(
44098 struct nb_cb_destroy_args *args)
44099 {
44100 switch (args->event) {
44101 case NB_EV_VALIDATE:
44102 case NB_EV_PREPARE:
44103 case NB_EV_ABORT:
44104 return NB_OK;
44105 case NB_EV_APPLY:
44106 return bgp_peer_group_afi_safi_weight_destroy(args);
44107
44108 break;
44109 }
44110
44111 return NB_OK;
44112 }
44113
44114 /*
44115 * XPath:
44116 * /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
44117 */
44118 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_import_modify(
44119 struct nb_cb_modify_args *args)
44120 {
44121 switch (args->event) {
44122 case NB_EV_VALIDATE:
44123 case NB_EV_PREPARE:
44124 case NB_EV_ABORT:
44125 break;
44126 case NB_EV_APPLY:
44127 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
44128 }
44129
44130 return NB_OK;
44131 }
44132
44133 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_import_destroy(
44134 struct nb_cb_destroy_args *args)
44135 {
44136 switch (args->event) {
44137 case NB_EV_VALIDATE:
44138 case NB_EV_PREPARE:
44139 case NB_EV_ABORT:
44140 break;
44141 case NB_EV_APPLY:
44142 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
44143 }
44144
44145 return NB_OK;
44146 }
44147
44148 /*
44149 * XPath:
44150 * /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
44151 */
44152 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_export_modify(
44153 struct nb_cb_modify_args *args)
44154 {
44155 switch (args->event) {
44156 case NB_EV_VALIDATE:
44157 case NB_EV_PREPARE:
44158 case NB_EV_ABORT:
44159 break;
44160 case NB_EV_APPLY:
44161 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
44162 }
44163
44164 return NB_OK;
44165 }
44166
44167 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_rmap_export_destroy(
44168 struct nb_cb_destroy_args *args)
44169 {
44170 switch (args->event) {
44171 case NB_EV_VALIDATE:
44172 case NB_EV_PREPARE:
44173 case NB_EV_ABORT:
44174 break;
44175 case NB_EV_APPLY:
44176 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
44177 }
44178
44179 return NB_OK;
44180 }
44181
44182 /*
44183 * XPath:
44184 * /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
44185 */
44186 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_import_modify(
44187 struct nb_cb_modify_args *args)
44188 {
44189 switch (args->event) {
44190 case NB_EV_VALIDATE:
44191 case NB_EV_PREPARE:
44192 case NB_EV_ABORT:
44193 break;
44194 case NB_EV_APPLY:
44195 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
44196 }
44197
44198 return NB_OK;
44199 }
44200
44201 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_import_destroy(
44202 struct nb_cb_destroy_args *args)
44203 {
44204 switch (args->event) {
44205 case NB_EV_VALIDATE:
44206 case NB_EV_PREPARE:
44207 case NB_EV_ABORT:
44208 break;
44209 case NB_EV_APPLY:
44210 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
44211 }
44212
44213 return NB_OK;
44214 }
44215
44216 /*
44217 * XPath:
44218 * /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
44219 */
44220 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_export_modify(
44221 struct nb_cb_modify_args *args)
44222 {
44223 switch (args->event) {
44224 case NB_EV_VALIDATE:
44225 case NB_EV_PREPARE:
44226 case NB_EV_ABORT:
44227 break;
44228 case NB_EV_APPLY:
44229 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
44230 }
44231
44232 return NB_OK;
44233 }
44234
44235 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_plist_export_destroy(
44236 struct nb_cb_destroy_args *args)
44237 {
44238 switch (args->event) {
44239 case NB_EV_VALIDATE:
44240 case NB_EV_PREPARE:
44241 case NB_EV_ABORT:
44242 break;
44243 case NB_EV_APPLY:
44244 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
44245 }
44246
44247 return NB_OK;
44248 }
44249
44250 /*
44251 * XPath:
44252 * /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
44253 */
44254 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_import_modify(
44255 struct nb_cb_modify_args *args)
44256 {
44257 switch (args->event) {
44258 case NB_EV_VALIDATE:
44259 case NB_EV_PREPARE:
44260 case NB_EV_ABORT:
44261 case NB_EV_APPLY:
44262 /* TODO: implement me. */
44263 break;
44264 }
44265
44266 return NB_OK;
44267 }
44268
44269 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_import_destroy(
44270 struct nb_cb_destroy_args *args)
44271 {
44272 switch (args->event) {
44273 case NB_EV_VALIDATE:
44274 case NB_EV_PREPARE:
44275 case NB_EV_ABORT:
44276 case NB_EV_APPLY:
44277 /* TODO: implement me. */
44278 break;
44279 }
44280
44281 return NB_OK;
44282 }
44283
44284 /*
44285 * XPath:
44286 * /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
44287 */
44288 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_export_modify(
44289 struct nb_cb_modify_args *args)
44290 {
44291 switch (args->event) {
44292 case NB_EV_VALIDATE:
44293 case NB_EV_PREPARE:
44294 case NB_EV_ABORT:
44295 case NB_EV_APPLY:
44296 /* TODO: implement me. */
44297 break;
44298 }
44299
44300 return NB_OK;
44301 }
44302
44303 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_access_list_export_destroy(
44304 struct nb_cb_destroy_args *args)
44305 {
44306 switch (args->event) {
44307 case NB_EV_VALIDATE:
44308 case NB_EV_PREPARE:
44309 case NB_EV_ABORT:
44310 case NB_EV_APPLY:
44311 /* TODO: implement me. */
44312 break;
44313 }
44314
44315 return NB_OK;
44316 }
44317
44318 /*
44319 * XPath:
44320 * /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
44321 */
44322 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_import_modify(
44323 struct nb_cb_modify_args *args)
44324 {
44325 switch (args->event) {
44326 case NB_EV_VALIDATE:
44327 case NB_EV_PREPARE:
44328 case NB_EV_ABORT:
44329 case NB_EV_APPLY:
44330 /* TODO: implement me. */
44331 break;
44332 }
44333
44334 return NB_OK;
44335 }
44336
44337 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_import_destroy(
44338 struct nb_cb_destroy_args *args)
44339 {
44340 switch (args->event) {
44341 case NB_EV_VALIDATE:
44342 case NB_EV_PREPARE:
44343 case NB_EV_ABORT:
44344 case NB_EV_APPLY:
44345 /* TODO: implement me. */
44346 break;
44347 }
44348
44349 return NB_OK;
44350 }
44351
44352 /*
44353 * XPath:
44354 * /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
44355 */
44356 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_export_modify(
44357 struct nb_cb_modify_args *args)
44358 {
44359 switch (args->event) {
44360 case NB_EV_VALIDATE:
44361 case NB_EV_PREPARE:
44362 case NB_EV_ABORT:
44363 case NB_EV_APPLY:
44364 /* TODO: implement me. */
44365 break;
44366 }
44367
44368 return NB_OK;
44369 }
44370
44371 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_as_path_filter_list_export_destroy(
44372 struct nb_cb_destroy_args *args)
44373 {
44374 switch (args->event) {
44375 case NB_EV_VALIDATE:
44376 case NB_EV_PREPARE:
44377 case NB_EV_ABORT:
44378 case NB_EV_APPLY:
44379 /* TODO: implement me. */
44380 break;
44381 }
44382
44383 return NB_OK;
44384 }
44385
44386 /*
44387 * XPath:
44388 * /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
44389 */
44390 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_import_modify(
44391 struct nb_cb_modify_args *args)
44392 {
44393 switch (args->event) {
44394 case NB_EV_VALIDATE:
44395 case NB_EV_PREPARE:
44396 case NB_EV_ABORT:
44397 case NB_EV_APPLY:
44398 /* TODO: implement me. */
44399 break;
44400 }
44401
44402 return NB_OK;
44403 }
44404
44405 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_import_destroy(
44406 struct nb_cb_destroy_args *args)
44407 {
44408 switch (args->event) {
44409 case NB_EV_VALIDATE:
44410 case NB_EV_PREPARE:
44411 case NB_EV_ABORT:
44412 case NB_EV_APPLY:
44413 /* TODO: implement me. */
44414 break;
44415 }
44416
44417 return NB_OK;
44418 }
44419
44420 /*
44421 * XPath:
44422 * /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
44423 */
44424 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_export_modify(
44425 struct nb_cb_modify_args *args)
44426 {
44427 switch (args->event) {
44428 case NB_EV_VALIDATE:
44429 case NB_EV_PREPARE:
44430 case NB_EV_ABORT:
44431 case NB_EV_APPLY:
44432 /* TODO: implement me. */
44433 break;
44434 }
44435
44436 return NB_OK;
44437 }
44438
44439 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_labeled_unicast_filter_config_unsuppress_map_export_destroy(
44440 struct nb_cb_destroy_args *args)
44441 {
44442 switch (args->event) {
44443 case NB_EV_VALIDATE:
44444 case NB_EV_PREPARE:
44445 case NB_EV_ABORT:
44446 case NB_EV_APPLY:
44447 /* TODO: implement me. */
44448 break;
44449 }
44450
44451 return NB_OK;
44452 }
44453
44454 /*
44455 * XPath:
44456 * /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
44457 */
44458 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_add_paths_path_type_modify(
44459 struct nb_cb_modify_args *args)
44460 {
44461 switch (args->event) {
44462 case NB_EV_VALIDATE:
44463 case NB_EV_PREPARE:
44464 case NB_EV_ABORT:
44465 case NB_EV_APPLY:
44466 /* TODO: implement me. */
44467 break;
44468 }
44469
44470 return NB_OK;
44471 }
44472
44473 /*
44474 * XPath:
44475 * /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
44476 */
44477 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_modify(
44478 struct nb_cb_modify_args *args)
44479 {
44480 switch (args->event) {
44481 case NB_EV_VALIDATE:
44482 case NB_EV_PREPARE:
44483 case NB_EV_ABORT:
44484 case NB_EV_APPLY:
44485 /* TODO: implement me. */
44486 break;
44487 }
44488
44489 return NB_OK;
44490 }
44491
44492 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_as_destroy(
44493 struct nb_cb_destroy_args *args)
44494 {
44495 switch (args->event) {
44496 case NB_EV_VALIDATE:
44497 case NB_EV_PREPARE:
44498 case NB_EV_ABORT:
44499 case NB_EV_APPLY:
44500 /* TODO: implement me. */
44501 break;
44502 }
44503
44504 return NB_OK;
44505 }
44506
44507 /*
44508 * XPath:
44509 * /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
44510 */
44511 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_modify(
44512 struct nb_cb_modify_args *args)
44513 {
44514 switch (args->event) {
44515 case NB_EV_VALIDATE:
44516 case NB_EV_PREPARE:
44517 case NB_EV_ABORT:
44518 case NB_EV_APPLY:
44519 /* TODO: implement me. */
44520 break;
44521 }
44522
44523 return NB_OK;
44524 }
44525
44526 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_allow_own_origin_as_destroy(
44527 struct nb_cb_destroy_args *args)
44528 {
44529 switch (args->event) {
44530 case NB_EV_VALIDATE:
44531 case NB_EV_PREPARE:
44532 case NB_EV_ABORT:
44533 case NB_EV_APPLY:
44534 /* TODO: implement me. */
44535 break;
44536 }
44537
44538 return NB_OK;
44539 }
44540
44541 /*
44542 * XPath:
44543 * /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
44544 */
44545 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_as_path_options_replace_peer_as_modify(
44546 struct nb_cb_modify_args *args)
44547 {
44548 switch (args->event) {
44549 case NB_EV_VALIDATE:
44550 case NB_EV_PREPARE:
44551 case NB_EV_ABORT:
44552 return NB_OK;
44553 case NB_EV_APPLY:
44554 return bgp_peer_group_afi_safi_flag_modify(
44555 args, PEER_FLAG_AS_OVERRIDE,
44556 yang_dnode_get_bool(args->dnode, NULL));
44557
44558 break;
44559 }
44560
44561 return NB_OK;
44562 }
44563
44564 /*
44565 * XPath:
44566 * /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
44567 */
44568 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_as_path_unchanged_modify(
44569 struct nb_cb_modify_args *args)
44570 {
44571 switch (args->event) {
44572 case NB_EV_VALIDATE:
44573 case NB_EV_PREPARE:
44574 case NB_EV_ABORT:
44575 return NB_OK;
44576 case NB_EV_APPLY:
44577 return bgp_peer_group_afi_safi_flag_modify(
44578 args, PEER_FLAG_AS_PATH_UNCHANGED,
44579 yang_dnode_get_bool(args->dnode, NULL));
44580
44581 break;
44582 }
44583
44584 return NB_OK;
44585 }
44586
44587 /*
44588 * XPath:
44589 * /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
44590 */
44591 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_next_hop_unchanged_modify(
44592 struct nb_cb_modify_args *args)
44593 {
44594 switch (args->event) {
44595 case NB_EV_VALIDATE:
44596 case NB_EV_PREPARE:
44597 case NB_EV_ABORT:
44598 return NB_OK;
44599 case NB_EV_APPLY:
44600 return bgp_peer_group_afi_safi_flag_modify(
44601 args, PEER_FLAG_NEXTHOP_UNCHANGED,
44602 yang_dnode_get_bool(args->dnode, NULL));
44603
44604 break;
44605 }
44606
44607 return NB_OK;
44608 }
44609
44610 /*
44611 * XPath:
44612 * /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
44613 */
44614 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_attr_unchanged_med_unchanged_modify(
44615 struct nb_cb_modify_args *args)
44616 {
44617 switch (args->event) {
44618 case NB_EV_VALIDATE:
44619 case NB_EV_PREPARE:
44620 case NB_EV_ABORT:
44621 return NB_OK;
44622 case NB_EV_APPLY:
44623 return bgp_peer_group_afi_safi_flag_modify(
44624 args, PEER_FLAG_MED_UNCHANGED,
44625 yang_dnode_get_bool(args->dnode, NULL));
44626
44627 break;
44628 }
44629
44630 return NB_OK;
44631 }
44632
44633 /*
44634 * XPath:
44635 * /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
44636 */
44637 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_create(
44638 struct nb_cb_create_args *args)
44639 {
44640 switch (args->event) {
44641 case NB_EV_VALIDATE:
44642 case NB_EV_PREPARE:
44643 case NB_EV_ABORT:
44644 case NB_EV_APPLY:
44645 /* TODO: implement me. */
44646 break;
44647 }
44648
44649 return NB_OK;
44650 }
44651
44652 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_destroy(
44653 struct nb_cb_destroy_args *args)
44654 {
44655 switch (args->event) {
44656 case NB_EV_VALIDATE:
44657 case NB_EV_PREPARE:
44658 case NB_EV_ABORT:
44659 return NB_OK;
44660 case NB_EV_APPLY:
44661 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
44662 }
44663
44664 return NB_OK;
44665 }
44666
44667 /*
44668 * XPath:
44669 * /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
44670 */
44671 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_max_prefixes_modify(
44672 struct nb_cb_modify_args *args)
44673 {
44674 switch (args->event) {
44675 case NB_EV_VALIDATE:
44676 case NB_EV_PREPARE:
44677 case NB_EV_ABORT:
44678 case NB_EV_APPLY:
44679 /* TODO: implement me. */
44680 break;
44681 }
44682
44683 return NB_OK;
44684 }
44685
44686 /*
44687 * XPath:
44688 * /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
44689 */
44690 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_force_check_modify(
44691 struct nb_cb_modify_args *args)
44692 {
44693 switch (args->event) {
44694 case NB_EV_VALIDATE:
44695 case NB_EV_PREPARE:
44696 case NB_EV_ABORT:
44697 case NB_EV_APPLY:
44698 /* TODO: implement me. */
44699 break;
44700 }
44701
44702 return NB_OK;
44703 }
44704
44705 /*
44706 * XPath:
44707 * /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
44708 */
44709 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_modify(
44710 struct nb_cb_modify_args *args)
44711 {
44712 switch (args->event) {
44713 case NB_EV_VALIDATE:
44714 case NB_EV_PREPARE:
44715 case NB_EV_ABORT:
44716 case NB_EV_APPLY:
44717 /* TODO: implement me. */
44718 break;
44719 }
44720
44721 return NB_OK;
44722 }
44723
44724 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_warning_only_destroy(
44725 struct nb_cb_destroy_args *args)
44726 {
44727 switch (args->event) {
44728 case NB_EV_VALIDATE:
44729 case NB_EV_PREPARE:
44730 case NB_EV_ABORT:
44731 case NB_EV_APPLY:
44732 /* TODO: implement me. */
44733 break;
44734 }
44735
44736 return NB_OK;
44737 }
44738
44739 /*
44740 * XPath:
44741 * /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
44742 */
44743 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_modify(
44744 struct nb_cb_modify_args *args)
44745 {
44746 switch (args->event) {
44747 case NB_EV_VALIDATE:
44748 case NB_EV_PREPARE:
44749 case NB_EV_ABORT:
44750 case NB_EV_APPLY:
44751 /* TODO: implement me. */
44752 break;
44753 }
44754
44755 return NB_OK;
44756 }
44757
44758 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
44759 struct nb_cb_destroy_args *args)
44760 {
44761 switch (args->event) {
44762 case NB_EV_VALIDATE:
44763 case NB_EV_PREPARE:
44764 case NB_EV_ABORT:
44765 case NB_EV_APPLY:
44766 /* TODO: implement me. */
44767 break;
44768 }
44769
44770 return NB_OK;
44771 }
44772
44773 /*
44774 * XPath:
44775 * /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
44776 */
44777 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
44778 struct nb_cb_modify_args *args)
44779 {
44780 switch (args->event) {
44781 case NB_EV_VALIDATE:
44782 case NB_EV_PREPARE:
44783 case NB_EV_ABORT:
44784 case NB_EV_APPLY:
44785 /* TODO: implement me. */
44786 break;
44787 }
44788
44789 return NB_OK;
44790 }
44791
44792 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
44793 struct nb_cb_destroy_args *args)
44794 {
44795 switch (args->event) {
44796 case NB_EV_VALIDATE:
44797 case NB_EV_PREPARE:
44798 case NB_EV_ABORT:
44799 case NB_EV_APPLY:
44800 /* TODO: implement me. */
44801 break;
44802 }
44803
44804 return NB_OK;
44805 }
44806
44807 /*
44808 * XPath:
44809 * /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
44810 */
44811 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
44812 struct nb_cb_modify_args *args)
44813 {
44814 switch (args->event) {
44815 case NB_EV_VALIDATE:
44816 case NB_EV_PREPARE:
44817 case NB_EV_ABORT:
44818 case NB_EV_APPLY:
44819 /* TODO: implement me. */
44820 break;
44821 }
44822
44823 return NB_OK;
44824 }
44825
44826 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
44827 struct nb_cb_destroy_args *args)
44828 {
44829 switch (args->event) {
44830 case NB_EV_VALIDATE:
44831 case NB_EV_PREPARE:
44832 case NB_EV_ABORT:
44833 case NB_EV_APPLY:
44834 /* TODO: implement me. */
44835 break;
44836 }
44837
44838 return NB_OK;
44839 }
44840
44841 /*
44842 * XPath:
44843 * /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
44844 */
44845 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
44846 struct nb_cb_modify_args *args)
44847 {
44848 switch (args->event) {
44849 case NB_EV_VALIDATE:
44850 case NB_EV_PREPARE:
44851 case NB_EV_ABORT:
44852 case NB_EV_APPLY:
44853 /* TODO: implement me. */
44854 break;
44855 }
44856
44857 return NB_OK;
44858 }
44859
44860 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
44861 struct nb_cb_destroy_args *args)
44862 {
44863 switch (args->event) {
44864 case NB_EV_VALIDATE:
44865 case NB_EV_PREPARE:
44866 case NB_EV_ABORT:
44867 case NB_EV_APPLY:
44868 /* TODO: implement me. */
44869 break;
44870 }
44871
44872 return NB_OK;
44873 }
44874
44875 /*
44876 * XPath:
44877 * /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
44878 */
44879 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
44880 struct nb_cb_modify_args *args)
44881 {
44882 switch (args->event) {
44883 case NB_EV_VALIDATE:
44884 case NB_EV_PREPARE:
44885 case NB_EV_ABORT:
44886 case NB_EV_APPLY:
44887 /* TODO: implement me. */
44888 break;
44889 }
44890
44891 return NB_OK;
44892 }
44893
44894 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
44895 struct nb_cb_destroy_args *args)
44896 {
44897 switch (args->event) {
44898 case NB_EV_VALIDATE:
44899 case NB_EV_PREPARE:
44900 case NB_EV_ABORT:
44901 case NB_EV_APPLY:
44902 /* TODO: implement me. */
44903 break;
44904 }
44905
44906 return NB_OK;
44907 }
44908
44909 /*
44910 * XPath:
44911 * /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
44912 */
44913 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
44914 struct nb_cb_modify_args *args)
44915 {
44916 switch (args->event) {
44917 case NB_EV_VALIDATE:
44918 case NB_EV_PREPARE:
44919 case NB_EV_ABORT:
44920 case NB_EV_APPLY:
44921 /* TODO: implement me. */
44922 break;
44923 }
44924
44925 return NB_OK;
44926 }
44927
44928 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
44929 struct nb_cb_destroy_args *args)
44930 {
44931 switch (args->event) {
44932 case NB_EV_VALIDATE:
44933 case NB_EV_PREPARE:
44934 case NB_EV_ABORT:
44935 case NB_EV_APPLY:
44936 /* TODO: implement me. */
44937 break;
44938 }
44939
44940 return NB_OK;
44941 }
44942
44943 /*
44944 * XPath:
44945 * /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
44946 */
44947 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_modify(
44948 struct nb_cb_modify_args *args)
44949 {
44950 switch (args->event) {
44951 case NB_EV_VALIDATE:
44952 case NB_EV_PREPARE:
44953 case NB_EV_ABORT:
44954 return NB_OK;
44955 case NB_EV_APPLY:
44956 return bgp_peer_group_afi_safi_flag_modify(
44957 args, PEER_FLAG_NEXTHOP_SELF,
44958 yang_dnode_get_bool(args->dnode, NULL));
44959
44960 break;
44961 }
44962
44963 return NB_OK;
44964 }
44965
44966 /*
44967 * XPath:
44968 * /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
44969 */
44970 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_nexthop_self_next_hop_self_force_modify(
44971 struct nb_cb_modify_args *args)
44972 {
44973 switch (args->event) {
44974 case NB_EV_VALIDATE:
44975 case NB_EV_PREPARE:
44976 case NB_EV_ABORT:
44977 return NB_OK;
44978 case NB_EV_APPLY:
44979 return bgp_peer_group_afi_safi_flag_modify(
44980 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
44981 yang_dnode_get_bool(args->dnode, NULL));
44982
44983 break;
44984 }
44985
44986 return NB_OK;
44987 }
44988
44989 /*
44990 * XPath:
44991 * /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
44992 */
44993 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_modify(
44994 struct nb_cb_modify_args *args)
44995 {
44996 switch (args->event) {
44997 case NB_EV_VALIDATE:
44998 case NB_EV_PREPARE:
44999 case NB_EV_ABORT:
45000 return NB_OK;
45001 case NB_EV_APPLY:
45002 return bgp_peer_group_afi_safi_flag_modify(
45003 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
45004 yang_dnode_get_bool(args->dnode, NULL));
45005
45006 break;
45007 }
45008
45009 return NB_OK;
45010 }
45011
45012 /*
45013 * XPath:
45014 * /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
45015 */
45016 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_all_replace_modify(
45017 struct nb_cb_modify_args *args)
45018 {
45019 switch (args->event) {
45020 case NB_EV_VALIDATE:
45021 case NB_EV_PREPARE:
45022 case NB_EV_ABORT:
45023 return NB_OK;
45024 case NB_EV_APPLY:
45025 return bgp_peer_group_afi_safi_flag_modify(
45026 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
45027 yang_dnode_get_bool(args->dnode, NULL));
45028
45029 break;
45030 }
45031
45032 return NB_OK;
45033 }
45034
45035 /*
45036 * XPath:
45037 * /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
45038 */
45039 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_modify(
45040 struct nb_cb_modify_args *args)
45041 {
45042 switch (args->event) {
45043 case NB_EV_VALIDATE:
45044 case NB_EV_PREPARE:
45045 case NB_EV_ABORT:
45046 return NB_OK;
45047 case NB_EV_APPLY:
45048 return bgp_peer_group_afi_safi_flag_modify(
45049 args, PEER_FLAG_REMOVE_PRIVATE_AS,
45050 yang_dnode_get_bool(args->dnode, NULL));
45051
45052 break;
45053 }
45054
45055 return NB_OK;
45056 }
45057
45058 /*
45059 * XPath:
45060 * /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
45061 */
45062 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_private_as_remove_private_as_replace_modify(
45063 struct nb_cb_modify_args *args)
45064 {
45065 switch (args->event) {
45066 case NB_EV_VALIDATE:
45067 case NB_EV_PREPARE:
45068 case NB_EV_ABORT:
45069 return NB_OK;
45070 case NB_EV_APPLY:
45071 return bgp_peer_group_afi_safi_flag_modify(
45072 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
45073 yang_dnode_get_bool(args->dnode, NULL));
45074
45075 break;
45076 }
45077
45078 return NB_OK;
45079 }
45080
45081 /*
45082 * XPath:
45083 * /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
45084 */
45085 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_reflector_route_reflector_client_modify(
45086 struct nb_cb_modify_args *args)
45087 {
45088 switch (args->event) {
45089 case NB_EV_VALIDATE:
45090 case NB_EV_PREPARE:
45091 case NB_EV_ABORT:
45092 return NB_OK;
45093 case NB_EV_APPLY:
45094 return bgp_peer_group_afi_safi_flag_modify(
45095 args, PEER_FLAG_REFLECTOR_CLIENT,
45096 yang_dnode_get_bool(args->dnode, NULL));
45097
45098 break;
45099 }
45100
45101 return NB_OK;
45102 }
45103
45104 /*
45105 * XPath:
45106 * /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
45107 */
45108 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_route_server_route_server_client_modify(
45109 struct nb_cb_modify_args *args)
45110 {
45111 switch (args->event) {
45112 case NB_EV_VALIDATE:
45113 case NB_EV_PREPARE:
45114 case NB_EV_ABORT:
45115 return NB_OK;
45116 case NB_EV_APPLY:
45117 return bgp_peer_group_afi_safi_flag_modify(
45118 args, PEER_FLAG_RSERVER_CLIENT,
45119 yang_dnode_get_bool(args->dnode, NULL));
45120
45121 break;
45122 }
45123
45124 return NB_OK;
45125 }
45126
45127 /*
45128 * XPath:
45129 * /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
45130 */
45131 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_community_modify(
45132 struct nb_cb_modify_args *args)
45133 {
45134 switch (args->event) {
45135 case NB_EV_VALIDATE:
45136 case NB_EV_PREPARE:
45137 case NB_EV_ABORT:
45138 return NB_OK;
45139 case NB_EV_APPLY:
45140 return bgp_peer_group_afi_safi_flag_modify(
45141 args, PEER_FLAG_SEND_COMMUNITY,
45142 yang_dnode_get_bool(args->dnode, NULL));
45143
45144 break;
45145 }
45146
45147 return NB_OK;
45148 }
45149
45150 /*
45151 * XPath:
45152 * /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
45153 */
45154 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_ext_community_modify(
45155 struct nb_cb_modify_args *args)
45156 {
45157 switch (args->event) {
45158 case NB_EV_VALIDATE:
45159 case NB_EV_PREPARE:
45160 case NB_EV_ABORT:
45161 return NB_OK;
45162 case NB_EV_APPLY:
45163 return bgp_peer_group_afi_safi_flag_modify(
45164 args, PEER_FLAG_SEND_EXT_COMMUNITY,
45165 yang_dnode_get_bool(args->dnode, NULL));
45166
45167 break;
45168 }
45169
45170 return NB_OK;
45171 }
45172
45173 /*
45174 * XPath:
45175 * /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
45176 */
45177 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_send_community_send_large_community_modify(
45178 struct nb_cb_modify_args *args)
45179 {
45180 switch (args->event) {
45181 case NB_EV_VALIDATE:
45182 case NB_EV_PREPARE:
45183 case NB_EV_ABORT:
45184 return NB_OK;
45185 case NB_EV_APPLY:
45186 return bgp_peer_group_afi_safi_flag_modify(
45187 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
45188 yang_dnode_get_bool(args->dnode, NULL));
45189
45190 break;
45191 }
45192
45193 return NB_OK;
45194 }
45195
45196 /*
45197 * XPath:
45198 * /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
45199 */
45200 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_soft_reconfiguration_modify(
45201 struct nb_cb_modify_args *args)
45202 {
45203 switch (args->event) {
45204 case NB_EV_VALIDATE:
45205 case NB_EV_PREPARE:
45206 case NB_EV_ABORT:
45207 return NB_OK;
45208 case NB_EV_APPLY:
45209 return bgp_peer_group_afi_safi_flag_modify(
45210 args, PEER_FLAG_SOFT_RECONFIG,
45211 yang_dnode_get_bool(args->dnode, NULL));
45212
45213 break;
45214 }
45215
45216 return NB_OK;
45217 }
45218
45219 /*
45220 * XPath:
45221 * /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
45222 */
45223 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_modify(
45224 struct nb_cb_modify_args *args)
45225 {
45226 switch (args->event) {
45227 case NB_EV_VALIDATE:
45228 case NB_EV_PREPARE:
45229 case NB_EV_ABORT:
45230 return NB_OK;
45231 case NB_EV_APPLY:
45232 return bgp_peer_group_afi_safi_weight_modify(args);
45233
45234 break;
45235 }
45236
45237 return NB_OK;
45238 }
45239
45240 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_weight_weight_attribute_destroy(
45241 struct nb_cb_destroy_args *args)
45242 {
45243 switch (args->event) {
45244 case NB_EV_VALIDATE:
45245 case NB_EV_PREPARE:
45246 case NB_EV_ABORT:
45247 return NB_OK;
45248 case NB_EV_APPLY:
45249 return bgp_peer_group_afi_safi_weight_destroy(args);
45250
45251 break;
45252 }
45253
45254 return NB_OK;
45255 }
45256
45257 /*
45258 * XPath:
45259 * /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
45260 */
45261 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_import_modify(
45262 struct nb_cb_modify_args *args)
45263 {
45264 switch (args->event) {
45265 case NB_EV_VALIDATE:
45266 case NB_EV_PREPARE:
45267 case NB_EV_ABORT:
45268 break;
45269 case NB_EV_APPLY:
45270 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
45271 }
45272
45273 return NB_OK;
45274 }
45275
45276 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_import_destroy(
45277 struct nb_cb_destroy_args *args)
45278 {
45279 switch (args->event) {
45280 case NB_EV_VALIDATE:
45281 case NB_EV_PREPARE:
45282 case NB_EV_ABORT:
45283 break;
45284 case NB_EV_APPLY:
45285 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
45286 }
45287
45288 return NB_OK;
45289 }
45290
45291 /*
45292 * XPath:
45293 * /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
45294 */
45295 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_export_modify(
45296 struct nb_cb_modify_args *args)
45297 {
45298 switch (args->event) {
45299 case NB_EV_VALIDATE:
45300 case NB_EV_PREPARE:
45301 case NB_EV_ABORT:
45302 break;
45303 case NB_EV_APPLY:
45304 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
45305 }
45306
45307 return NB_OK;
45308 }
45309
45310 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_rmap_export_destroy(
45311 struct nb_cb_destroy_args *args)
45312 {
45313 switch (args->event) {
45314 case NB_EV_VALIDATE:
45315 case NB_EV_PREPARE:
45316 case NB_EV_ABORT:
45317 break;
45318 case NB_EV_APPLY:
45319 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
45320 }
45321
45322 return NB_OK;
45323 }
45324
45325 /*
45326 * XPath:
45327 * /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
45328 */
45329 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_import_modify(
45330 struct nb_cb_modify_args *args)
45331 {
45332 switch (args->event) {
45333 case NB_EV_VALIDATE:
45334 case NB_EV_PREPARE:
45335 case NB_EV_ABORT:
45336 break;
45337 case NB_EV_APPLY:
45338 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
45339 }
45340
45341 return NB_OK;
45342 }
45343
45344 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_import_destroy(
45345 struct nb_cb_destroy_args *args)
45346 {
45347 switch (args->event) {
45348 case NB_EV_VALIDATE:
45349 case NB_EV_PREPARE:
45350 case NB_EV_ABORT:
45351 break;
45352 case NB_EV_APPLY:
45353 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
45354 }
45355
45356 return NB_OK;
45357 }
45358
45359 /*
45360 * XPath:
45361 * /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
45362 */
45363 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_export_modify(
45364 struct nb_cb_modify_args *args)
45365 {
45366 switch (args->event) {
45367 case NB_EV_VALIDATE:
45368 case NB_EV_PREPARE:
45369 case NB_EV_ABORT:
45370 break;
45371 case NB_EV_APPLY:
45372 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
45373 }
45374
45375 return NB_OK;
45376 }
45377
45378 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_plist_export_destroy(
45379 struct nb_cb_destroy_args *args)
45380 {
45381 switch (args->event) {
45382 case NB_EV_VALIDATE:
45383 case NB_EV_PREPARE:
45384 case NB_EV_ABORT:
45385 break;
45386 case NB_EV_APPLY:
45387 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
45388 }
45389
45390 return NB_OK;
45391 }
45392
45393 /*
45394 * XPath:
45395 * /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
45396 */
45397 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_import_modify(
45398 struct nb_cb_modify_args *args)
45399 {
45400 switch (args->event) {
45401 case NB_EV_VALIDATE:
45402 case NB_EV_PREPARE:
45403 case NB_EV_ABORT:
45404 case NB_EV_APPLY:
45405 /* TODO: implement me. */
45406 break;
45407 }
45408
45409 return NB_OK;
45410 }
45411
45412 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_import_destroy(
45413 struct nb_cb_destroy_args *args)
45414 {
45415 switch (args->event) {
45416 case NB_EV_VALIDATE:
45417 case NB_EV_PREPARE:
45418 case NB_EV_ABORT:
45419 case NB_EV_APPLY:
45420 /* TODO: implement me. */
45421 break;
45422 }
45423
45424 return NB_OK;
45425 }
45426
45427 /*
45428 * XPath:
45429 * /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
45430 */
45431 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_export_modify(
45432 struct nb_cb_modify_args *args)
45433 {
45434 switch (args->event) {
45435 case NB_EV_VALIDATE:
45436 case NB_EV_PREPARE:
45437 case NB_EV_ABORT:
45438 case NB_EV_APPLY:
45439 /* TODO: implement me. */
45440 break;
45441 }
45442
45443 return NB_OK;
45444 }
45445
45446 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_access_list_export_destroy(
45447 struct nb_cb_destroy_args *args)
45448 {
45449 switch (args->event) {
45450 case NB_EV_VALIDATE:
45451 case NB_EV_PREPARE:
45452 case NB_EV_ABORT:
45453 case NB_EV_APPLY:
45454 /* TODO: implement me. */
45455 break;
45456 }
45457
45458 return NB_OK;
45459 }
45460
45461 /*
45462 * XPath:
45463 * /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
45464 */
45465 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_import_modify(
45466 struct nb_cb_modify_args *args)
45467 {
45468 switch (args->event) {
45469 case NB_EV_VALIDATE:
45470 case NB_EV_PREPARE:
45471 case NB_EV_ABORT:
45472 case NB_EV_APPLY:
45473 /* TODO: implement me. */
45474 break;
45475 }
45476
45477 return NB_OK;
45478 }
45479
45480 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_import_destroy(
45481 struct nb_cb_destroy_args *args)
45482 {
45483 switch (args->event) {
45484 case NB_EV_VALIDATE:
45485 case NB_EV_PREPARE:
45486 case NB_EV_ABORT:
45487 case NB_EV_APPLY:
45488 /* TODO: implement me. */
45489 break;
45490 }
45491
45492 return NB_OK;
45493 }
45494
45495 /*
45496 * XPath:
45497 * /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
45498 */
45499 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_export_modify(
45500 struct nb_cb_modify_args *args)
45501 {
45502 switch (args->event) {
45503 case NB_EV_VALIDATE:
45504 case NB_EV_PREPARE:
45505 case NB_EV_ABORT:
45506 case NB_EV_APPLY:
45507 /* TODO: implement me. */
45508 break;
45509 }
45510
45511 return NB_OK;
45512 }
45513
45514 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_as_path_filter_list_export_destroy(
45515 struct nb_cb_destroy_args *args)
45516 {
45517 switch (args->event) {
45518 case NB_EV_VALIDATE:
45519 case NB_EV_PREPARE:
45520 case NB_EV_ABORT:
45521 case NB_EV_APPLY:
45522 /* TODO: implement me. */
45523 break;
45524 }
45525
45526 return NB_OK;
45527 }
45528
45529 /*
45530 * XPath:
45531 * /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
45532 */
45533 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_import_modify(
45534 struct nb_cb_modify_args *args)
45535 {
45536 switch (args->event) {
45537 case NB_EV_VALIDATE:
45538 case NB_EV_PREPARE:
45539 case NB_EV_ABORT:
45540 case NB_EV_APPLY:
45541 /* TODO: implement me. */
45542 break;
45543 }
45544
45545 return NB_OK;
45546 }
45547
45548 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_import_destroy(
45549 struct nb_cb_destroy_args *args)
45550 {
45551 switch (args->event) {
45552 case NB_EV_VALIDATE:
45553 case NB_EV_PREPARE:
45554 case NB_EV_ABORT:
45555 case NB_EV_APPLY:
45556 /* TODO: implement me. */
45557 break;
45558 }
45559
45560 return NB_OK;
45561 }
45562
45563 /*
45564 * XPath:
45565 * /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
45566 */
45567 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_export_modify(
45568 struct nb_cb_modify_args *args)
45569 {
45570 switch (args->event) {
45571 case NB_EV_VALIDATE:
45572 case NB_EV_PREPARE:
45573 case NB_EV_ABORT:
45574 case NB_EV_APPLY:
45575 /* TODO: implement me. */
45576 break;
45577 }
45578
45579 return NB_OK;
45580 }
45581
45582 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv4_unicast_filter_config_unsuppress_map_export_destroy(
45583 struct nb_cb_destroy_args *args)
45584 {
45585 switch (args->event) {
45586 case NB_EV_VALIDATE:
45587 case NB_EV_PREPARE:
45588 case NB_EV_ABORT:
45589 case NB_EV_APPLY:
45590 /* TODO: implement me. */
45591 break;
45592 }
45593
45594 return NB_OK;
45595 }
45596
45597 /*
45598 * XPath:
45599 * /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
45600 */
45601 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_add_paths_path_type_modify(
45602 struct nb_cb_modify_args *args)
45603 {
45604 switch (args->event) {
45605 case NB_EV_VALIDATE:
45606 case NB_EV_PREPARE:
45607 case NB_EV_ABORT:
45608 case NB_EV_APPLY:
45609 /* TODO: implement me. */
45610 break;
45611 }
45612
45613 return NB_OK;
45614 }
45615
45616 /*
45617 * XPath:
45618 * /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
45619 */
45620 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_modify(
45621 struct nb_cb_modify_args *args)
45622 {
45623 switch (args->event) {
45624 case NB_EV_VALIDATE:
45625 case NB_EV_PREPARE:
45626 case NB_EV_ABORT:
45627 case NB_EV_APPLY:
45628 /* TODO: implement me. */
45629 break;
45630 }
45631
45632 return NB_OK;
45633 }
45634
45635 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_as_destroy(
45636 struct nb_cb_destroy_args *args)
45637 {
45638 switch (args->event) {
45639 case NB_EV_VALIDATE:
45640 case NB_EV_PREPARE:
45641 case NB_EV_ABORT:
45642 case NB_EV_APPLY:
45643 /* TODO: implement me. */
45644 break;
45645 }
45646
45647 return NB_OK;
45648 }
45649
45650 /*
45651 * XPath:
45652 * /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
45653 */
45654 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_modify(
45655 struct nb_cb_modify_args *args)
45656 {
45657 switch (args->event) {
45658 case NB_EV_VALIDATE:
45659 case NB_EV_PREPARE:
45660 case NB_EV_ABORT:
45661 case NB_EV_APPLY:
45662 /* TODO: implement me. */
45663 break;
45664 }
45665
45666 return NB_OK;
45667 }
45668
45669 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_allow_own_origin_as_destroy(
45670 struct nb_cb_destroy_args *args)
45671 {
45672 switch (args->event) {
45673 case NB_EV_VALIDATE:
45674 case NB_EV_PREPARE:
45675 case NB_EV_ABORT:
45676 case NB_EV_APPLY:
45677 /* TODO: implement me. */
45678 break;
45679 }
45680
45681 return NB_OK;
45682 }
45683
45684 /*
45685 * XPath:
45686 * /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
45687 */
45688 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_as_path_options_replace_peer_as_modify(
45689 struct nb_cb_modify_args *args)
45690 {
45691 switch (args->event) {
45692 case NB_EV_VALIDATE:
45693 case NB_EV_PREPARE:
45694 case NB_EV_ABORT:
45695 return NB_OK;
45696 case NB_EV_APPLY:
45697 return bgp_peer_group_afi_safi_flag_modify(
45698 args, PEER_FLAG_AS_OVERRIDE,
45699 yang_dnode_get_bool(args->dnode, NULL));
45700
45701 break;
45702 }
45703
45704 return NB_OK;
45705 }
45706
45707 /*
45708 * XPath:
45709 * /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
45710 */
45711 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_as_path_unchanged_modify(
45712 struct nb_cb_modify_args *args)
45713 {
45714 switch (args->event) {
45715 case NB_EV_VALIDATE:
45716 case NB_EV_PREPARE:
45717 case NB_EV_ABORT:
45718 return NB_OK;
45719 case NB_EV_APPLY:
45720 return bgp_peer_group_afi_safi_flag_modify(
45721 args, PEER_FLAG_AS_PATH_UNCHANGED,
45722 yang_dnode_get_bool(args->dnode, NULL));
45723
45724 break;
45725 }
45726
45727 return NB_OK;
45728 }
45729
45730 /*
45731 * XPath:
45732 * /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
45733 */
45734 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_next_hop_unchanged_modify(
45735 struct nb_cb_modify_args *args)
45736 {
45737 switch (args->event) {
45738 case NB_EV_VALIDATE:
45739 case NB_EV_PREPARE:
45740 case NB_EV_ABORT:
45741 return NB_OK;
45742 case NB_EV_APPLY:
45743 return bgp_peer_group_afi_safi_flag_modify(
45744 args, PEER_FLAG_NEXTHOP_UNCHANGED,
45745 yang_dnode_get_bool(args->dnode, NULL));
45746
45747 break;
45748 }
45749
45750 return NB_OK;
45751 }
45752
45753 /*
45754 * XPath:
45755 * /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
45756 */
45757 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_attr_unchanged_med_unchanged_modify(
45758 struct nb_cb_modify_args *args)
45759 {
45760 switch (args->event) {
45761 case NB_EV_VALIDATE:
45762 case NB_EV_PREPARE:
45763 case NB_EV_ABORT:
45764 return NB_OK;
45765 case NB_EV_APPLY:
45766 return bgp_peer_group_afi_safi_flag_modify(
45767 args, PEER_FLAG_MED_UNCHANGED,
45768 yang_dnode_get_bool(args->dnode, NULL));
45769
45770 break;
45771 }
45772
45773 return NB_OK;
45774 }
45775
45776 /*
45777 * XPath:
45778 * /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
45779 */
45780 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_create(
45781 struct nb_cb_create_args *args)
45782 {
45783 switch (args->event) {
45784 case NB_EV_VALIDATE:
45785 case NB_EV_PREPARE:
45786 case NB_EV_ABORT:
45787 case NB_EV_APPLY:
45788 /* TODO: implement me. */
45789 break;
45790 }
45791
45792 return NB_OK;
45793 }
45794
45795 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_destroy(
45796 struct nb_cb_destroy_args *args)
45797 {
45798 switch (args->event) {
45799 case NB_EV_VALIDATE:
45800 case NB_EV_PREPARE:
45801 case NB_EV_ABORT:
45802 return NB_OK;
45803 case NB_EV_APPLY:
45804 return bgp_peer_group_afi_safi_prefix_limit_list_destroy(args);
45805 }
45806
45807 return NB_OK;
45808 }
45809
45810 /*
45811 * XPath:
45812 * /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
45813 */
45814 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_max_prefixes_modify(
45815 struct nb_cb_modify_args *args)
45816 {
45817 switch (args->event) {
45818 case NB_EV_VALIDATE:
45819 case NB_EV_PREPARE:
45820 case NB_EV_ABORT:
45821 case NB_EV_APPLY:
45822 /* TODO: implement me. */
45823 break;
45824 }
45825
45826 return NB_OK;
45827 }
45828
45829 /*
45830 * XPath:
45831 * /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
45832 */
45833 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_force_check_modify(
45834 struct nb_cb_modify_args *args)
45835 {
45836 switch (args->event) {
45837 case NB_EV_VALIDATE:
45838 case NB_EV_PREPARE:
45839 case NB_EV_ABORT:
45840 case NB_EV_APPLY:
45841 /* TODO: implement me. */
45842 break;
45843 }
45844
45845 return NB_OK;
45846 }
45847
45848 /*
45849 * XPath:
45850 * /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
45851 */
45852 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_modify(
45853 struct nb_cb_modify_args *args)
45854 {
45855 switch (args->event) {
45856 case NB_EV_VALIDATE:
45857 case NB_EV_PREPARE:
45858 case NB_EV_ABORT:
45859 case NB_EV_APPLY:
45860 /* TODO: implement me. */
45861 break;
45862 }
45863
45864 return NB_OK;
45865 }
45866
45867 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_warning_only_destroy(
45868 struct nb_cb_destroy_args *args)
45869 {
45870 switch (args->event) {
45871 case NB_EV_VALIDATE:
45872 case NB_EV_PREPARE:
45873 case NB_EV_ABORT:
45874 case NB_EV_APPLY:
45875 /* TODO: implement me. */
45876 break;
45877 }
45878
45879 return NB_OK;
45880 }
45881
45882 /*
45883 * XPath:
45884 * /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
45885 */
45886 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_modify(
45887 struct nb_cb_modify_args *args)
45888 {
45889 switch (args->event) {
45890 case NB_EV_VALIDATE:
45891 case NB_EV_PREPARE:
45892 case NB_EV_ABORT:
45893 case NB_EV_APPLY:
45894 /* TODO: implement me. */
45895 break;
45896 }
45897
45898 return NB_OK;
45899 }
45900
45901 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_restart_timer_destroy(
45902 struct nb_cb_destroy_args *args)
45903 {
45904 switch (args->event) {
45905 case NB_EV_VALIDATE:
45906 case NB_EV_PREPARE:
45907 case NB_EV_ABORT:
45908 case NB_EV_APPLY:
45909 /* TODO: implement me. */
45910 break;
45911 }
45912
45913 return NB_OK;
45914 }
45915
45916 /*
45917 * XPath:
45918 * /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
45919 */
45920 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_modify(
45921 struct nb_cb_modify_args *args)
45922 {
45923 switch (args->event) {
45924 case NB_EV_VALIDATE:
45925 case NB_EV_PREPARE:
45926 case NB_EV_ABORT:
45927 case NB_EV_APPLY:
45928 /* TODO: implement me. */
45929 break;
45930 }
45931
45932 return NB_OK;
45933 }
45934
45935 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_shutdown_threshold_pct_destroy(
45936 struct nb_cb_destroy_args *args)
45937 {
45938 switch (args->event) {
45939 case NB_EV_VALIDATE:
45940 case NB_EV_PREPARE:
45941 case NB_EV_ABORT:
45942 case NB_EV_APPLY:
45943 /* TODO: implement me. */
45944 break;
45945 }
45946
45947 return NB_OK;
45948 }
45949
45950 /*
45951 * XPath:
45952 * /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
45953 */
45954 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_modify(
45955 struct nb_cb_modify_args *args)
45956 {
45957 switch (args->event) {
45958 case NB_EV_VALIDATE:
45959 case NB_EV_PREPARE:
45960 case NB_EV_ABORT:
45961 case NB_EV_APPLY:
45962 /* TODO: implement me. */
45963 break;
45964 }
45965
45966 return NB_OK;
45967 }
45968
45969 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_shutdown_threshold_pct_destroy(
45970 struct nb_cb_destroy_args *args)
45971 {
45972 switch (args->event) {
45973 case NB_EV_VALIDATE:
45974 case NB_EV_PREPARE:
45975 case NB_EV_ABORT:
45976 case NB_EV_APPLY:
45977 /* TODO: implement me. */
45978 break;
45979 }
45980
45981 return NB_OK;
45982 }
45983
45984 /*
45985 * XPath:
45986 * /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
45987 */
45988 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_modify(
45989 struct nb_cb_modify_args *args)
45990 {
45991 switch (args->event) {
45992 case NB_EV_VALIDATE:
45993 case NB_EV_PREPARE:
45994 case NB_EV_ABORT:
45995 case NB_EV_APPLY:
45996 /* TODO: implement me. */
45997 break;
45998 }
45999
46000 return NB_OK;
46001 }
46002
46003 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tr_restart_timer_destroy(
46004 struct nb_cb_destroy_args *args)
46005 {
46006 switch (args->event) {
46007 case NB_EV_VALIDATE:
46008 case NB_EV_PREPARE:
46009 case NB_EV_ABORT:
46010 case NB_EV_APPLY:
46011 /* TODO: implement me. */
46012 break;
46013 }
46014
46015 return NB_OK;
46016 }
46017
46018 /*
46019 * XPath:
46020 * /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
46021 */
46022 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_modify(
46023 struct nb_cb_modify_args *args)
46024 {
46025 switch (args->event) {
46026 case NB_EV_VALIDATE:
46027 case NB_EV_PREPARE:
46028 case NB_EV_ABORT:
46029 case NB_EV_APPLY:
46030 /* TODO: implement me. */
46031 break;
46032 }
46033
46034 return NB_OK;
46035 }
46036
46037 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_shutdown_threshold_pct_destroy(
46038 struct nb_cb_destroy_args *args)
46039 {
46040 switch (args->event) {
46041 case NB_EV_VALIDATE:
46042 case NB_EV_PREPARE:
46043 case NB_EV_ABORT:
46044 case NB_EV_APPLY:
46045 /* TODO: implement me. */
46046 break;
46047 }
46048
46049 return NB_OK;
46050 }
46051
46052 /*
46053 * XPath:
46054 * /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
46055 */
46056 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_modify(
46057 struct nb_cb_modify_args *args)
46058 {
46059 switch (args->event) {
46060 case NB_EV_VALIDATE:
46061 case NB_EV_PREPARE:
46062 case NB_EV_ABORT:
46063 case NB_EV_APPLY:
46064 /* TODO: implement me. */
46065 break;
46066 }
46067
46068 return NB_OK;
46069 }
46070
46071 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_prefix_limit_direction_list_options_tw_warning_only_destroy(
46072 struct nb_cb_destroy_args *args)
46073 {
46074 switch (args->event) {
46075 case NB_EV_VALIDATE:
46076 case NB_EV_PREPARE:
46077 case NB_EV_ABORT:
46078 case NB_EV_APPLY:
46079 /* TODO: implement me. */
46080 break;
46081 }
46082
46083 return NB_OK;
46084 }
46085
46086 /*
46087 * XPath:
46088 * /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
46089 */
46090 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_modify(
46091 struct nb_cb_modify_args *args)
46092 {
46093 switch (args->event) {
46094 case NB_EV_VALIDATE:
46095 case NB_EV_PREPARE:
46096 case NB_EV_ABORT:
46097 return NB_OK;
46098 case NB_EV_APPLY:
46099 return bgp_peer_group_afi_safi_flag_modify(
46100 args, PEER_FLAG_NEXTHOP_SELF,
46101 yang_dnode_get_bool(args->dnode, NULL));
46102
46103 break;
46104 }
46105
46106 return NB_OK;
46107 }
46108
46109 /*
46110 * XPath:
46111 * /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
46112 */
46113 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_nexthop_self_next_hop_self_force_modify(
46114 struct nb_cb_modify_args *args)
46115 {
46116 switch (args->event) {
46117 case NB_EV_VALIDATE:
46118 case NB_EV_PREPARE:
46119 case NB_EV_ABORT:
46120 return NB_OK;
46121 case NB_EV_APPLY:
46122 return bgp_peer_group_afi_safi_flag_modify(
46123 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
46124 yang_dnode_get_bool(args->dnode, NULL));
46125
46126 break;
46127 }
46128
46129 return NB_OK;
46130 }
46131
46132 /*
46133 * XPath:
46134 * /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
46135 */
46136 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_modify(
46137 struct nb_cb_modify_args *args)
46138 {
46139 switch (args->event) {
46140 case NB_EV_VALIDATE:
46141 case NB_EV_PREPARE:
46142 case NB_EV_ABORT:
46143 return NB_OK;
46144 case NB_EV_APPLY:
46145 return bgp_peer_group_afi_safi_flag_modify(
46146 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL,
46147 yang_dnode_get_bool(args->dnode, NULL));
46148
46149 break;
46150 }
46151
46152 return NB_OK;
46153 }
46154
46155 /*
46156 * XPath:
46157 * /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
46158 */
46159 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_all_replace_modify(
46160 struct nb_cb_modify_args *args)
46161 {
46162 switch (args->event) {
46163 case NB_EV_VALIDATE:
46164 case NB_EV_PREPARE:
46165 case NB_EV_ABORT:
46166 return NB_OK;
46167 case NB_EV_APPLY:
46168 return bgp_peer_group_afi_safi_flag_modify(
46169 args, PEER_FLAG_REMOVE_PRIVATE_AS_ALL_REPLACE,
46170 yang_dnode_get_bool(args->dnode, NULL));
46171
46172 break;
46173 }
46174
46175 return NB_OK;
46176 }
46177
46178 /*
46179 * XPath:
46180 * /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
46181 */
46182 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_modify(
46183 struct nb_cb_modify_args *args)
46184 {
46185 switch (args->event) {
46186 case NB_EV_VALIDATE:
46187 case NB_EV_PREPARE:
46188 case NB_EV_ABORT:
46189 return NB_OK;
46190 case NB_EV_APPLY:
46191 return bgp_peer_group_afi_safi_flag_modify(
46192 args, PEER_FLAG_REMOVE_PRIVATE_AS,
46193 yang_dnode_get_bool(args->dnode, NULL));
46194
46195 break;
46196 }
46197
46198 return NB_OK;
46199 }
46200
46201 /*
46202 * XPath:
46203 * /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
46204 */
46205 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_private_as_remove_private_as_replace_modify(
46206 struct nb_cb_modify_args *args)
46207 {
46208 switch (args->event) {
46209 case NB_EV_VALIDATE:
46210 case NB_EV_PREPARE:
46211 case NB_EV_ABORT:
46212 return NB_OK;
46213 case NB_EV_APPLY:
46214 return bgp_peer_group_afi_safi_flag_modify(
46215 args, PEER_FLAG_REMOVE_PRIVATE_AS_REPLACE,
46216 yang_dnode_get_bool(args->dnode, NULL));
46217
46218 break;
46219 }
46220
46221 return NB_OK;
46222 }
46223
46224 /*
46225 * XPath:
46226 * /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
46227 */
46228 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_reflector_route_reflector_client_modify(
46229 struct nb_cb_modify_args *args)
46230 {
46231 switch (args->event) {
46232 case NB_EV_VALIDATE:
46233 case NB_EV_PREPARE:
46234 case NB_EV_ABORT:
46235 return NB_OK;
46236 case NB_EV_APPLY:
46237 return bgp_peer_group_afi_safi_flag_modify(
46238 args, PEER_FLAG_REFLECTOR_CLIENT,
46239 yang_dnode_get_bool(args->dnode, NULL));
46240
46241 break;
46242 }
46243
46244 return NB_OK;
46245 }
46246
46247 /*
46248 * XPath:
46249 * /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
46250 */
46251 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_route_server_route_server_client_modify(
46252 struct nb_cb_modify_args *args)
46253 {
46254 switch (args->event) {
46255 case NB_EV_VALIDATE:
46256 case NB_EV_PREPARE:
46257 case NB_EV_ABORT:
46258 return NB_OK;
46259 case NB_EV_APPLY:
46260 return bgp_peer_group_afi_safi_flag_modify(
46261 args, PEER_FLAG_RSERVER_CLIENT,
46262 yang_dnode_get_bool(args->dnode, NULL));
46263
46264 break;
46265 }
46266
46267 return NB_OK;
46268 }
46269
46270 /*
46271 * XPath:
46272 * /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
46273 */
46274 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_community_modify(
46275 struct nb_cb_modify_args *args)
46276 {
46277 switch (args->event) {
46278 case NB_EV_VALIDATE:
46279 case NB_EV_PREPARE:
46280 case NB_EV_ABORT:
46281 return NB_OK;
46282 case NB_EV_APPLY:
46283 return bgp_peer_group_afi_safi_flag_modify(
46284 args, PEER_FLAG_SEND_COMMUNITY,
46285 yang_dnode_get_bool(args->dnode, NULL));
46286
46287 break;
46288 }
46289
46290 return NB_OK;
46291 }
46292
46293 /*
46294 * XPath:
46295 * /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
46296 */
46297 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_ext_community_modify(
46298 struct nb_cb_modify_args *args)
46299 {
46300 switch (args->event) {
46301 case NB_EV_VALIDATE:
46302 case NB_EV_PREPARE:
46303 case NB_EV_ABORT:
46304 return NB_OK;
46305 case NB_EV_APPLY:
46306 return bgp_peer_group_afi_safi_flag_modify(
46307 args, PEER_FLAG_SEND_EXT_COMMUNITY,
46308 yang_dnode_get_bool(args->dnode, NULL));
46309
46310 break;
46311 }
46312
46313 return NB_OK;
46314 }
46315
46316 /*
46317 * XPath:
46318 * /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
46319 */
46320 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_send_community_send_large_community_modify(
46321 struct nb_cb_modify_args *args)
46322 {
46323 switch (args->event) {
46324 case NB_EV_VALIDATE:
46325 case NB_EV_PREPARE:
46326 case NB_EV_ABORT:
46327 return NB_OK;
46328 case NB_EV_APPLY:
46329 return bgp_peer_group_afi_safi_flag_modify(
46330 args, PEER_FLAG_SEND_LARGE_COMMUNITY,
46331 yang_dnode_get_bool(args->dnode, NULL));
46332
46333 break;
46334 }
46335
46336 return NB_OK;
46337 }
46338
46339 /*
46340 * XPath:
46341 * /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
46342 */
46343 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_soft_reconfiguration_modify(
46344 struct nb_cb_modify_args *args)
46345 {
46346 switch (args->event) {
46347 case NB_EV_VALIDATE:
46348 case NB_EV_PREPARE:
46349 case NB_EV_ABORT:
46350 return NB_OK;
46351 case NB_EV_APPLY:
46352 return bgp_peer_group_afi_safi_flag_modify(
46353 args, PEER_FLAG_SOFT_RECONFIG,
46354 yang_dnode_get_bool(args->dnode, NULL));
46355
46356 break;
46357 }
46358
46359 return NB_OK;
46360 }
46361
46362 /*
46363 * XPath:
46364 * /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
46365 */
46366 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_modify(
46367 struct nb_cb_modify_args *args)
46368 {
46369 switch (args->event) {
46370 case NB_EV_VALIDATE:
46371 case NB_EV_PREPARE:
46372 case NB_EV_ABORT:
46373 return NB_OK;
46374 case NB_EV_APPLY:
46375 return bgp_peer_group_afi_safi_weight_modify(args);
46376
46377 break;
46378 }
46379
46380 return NB_OK;
46381 }
46382
46383 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_weight_weight_attribute_destroy(
46384 struct nb_cb_destroy_args *args)
46385 {
46386 switch (args->event) {
46387 case NB_EV_VALIDATE:
46388 case NB_EV_PREPARE:
46389 case NB_EV_ABORT:
46390 return NB_OK;
46391 case NB_EV_APPLY:
46392 return bgp_peer_group_afi_safi_weight_destroy(args);
46393
46394 break;
46395 }
46396
46397 return NB_OK;
46398 }
46399
46400 /*
46401 * XPath:
46402 * /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
46403 */
46404 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_import_modify(
46405 struct nb_cb_modify_args *args)
46406 {
46407 switch (args->event) {
46408 case NB_EV_VALIDATE:
46409 case NB_EV_PREPARE:
46410 case NB_EV_ABORT:
46411 break;
46412 case NB_EV_APPLY:
46413 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
46414 }
46415
46416 return NB_OK;
46417 }
46418
46419 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_import_destroy(
46420 struct nb_cb_destroy_args *args)
46421 {
46422 switch (args->event) {
46423 case NB_EV_VALIDATE:
46424 case NB_EV_PREPARE:
46425 case NB_EV_ABORT:
46426 break;
46427 case NB_EV_APPLY:
46428 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
46429 }
46430
46431 return NB_OK;
46432 }
46433
46434 /*
46435 * XPath:
46436 * /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
46437 */
46438 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_export_modify(
46439 struct nb_cb_modify_args *args)
46440 {
46441 switch (args->event) {
46442 case NB_EV_VALIDATE:
46443 case NB_EV_PREPARE:
46444 case NB_EV_ABORT:
46445 break;
46446 case NB_EV_APPLY:
46447 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
46448 }
46449
46450 return NB_OK;
46451 }
46452
46453 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_rmap_export_destroy(
46454 struct nb_cb_destroy_args *args)
46455 {
46456 switch (args->event) {
46457 case NB_EV_VALIDATE:
46458 case NB_EV_PREPARE:
46459 case NB_EV_ABORT:
46460 break;
46461 case NB_EV_APPLY:
46462 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
46463 }
46464
46465 return NB_OK;
46466 }
46467
46468 /*
46469 * XPath:
46470 * /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
46471 */
46472 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_import_modify(
46473 struct nb_cb_modify_args *args)
46474 {
46475 switch (args->event) {
46476 case NB_EV_VALIDATE:
46477 case NB_EV_PREPARE:
46478 case NB_EV_ABORT:
46479 break;
46480 case NB_EV_APPLY:
46481 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
46482 }
46483
46484 return NB_OK;
46485 }
46486
46487 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_import_destroy(
46488 struct nb_cb_destroy_args *args)
46489 {
46490 switch (args->event) {
46491 case NB_EV_VALIDATE:
46492 case NB_EV_PREPARE:
46493 case NB_EV_ABORT:
46494 break;
46495 case NB_EV_APPLY:
46496 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
46497 }
46498
46499 return NB_OK;
46500 }
46501
46502 /*
46503 * XPath:
46504 * /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
46505 */
46506 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_export_modify(
46507 struct nb_cb_modify_args *args)
46508 {
46509 switch (args->event) {
46510 case NB_EV_VALIDATE:
46511 case NB_EV_PREPARE:
46512 case NB_EV_ABORT:
46513 break;
46514 case NB_EV_APPLY:
46515 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
46516 }
46517
46518 return NB_OK;
46519 }
46520
46521 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_plist_export_destroy(
46522 struct nb_cb_destroy_args *args)
46523 {
46524 switch (args->event) {
46525 case NB_EV_VALIDATE:
46526 case NB_EV_PREPARE:
46527 case NB_EV_ABORT:
46528 break;
46529 case NB_EV_APPLY:
46530 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
46531 }
46532
46533 return NB_OK;
46534 }
46535
46536 /*
46537 * XPath:
46538 * /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
46539 */
46540 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_import_modify(
46541 struct nb_cb_modify_args *args)
46542 {
46543 switch (args->event) {
46544 case NB_EV_VALIDATE:
46545 case NB_EV_PREPARE:
46546 case NB_EV_ABORT:
46547 case NB_EV_APPLY:
46548 /* TODO: implement me. */
46549 break;
46550 }
46551
46552 return NB_OK;
46553 }
46554
46555 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_import_destroy(
46556 struct nb_cb_destroy_args *args)
46557 {
46558 switch (args->event) {
46559 case NB_EV_VALIDATE:
46560 case NB_EV_PREPARE:
46561 case NB_EV_ABORT:
46562 case NB_EV_APPLY:
46563 /* TODO: implement me. */
46564 break;
46565 }
46566
46567 return NB_OK;
46568 }
46569
46570 /*
46571 * XPath:
46572 * /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
46573 */
46574 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_export_modify(
46575 struct nb_cb_modify_args *args)
46576 {
46577 switch (args->event) {
46578 case NB_EV_VALIDATE:
46579 case NB_EV_PREPARE:
46580 case NB_EV_ABORT:
46581 case NB_EV_APPLY:
46582 /* TODO: implement me. */
46583 break;
46584 }
46585
46586 return NB_OK;
46587 }
46588
46589 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_access_list_export_destroy(
46590 struct nb_cb_destroy_args *args)
46591 {
46592 switch (args->event) {
46593 case NB_EV_VALIDATE:
46594 case NB_EV_PREPARE:
46595 case NB_EV_ABORT:
46596 case NB_EV_APPLY:
46597 /* TODO: implement me. */
46598 break;
46599 }
46600
46601 return NB_OK;
46602 }
46603
46604 /*
46605 * XPath:
46606 * /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
46607 */
46608 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_import_modify(
46609 struct nb_cb_modify_args *args)
46610 {
46611 switch (args->event) {
46612 case NB_EV_VALIDATE:
46613 case NB_EV_PREPARE:
46614 case NB_EV_ABORT:
46615 case NB_EV_APPLY:
46616 /* TODO: implement me. */
46617 break;
46618 }
46619
46620 return NB_OK;
46621 }
46622
46623 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_import_destroy(
46624 struct nb_cb_destroy_args *args)
46625 {
46626 switch (args->event) {
46627 case NB_EV_VALIDATE:
46628 case NB_EV_PREPARE:
46629 case NB_EV_ABORT:
46630 case NB_EV_APPLY:
46631 /* TODO: implement me. */
46632 break;
46633 }
46634
46635 return NB_OK;
46636 }
46637
46638 /*
46639 * XPath:
46640 * /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
46641 */
46642 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_export_modify(
46643 struct nb_cb_modify_args *args)
46644 {
46645 switch (args->event) {
46646 case NB_EV_VALIDATE:
46647 case NB_EV_PREPARE:
46648 case NB_EV_ABORT:
46649 case NB_EV_APPLY:
46650 /* TODO: implement me. */
46651 break;
46652 }
46653
46654 return NB_OK;
46655 }
46656
46657 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_as_path_filter_list_export_destroy(
46658 struct nb_cb_destroy_args *args)
46659 {
46660 switch (args->event) {
46661 case NB_EV_VALIDATE:
46662 case NB_EV_PREPARE:
46663 case NB_EV_ABORT:
46664 case NB_EV_APPLY:
46665 /* TODO: implement me. */
46666 break;
46667 }
46668
46669 return NB_OK;
46670 }
46671
46672 /*
46673 * XPath:
46674 * /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
46675 */
46676 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_import_modify(
46677 struct nb_cb_modify_args *args)
46678 {
46679 switch (args->event) {
46680 case NB_EV_VALIDATE:
46681 case NB_EV_PREPARE:
46682 case NB_EV_ABORT:
46683 case NB_EV_APPLY:
46684 /* TODO: implement me. */
46685 break;
46686 }
46687
46688 return NB_OK;
46689 }
46690
46691 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_import_destroy(
46692 struct nb_cb_destroy_args *args)
46693 {
46694 switch (args->event) {
46695 case NB_EV_VALIDATE:
46696 case NB_EV_PREPARE:
46697 case NB_EV_ABORT:
46698 case NB_EV_APPLY:
46699 /* TODO: implement me. */
46700 break;
46701 }
46702
46703 return NB_OK;
46704 }
46705
46706 /*
46707 * XPath:
46708 * /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
46709 */
46710 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_export_modify(
46711 struct nb_cb_modify_args *args)
46712 {
46713 switch (args->event) {
46714 case NB_EV_VALIDATE:
46715 case NB_EV_PREPARE:
46716 case NB_EV_ABORT:
46717 case NB_EV_APPLY:
46718 /* TODO: implement me. */
46719 break;
46720 }
46721
46722 return NB_OK;
46723 }
46724
46725 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l3vpn_ipv6_unicast_filter_config_unsuppress_map_export_destroy(
46726 struct nb_cb_destroy_args *args)
46727 {
46728 switch (args->event) {
46729 case NB_EV_VALIDATE:
46730 case NB_EV_PREPARE:
46731 case NB_EV_ABORT:
46732 case NB_EV_APPLY:
46733 /* TODO: implement me. */
46734 break;
46735 }
46736
46737 return NB_OK;
46738 }
46739
46740 /*
46741 * XPath:
46742 * /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
46743 */
46744 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_modify(
46745 struct nb_cb_modify_args *args)
46746 {
46747 switch (args->event) {
46748 case NB_EV_VALIDATE:
46749 case NB_EV_PREPARE:
46750 case NB_EV_ABORT:
46751 case NB_EV_APPLY:
46752 /* TODO: implement me. */
46753 break;
46754 }
46755
46756 return NB_OK;
46757 }
46758
46759 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_as_destroy(
46760 struct nb_cb_destroy_args *args)
46761 {
46762 switch (args->event) {
46763 case NB_EV_VALIDATE:
46764 case NB_EV_PREPARE:
46765 case NB_EV_ABORT:
46766 case NB_EV_APPLY:
46767 /* TODO: implement me. */
46768 break;
46769 }
46770
46771 return NB_OK;
46772 }
46773
46774 /*
46775 * XPath:
46776 * /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
46777 */
46778 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_modify(
46779 struct nb_cb_modify_args *args)
46780 {
46781 switch (args->event) {
46782 case NB_EV_VALIDATE:
46783 case NB_EV_PREPARE:
46784 case NB_EV_ABORT:
46785 case NB_EV_APPLY:
46786 /* TODO: implement me. */
46787 break;
46788 }
46789
46790 return NB_OK;
46791 }
46792
46793 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_as_path_options_allow_own_origin_as_destroy(
46794 struct nb_cb_destroy_args *args)
46795 {
46796 switch (args->event) {
46797 case NB_EV_VALIDATE:
46798 case NB_EV_PREPARE:
46799 case NB_EV_ABORT:
46800 case NB_EV_APPLY:
46801 /* TODO: implement me. */
46802 break;
46803 }
46804
46805 return NB_OK;
46806 }
46807
46808 /*
46809 * XPath:
46810 * /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
46811 */
46812 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_as_path_options_replace_peer_as_modify(
46813 struct nb_cb_modify_args *args)
46814 {
46815 switch (args->event) {
46816 case NB_EV_VALIDATE:
46817 case NB_EV_PREPARE:
46818 case NB_EV_ABORT:
46819 return NB_OK;
46820 case NB_EV_APPLY:
46821 return bgp_peer_group_afi_safi_flag_modify(
46822 args, PEER_FLAG_AS_OVERRIDE,
46823 yang_dnode_get_bool(args->dnode, NULL));
46824
46825 break;
46826 }
46827
46828 return NB_OK;
46829 }
46830
46831 /*
46832 * XPath:
46833 * /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
46834 */
46835 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_as_path_unchanged_modify(
46836 struct nb_cb_modify_args *args)
46837 {
46838 switch (args->event) {
46839 case NB_EV_VALIDATE:
46840 case NB_EV_PREPARE:
46841 case NB_EV_ABORT:
46842 return NB_OK;
46843 case NB_EV_APPLY:
46844 return bgp_peer_group_afi_safi_flag_modify(
46845 args, PEER_FLAG_AS_PATH_UNCHANGED,
46846 yang_dnode_get_bool(args->dnode, NULL));
46847
46848 break;
46849 }
46850
46851 return NB_OK;
46852 }
46853
46854 /*
46855 * XPath:
46856 * /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
46857 */
46858 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_next_hop_unchanged_modify(
46859 struct nb_cb_modify_args *args)
46860 {
46861 switch (args->event) {
46862 case NB_EV_VALIDATE:
46863 case NB_EV_PREPARE:
46864 case NB_EV_ABORT:
46865 return NB_OK;
46866 case NB_EV_APPLY:
46867 return bgp_peer_group_afi_safi_flag_modify(
46868 args, PEER_FLAG_NEXTHOP_UNCHANGED,
46869 yang_dnode_get_bool(args->dnode, NULL));
46870
46871 break;
46872 }
46873
46874 return NB_OK;
46875 }
46876
46877 /*
46878 * XPath:
46879 * /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
46880 */
46881 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_attr_unchanged_med_unchanged_modify(
46882 struct nb_cb_modify_args *args)
46883 {
46884 switch (args->event) {
46885 case NB_EV_VALIDATE:
46886 case NB_EV_PREPARE:
46887 case NB_EV_ABORT:
46888 return NB_OK;
46889 case NB_EV_APPLY:
46890 return bgp_peer_group_afi_safi_flag_modify(
46891 args, PEER_FLAG_MED_UNCHANGED,
46892 yang_dnode_get_bool(args->dnode, NULL));
46893
46894 break;
46895 }
46896
46897 return NB_OK;
46898 }
46899
46900 /*
46901 * XPath:
46902 * /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
46903 */
46904 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_modify(
46905 struct nb_cb_modify_args *args)
46906 {
46907 switch (args->event) {
46908 case NB_EV_VALIDATE:
46909 case NB_EV_PREPARE:
46910 case NB_EV_ABORT:
46911 return NB_OK;
46912 case NB_EV_APPLY:
46913 return bgp_peer_group_afi_safi_flag_modify(
46914 args, PEER_FLAG_NEXTHOP_SELF,
46915 yang_dnode_get_bool(args->dnode, NULL));
46916
46917 break;
46918 }
46919
46920 return NB_OK;
46921 }
46922
46923 /*
46924 * XPath:
46925 * /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
46926 */
46927 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_nexthop_self_next_hop_self_force_modify(
46928 struct nb_cb_modify_args *args)
46929 {
46930 switch (args->event) {
46931 case NB_EV_VALIDATE:
46932 case NB_EV_PREPARE:
46933 case NB_EV_ABORT:
46934 return NB_OK;
46935 case NB_EV_APPLY:
46936 return bgp_peer_group_afi_safi_flag_modify(
46937 args, PEER_FLAG_FORCE_NEXTHOP_SELF,
46938 yang_dnode_get_bool(args->dnode, NULL));
46939
46940 break;
46941 }
46942
46943 return NB_OK;
46944 }
46945
46946 /*
46947 * XPath:
46948 * /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
46949 */
46950 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_route_reflector_route_reflector_client_modify(
46951 struct nb_cb_modify_args *args)
46952 {
46953 switch (args->event) {
46954 case NB_EV_VALIDATE:
46955 case NB_EV_PREPARE:
46956 case NB_EV_ABORT:
46957 return NB_OK;
46958 case NB_EV_APPLY:
46959 return bgp_peer_group_afi_safi_flag_modify(
46960 args, PEER_FLAG_REFLECTOR_CLIENT,
46961 yang_dnode_get_bool(args->dnode, NULL));
46962
46963 break;
46964 }
46965
46966 return NB_OK;
46967 }
46968
46969 /*
46970 * XPath:
46971 * /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
46972 */
46973 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_route_server_route_server_client_modify(
46974 struct nb_cb_modify_args *args)
46975 {
46976 switch (args->event) {
46977 case NB_EV_VALIDATE:
46978 case NB_EV_PREPARE:
46979 case NB_EV_ABORT:
46980 return NB_OK;
46981 case NB_EV_APPLY:
46982 return bgp_peer_group_afi_safi_flag_modify(
46983 args, PEER_FLAG_RSERVER_CLIENT,
46984 yang_dnode_get_bool(args->dnode, NULL));
46985
46986 break;
46987 }
46988
46989 return NB_OK;
46990 }
46991
46992 /*
46993 * XPath:
46994 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/l2vpn-evpn/soft-reconfiguration
46995 */
46996 int bgp_peer_groups_peer_group_afi_safis_afi_safi_l2vpn_evpn_soft_reconfiguration_modify(
46997 struct nb_cb_modify_args *args)
46998 {
46999 switch (args->event) {
47000 case NB_EV_VALIDATE:
47001 case NB_EV_PREPARE:
47002 case NB_EV_ABORT:
47003 return NB_OK;
47004 case NB_EV_APPLY:
47005 return bgp_peer_group_afi_safi_flag_modify(
47006 args, PEER_FLAG_SOFT_RECONFIG,
47007 yang_dnode_get_bool(args->dnode, NULL));
47008
47009 break;
47010 }
47011
47012 return NB_OK;
47013 }
47014
47015 /*
47016 * XPath:
47017 * /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
47018 */
47019 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_route_reflector_route_reflector_client_modify(
47020 struct nb_cb_modify_args *args)
47021 {
47022 switch (args->event) {
47023 case NB_EV_VALIDATE:
47024 case NB_EV_PREPARE:
47025 case NB_EV_ABORT:
47026 return NB_OK;
47027 case NB_EV_APPLY:
47028 return bgp_peer_group_afi_safi_flag_modify(
47029 args, PEER_FLAG_REFLECTOR_CLIENT,
47030 yang_dnode_get_bool(args->dnode, NULL));
47031
47032 break;
47033 }
47034
47035 return NB_OK;
47036 }
47037
47038 /*
47039 * XPath:
47040 * /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
47041 */
47042 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_route_server_route_server_client_modify(
47043 struct nb_cb_modify_args *args)
47044 {
47045 switch (args->event) {
47046 case NB_EV_VALIDATE:
47047 case NB_EV_PREPARE:
47048 case NB_EV_ABORT:
47049 return NB_OK;
47050 case NB_EV_APPLY:
47051 return bgp_peer_group_afi_safi_flag_modify(
47052 args, PEER_FLAG_RSERVER_CLIENT,
47053 yang_dnode_get_bool(args->dnode, NULL));
47054
47055 break;
47056 }
47057
47058 return NB_OK;
47059 }
47060
47061 /*
47062 * XPath:
47063 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv4-flowspec/soft-reconfiguration
47064 */
47065 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_soft_reconfiguration_modify(
47066 struct nb_cb_modify_args *args)
47067 {
47068 switch (args->event) {
47069 case NB_EV_VALIDATE:
47070 case NB_EV_PREPARE:
47071 case NB_EV_ABORT:
47072 return NB_OK;
47073 case NB_EV_APPLY:
47074 return bgp_peer_group_afi_safi_flag_modify(
47075 args, PEER_FLAG_SOFT_RECONFIG,
47076 yang_dnode_get_bool(args->dnode, NULL));
47077
47078 break;
47079 }
47080
47081 return NB_OK;
47082 }
47083
47084 /*
47085 * XPath:
47086 * /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
47087 */
47088 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_modify(
47089 struct nb_cb_modify_args *args)
47090 {
47091 switch (args->event) {
47092 case NB_EV_VALIDATE:
47093 case NB_EV_PREPARE:
47094 case NB_EV_ABORT:
47095 break;
47096 case NB_EV_APPLY:
47097 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
47098 }
47099
47100 return NB_OK;
47101 }
47102
47103 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_import_destroy(
47104 struct nb_cb_destroy_args *args)
47105 {
47106 switch (args->event) {
47107 case NB_EV_VALIDATE:
47108 case NB_EV_PREPARE:
47109 case NB_EV_ABORT:
47110 break;
47111 case NB_EV_APPLY:
47112 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
47113 }
47114
47115 return NB_OK;
47116 }
47117
47118 /*
47119 * XPath:
47120 * /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
47121 */
47122 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_modify(
47123 struct nb_cb_modify_args *args)
47124 {
47125 switch (args->event) {
47126 case NB_EV_VALIDATE:
47127 case NB_EV_PREPARE:
47128 case NB_EV_ABORT:
47129 break;
47130 case NB_EV_APPLY:
47131 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
47132 }
47133
47134 return NB_OK;
47135 }
47136
47137 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_rmap_export_destroy(
47138 struct nb_cb_destroy_args *args)
47139 {
47140 switch (args->event) {
47141 case NB_EV_VALIDATE:
47142 case NB_EV_PREPARE:
47143 case NB_EV_ABORT:
47144 break;
47145 case NB_EV_APPLY:
47146 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
47147 }
47148
47149 return NB_OK;
47150 }
47151
47152 /*
47153 * XPath:
47154 * /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
47155 */
47156 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_modify(
47157 struct nb_cb_modify_args *args)
47158 {
47159 switch (args->event) {
47160 case NB_EV_VALIDATE:
47161 case NB_EV_PREPARE:
47162 case NB_EV_ABORT:
47163 break;
47164 case NB_EV_APPLY:
47165 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
47166 }
47167
47168 return NB_OK;
47169 }
47170
47171 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_import_destroy(
47172 struct nb_cb_destroy_args *args)
47173 {
47174 switch (args->event) {
47175 case NB_EV_VALIDATE:
47176 case NB_EV_PREPARE:
47177 case NB_EV_ABORT:
47178 break;
47179 case NB_EV_APPLY:
47180 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
47181 }
47182
47183 return NB_OK;
47184 }
47185
47186 /*
47187 * XPath:
47188 * /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
47189 */
47190 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_modify(
47191 struct nb_cb_modify_args *args)
47192 {
47193 switch (args->event) {
47194 case NB_EV_VALIDATE:
47195 case NB_EV_PREPARE:
47196 case NB_EV_ABORT:
47197 break;
47198 case NB_EV_APPLY:
47199 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
47200 }
47201
47202 return NB_OK;
47203 }
47204
47205 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_plist_export_destroy(
47206 struct nb_cb_destroy_args *args)
47207 {
47208 switch (args->event) {
47209 case NB_EV_VALIDATE:
47210 case NB_EV_PREPARE:
47211 case NB_EV_ABORT:
47212 break;
47213 case NB_EV_APPLY:
47214 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
47215 }
47216
47217 return NB_OK;
47218 }
47219
47220 /*
47221 * XPath:
47222 * /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
47223 */
47224 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_modify(
47225 struct nb_cb_modify_args *args)
47226 {
47227 switch (args->event) {
47228 case NB_EV_VALIDATE:
47229 case NB_EV_PREPARE:
47230 case NB_EV_ABORT:
47231 case NB_EV_APPLY:
47232 /* TODO: implement me. */
47233 break;
47234 }
47235
47236 return NB_OK;
47237 }
47238
47239 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_import_destroy(
47240 struct nb_cb_destroy_args *args)
47241 {
47242 switch (args->event) {
47243 case NB_EV_VALIDATE:
47244 case NB_EV_PREPARE:
47245 case NB_EV_ABORT:
47246 case NB_EV_APPLY:
47247 /* TODO: implement me. */
47248 break;
47249 }
47250
47251 return NB_OK;
47252 }
47253
47254 /*
47255 * XPath:
47256 * /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
47257 */
47258 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_modify(
47259 struct nb_cb_modify_args *args)
47260 {
47261 switch (args->event) {
47262 case NB_EV_VALIDATE:
47263 case NB_EV_PREPARE:
47264 case NB_EV_ABORT:
47265 case NB_EV_APPLY:
47266 /* TODO: implement me. */
47267 break;
47268 }
47269
47270 return NB_OK;
47271 }
47272
47273 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_access_list_export_destroy(
47274 struct nb_cb_destroy_args *args)
47275 {
47276 switch (args->event) {
47277 case NB_EV_VALIDATE:
47278 case NB_EV_PREPARE:
47279 case NB_EV_ABORT:
47280 case NB_EV_APPLY:
47281 /* TODO: implement me. */
47282 break;
47283 }
47284
47285 return NB_OK;
47286 }
47287
47288 /*
47289 * XPath:
47290 * /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
47291 */
47292 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_modify(
47293 struct nb_cb_modify_args *args)
47294 {
47295 switch (args->event) {
47296 case NB_EV_VALIDATE:
47297 case NB_EV_PREPARE:
47298 case NB_EV_ABORT:
47299 case NB_EV_APPLY:
47300 /* TODO: implement me. */
47301 break;
47302 }
47303
47304 return NB_OK;
47305 }
47306
47307 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_import_destroy(
47308 struct nb_cb_destroy_args *args)
47309 {
47310 switch (args->event) {
47311 case NB_EV_VALIDATE:
47312 case NB_EV_PREPARE:
47313 case NB_EV_ABORT:
47314 case NB_EV_APPLY:
47315 /* TODO: implement me. */
47316 break;
47317 }
47318
47319 return NB_OK;
47320 }
47321
47322 /*
47323 * XPath:
47324 * /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
47325 */
47326 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_modify(
47327 struct nb_cb_modify_args *args)
47328 {
47329 switch (args->event) {
47330 case NB_EV_VALIDATE:
47331 case NB_EV_PREPARE:
47332 case NB_EV_ABORT:
47333 case NB_EV_APPLY:
47334 /* TODO: implement me. */
47335 break;
47336 }
47337
47338 return NB_OK;
47339 }
47340
47341 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_as_path_filter_list_export_destroy(
47342 struct nb_cb_destroy_args *args)
47343 {
47344 switch (args->event) {
47345 case NB_EV_VALIDATE:
47346 case NB_EV_PREPARE:
47347 case NB_EV_ABORT:
47348 case NB_EV_APPLY:
47349 /* TODO: implement me. */
47350 break;
47351 }
47352
47353 return NB_OK;
47354 }
47355
47356 /*
47357 * XPath:
47358 * /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
47359 */
47360 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_modify(
47361 struct nb_cb_modify_args *args)
47362 {
47363 switch (args->event) {
47364 case NB_EV_VALIDATE:
47365 case NB_EV_PREPARE:
47366 case NB_EV_ABORT:
47367 case NB_EV_APPLY:
47368 /* TODO: implement me. */
47369 break;
47370 }
47371
47372 return NB_OK;
47373 }
47374
47375 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_import_destroy(
47376 struct nb_cb_destroy_args *args)
47377 {
47378 switch (args->event) {
47379 case NB_EV_VALIDATE:
47380 case NB_EV_PREPARE:
47381 case NB_EV_ABORT:
47382 case NB_EV_APPLY:
47383 /* TODO: implement me. */
47384 break;
47385 }
47386
47387 return NB_OK;
47388 }
47389
47390 /*
47391 * XPath:
47392 * /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
47393 */
47394 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_modify(
47395 struct nb_cb_modify_args *args)
47396 {
47397 switch (args->event) {
47398 case NB_EV_VALIDATE:
47399 case NB_EV_PREPARE:
47400 case NB_EV_ABORT:
47401 case NB_EV_APPLY:
47402 /* TODO: implement me. */
47403 break;
47404 }
47405
47406 return NB_OK;
47407 }
47408
47409 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv4_flowspec_filter_config_unsuppress_map_export_destroy(
47410 struct nb_cb_destroy_args *args)
47411 {
47412 switch (args->event) {
47413 case NB_EV_VALIDATE:
47414 case NB_EV_PREPARE:
47415 case NB_EV_ABORT:
47416 case NB_EV_APPLY:
47417 /* TODO: implement me. */
47418 break;
47419 }
47420
47421 return NB_OK;
47422 }
47423
47424 /*
47425 * XPath:
47426 * /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
47427 */
47428 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_route_reflector_route_reflector_client_modify(
47429 struct nb_cb_modify_args *args)
47430 {
47431 switch (args->event) {
47432 case NB_EV_VALIDATE:
47433 case NB_EV_PREPARE:
47434 case NB_EV_ABORT:
47435 return NB_OK;
47436 case NB_EV_APPLY:
47437 return bgp_peer_group_afi_safi_flag_modify(
47438 args, PEER_FLAG_REFLECTOR_CLIENT,
47439 yang_dnode_get_bool(args->dnode, NULL));
47440
47441 break;
47442 }
47443
47444 return NB_OK;
47445 }
47446
47447 /*
47448 * XPath:
47449 * /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
47450 */
47451 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_route_server_route_server_client_modify(
47452 struct nb_cb_modify_args *args)
47453 {
47454 switch (args->event) {
47455 case NB_EV_VALIDATE:
47456 case NB_EV_PREPARE:
47457 case NB_EV_ABORT:
47458 return NB_OK;
47459 case NB_EV_APPLY:
47460 return bgp_peer_group_afi_safi_flag_modify(
47461 args, PEER_FLAG_RSERVER_CLIENT,
47462 yang_dnode_get_bool(args->dnode, NULL));
47463
47464 break;
47465 }
47466
47467 return NB_OK;
47468 }
47469
47470 /*
47471 * XPath:
47472 * /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/peer-groups/peer-group/afi-safis/afi-safi/ipv6-flowspec/soft-reconfiguration
47473 */
47474 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_soft_reconfiguration_modify(
47475 struct nb_cb_modify_args *args)
47476 {
47477 switch (args->event) {
47478 case NB_EV_VALIDATE:
47479 case NB_EV_PREPARE:
47480 case NB_EV_ABORT:
47481 return NB_OK;
47482 case NB_EV_APPLY:
47483 return bgp_peer_group_afi_safi_flag_modify(
47484 args, PEER_FLAG_SOFT_RECONFIG,
47485 yang_dnode_get_bool(args->dnode, NULL));
47486
47487 break;
47488 }
47489
47490 return NB_OK;
47491 }
47492
47493 /*
47494 * XPath:
47495 * /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
47496 */
47497 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_modify(
47498 struct nb_cb_modify_args *args)
47499 {
47500 switch (args->event) {
47501 case NB_EV_VALIDATE:
47502 case NB_EV_PREPARE:
47503 case NB_EV_ABORT:
47504 break;
47505 case NB_EV_APPLY:
47506 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_IN);
47507 }
47508
47509 return NB_OK;
47510 }
47511
47512 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_import_destroy(
47513 struct nb_cb_destroy_args *args)
47514 {
47515 switch (args->event) {
47516 case NB_EV_VALIDATE:
47517 case NB_EV_PREPARE:
47518 case NB_EV_ABORT:
47519 break;
47520 case NB_EV_APPLY:
47521 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_IN);
47522 }
47523
47524 return NB_OK;
47525 }
47526
47527 /*
47528 * XPath:
47529 * /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
47530 */
47531 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_modify(
47532 struct nb_cb_modify_args *args)
47533 {
47534 switch (args->event) {
47535 case NB_EV_VALIDATE:
47536 case NB_EV_PREPARE:
47537 case NB_EV_ABORT:
47538 break;
47539 case NB_EV_APPLY:
47540 return bgp_peer_group_afi_safi_rmap_modify(args, RMAP_OUT);
47541 }
47542
47543 return NB_OK;
47544 }
47545
47546 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_rmap_export_destroy(
47547 struct nb_cb_destroy_args *args)
47548 {
47549 switch (args->event) {
47550 case NB_EV_VALIDATE:
47551 case NB_EV_PREPARE:
47552 case NB_EV_ABORT:
47553 break;
47554 case NB_EV_APPLY:
47555 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_IN);
47556 }
47557
47558 return NB_OK;
47559 }
47560
47561 /*
47562 * XPath:
47563 * /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
47564 */
47565 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_modify(
47566 struct nb_cb_modify_args *args)
47567 {
47568 switch (args->event) {
47569 case NB_EV_VALIDATE:
47570 case NB_EV_PREPARE:
47571 case NB_EV_ABORT:
47572 break;
47573 case NB_EV_APPLY:
47574 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_IN);
47575 }
47576
47577 return NB_OK;
47578 }
47579
47580 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_import_destroy(
47581 struct nb_cb_destroy_args *args)
47582 {
47583 switch (args->event) {
47584 case NB_EV_VALIDATE:
47585 case NB_EV_PREPARE:
47586 case NB_EV_ABORT:
47587 break;
47588 case NB_EV_APPLY:
47589 return bgp_peer_group_afi_safi_rmap_destroy(args, RMAP_OUT);
47590 }
47591
47592 return NB_OK;
47593 }
47594
47595 /*
47596 * XPath:
47597 * /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
47598 */
47599 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_modify(
47600 struct nb_cb_modify_args *args)
47601 {
47602 switch (args->event) {
47603 case NB_EV_VALIDATE:
47604 case NB_EV_PREPARE:
47605 case NB_EV_ABORT:
47606 break;
47607 case NB_EV_APPLY:
47608 return bgp_peer_group_afi_safi_plist_modify(args, FILTER_OUT);
47609 }
47610
47611 return NB_OK;
47612 }
47613
47614 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_plist_export_destroy(
47615 struct nb_cb_destroy_args *args)
47616 {
47617 switch (args->event) {
47618 case NB_EV_VALIDATE:
47619 case NB_EV_PREPARE:
47620 case NB_EV_ABORT:
47621 break;
47622 case NB_EV_APPLY:
47623 return bgp_peer_group_afi_safi_plist_destroy(args, FILTER_OUT);
47624 }
47625
47626 return NB_OK;
47627 }
47628
47629 /*
47630 * XPath:
47631 * /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
47632 */
47633 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_modify(
47634 struct nb_cb_modify_args *args)
47635 {
47636 switch (args->event) {
47637 case NB_EV_VALIDATE:
47638 case NB_EV_PREPARE:
47639 case NB_EV_ABORT:
47640 case NB_EV_APPLY:
47641 /* TODO: implement me. */
47642 break;
47643 }
47644
47645 return NB_OK;
47646 }
47647
47648 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_import_destroy(
47649 struct nb_cb_destroy_args *args)
47650 {
47651 switch (args->event) {
47652 case NB_EV_VALIDATE:
47653 case NB_EV_PREPARE:
47654 case NB_EV_ABORT:
47655 case NB_EV_APPLY:
47656 /* TODO: implement me. */
47657 break;
47658 }
47659
47660 return NB_OK;
47661 }
47662
47663 /*
47664 * XPath:
47665 * /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
47666 */
47667 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_modify(
47668 struct nb_cb_modify_args *args)
47669 {
47670 switch (args->event) {
47671 case NB_EV_VALIDATE:
47672 case NB_EV_PREPARE:
47673 case NB_EV_ABORT:
47674 case NB_EV_APPLY:
47675 /* TODO: implement me. */
47676 break;
47677 }
47678
47679 return NB_OK;
47680 }
47681
47682 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_access_list_export_destroy(
47683 struct nb_cb_destroy_args *args)
47684 {
47685 switch (args->event) {
47686 case NB_EV_VALIDATE:
47687 case NB_EV_PREPARE:
47688 case NB_EV_ABORT:
47689 case NB_EV_APPLY:
47690 /* TODO: implement me. */
47691 break;
47692 }
47693
47694 return NB_OK;
47695 }
47696
47697 /*
47698 * XPath:
47699 * /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
47700 */
47701 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_modify(
47702 struct nb_cb_modify_args *args)
47703 {
47704 switch (args->event) {
47705 case NB_EV_VALIDATE:
47706 case NB_EV_PREPARE:
47707 case NB_EV_ABORT:
47708 case NB_EV_APPLY:
47709 /* TODO: implement me. */
47710 break;
47711 }
47712
47713 return NB_OK;
47714 }
47715
47716 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_import_destroy(
47717 struct nb_cb_destroy_args *args)
47718 {
47719 switch (args->event) {
47720 case NB_EV_VALIDATE:
47721 case NB_EV_PREPARE:
47722 case NB_EV_ABORT:
47723 case NB_EV_APPLY:
47724 /* TODO: implement me. */
47725 break;
47726 }
47727
47728 return NB_OK;
47729 }
47730
47731 /*
47732 * XPath:
47733 * /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
47734 */
47735 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_modify(
47736 struct nb_cb_modify_args *args)
47737 {
47738 switch (args->event) {
47739 case NB_EV_VALIDATE:
47740 case NB_EV_PREPARE:
47741 case NB_EV_ABORT:
47742 case NB_EV_APPLY:
47743 /* TODO: implement me. */
47744 break;
47745 }
47746
47747 return NB_OK;
47748 }
47749
47750 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_as_path_filter_list_export_destroy(
47751 struct nb_cb_destroy_args *args)
47752 {
47753 switch (args->event) {
47754 case NB_EV_VALIDATE:
47755 case NB_EV_PREPARE:
47756 case NB_EV_ABORT:
47757 case NB_EV_APPLY:
47758 /* TODO: implement me. */
47759 break;
47760 }
47761
47762 return NB_OK;
47763 }
47764
47765 /*
47766 * XPath:
47767 * /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
47768 */
47769 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_modify(
47770 struct nb_cb_modify_args *args)
47771 {
47772 switch (args->event) {
47773 case NB_EV_VALIDATE:
47774 case NB_EV_PREPARE:
47775 case NB_EV_ABORT:
47776 case NB_EV_APPLY:
47777 /* TODO: implement me. */
47778 break;
47779 }
47780
47781 return NB_OK;
47782 }
47783
47784 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_import_destroy(
47785 struct nb_cb_destroy_args *args)
47786 {
47787 switch (args->event) {
47788 case NB_EV_VALIDATE:
47789 case NB_EV_PREPARE:
47790 case NB_EV_ABORT:
47791 case NB_EV_APPLY:
47792 /* TODO: implement me. */
47793 break;
47794 }
47795
47796 return NB_OK;
47797 }
47798
47799 /*
47800 * XPath:
47801 * /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
47802 */
47803 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_modify(
47804 struct nb_cb_modify_args *args)
47805 {
47806 switch (args->event) {
47807 case NB_EV_VALIDATE:
47808 case NB_EV_PREPARE:
47809 case NB_EV_ABORT:
47810 case NB_EV_APPLY:
47811 /* TODO: implement me. */
47812 break;
47813 }
47814
47815 return NB_OK;
47816 }
47817
47818 int bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_filter_config_unsuppress_map_export_destroy(
47819 struct nb_cb_destroy_args *args)
47820 {
47821 switch (args->event) {
47822 case NB_EV_VALIDATE:
47823 case NB_EV_PREPARE:
47824 case NB_EV_ABORT:
47825 case NB_EV_APPLY:
47826 /* TODO: implement me. */
47827 break;
47828 }
47829
47830 return NB_OK;
47831 }