diff options
| author | Renato Westphal <renato@opensourcerouting.org> | 2017-12-07 17:31:48 -0200 | 
|---|---|---|
| committer | Renato Westphal <renato@opensourcerouting.org> | 2018-10-27 16:16:12 -0200 | 
| commit | 1c2facd12df7bc27758d7ea674b1e57e401fc234 (patch) | |
| tree | b82aeb06586c2c7b380420ddd484964af915aee1 /lib/northbound_cli.h | |
| parent | 75082dafb5a929b99d89c8f55e6b2da3f4d90100 (diff) | |
lib: introduce new northbound API
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'lib/northbound_cli.h')
| -rw-r--r-- | lib/northbound_cli.h | 66 | 
1 files changed, 66 insertions, 0 deletions
diff --git a/lib/northbound_cli.h b/lib/northbound_cli.h new file mode 100644 index 0000000000..7f4a64c014 --- /dev/null +++ b/lib/northbound_cli.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2018  NetDEF, Inc. + *                     Renato Westphal + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; see the file COPYING; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef _FRR_NORTHBOUND_CLI_H_ +#define _FRR_NORTHBOUND_CLI_H_ + +#include "northbound.h" + +struct cli_config_change { +	/* +	 * XPath (absolute or relative) of the configuration option being +	 * edited. +	 */ +	char xpath[XPATH_MAXLEN]; + +	/* +	 * Operation to apply (either NB_OP_CREATE, NB_OP_MODIFY or +	 * NB_OP_DELETE). +	 */ +	enum nb_operation operation; + +	/* +	 * New value of the configuration option. Should be NULL for typeless +	 * YANG data (e.g. presence-containers). For convenience, NULL can also +	 * be used to restore a leaf to its default value. +	 */ +	const char *value; +}; + +/* Possible formats in which a configuration can be displayed. */ +enum nb_cfg_format { +	NB_CFG_FMT_CMDS = 0, +	NB_CFG_FMT_JSON, +	NB_CFG_FMT_XML, +}; + +extern struct nb_config *vty_shared_candidate_config; + +/* Prototypes. */ +extern int nb_cli_cfg_change(struct vty *vty, char *xpath_list, +			     struct cli_config_change changes[], size_t size); +extern int nb_cli_rpc(const char *xpath, struct list *input, +		      struct list *output); +extern void nb_cli_show_dnode_cmds(struct vty *vty, struct lyd_node *dnode, +				   bool show_defaults); +extern void nb_cli_install_default(int node); +extern void nb_cli_init(void); +extern void nb_cli_terminate(void); + +#endif /* _FRR_NORTHBOUND_CLI_H_ */  | 
