From 373efaf24d3600fe4dadf6bfaaee8d19e2ec32d7 Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Mon, 6 Feb 2017 16:05:44 +0100 Subject: 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. --- src/ipcpd/normal/ro.h | 82 --------------------------------------------------- 1 file changed, 82 deletions(-) delete mode 100644 src/ipcpd/normal/ro.h (limited to 'src/ipcpd/normal/ro.h') 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 - * - * 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 -#include -#include - -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 */ -- cgit v1.2.3