llc: Keep track of the number of stored LLC octets
To get the number of LLC octets that are stored in the queue, this
commit adds a m_queue_octets member along with a octets() method.
This value is updated similarly to m_queue_size on each modifying
method call.
Sponsored-by: On-Waves ehf
diff --git a/src/llc.cpp b/src/llc.cpp
index d847c87..3388db1 100644
--- a/src/llc.cpp
+++ b/src/llc.cpp
@@ -100,12 +100,14 @@
{
INIT_LLIST_HEAD(&m_queue);
m_queue_size = 0;
+ m_queue_octets = 0;
m_avg_queue_delay = 0;
}
void gprs_llc_queue::enqueue(struct msgb *llc_msg)
{
m_queue_size += 1;
+ m_queue_octets += msgb_length(llc_msg) - 2*sizeof(struct timeval);
msgb_enqueue(&m_queue, llc_msg);
}
@@ -120,6 +122,7 @@
}
m_queue_size = 0;
+ m_queue_octets = 0;
}
#define ALPHA 0.5f
@@ -136,6 +139,7 @@
return NULL;
m_queue_size -= 1;
+ m_queue_octets -= msgb_length(msg) - 2*sizeof(struct timeval);
/* take the second time */
gettimeofday(&tv_now, NULL);