summaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/processor/messageProcessor.h
diff options
context:
space:
mode:
authorJordan Augé <jordan.auge+fdio@cisco.com>2019-07-26 23:20:30 +0200
committerMauro Sardara <msardara@cisco.com>2019-07-29 17:13:35 +0200
commit0a1c6b5565e20167d1f1f33a5a8b597f420b18b0 (patch)
tree98c5da8f231fbd3dc2ce6502040e29c8333d9ffc /hicn-light/src/hicn/processor/messageProcessor.h
parent05ca0aa8f612ee48fb66d4dbebe596b7f1e03181 (diff)
[HICN-252] Add per-application policy framework to hicn-light forwarder
Change-Id: I0531cd7a7de179581295ae34766c81cd9cf3e172 Signed-off-by: Jordan Augé <jordan.auge+fdio@cisco.com> Signed-off-by: Mauro Sardara <msardara@cisco.com> Co-authored-by: Mauro Sardara <msardara@cisco.com>
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
*