From 7fb09b88849d5c8796cfc8084ebeae03987b2d39 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Tue, 19 Apr 2022 15:04:18 +0200 Subject: [PATCH] Add rate counters for number of frames muxed/demuxed (E1 side) Nominally this is of course 8000/s, but this patch should allow us to verify this in monitoring. Note that the rate_ctr base of course is "wrong" as it uses the normal system clock, which is much less precise than the E1 clock of an icE1usb with GPS-DO. So it really only helps us to compare Rx against Tx or against other values/counters derived from the TDM clock. Change-Id: I40e9fb38561410fbf0902b8a390673690a36ea5e --- src/e1d.h | 2 ++ src/intf_line.c | 2 ++ src/mux_demux.c | 4 ++++ 3 files changed, 8 insertions(+) diff --git a/src/e1d.h b/src/e1d.h index 726696e..00d2149 100644 --- a/src/e1d.h +++ b/src/e1d.h @@ -54,6 +54,8 @@ enum e1d_line_ctr { LINE_CTR_TX_UNFL, LINE_CTR_RX_REMOTE_E, LINE_CTR_RX_REMOTE_A, + LINE_CTR_FRAMES_MUXED_E1T, + LINE_CTR_FRAMES_DEMUXED_E1O, }; enum e1_ts_mode { diff --git a/src/intf_line.c b/src/intf_line.c index 63fd098..234f0c0 100644 --- a/src/intf_line.c +++ b/src/intf_line.c @@ -56,6 +56,8 @@ static const struct rate_ctr_desc line_ctr_description[] = { [LINE_CTR_TX_UNFL] = { "tx:underflow", "E1 Tx Underflow" }, [LINE_CTR_RX_REMOTE_E] ={ "rx:remote_crc_errors", "Rx Frames Reporting Remote CRC Error"}, [LINE_CTR_RX_REMOTE_A] ={ "rx:remote_alarm", "Rx Frames Reporting Remote Alarm"}, + [LINE_CTR_FRAMES_MUXED_E1T] = { "tx:frames_muxed", "E1 Tx Frames multiplexed" }, + [LINE_CTR_FRAMES_DEMUXED_E1O] = { "rx:frames_demuxed", "E1 Rx Frames demultiplexed" }, }; static const struct rate_ctr_group_desc line_ctrg_desc = { diff --git a/src/mux_demux.c b/src/mux_demux.c index 671d6d1..cd5c286 100644 --- a/src/mux_demux.c +++ b/src/mux_demux.c @@ -218,6 +218,8 @@ e1_line_mux_out(struct e1_line *line, uint8_t *buf, int fts) OSMO_ASSERT(0); } + line_ctr_add(line, LINE_CTR_FRAMES_MUXED_E1T, fts); + return tsz; } @@ -421,6 +423,8 @@ e1_line_demux_in(struct e1_line *line, const uint8_t *buf, int size, int frame_b if (frame_base >= 0) _e1_line_demux_in_ts0(line, buf, ftr, frame_base); + line_ctr_add(line, LINE_CTR_FRAMES_DEMUXED_E1O, ftr); + switch (line->mode) { case E1_LINE_MODE_CHANNELIZED: return _e1_line_demux_in_channelized(line, buf, ftr);