diff options
author | michele papalini <micpapal@cisco.com> | 2020-01-22 14:26:48 +0100 |
---|---|---|
committer | Michele Papalini <micpapal@cisco.com> | 2020-01-22 13:37:59 +0000 |
commit | f3fc65def1f771f48cc7edc26eb48de2d0096fbd (patch) | |
tree | 0dc6660729d010f5aea2b53ac7df81fd3a0545a7 | |
parent | 30cfeb43a0fda6ddcee3c9875bf67cbddd62b7f3 (diff) |
[HICN-483] log strategy decisions using hicn-light log
Signed-off-by: michele papalini <micpapal@cisco.com>
Change-Id: I70959ca8b534aea4682175cd755523201a5dc51b
-rw-r--r-- | hicn-light/src/hicn/core/logger.c | 1 | ||||
-rw-r--r-- | hicn-light/src/hicn/core/logger.h | 1 | ||||
-rw-r--r-- | 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); |