/* Initializations. */
bgp_vrf_init();
+ hook_register(routing_conf_event,
+ routing_control_plane_protocols_name_validate);
+
+
/* BGP related initialization. */
bgp_init((unsigned short)instance);
int routing_control_plane_protocols_control_plane_protocol_bgp_peer_groups_peer_group_afi_safis_afi_safi_ipv6_flowspec_soft_reconfiguration_modify(
struct nb_cb_modify_args *args);
+/*
+ * Callback registered with routing_nb lib to validate only
+ * one instance of bgp instance is allowed
+ */
+int routing_control_plane_protocols_name_validate(
+ struct nb_cb_create_args *args);
+
/* Optional 'cli_show' callbacks. */
void cli_show_router_bgp(struct vty *vty, struct lyd_node *dnode,
bool show_defaults);
{ .val_ulong = 60 },
)
+int routing_control_plane_protocols_name_validate(
+ struct nb_cb_create_args *args)
+{
+ const char *name;
+
+ name = yang_dnode_get_string(args->dnode, "./name");
+ if (!strmatch(name, "bgp")) {
+ snprintf(args->errmsg, args->errmsg_len,
+ "per vrf only one bgp instance is supported.");
+ return NB_ERR_VALIDATION;
+ }
+ return NB_OK;
+}
+
/*
* XPath:
* /frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-bgp:bgp/global