From 707a14c46b1a5ba66e1abf7f7a9f0aed16f67501 Mon Sep 17 00:00:00 2001 From: michele papalini Date: Thu, 22 Aug 2019 17:54:24 +0200 Subject: HICN-266 fix strategy creation with policies Change-Id: I285389e02742768ec65304cd088312492ddcb281 Signed-off-by: michele papalini --- hicn-light/src/hicn/processor/fibEntry.c | 48 ++++------------------ hicn-light/src/hicn/processor/messageProcessor.c | 8 +--- .../src/hicn/strategies/loadBalancerWithPD.c | 4 -- .../src/hicn/strategies/loadBalancerWithPD.h | 4 -- 4 files changed, 9 insertions(+), 55 deletions(-) (limited to 'hicn-light/src/hicn') diff --git a/hicn-light/src/hicn/processor/fibEntry.c b/hicn-light/src/hicn/processor/fibEntry.c index 15d754168..9d82b086e 100644 --- a/hicn-light/src/hicn/processor/fibEntry.c +++ b/hicn-light/src/hicn/processor/fibEntry.c @@ -72,7 +72,6 @@ struct fib_entry { #ifdef WITH_POLICY FibEntry *fibEntry_Create(Name *name, strategy_type fwdStrategy, const Forwarder * forwarder) { - ConnectionTable * table = forwarder_GetConnectionTable(forwarder); #else FibEntry *fibEntry_Create(Name *name, strategy_type fwdStrategy) { #endif /* WITH_POLICY */ @@ -84,47 +83,31 @@ FibEntry *fibEntry_Create(Name *name, strategy_type fwdStrategy) { if (fwdStrategy) { switch (fwdStrategy) { case SET_STRATEGY_LOADBALANCER: -#ifdef WITH_POLICY - fibEntry->fwdStrategy = strategyLoadBalancer_Create(table); -#else fibEntry->fwdStrategy = strategyLoadBalancer_Create(); -#endif /* WITH_POLICY */ + break; + + case SET_STRATEGY_RANDOM: + fibEntry->fwdStrategy = strategyRnd_Create(); break; case SET_STRATEGY_RANDOM_PER_DASH_SEGMENT: -#ifdef WITH_POLICY - fibEntry->fwdStrategy = strategyRndSegment_Create(table); -#else fibEntry->fwdStrategy = strategyRndSegment_Create(); -#endif /* WITH_POLICY */ break; case SET_STRATEGY_LOADBALANCER_WITH_DELAY: -#ifdef WITH_POLICY - fibEntry->fwdStrategy = strategyLoadBalancerWithPD_Create(table); -#else fibEntry->fwdStrategy = strategyLoadBalancerWithPD_Create(); -#endif /* WITH_POLICY */ break; default: // LB is the default strategy -#ifdef WITH_POLICY - fibEntry->fwdStrategy = strategyLoadBalancer_Create(table); -#else fibEntry->fwdStrategy = strategyLoadBalancer_Create(); -#endif /* WITH_POLICY */ // the LB strategy is the default one // other strategies can be set using the appropiate function break; } } else { -#ifdef WITH_POLICY - fibEntry->fwdStrategy = strategyLoadBalancer_Create(table); -#else fibEntry->fwdStrategy = strategyLoadBalancer_Create(); -#endif /* WITH_POLICY */ } fibEntry->refcount = 1; @@ -173,42 +156,27 @@ void fibEntry_Release(FibEntry **fibEntryPtr) { void fibEntry_SetStrategy(FibEntry *fibEntry, strategy_type strategy) { StrategyImpl *fwdStrategyImpl; -#ifdef WITH_POLICY - ConnectionTable * table = forwarder_GetConnectionTable(fibEntry->forwarder); -#endif /* WITH_POLICY */ switch (strategy) { case SET_STRATEGY_LOADBALANCER: -#ifdef WITH_POLICY - fwdStrategyImpl = strategyLoadBalancer_Create(table); -#else fwdStrategyImpl = strategyLoadBalancer_Create(); -#endif /* WITH_POLICY */ + break; + + case SET_STRATEGY_RANDOM: + fwdStrategyImpl = strategyRnd_Create(); break; case SET_STRATEGY_RANDOM_PER_DASH_SEGMENT: -#ifdef WITH_POLICY - fwdStrategyImpl = strategyRndSegment_Create(table); -#else fwdStrategyImpl = strategyRndSegment_Create(); -#endif /* WITH_POLICY */ break; case SET_STRATEGY_LOADBALANCER_WITH_DELAY: -#ifdef WITH_POLICY - fwdStrategyImpl = strategyLoadBalancerWithPD_Create(table); -#else fwdStrategyImpl = strategyLoadBalancerWithPD_Create(); -#endif /* WITH_POLICY */ break; default: // LB is the defualt strategy -#ifdef WITH_POLICY - fwdStrategyImpl = strategyLoadBalancer_Create(table); -#else fwdStrategyImpl = strategyLoadBalancer_Create(); -#endif /* WITH_POLICY */ // the LB strategy is the default one // other strategies can be set using the appropiate function break; diff --git a/hicn-light/src/hicn/processor/messageProcessor.c b/hicn-light/src/hicn/processor/messageProcessor.c index 7e0ece257..420863e26 100644 --- a/hicn-light/src/hicn/processor/messageProcessor.c +++ b/hicn-light/src/hicn/processor/messageProcessor.c @@ -34,9 +34,7 @@ #include #include -#ifndef WITH_POLICY #include -#endif /* ! WITH_POLICY */ #include #include #include @@ -311,16 +309,14 @@ bool messageProcessor_AddOrUpdateRoute(MessageProcessor *processor, Name *prefix = name_CreateFromAddress(control->addressType, control->address, control->len); FibEntry *entry = fib_Contains(processor->fib, prefix); -#ifndef WITH_POLICY bool newEntry = false; -#endif /* ! WITH_POLICY */ if (entry != NULL) { fibEntry_AddNexthop(entry, ifidx); } else { + newEntry = true; #ifdef WITH_POLICY entry = fibEntry_Create(prefix, fwdStrategy, processor->forwarder); #else - newEntry = true; entry = fibEntry_Create(prefix, fwdStrategy); #endif /* WITH_POLICY */ fibEntry_AddNexthop(entry, ifidx); @@ -329,7 +325,6 @@ bool messageProcessor_AddOrUpdateRoute(MessageProcessor *processor, name_Release(&prefix); -#ifndef WITH_POLICY /* For policy implementation, we need access to the ConnectionTable in all * Forwarding Strategies, so it is setup during FIB Entry creation */ if (newEntry && (fwdStrategy == SET_STRATEGY_LOADBALANCER_WITH_DELAY)) { @@ -337,7 +332,6 @@ bool messageProcessor_AddOrUpdateRoute(MessageProcessor *processor, fibEntry_GetFwdStrategy(entry), forwarder_GetConnectionTable(processor->forwarder)); } -#endif /* ! WITH_POLICY */ return true; } diff --git a/hicn-light/src/hicn/strategies/loadBalancerWithPD.c b/hicn-light/src/hicn/strategies/loadBalancerWithPD.c index b0aae4cbb..dac759053 100644 --- a/hicn-light/src/hicn/strategies/loadBalancerWithPD.c +++ b/hicn-light/src/hicn/strategies/loadBalancerWithPD.c @@ -88,11 +88,7 @@ struct strategy_load_balancer_with_pd { unsigned int fwdPackets; }; -#ifdef WITH_POLICY -StrategyImpl *strategyLoadBalancerWithPD_Create(const ConnectionTable *table) { -#else StrategyImpl *strategyLoadBalancerWithPD_Create() { -#endif /* WITH_POLICY */ StrategyLoadBalancerWithPD *strategy = parcMemory_AllocateAndClear(sizeof(StrategyLoadBalancerWithPD)); parcAssertNotNull(strategy, "parcMemory_AllocateAndClear(%zu) returned NULL", diff --git a/hicn-light/src/hicn/strategies/loadBalancerWithPD.h b/hicn-light/src/hicn/strategies/loadBalancerWithPD.h index e6c9f8271..a6ad94ab8 100644 --- a/hicn-light/src/hicn/strategies/loadBalancerWithPD.h +++ b/hicn-light/src/hicn/strategies/loadBalancerWithPD.h @@ -24,11 +24,7 @@ #include #include -#ifdef WITH_POLICY -StrategyImpl *strategyLoadBalancerWithPD_Create(const ConnectionTable * table); -#else StrategyImpl *strategyLoadBalancerWithPD_Create(); -#endif /* WITH_POLICY */ void strategyLoadBalancerWithPD_SetConnectionTable(StrategyImpl *strategy, ConnectionTable *connTable); -- cgit 1.2.3-korg