aboutsummaryrefslogtreecommitdiffstats
path: root/apps/iping/iPing_Stats.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/iping/iPing_Stats.c')
-rw-r--r--apps/iping/iPing_Stats.c139
1 files changed, 0 insertions, 139 deletions
diff --git a/apps/iping/iPing_Stats.c b/apps/iping/iPing_Stats.c
deleted file mode 100644
index bf405294..00000000
--- a/apps/iping/iPing_Stats.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (c) 2017 Cisco and/or its affiliates.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <stdio.h>
-
-#include <ccnx/common/ccnx_Name.h>
-#include <ccnx/transport/common/transport_MetaMessage.h>
-
-#include <parc/algol/parc_HashMap.h>
-#include <parc/algol/parc_DisplayIndented.h>
-
-#include "iPing_Stats.h"
-
-typedef struct ping_stats_entry {
- uint64_t sendTimeInUs;
- uint64_t rtt;
- size_t size;
- CCNxName *nameSent;
-} CCNxPingStatsEntry;
-
-struct ping_stats {
- uint64_t totalRtt;
- size_t totalReceived;
- size_t totalSent;
- size_t totalLost;
- PARCHashMap *pings;
-};
-
-static bool _ccnxPingStatsEntry_Destructor(CCNxPingStatsEntry **statsPtr) {
- CCNxPingStatsEntry *entry = *statsPtr;
- ccnxName_Release(&entry->nameSent);
-
- return true;
-}
-
-static bool _ccnxPingStats_Destructor(CCNxPingStats **statsPtr) {
- CCNxPingStats *stats = *statsPtr;
- parcHashMap_Release(&stats->pings);
- return true;
-}
-
-parcObject_Override(CCNxPingStatsEntry,
- PARCObject,
- .destructor = (PARCObjectDestructor *) _ccnxPingStatsEntry_Destructor);
-
-parcObject_ImplementAcquire(ccnxPingStatsEntry, CCNxPingStatsEntry);
-parcObject_ImplementRelease(ccnxPingStatsEntry, CCNxPingStatsEntry);
-
-CCNxPingStatsEntry *ccnxPingStatsEntry_Create() {
- return parcObject_CreateInstance(CCNxPingStatsEntry);
-}
-
-parcObject_Override(CCNxPingStats, PARCObject, .destructor = (PARCObjectDestructor *) _ccnxPingStats_Destructor);
-
-parcObject_ImplementAcquire(ccnxPingStats, CCNxPingStats);
-parcObject_ImplementRelease(ccnxPingStats, CCNxPingStats);
-
-CCNxPingStats *ccnxPingStats_Create(void) {
- CCNxPingStats *stats = parcObject_CreateInstance(CCNxPingStats);
-
- stats->pings = parcHashMap_Create();
- stats->totalSent = 0;
- stats->totalReceived = 0;
- stats->totalRtt = 0;
-
- return stats;
-}
-
-void ccnxPingStats_RecordRequest(CCNxPingStats *stats, CCNxName *name, uint64_t currentTime) {
- CCNxPingStatsEntry *entry = ccnxPingStatsEntry_Create();
-
- entry->nameSent = ccnxName_Acquire(name);
- entry->sendTimeInUs = currentTime;
-
- stats->totalSent++;
-
- char *nameString = ccnxName_ToString(name);
- printf("Insert entry %s\n", nameString);
- parcMemory_Deallocate(&nameString);
- parcHashMap_Put(stats->pings, name, entry);
-}
-
-uint64_t ccnxPingStats_RecordResponse(CCNxPingStats *stats,
- CCNxName *nameResponse,
- uint64_t currentTime,
- CCNxMetaMessage *message,
- bool *existing) {
- CCNxPingStatsEntry *entry = (CCNxPingStatsEntry *) parcHashMap_Get(stats->pings, nameResponse);
- if (entry != NULL) {
- *existing = true;
- stats->totalReceived++;
- uint64_t rtt = currentTime - entry->sendTimeInUs;
- stats->totalRtt += rtt;
- ccnxPingStatsEntry_Release(&entry);
- parcHashMap_Remove(stats->pings, nameResponse);
- return rtt;
- } else {
- *existing = false;
- char *nameString = ccnxName_ToString(nameResponse);
- printf("No entry for name %s\n", nameString);
- parcMemory_Deallocate(&nameString);
- }
- return 0;
-}
-
-size_t ccnxPingStats_RecordLost(CCNxPingStats *stats, CCNxName *nameResponse) {
- //size_t pingsReceived = stats->totalReceived + 1;
- CCNxPingStatsEntry *entry = (CCNxPingStatsEntry *) parcHashMap_Get(stats->pings, nameResponse);
- if (entry != NULL) {
- stats->totalLost++;
- ccnxPingStatsEntry_Release(&entry);
- parcHashMap_Remove(stats->pings, nameResponse);
- }
- return 0;
-}
-
-bool ccnxPingStats_Display(CCNxPingStats *stats) {
- if (stats->totalReceived > 0) {
- parcDisplayIndented_PrintLine(0,
- "Sent = %zu : Received = %zu : AvgDelay %llu us",
- stats->totalSent,
- stats->totalReceived,
- stats->totalRtt / stats->totalReceived);
- return true;
- }
- return false;
-}