summaryrefslogtreecommitdiff
path: root/src/ipcpd/normal/ro.h
diff options
context:
space:
mode:
authordimitri staessens <[email protected]>2017-02-06 16:05:44 +0100
committerdimitri staessens <[email protected]>2017-02-06 20:04:34 +0100
commit373efaf24d3600fe4dadf6bfaaee8d19e2ec32d7 (patch)
tree8711a4edbc2a6defaab63f0dcc2b0690252307b4 /src/ipcpd/normal/ro.h
parent4b11f952c521315883f64571e1790389e8d20f64 (diff)
downloadouroboros-373efaf24d3600fe4dadf6bfaaee8d19e2ec32d7.tar.gz
ouroboros-373efaf24d3600fe4dadf6bfaaee8d19e2ec32d7.zip
ipcpd, lib: Revise normal IPCP
This PR updates the normal IPCP to use the new RIB. The old ribmgr is removed and replaced by a stub that needs to be implemented. All components (dir, fmgr, frct) were adapted to the new RIB API. A lot of functionality was moved outside of the ribmgr, such as the addr_auth, which is now a component of the IPCP. The address is also stored to the ipcpi struct. The irm tool has an option to set the gam policy of the rib manager.
Diffstat (limited to 'src/ipcpd/normal/ro.h')
-rw-r--r--src/ipcpd/normal/ro.h82
1 files changed, 0 insertions, 82 deletions
diff --git a/src/ipcpd/normal/ro.h b/src/ipcpd/normal/ro.h
deleted file mode 100644
index 6fda2adf..00000000
--- a/src/ipcpd/normal/ro.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Ouroboros - Copyright (C) 2016 - 2017
- *
- * RIB objects
- *
- * Sander Vrijders <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * 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; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef OUROBOROS_IPCPD_NORMAL_RO_H
-#define OUROBOROS_IPCPD_NORMAL_RO_H
-
-#include <stdbool.h>
-#include <time.h>
-#include <stdint.h>
-
-enum ro_recv_set {
- NO_SYNC = 0,
- NEIGHBORS,
- ALL_MEMBERS
-};
-
-struct ro_attr {
- bool enrol_sync;
- enum ro_recv_set recv_set;
- struct timespec expiry;
-};
-
-/* All RIB-objects have a pathname, separated by a slash. */
-/* Takes ownership of the data */
-int ro_create(const char * name,
- struct ro_attr * attr,
- uint8_t * data,
- size_t len);
-
-int ro_attr_init(struct ro_attr * attr);
-
-int ro_delete(const char * name);
-
-int ro_write(const char * name,
- uint8_t * data,
- size_t len);
-
-/* Reader takes ownership of data */
-ssize_t ro_read(const char * name,
- uint8_t ** data);
-
-ssize_t ro_children(const char * name,
- char *** children);
-
-bool ro_exists(const char * name);
-
-/* Callback passes ownership of the data */
-struct ro_sub_ops {
- void (* ro_created)(const char * name,
- uint8_t * data,
- size_t len);
- void (* ro_updated)(const char * name,
- uint8_t * data,
- size_t len);
- void (* ro_deleted)(const char * name);
-};
-
-/* Returns subscriber-id */
-int ro_subscribe(const char * name,
- struct ro_sub_ops * ops);
-
-int ro_unsubscribe(int sid);
-
-#endif /* OUROBOROS_IPCPD_NORMAL_RO_H */