aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2014-01-15 17:40:28 +0100
committerDaniel Willmann <daniel@totalueberwachung.de>2014-01-15 17:41:45 +0100
commit80367aae175dbd171a77d1cde85924db68642e1b (patch)
tree2e1089f16ee8830a21cf9e8865955d754f4573c2
parent772415fd8a30472b28ac7d1e56c97a0d70307835 (diff)
tbf: Save a timestamp at tbf allocation and print it in the VTY
-rw-r--r--src/tbf.cpp8
-rw-r--r--src/tbf.h9
2 files changed, 14 insertions, 3 deletions
diff --git a/src/tbf.cpp b/src/tbf.cpp
index 14fbad1..fa9d263 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -508,6 +508,7 @@ struct gprs_rlcmac_tbf *tbf_alloc(struct gprs_rlcmac_bts *bts,
if (!tbf)
return NULL;
+ tbf->m_create_ts = time(NULL);
tbf->bts = bts->bts;
tbf->direction = dir;
tbf->m_tfi = tfi;
@@ -1762,10 +1763,11 @@ void tbf_print_vty_info(struct vty *vty, llist_head *ltbf)
tbf->tlli(), tbf->is_tlli_valid() ? "valid" : "invalid",
tbf->direction == GPRS_RLCMAC_UL_TBF ? "UL" : "DL",
tbf->imsi(), VTY_NEWLINE);
- vty_out(vty, " state=%08x 1st_TS=%d 1st_cTS=%d ctrl_TS=%d "
+ vty_out(vty, " created=%lu state=%08x 1st_TS=%d 1st_cTS=%d ctrl_TS=%d "
"MS_CLASS=%d%s",
- tbf->state_flags, tbf->first_ts, tbf->first_common_ts,
- tbf->control_ts, tbf->ms_class, VTY_NEWLINE);
+ tbf->create_ts(), tbf->state_flags, tbf->first_ts,
+ tbf->first_common_ts, tbf->control_ts, tbf->ms_class,
+ VTY_NEWLINE);
vty_out(vty, " TS_alloc=");
for (int i = 0; i < 8; i++) {
if (tbf->pdch[i])
diff --git a/src/tbf.h b/src/tbf.h
index 7d253ee..5c8ec62 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -138,6 +138,8 @@ struct gprs_rlcmac_tbf {
uint16_t sns() const;
+ time_t create_ts() const;
+
/* attempt to make things a bit more fair */
void rotate_in_list();
@@ -225,6 +227,7 @@ struct gprs_rlcmac_tbf {
uint32_t m_tlli;
uint8_t m_tlli_valid;
uint8_t m_tfi;
+ time_t m_create_ts;
/* store IMSI for look-up and PCH retransmission */
char m_imsi[16];
@@ -310,6 +313,12 @@ inline uint16_t gprs_rlcmac_tbf::sns() const
}
const char *tbf_name(gprs_rlcmac_tbf *tbf);
+
+inline time_t gprs_rlcmac_tbf::create_ts() const
+{
+ return m_create_ts;
+}
+
#endif
#ifdef __cplusplus