diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-09 13:16:35 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-09 13:16:35 +0000 |
commit | e2bbf175a2184bd76f6c54ccf8456babeb1a46fc (patch) | |
tree | f0b76550d6e6f500ada964a3a4ee933a45e5a6f1 /lib/northbound_db.h | |
parent | Initial commit. (diff) | |
download | frr-e2bbf175a2184bd76f6c54ccf8456babeb1a46fc.tar.xz frr-e2bbf175a2184bd76f6c54ccf8456babeb1a46fc.zip |
Adding upstream version 9.1.upstream/9.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'lib/northbound_db.h')
-rw-r--r-- | lib/northbound_db.h | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/lib/northbound_db.h b/lib/northbound_db.h new file mode 100644 index 0000000..07a2783 --- /dev/null +++ b/lib/northbound_db.h @@ -0,0 +1,99 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (C) 2018 NetDEF, Inc. + * Renato Westphal + */ + +#ifndef _FRR_NORTHBOUND_DB_H_ +#define _FRR_NORTHBOUND_DB_H_ + +#include "northbound.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * Initialize the northbound database. + * + * Currently the database is used only for storing and retrieving configuration + * transactions. + * + * Returns: + * NB_OK on success, NB_ERR otherwise. + */ +int nb_db_init(void); + +/* + * Save a configuration transaction in the northbound database. + * + * transaction + * Configuration transaction to be saved. + * + * transaction_id + * Output parameter providing the ID of the saved transaction. + * + * Returns: + * NB_OK on success, NB_ERR otherwise. + */ +int nb_db_transaction_save(const struct nb_transaction *transaction, + uint32_t *transaction_id); + +/* + * Load a configuration transaction from the transactions log. + * + * transaction_id + * ID of the transaction to be loaded. + * + * Returns: + * Pointer to newly created configuration or NULL in the case of an error. + */ +extern struct nb_config *nb_db_transaction_load(uint32_t transaction_id); + +/* + * Delete the specified number of transactions from the transactions log. + * + * n_oldest + * Number of transactions to delete. + * + * Returns: + * NB_OK on success, NB_ERR otherwise. + */ +extern int nb_db_clear_transactions(unsigned int n_oldest); + +/* + * Specify the maximum number of transactions we want to record in the + * transactions log. Note that older transactions can be removed during this + * operation. + * + * max + * New upper limit of maximum transactions to log. + * + * Returns: + * NB_OK on success, NB_ERR otherwise. + */ +extern int nb_db_set_max_transactions(unsigned int max); + +/* + * Iterate over all configuration transactions stored in the northbound + * database, sorted in descending order. + * + * func + * Function to call with each configuration transaction. + * + * arg + * Arbitrary argument passed as the first parameter in each call to 'func'. + * + * Returns: + * NB_OK on success, NB_ERR otherwise. + */ +extern int nb_db_transactions_iterate( + void (*func)(void *arg, int transaction_id, const char *client_name, + const char *date, const char *comment), + void *arg); + +#ifdef __cplusplus +} +#endif + +#endif /* _FRR_NORTHBOUND_DB_H_ */ |