aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2014-01-15 17:06:19 +0100
committerDaniel Willmann <daniel@totalueberwachung.de>2014-01-15 17:41:44 +0100
commitafa72f521018b38d91bc68c4c87fba26cf26728c (patch)
treef5e0c232263d76775bc041e476b77e78d756424d
parent85c1ea5cb6ff71b72ec8ff51f6d5c2546c96384a (diff)
tbf: Add a function to output tbf info to VTY
-rw-r--r--src/tbf.cpp20
-rw-r--r--src/tbf.h14
2 files changed, 34 insertions, 0 deletions
diff --git a/src/tbf.cpp b/src/tbf.cpp
index dfd1c67b..907c0469 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -1753,3 +1753,23 @@ uint8_t gprs_rlcmac_tbf::tsc() const
{
return trx->pdch[first_ts].tsc;
}
+
+void tbf_print_vty_info(struct vty *vty, llist_head *ltbf)
+{
+ gprs_rlcmac_tbf *tbf = llist_entry(ltbf, gprs_rlcmac_tbf, list);
+
+ vty_out(vty, "TBF: TFI=%d TLLI=%08x (%s) DIR=%s IMSI=%s%s", tbf->tfi(),
+ 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 "
+ "MS_CLASS=%d%s",
+ 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])
+ vty_out(vty, "%d ", i);
+ }
+ vty_out(vty, "%s%s", VTY_NEWLINE, VTY_NEWLINE);
+}
diff --git a/src/tbf.h b/src/tbf.h
index 02f0b444..7d253eea 100644
--- a/src/tbf.h
+++ b/src/tbf.h
@@ -18,6 +18,8 @@
#pragma once
+#ifdef __cplusplus
+
#include "gprs_rlcmac.h"
#include "llc.h"
#include "rlc.h"
@@ -308,4 +310,16 @@ inline uint16_t gprs_rlcmac_tbf::sns() const
}
const char *tbf_name(gprs_rlcmac_tbf *tbf);
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <osmocom/vty/command.h>
+#include <osmocom/vty/vty.h>
+
+ void tbf_print_vty_info(struct vty *vty, llist_head *tbf);
+#ifdef __cplusplus
+}
+#endif