diff options
author | Jordan Augé <jordan.auge+fdio@cisco.com> | 2019-07-26 23:20:30 +0200 |
---|---|---|
committer | Mauro Sardara <msardara@cisco.com> | 2019-07-29 17:13:35 +0200 |
commit | 0a1c6b5565e20167d1f1f33a5a8b597f420b18b0 (patch) | |
tree | 98c5da8f231fbd3dc2ce6502040e29c8333d9ffc /hicn-light/src/hicn/core/forwarder.c | |
parent | 05ca0aa8f612ee48fb66d4dbebe596b7f1e03181 (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.c | 42 |
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 */ |