diff options
author | Renato Westphal <renato@opensourcerouting.org> | 2017-12-07 20:31:48 +0100 |
---|---|---|
committer | Renato Westphal <renato@opensourcerouting.org> | 2018-10-27 20:16:12 +0200 |
commit | 1c2facd12df7bc27758d7ea674b1e57e401fc234 (patch) | |
tree | b82aeb06586c2c7b380420ddd484964af915aee1 /lib/northbound_cli.h | |
parent | Merge pull request #3235 from opensourcerouting/buildfoo-20181024 (diff) | |
download | frr-1c2facd12df7bc27758d7ea674b1e57e401fc234.tar.xz frr-1c2facd12df7bc27758d7ea674b1e57e401fc234.zip |
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 000000000..7f4a64c01 --- /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_ */ |