From f3fc65def1f771f48cc7edc26eb48de2d0096fbd Mon Sep 17 00:00:00 2001 From: michele papalini Date: Wed, 22 Jan 2020 14:26:48 +0100 Subject: [HICN-483] log strategy decisions using hicn-light log Signed-off-by: michele papalini Change-Id: I70959ca8b534aea4682175cd755523201a5dc51b --- hicn-light/src/hicn/core/logger.c | 1 + hicn-light/src/hicn/core/logger.h | 1 + hicn-light/src/hicn/strategies/lowLatency.c | 54 +++++++++++++++++------------ 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/hicn-light/src/hicn/core/logger.c b/hicn-light/src/hicn/core/logger.c index 43740f73b..0b9bb264c 100644 --- a/hicn-light/src/hicn/core/logger.c +++ b/hicn-light/src/hicn/core/logger.c @@ -49,6 +49,7 @@ static const struct facility_to_string { {.facility = LoggerFacility_IO, .string = "IO"}, {.facility = LoggerFacility_Message, .string = "Message"}, {.facility = LoggerFacility_Processor, .string = "Processor"}, + {.facility = LoggerFacility_Strategy, .string = "Strategy"}, {.facility = 0, .string = NULL}}; const char *logger_FacilityString(LoggerFacility facility) { diff --git a/hicn-light/src/hicn/core/logger.h b/hicn-light/src/hicn/core/logger.h index c46a87097..8ab741f40 100644 --- a/hicn-light/src/hicn/core/logger.h +++ b/hicn-light/src/hicn/core/logger.h @@ -50,6 +50,7 @@ typedef enum { LoggerFacility_IO, LoggerFacility_Processor, LoggerFacility_Message, + LoggerFacility_Strategy, LoggerFacility_END // sentinel value } LoggerFacility; diff --git a/hicn-light/src/hicn/strategies/lowLatency.c b/hicn-light/src/hicn/strategies/lowLatency.c index e1d16b39d..c9e491860 100644 --- a/hicn-light/src/hicn/strategies/lowLatency.c +++ b/hicn-light/src/hicn/strategies/lowLatency.c @@ -434,30 +434,40 @@ static void strategyLowLatency_SelectBestFaces(StrategyLowLatency *ll, } NEW_ROUND: -#if 0 - if(ll->use2paths){ - printf("use 2 paths. rtt face %d = %f queue = %f is_lossy = %d," - "rtt face %d = %f queue = %f is_lossy = %d\n", - strategyNexthopStateLL_GetFaceId(ll->bestFaces[0]), - strategyNexthopStateLL_GetRTTLive(ll->bestFaces[0]), - strategyNexthopStateLL_GetQueuing(ll->bestFaces[0]), - strategyNexthopStateLL_IsLossy(ll->bestFaces[0]), - strategyNexthopStateLL_GetFaceId(ll->bestFaces[1]), - strategyNexthopStateLL_GetRTTLive(ll->bestFaces[1]), - strategyNexthopStateLL_GetQueuing(ll->bestFaces[1]), - strategyNexthopStateLL_IsLossy(ll->bestFaces[1])); - }else{ - if(ll->bestFaces[0] != NULL){ - printf("use 1 path. rtt face %d = %f is_lossy = %d (avoid multipath = %d)\n", - strategyNexthopStateLL_GetFaceId(ll->bestFaces[0]), - strategyNexthopStateLL_GetRTTLive(ll->bestFaces[0]), - strategyNexthopStateLL_IsLossy(ll->bestFaces[0]), - ll->avoid_multipath); - }else{ - printf("no face to use!\n"); + { + Logger * log = forwarder_GetLogger(ll->forwarder); + if(log != NULL && + logger_IsLoggable(log, LoggerFacility_Strategy, PARCLogLevel_Info)){ + if(ll->use2paths){ + logger_Log(log, LoggerFacility_Strategy, PARCLogLevel_Info, + __func__, "use 2 paths. rtt face %d = %f queue = %f is_lossy = %d," + "rtt face %d = %f queue = %f is_lossy = %d\n", + strategyNexthopStateLL_GetFaceId(ll->bestFaces[0]), + strategyNexthopStateLL_GetRTTLive(ll->bestFaces[0]), + strategyNexthopStateLL_GetQueuing(ll->bestFaces[0]), + strategyNexthopStateLL_IsLossy(ll->bestFaces[0]), + strategyNexthopStateLL_GetFaceId(ll->bestFaces[1]), + strategyNexthopStateLL_GetRTTLive(ll->bestFaces[1]), + strategyNexthopStateLL_GetQueuing(ll->bestFaces[1]), + strategyNexthopStateLL_IsLossy(ll->bestFaces[1])); + }else{ + if(ll->bestFaces[0] != NULL){ + logger_Log(log, LoggerFacility_Strategy, + PARCLogLevel_Info, __func__, + "use 1 path. rtt face %d = %f is_lossy = %d ", + "(avoid multipath = %d)\n", + strategyNexthopStateLL_GetFaceId(ll->bestFaces[0]), + strategyNexthopStateLL_GetRTTLive(ll->bestFaces[0]), + strategyNexthopStateLL_IsLossy(ll->bestFaces[0]), + ll->avoid_multipath); + }else{ + logger_Log(log, LoggerFacility_Strategy, PARCLogLevel_Info, + __func__, "no face to use!\n"); + } + } } } -#endif + //update the round only at the end for all the faces if(new_round){ PARCIterator * iterator = parcHashMap_CreateKeyIterator(ll->strategy_state); -- cgit 1.2.3-korg