aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/processor/fibEntry.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/fibEntry.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/fibEntry.h')
-rw-r--r--hicn-light/src/hicn/processor/fibEntry.h44
1 files changed, 35 insertions, 9 deletions
diff --git a/hicn-light/src/hicn/processor/fibEntry.h b/hicn-light/src/hicn/processor/fibEntry.h
index d677ae998..11a00e836 100644
--- a/hicn-light/src/hicn/processor/fibEntry.h
+++ b/hicn-light/src/hicn/processor/fibEntry.h
@@ -40,6 +40,10 @@
#include <hicn/core/name.h>
#include <hicn/strategies/strategyImpl.h>
+#ifdef WITH_POLICY
+#include <hicn/core/connectionTable.h>
+#endif /* WITH_POLICY */
+
#ifdef WITH_MAPME
#include <parc/algol/parc_EventTimer.h>
#include <parc/algol/parc_Iterator.h>
@@ -48,7 +52,12 @@
struct fib_entry;
typedef struct fib_entry FibEntry;
+#ifdef WITH_POLICY
+struct forwarder;
+FibEntry *fibEntry_Create(Name *name, strategy_type fwdStrategy, const struct forwarder * table);
+#else
FibEntry *fibEntry_Create(Name *name, strategy_type fwdStrategy);
+#endif
/**
* Decrements the reference count by one, and destroys the memory after last
@@ -72,6 +81,16 @@ FibEntry *fibEntry_Acquire(const FibEntry *fibEntry);
void fibEntry_SetStrategy(FibEntry *fibEntry, strategy_type strategy);
+#ifdef WITH_POLICY
+
+policy_t fibEntry_GetPolicy(const FibEntry *fibEntry);
+
+void fibEntry_ReconsiderPolicy(FibEntry *fibEntry);
+
+void fibEntry_SetPolicy(FibEntry *fibEntry, policy_t policy);
+
+#endif /* WITH_POLICY */
+
void fibEntry_AddNexthop(FibEntry *fibEntry, unsigned connectionId);
void fibEntry_RemoveNexthopByConnectionId(FibEntry *fibEntry,
@@ -89,13 +108,29 @@ size_t fibEntry_NexthopCount(const FibEntry *fibEntry);
const NumberSet *fibEntry_GetNexthops(const FibEntry *fibEntry);
const NumberSet *fibEntry_GetNexthopsFromForwardingStrategy(
+#ifdef WITH_POLICY
+ FibEntry *fibEntry, const Message *interestMessage, bool is_retransmission);
+#else
const FibEntry *fibEntry, const Message *interestMessage);
+#endif /* WITH_POLICY */
+#ifdef WITH_POLICY
+void fibEntry_ReceiveObjectMessage(FibEntry *fibEntry,
+#else
void fibEntry_ReceiveObjectMessage(const FibEntry *fibEntry,
+#endif /* WITH_POLICY */
const NumberSet *egressId,
const Message *objectMessage, Ticks rtt);
+#ifdef WITH_POLICY
+void fibEntry_OnTimeout(FibEntry *fibEntry, const NumberSet *egressId);
+#else
void fibEntry_OnTimeout(const FibEntry *fibEntry, const NumberSet *egressId);
+#endif /* WITH_POLICY */
+
+#ifdef WITH_POLICY
+void fibEntry_UpdateStats(FibEntry *fibEntry, uint64_t now);
+#endif /* WITH_POLICY */
strategy_type fibEntry_GetFwdStrategyType(const FibEntry *fibEntry);
@@ -111,15 +146,6 @@ Name *fibEntry_GetPrefix(const FibEntry *fibEntry);
#ifdef WITH_MAPME
/**
- * @function fibEntry_AddNexthopByConnectionId
- * @abstract Adds a next hop directly from the connection id.
- * @param [in] fibEntry - Pointer to the FIB entry.
- * @return The sequence number stored in the FIB entry.
- */
-void fibEntry_AddNexthopByConnectionId(FibEntry *fibEntry,
- unsigned connectionId);
-
-/**
* @function fibEntry_getUserData
* @abstract Returns user data associated to the FIB entry.
* @param [in] fibEntry - Pointer to the FIB entry.