aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/core/forwarder.h
diff options
context:
space:
mode:
authorLuca Muscariello <lumuscar+fdio@cisco.com>2019-03-23 14:13:53 +0100
committerAngelo Mantellini <manangel@cisco.com>2019-03-24 14:11:17 +0100
commiteb323e056e747d71867cf965434811c1de925de2 (patch)
tree23a6096823d795efe448559cf0409a18ab47932d /hicn-light/src/core/forwarder.h
parent43562f9f02d35e5d540ab4028a0326c0c7cd4898 (diff)
[HICN-141] Definition of a C API for hicn-light
Change-Id: Id861f0abe58b1e3c9ba8cc76701da0f9c6801748 Signed-off-by: Luca Muscariello <lumuscar+fdio@cisco.com> Signed-off-by: Angelo Mantellini <manangel@cisco.com>
Diffstat (limited to 'hicn-light/src/core/forwarder.h')
-rw-r--r--hicn-light/src/core/forwarder.h294
1 files changed, 0 insertions, 294 deletions
diff --git a/hicn-light/src/core/forwarder.h b/hicn-light/src/core/forwarder.h
deleted file mode 100644
index de736a1f8..000000000
--- a/hicn-light/src/core/forwarder.h
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Copyright (c) 2017-2019 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * The methods in this header are for the non-threaded forwarder. They should
- * only be called within the forwarders thread of execution.
- */
-
-#ifndef forwarder_h
-#define forwarder_h
-
-#ifndef _WIN32
-#include <sys/time.h>
-#endif
-#include <stdlib.h>
-
-#include <src/core/connectionTable.h>
-#include <src/core/dispatcher.h>
-#include <src/messenger/messenger.h>
-
-#include <src/core/message.h>
-
-#include <src/config/configuration.h>
-
-#ifdef WITH_MAPME
-#include <src/processor/fib.h>
-#endif /* WITH_MAPME */
-
-#include <src/core/logger.h>
-#include <src/core/ticks.h>
-#include <src/io/listenerSet.h>
-
-#include <src/processor/fibEntryList.h>
-
-#include <parc/algol/parc_Clock.h>
-
-#include <src/socket/api.h>
-
-#define PORT_NUMBER 9695
-#define PORT_NUMBER_AS_STRING "9695"
-
-#include <src/utils/commands.h>
-
-// ==============================================
-
-struct forwarder;
-typedef struct forwarder Forwarder;
-
-/**
- * @function forwarder_Create
- * @abstract Create the forwarder and use the provided logger for diagnostic
- * output
- * @discussion
- * If the logger is null, hicn-light will create a STDOUT logger.
- *
- * @param logger may be NULL
- */
-Forwarder *forwarder_Create(Logger *logger);
-
-/**
- * @function forwarder_Destroy
- * @abstract Destroys the forwarder, stopping all traffic and freeing all memory
- */
-void forwarder_Destroy(Forwarder **ptr);
-
-/**
- * @function forwarder_SetupAllListeners
- * @abstract Setup all listeners (tcp, udp, local, ether, ip multicast) on all
- * interfaces
- * @discussion
- * Sets up all listeners on all running interfaces. This provides a quick and
- * easy startup, rather than providing a configuration file or programmatic
- * commands.
- *
- * @param port is used by TCP and UDP listeners, in host byte order
- * @param localPath is the AF_UNIX path to use, if NULL no AF_UNIX listener is
- * setup
- */
-void forwarder_SetupAllListeners(Forwarder *forwarder, uint16_t port,
- const char *localPath);
-/**
- * @function forwarder_SetupAllListeners
- * @abstract Setup one tcp and one udp listener on address 127.0.0.1 and the
- * given port
- */
-void forwarder_SetupLocalListeners(Forwarder *forwarder, uint16_t port);
-
-/**
- * Configure hicn-light via a configuration file
- *
- * The configuration file is a set of lines, just like used in hicnLightControl.
- * You need to have "add listener" lines in the file to receive connections. No
- * default listeners are configured.
- *
- * @param [in] forwarder An alloated Forwarder
- * @param [in] filename The path to the configuration file
- */
-void forwarder_SetupFromConfigFile(Forwarder *forwarder, const char *filename);
-
-/**
- * Returns the logger used by this forwarder
- *
- * If you will store the logger, you should acquire a reference to it.
- *
- * @param [in] forwarder An allocated hicn-light forwarder
- *
- * @retval non-null The logger used by hicn-light
- * @retval null An error
- */
-Logger *forwarder_GetLogger(const Forwarder *forwarder);
-
-/**
- * @function forwarder_SetLogLevel
- * @abstract Sets the minimum level to log
- */
-void forwarder_SetLogLevel(Forwarder *forwarder, PARCLogLevel level);
-
-/**
- * @function forwarder_GetNextConnectionId
- * @abstract Get the next identifier for a new connection
- */
-unsigned forwarder_GetNextConnectionId(Forwarder *forwarder);
-
-Messenger *forwarder_GetMessenger(Forwarder *forwarder);
-
-Dispatcher *forwarder_GetDispatcher(Forwarder *forwarder);
-
-/**
- * Returns the set of currently active listeners
- *
- * @param [in] forwarder An allocated hicn-light forwarder
- *
- * @retval non-null The set of active listeners
- * @retval null An error
- */
-ListenerSet *forwarder_GetListenerSet(Forwarder *forwarder);
-
-/**
- * Returns the forwrder's connection table
- *
- * @param [in] forwarder An allocated hicn-light forwarder
- *
- * @retval non-null The connection tabler
- * @retval null An error
- *
- */
-ConnectionTable *forwarder_GetConnectionTable(Forwarder *forwarder);
-
-/**
- * Returns a Tick-based clock
- *
- * Runs at approximately 1 msec per tick (see HZ in forwarder.c).
- * Do not Release this clock. If you save a copy of it, create your own
- * reference to it with parcClock_Acquire().
- *
- * @param [in] forwarder An allocated hicn-light forwarder
- *
- * @retval non-null An allocated hicn-light Clock based on the Tick counter
- * @retval null An error
- */
-PARCClock *forwarder_GetClock(const Forwarder *forwarder);
-
-/**
- * Direct call to get the Tick clock
- *
- * Runs at approximately 1 msec per tick (see HZ in forwarder.c)
- *
- * @param [in] forwarder An allocated hicn-light forwarder
- */
-Ticks forwarder_GetTicks(const Forwarder *forwarder);
-
-/**
- * Convert nano seconds to Ticks
- *
- * Converts nano seconds to Ticks, based on HZ (in forwarder.c)
- */
-Ticks forwarder_NanosToTicks(uint64_t nanos);
-
-uint64_t forwarder_TicksToNanos(Ticks ticks);
-
-void forwarder_ReceiveCommand(Forwarder *forwarder, command_id command,
- struct iovec *message, unsigned ingressId);
-
-void forwarder_Receive(Forwarder *forwarder, Message *mesage);
-
-/**
- * @function forwarder_AddOrUpdateRoute
- * @abstract Adds or updates a route on all the message processors
- */
-bool forwarder_AddOrUpdateRoute(Forwarder *forwarder,
- add_route_command *control, unsigned ifidx);
-
-/**
- * @function forwarder_RemoveRoute
- * @abstract Removes a route from all the message processors
- */
-bool forwarder_RemoveRoute(Forwarder *forwarder, remove_route_command *control,
- unsigned ifidx);
-
-/**
- * Removes a connection id from all routes
- */
-void forwarder_RemoveConnectionIdFromRoutes(Forwarder *forwarder,
- unsigned connectionId);
-
-/**
- * @function forwarder_GetConfiguration
- * @abstract The configuration object
- * @discussion
- * The configuration contains all user-issued commands. It does not include
- * dynamic state.
- */
-Configuration *forwarder_GetConfiguration(Forwarder *forwarder);
-
-FibEntryList *forwarder_GetFibEntries(Forwarder *forwarder);
-
-/**
- * Sets the maximum number of content objects in the content store
- *
- * Implementation dependent - may wipe the cache.
- */
-void forwarder_SetContentObjectStoreSize(Forwarder *forwarder,
- size_t maximumContentStoreSize);
-
-void forwarder_SetChacheStoreFlag(Forwarder *forwarder, bool val);
-
-bool forwarder_GetChacheStoreFlag(Forwarder *forwarder);
-
-void forwarder_SetChacheServeFlag(Forwarder *forwarder, bool val);
-
-bool forwarder_GetChacheServeFlag(Forwarder *forwarder);
-
-void forwarder_ClearCache(Forwarder *forwarder);
-
-void forwarder_SetStrategy(Forwarder *forwarder, Name *prefix,
- strategy_type strategy);
-
-hicn_socket_helper_t *forwarder_GetHicnSocketHelper(Forwarder *forwarder);
-
-#ifdef WITH_MAPME
-
-/**
- * @function forwarder_getFib
- * @abstract Returns the hICN forwarder's FIB.
- * @param [in] forwarder - Pointer to the hICN forwarder.
- * @returns Pointer to the hICN FIB.
- */
-FIB *forwarder_getFib(Forwarder *forwarder);
-
-/**
- * @function forwarder_onConnectionAdded
- * @abstract Callback fired upon addition of a new connection through the
- * control protocol.
- * @param [in] forwarder - Pointer to the hICN forwarder.
- * @param [in] conn - Pointer to the newly added connection.
- */
-void forwarder_onConnectionAdded(Forwarder *forwarder, const Connection *conn);
-
-/**
- * @function forwarder_onConnectionRemoved
- * @abstract Callback fired upon removal of a connection through the control
- * protocol.
- * @param [in] forwarder - Pointer to the hICN forwarder.
- * @param [in] conn - Pointer to the removed connection.
- */
-void forwarder_onConnectionRemoved(Forwarder *forwarder,
- const Connection *conn);
-
-/**
- * @function forwarder_ProcessMapMe
- * @abstract Callback fired by an hICN listener upon reception of a MAP-Me
- * message.
- * @param [in] forwarder - Pointer to the hICN forwarder.
- * @param [in] msgBuffer - MAP-Me buffer
- * @param [in] conn_id - Ingress connection id
- */
-void forwarder_ProcessMapMe(Forwarder *forwarder, uint8_t *msgBuffer,
- unsigned conn_id);
-
-#endif /* WITH_MAPME */
-
-#endif // forwarder_h