From 7749fd73290bf6bbc91b068e40e270cc68269168 Mon Sep 17 00:00:00 2001 From: nbd Date: Sun, 29 Mar 2009 04:47:19 +0000 Subject: wprobe: export the newly added fields via ipfix git-svn-id: svn://svn.openwrt.org/openwrt/trunk@15065 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/wprobe/src/exporter/wprobe-export.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'package/wprobe/src') diff --git a/package/wprobe/src/exporter/wprobe-export.c b/package/wprobe/src/exporter/wprobe-export.c index 974f4a10f3..e9aa3de8c4 100644 --- a/package/wprobe/src/exporter/wprobe-export.c +++ b/package/wprobe/src/exporter/wprobe-export.c @@ -17,12 +17,14 @@ #include #include #include +#include static ipfix_datarecord_t g_data = { NULL, NULL, 0 }; static int do_close = 0; struct wprobe_mapping { int id; + bool counter; float scale; const char *wprobe_id; struct wprobe_value *val; @@ -35,11 +37,22 @@ struct wprobe_mapping { #define WMAP(_id, _name, ...) \ { \ .scale = 1.0f, \ + .counter = false, \ .id = IPFIX_FT_WPROBE_##_id##_AVG, \ .wprobe_id = _name \ , ## __VA_ARGS__ \ } +#define WMAP_COUNTER(_id, _name, ...) \ + { \ + .scale = 1.0f, \ + .counter = true, \ + .id = IPFIX_FT_WPROBE_##_id, \ + .wprobe_id = _name \ + , ## __VA_ARGS__ \ + } + + #define WPROBE_OFFSET 2 static struct wprobe_mapping map_globals[] = { @@ -47,6 +60,8 @@ static struct wprobe_mapping map_globals[] = { WMAP(PHY_BUSY, "phy_busy"), WMAP(PHY_RX, "phy_rx"), WMAP(PHY_TX, "phy_tx"), + WMAP_COUNTER(FRAMES, "frames"), + WMAP_COUNTER(PROBEREQ, "probereq"), }; static struct wprobe_mapping map_perlink[] = { @@ -129,12 +144,19 @@ add_template_fields(ipfix_t *handle, ipfix_template_t *t, struct wprobe_mapping if (!map[i].val) continue; - g_data.addrs[f++] = &map[i].val->avg; - g_data.addrs[f++] = &map[i].val->stdev; - g_data.addrs[f++] = &map[i].val->n; + if (map[i].counter) + g_data.addrs[f++] = &map[i].val->U32; + else + g_data.addrs[f++] = &map[i].val->avg; if (ipfix_add_field( handle, t, FOKUS_USERID, map[i].id + 0, 4) < 0) exit(1); + + if (map[i].counter) + continue; + + g_data.addrs[f++] = &map[i].val->stdev; + g_data.addrs[f++] = &map[i].val->n; if (ipfix_add_field( handle, t, FOKUS_USERID, map[i].id + 1, 4) < 0) exit(1); if (ipfix_add_field( handle, t, FOKUS_USERID, map[i].id + 2, 4) < 0) -- cgit v1.2.3