aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/core/forwarder.c
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/core/forwarder.c
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/core/forwarder.c')
-rw-r--r--hicn-light/src/hicn/core/forwarder.c42
1 files changed, 36 insertions, 6 deletions
diff --git a/hicn-light/src/hicn/core/forwarder.c b/hicn-light/src/hicn/core/forwarder.c
index c8cac98ba..c9527bb49 100644
--- a/hicn-light/src/hicn/core/forwarder.c
+++ b/hicn-light/src/hicn/core/forwarder.c
@@ -313,7 +313,11 @@ Dispatcher *forwarder_GetDispatcher(Forwarder *forwarder) {
return forwarder->dispatcher;
}
+#ifdef WITH_POLICY
+ConnectionTable *forwarder_GetConnectionTable(const Forwarder *forwarder) {
+#else
ConnectionTable *forwarder_GetConnectionTable(Forwarder *forwarder) {
+#endif /* WITH_POLICY */
parcAssertNotNull(forwarder, "Parameter must be non-null");
return forwarder->connectionTable;
}
@@ -412,6 +416,7 @@ bool forwarder_AddOrUpdateRoute(Forwarder *forwarder,
return res;
}
+
bool forwarder_RemoveRoute(Forwarder *forwarder, remove_route_command *control,
unsigned ifidx) {
parcAssertNotNull(forwarder, "Parameter hicn-light must be non-null");
@@ -421,6 +426,25 @@ bool forwarder_RemoveRoute(Forwarder *forwarder, remove_route_command *control,
return messageProcessor_RemoveRoute(forwarder->processor, control, ifidx);
}
+#ifdef WITH_POLICY
+
+bool forwarder_AddOrUpdatePolicy(Forwarder *forwarder,
+ add_policy_command *control) {
+ parcAssertNotNull(forwarder, "Parameter forwarder must be non-null");
+ parcAssertNotNull(control, "Parameter control must be non-null");
+
+ return messageProcessor_AddOrUpdatePolicy(forwarder->processor, control);
+}
+
+bool forwarder_RemovePolicy(Forwarder *forwarder, remove_policy_command *control) {
+ parcAssertNotNull(forwarder, "Parameter forwarder must be non-null");
+ parcAssertNotNull(control, "Parameter control must be non-null");
+
+ return messageProcessor_RemovePolicy(forwarder->processor, control);
+}
+
+#endif /* WITH_POLICY */
+
void forwarder_RemoveConnectionIdFromRoutes(Forwarder *forwarder,
unsigned connectionId) {
parcAssertNotNull(forwarder, "Parameter hicn-light must be non-null");
@@ -504,16 +528,22 @@ FIB *forwarder_getFib(Forwarder *forwarder) {
return messageProcessor_getFib(forwarder->processor);
}
-void forwarder_onConnectionAdded(Forwarder *forwarder, const Connection *conn) {
- mapMe_onConnectionAdded(forwarder->mapme, conn);
+void forwarder_onConnectionEvent(Forwarder *forwarder, const Connection *conn, connection_event_t event) {
+#ifdef WITH_POLICY
+ messageProcessor_onConnectionEvent(forwarder->processor, conn, event);
+#else
+ mapMe_onConnectionEvent(forwarder->mapme, conn, event);
+#endif /* WITH_POLICY */
}
-void forwarder_onConnectionRemoved(Forwarder *forwarder,
- const Connection *conn) {}
-
-void forwarder_ProcessMapMe(Forwarder *forwarder, uint8_t *msgBuffer,
+void forwarder_ProcessMapMe(Forwarder *forwarder, const uint8_t *msgBuffer,
unsigned conn_id) {
mapMe_Process(forwarder->mapme, msgBuffer, conn_id);
}
+MapMe *
+forwarder_getMapmeInstance(const Forwarder *forwarder) {
+ return forwarder->mapme;
+}
+
#endif /* WITH_MAPME */