summaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/processor/messageProcessor.h
diff options
context:
space:
mode:
Diffstat (limited to 'hicn-light/src/hicn/processor/messageProcessor.h')
-rw-r--r--hicn-light/src/hicn/processor/messageProcessor.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/hicn-light/src/hicn/processor/messageProcessor.h b/hicn-light/src/hicn/processor/messageProcessor.h
index 64b08272d..6804ba018 100644
--- a/hicn-light/src/hicn/processor/messageProcessor.h
+++ b/hicn-light/src/hicn/processor/messageProcessor.h
@@ -32,6 +32,12 @@
#include <hicn/utils/commands.h>
+#ifdef WITH_POLICY
+#ifdef WITH_MAPME
+#include <hicn/core/connection.h>
+#endif /* WITH_MAPME */
+#endif /* WITH_POLICY */
+
struct message_processor;
typedef struct message_processor MessageProcessor;
@@ -100,6 +106,43 @@ bool messageProcessor_RemoveRoute(MessageProcessor *processor,
remove_route_command *control,
unsigned ifidx);
+#ifdef WITH_POLICY
+
+/**
+ * Adds or updates a policy in the FIB
+ *
+ * If the policy is already set, it is replaced
+ *
+ * @param [in] procesor An allocated message processor
+ * @param [in] control Control message
+ *
+ * @retval true added or updated
+ * @retval false An error
+ */
+bool messageProcessor_AddOrUpdatePolicy(MessageProcessor *processor,
+ add_policy_command *control);
+
+/**
+ * Removes a policy from the FIB
+ *
+ * Reset the policy in the FIB to the default (empty) policy.
+ *
+ * @param [in] procesor An allocated message processor
+ * @param [in] control Control message
+ *
+ * @retval true Policy completely removed
+ * @retval false There is still a nexthop for the policy
+ */
+bool messageProcessor_RemovePolicy(MessageProcessor *processor,
+ remove_policy_command *control);
+
+#ifdef WITH_MAPME
+void messageProcessor_onConnectionEvent(const MessageProcessor *processor,
+ const Connection *conn_added, connection_event_t event);
+#endif /* WITH_MAPME */
+
+#endif /* WITH_POLICY */
+
/**
* Removes a given connection id from all FIB entries
*