Add jitter to Stream Stats in the GUI

These are the GUI side changes to the jitter server side changes committed
earlier.
This commit is contained in:
Srivats P 2023-06-26 14:38:28 +05:30
parent a2734647b6
commit bfda96a888
2 changed files with 14 additions and 1 deletions

View File

@ -52,6 +52,7 @@ enum {
kAvgTxBitRate, kAvgTxBitRate,
kAvgRxBitRate, kAvgRxBitRate,
kAvgLatency, kAvgLatency,
kAvgJitter,
kMaxAggrStreamStats kMaxAggrStreamStats
}; };
static QStringList aggrStatTitles = QStringList() static QStringList aggrStatTitles = QStringList()
@ -63,7 +64,8 @@ static QStringList aggrStatTitles = QStringList()
<< "Avg\nRx PktRate" << "Avg\nRx PktRate"
<< "Avg\nTx BitRate" << "Avg\nTx BitRate"
<< "Avg\nRx BitRate" << "Avg\nRx BitRate"
<< "Avg\nLatency"; << "Avg\nLatency"
<< "Avg\nJitter";
static const uint kAggrGuid = 0xffffffff; static const uint kAggrGuid = 0xffffffff;
@ -192,6 +194,12 @@ QVariant StreamStatsModel::data(const QModelIndex &index, int role) const
XLocale().toTimeIntervalString( XLocale().toTimeIntervalString(
aggrGuidStats_.value(guid).latencySum aggrGuidStats_.value(guid).latencySum
/ aggrGuidStats_.value(guid).latencyCount); / aggrGuidStats_.value(guid).latencyCount);
case kAvgJitter:
return aggrGuidStats_.value(guid).latencyCount <= 0
|| aggrGuidStats_.value(guid).latencySum <= 0 ? QString("-") :
XLocale().toTimeIntervalString(
aggrGuidStats_.value(guid).jitterSum
/ aggrGuidStats_.value(guid).latencyCount);
default: default:
break; break;
}; };
@ -267,6 +275,7 @@ void StreamStatsModel::appendStreamStatsList(
ss.rxBytes = s.rx_bytes(); ss.rxBytes = s.rx_bytes();
ss.txBytes = s.tx_bytes(); ss.txBytes = s.tx_bytes();
ss.rxLatency = s.latency(); ss.rxLatency = s.latency();
ss.rxJitter = s.jitter();
aggrPort.rxPkts += ss.rxPkts; aggrPort.rxPkts += ss.rxPkts;
aggrPort.txPkts += ss.txPkts; aggrPort.txPkts += ss.txPkts;
@ -282,6 +291,7 @@ void StreamStatsModel::appendStreamStatsList(
aggrGuid.txDuration = s.tx_duration(); // XXX: use largest or avg? aggrGuid.txDuration = s.tx_duration(); // XXX: use largest or avg?
if (ss.rxLatency) { if (ss.rxLatency) {
aggrGuid.latencySum += ss.rxLatency; aggrGuid.latencySum += ss.rxLatency;
aggrGuid.jitterSum += ss.rxJitter;
aggrGuid.latencyCount++; aggrGuid.latencyCount++;
} }
@ -294,6 +304,7 @@ void StreamStatsModel::appendStreamStatsList(
aggrAggr.txDuration = aggrGuid.txDuration; aggrAggr.txDuration = aggrGuid.txDuration;
if (ss.rxLatency) { if (ss.rxLatency) {
aggrAggr.latencySum += ss.rxLatency; aggrAggr.latencySum += ss.rxLatency;
aggrAggr.jitterSum += ss.rxJitter;
aggrAggr.latencyCount++; aggrAggr.latencyCount++;
} }

View File

@ -58,6 +58,7 @@ private:
quint64 rxBytes; quint64 rxBytes;
quint64 txBytes; quint64 txBytes;
quint64 rxLatency; quint64 rxLatency;
quint64 rxJitter;
}; };
struct AggrGuidStats { struct AggrGuidStats {
quint64 rxPkts; quint64 rxPkts;
@ -67,6 +68,7 @@ private:
qint64 pktLoss; qint64 pktLoss;
double txDuration; double txDuration;
quint64 latencySum; quint64 latencySum;
quint64 jitterSum;
uint latencyCount; uint latencyCount;
}; };
QList<Guid> guidList_; QList<Guid> guidList_;