summaryrefslogtreecommitdiff
path: root/accel-pppd/extra/net-snmp/sessionTable_data_access.c
diff options
context:
space:
mode:
authorDmitry Kozlov <xeb@mail.ru>2015-12-02 17:31:23 +0300
committerDmitry Kozlov <xeb@mail.ru>2015-12-02 17:31:23 +0300
commit863694e6547b94488a077e500028aabaadc48086 (patch)
tree33c224f3d7b45d5a853bf3185289e0fb876c771e /accel-pppd/extra/net-snmp/sessionTable_data_access.c
parente493662216791794146087a0923839e6105241bf (diff)
downloadaccel-ppp-xebd-863694e6547b94488a077e500028aabaadc48086.tar.gz
accel-ppp-xebd-863694e6547b94488a077e500028aabaadc48086.zip
net-snmp: export interface counters in the sessionTable
Diffstat (limited to 'accel-pppd/extra/net-snmp/sessionTable_data_access.c')
-rw-r--r--accel-pppd/extra/net-snmp/sessionTable_data_access.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/accel-pppd/extra/net-snmp/sessionTable_data_access.c b/accel-pppd/extra/net-snmp/sessionTable_data_access.c
index edc5e6b..13ddfc5 100644
--- a/accel-pppd/extra/net-snmp/sessionTable_data_access.c
+++ b/accel-pppd/extra/net-snmp/sessionTable_data_access.c
@@ -9,6 +9,8 @@
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
+#include <linux/if_link.h>
+
/* include our parent header */
#include "sessionTable.h"
@@ -199,6 +201,7 @@ sessionTable_container_load(netsnmp_container *container)
sessionTable_rowreq_ctx *rowreq_ctx;
size_t count = 0;
struct ap_session *ses;
+ struct rtnl_link_stats stats;
DEBUGMSGTL(("verbose:sessionTable:sessionTable_container_load","called\n"));
@@ -233,6 +236,15 @@ sessionTable_container_load(netsnmp_container *container)
rowreq_ctx->data->calling_sid = _strdup(ses->ctrl->calling_station_id);
rowreq_ctx->data->called_sid = _strdup(ses->ctrl->called_station_id);
+ ap_session_read_stats(ses, &stats);
+ rowreq_ctx->data->rx_pkts = stats.rx_packets;
+ rowreq_ctx->data->rx_bytes = stats.rx_bytes;
+ rowreq_ctx->data->rx_gw = ses->acct_input_gigawords;
+ rowreq_ctx->data->tx_pkts = stats.tx_packets;
+ rowreq_ctx->data->tx_bytes = stats.tx_bytes;
+ rowreq_ctx->data->tx_gw = ses->acct_output_gigawords;
+
+
CONTAINER_INSERT(container, rowreq_ctx);
++count;
}