parent
964f6031c5
commit
47abb6b3c3
@ -0,0 +1,48 @@ |
||||
#
|
||||
# Copyright (C) 2006 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
# $Id$
|
||||
|
||||
include $(TOPDIR)/rules.mk |
||||
|
||||
PKG_NAME:=libipfix
|
||||
PKG_VERSION:=r51
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources
|
||||
PKG_MD5SUM:=0e5b2871ea20ac48eda3f6006c5dba28
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME).$(PKG_VERSION)
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk |
||||
|
||||
define Package/libipfix |
||||
SECTION:=libs
|
||||
CATEGORY:=Libraries
|
||||
TITLE:=IP Flow Information Export Library
|
||||
URL:=http://www.fokus.fraunhofer.de/de/net/more_about/download/ipfixlib.html
|
||||
BUILDONLY:=1
|
||||
endef |
||||
|
||||
TARGET_CFLAGS += \
|
||||
-ffunction-sections -fdata-sections
|
||||
|
||||
define Build/Compile |
||||
$(MAKE) -C $(PKG_BUILD_DIR) \
|
||||
CCOPT="$(TARGET_CFLAGS) -I$(BUILD_DIR)/linux/include" \
|
||||
prefix="$(PKG_INSTALL_DIR)/usr" \
|
||||
exec_prefix="$(PKG_INSTALL_DIR)/usr" \
|
||||
all install
|
||||
$(TARGET_CROSS)ranlib $(PKG_INSTALL_DIR)/usr/lib/libipfix.a
|
||||
$(TARGET_CROSS)ranlib $(PKG_INSTALL_DIR)/usr/lib/libmisc.a
|
||||
endef |
||||
|
||||
define Build/InstallDev |
||||
$(INSTALL_DIR) $(1)
|
||||
$(CP) $(PKG_INSTALL_DIR)/* $(1)/
|
||||
endef |
||||
|
||||
$(eval $(call BuildPackage,libipfix)) |
@ -0,0 +1,33 @@ |
||||
use strict; |
||||
|
||||
my @fields = ( |
||||
[ "avg", "FLOAT", "Average" ], |
||||
[ "stdev", "FLOAT", "Standard deviation" ], |
||||
[ "n", "UINT", "Number of samples" ] |
||||
); |
||||
|
||||
my $file = $ARGV[0] or die "Syntax: $0 <file>\n"; |
||||
-f $file or die "File not found\n"; |
||||
my $last_ie = 0; |
||||
my $line; |
||||
open IES, "<$file" or die "Can't open file"; |
||||
while ($line = <IES>) { |
||||
$line =~ /^(\d+)\s*,/ and $last_ie = $1; |
||||
} |
||||
close IES; |
||||
while (<STDIN>) { |
||||
/^(\w+),\s*(\w+),\s*(.+)$/ and do { |
||||
my $rfield = $1; |
||||
my $nfield = $2; |
||||
my $descr = $3; |
||||
foreach my $f (@fields) { |
||||
my $nr = ++$last_ie; |
||||
my $n = $f->[0]; |
||||
my $N = uc $n; |
||||
my $ftype = $f->[1]; |
||||
my $fdesc = $f->[2]; |
||||
print "$nr, IPFIX_FT_WPROBE_$rfield\_$N, 4, IPFIX_CODING_$ftype, \"$nfield\_$n\", \"$descr - $fdesc\"\n"; |
||||
} |
||||
}; |
||||
} |
||||
|
@ -0,0 +1,12 @@ |
||||
NOISE, global_noise, wprobe global noice floor |
||||
PHY_BUSY, global_phy_busy, wprobe global airtime total |
||||
PHY_RX, global_phy_rx, wprobe global airtime total from rx-frame |
||||
PHY_TX, global_phy_tx, wprobe global airtime total from tx-frame |
||||
RSSI, link_rssi, wprobe link received signal strength indication |
||||
SIGNAL, link_signal, wprobe link signal strength in dB |
||||
IEEE_RX_RATE, link_ieee_rx_rate, wprobe link IEEE 802.11 RX data rate |
||||
IEEE_TX_RATE, link_ieee_tx_rate, wprobe link IEEE 802.11 TX data rate |
||||
RETRANSMIT_200, link_retransmit_200, wprobe link total retransmissions per packet - <200 bytes |
||||
RETRANSMIT_400, link_retransmit_400, wprobe link total retransmissions per packet - <400 bytes |
||||
RETRANSMIT_800, link_retransmit_800, wprobe link total retransmissions per packet - <800 bytes |
||||
RETRANSMIT_1600, link_retransmit_1600, wprobe link total retransmissions per packet - >800 bytes |
@ -0,0 +1,405 @@ |
||||
--- a/lib/ipfix.c
|
||||
+++ b/lib/ipfix.c
|
||||
@@ -37,6 +37,9 @@ $$LIC$$
|
||||
#ifdef SCTPSUPPORT
|
||||
#include <netinet/sctp.h>
|
||||
#endif
|
||||
+#ifndef NOTHREADS
|
||||
+#include <pthread.h>
|
||||
+#endif
|
||||
#include <fcntl.h>
|
||||
#include <netdb.h>
|
||||
|
||||
@@ -123,6 +126,18 @@ static uint16_t g_lasttid;
|
||||
static ipfix_datarecord_t g_data = { NULL, NULL, 0 }; /* ipfix_export */
|
||||
|
||||
static ipfix_field_t *g_ipfix_fields;
|
||||
+#ifndef NOTHREADS
|
||||
+static pthread_mutex_t g_mutex;
|
||||
+#define mod_lock() { \
|
||||
+ if ( pthread_mutex_lock( &g_mutex ) !=0 ) \
|
||||
+ mlogf( 0, "[ipfix] mutex_lock() failed: %s\n", \
|
||||
+ strerror( errno ) ); \
|
||||
+ }
|
||||
+#define mod_unlock() { pthread_mutex_unlock( &g_mutex ); }
|
||||
+#else
|
||||
+#define mod_lock()
|
||||
+#define mod_unlock()
|
||||
+#endif
|
||||
|
||||
/*----- prototypes -------------------------------------------------------*/
|
||||
|
||||
@@ -133,6 +148,7 @@ int _ipfix_send_message( ipfix_t *ifh,
|
||||
ipfix_message_t *message );
|
||||
int _ipfix_write_msghdr( ipfix_t *ifh, ipfix_message_t *msg, iobuf_t *buf );
|
||||
void _ipfix_disconnect( ipfix_collector_t *col );
|
||||
+int _ipfix_export_flush( ipfix_t *ifh );
|
||||
|
||||
|
||||
/* name : do_writeselect
|
||||
@@ -576,16 +592,18 @@ int ipfix_decode_float( void *in, void *
|
||||
|
||||
int ipfix_snprint_float( char *str, size_t size, void *data, size_t len )
|
||||
{
|
||||
- float tmp32;
|
||||
- double tmp64;
|
||||
+ uint32_t tmp32;
|
||||
+ uint64_t tmp64;
|
||||
|
||||
switch ( len ) {
|
||||
case 4:
|
||||
- ipfix_decode_float( data, &tmp32, 4);
|
||||
- return snprintf( str, size, "%f", tmp32 );
|
||||
+ memcpy( &tmp32, data, len );
|
||||
+ tmp32 = htonl( tmp32 );
|
||||
+ return snprintf( str, size, "%f", (float)tmp32 );
|
||||
case 8:
|
||||
- ipfix_decode_float( data, &tmp64, 8);
|
||||
- return snprintf( str, size, "%lf", tmp64);
|
||||
+ memcpy( &tmp64, data, len );
|
||||
+ tmp64 = HTONLL( tmp64 );
|
||||
+ return snprintf( str, size, "%lf", (double)tmp64 );
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -682,12 +700,19 @@ int ipfix_get_eno_ieid( char *field, int
|
||||
* parameters:
|
||||
* remarks: init module, read field type info.
|
||||
*/
|
||||
-int ipfix_init ( void )
|
||||
+int ipfix_init( void )
|
||||
{
|
||||
if ( g_tstart ) {
|
||||
ipfix_cleanup();
|
||||
}
|
||||
|
||||
+#ifndef NOTHREADS
|
||||
+ if ( pthread_mutex_init( &g_mutex, NULL ) !=0 ) {
|
||||
+ mlogf( 0, "[ipfix] pthread_mutex_init() failed: %s\n",
|
||||
+ strerror(errno) );
|
||||
+ return -1;
|
||||
+ }
|
||||
+#endif
|
||||
g_tstart = time(NULL);
|
||||
signal( SIGPIPE, SIG_IGN );
|
||||
g_lasttid = 255;
|
||||
@@ -806,6 +831,9 @@ void ipfix_cleanup ( void )
|
||||
g_data.maxfields = 0;
|
||||
g_data.lens = NULL;
|
||||
g_data.addrs = NULL;
|
||||
+#ifndef NOTHREADS
|
||||
+ (void)pthread_mutex_destroy( &g_mutex );
|
||||
+#endif
|
||||
}
|
||||
|
||||
int _ipfix_connect ( ipfix_collector_t *col )
|
||||
@@ -1465,7 +1493,7 @@ int _ipfix_write_template( ipfix_t
|
||||
default:
|
||||
/* check space */
|
||||
if ( tsize+ifh->offset > IPFIX_DEFAULT_BUFLEN ) {
|
||||
- if ( ipfix_export_flush( ifh ) < 0 )
|
||||
+ if ( _ipfix_export_flush( ifh ) < 0 )
|
||||
return -1;
|
||||
if ( tsize+ifh->offset > IPFIX_DEFAULT_BUFLEN )
|
||||
return -1;
|
||||
@@ -1474,6 +1502,8 @@ int _ipfix_write_template( ipfix_t
|
||||
/* write template prior to data */
|
||||
if ( ifh->offset > 0 ) {
|
||||
memmove( ifh->buffer + tsize, ifh->buffer, ifh->offset );
|
||||
+ if ( ifh->cs_tid )
|
||||
+ ifh->cs_header += tsize;
|
||||
}
|
||||
|
||||
buf = ifh->buffer;
|
||||
@@ -1615,8 +1645,11 @@ int ipfix_open( ipfix_t **ipfixh, int so
|
||||
return -1;
|
||||
}
|
||||
node->ifh = i;
|
||||
+
|
||||
+ mod_lock();
|
||||
node->next = g_ipfixlist;
|
||||
g_ipfixlist = node;
|
||||
+ mod_unlock();
|
||||
|
||||
*ipfixh = i;
|
||||
return 0;
|
||||
@@ -1633,7 +1666,8 @@ void ipfix_close( ipfix_t *h )
|
||||
{
|
||||
ipfix_node_t *l, *n;
|
||||
|
||||
- ipfix_export_flush( h );
|
||||
+ mod_lock();
|
||||
+ _ipfix_export_flush( h );
|
||||
|
||||
while( h->collectors )
|
||||
_ipfix_drop_collector( (ipfix_collector_t**)&h->collectors );
|
||||
@@ -1659,6 +1693,7 @@ void ipfix_close( ipfix_t *h )
|
||||
#endif
|
||||
free(h->buffer);
|
||||
free(h);
|
||||
+ mod_unlock();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2156,6 +2191,22 @@ void ipfix_release_template( ipfix_t *if
|
||||
ipfix_delete_template( ifh, templ );
|
||||
}
|
||||
|
||||
+static void _finish_cs( ipfix_t *ifh )
|
||||
+{
|
||||
+ size_t buflen;
|
||||
+ uint8_t *buf;
|
||||
+
|
||||
+ /* finish current dataset */
|
||||
+ if ( (buf=ifh->cs_header) ==NULL )
|
||||
+ return;
|
||||
+ buflen = 0;
|
||||
+ INSERTU16( buf+buflen, buflen, ifh->cs_tid );
|
||||
+ INSERTU16( buf+buflen, buflen, ifh->cs_bytes );
|
||||
+ ifh->cs_bytes = 0;
|
||||
+ ifh->cs_header = NULL;
|
||||
+ ifh->cs_tid = 0;
|
||||
+}
|
||||
+
|
||||
int ipfix_export( ipfix_t *ifh, ipfix_template_t *templ, ... )
|
||||
{
|
||||
int i;
|
||||
@@ -2199,13 +2250,14 @@ int ipfix_export( ipfix_t *ifh, ipfix_te
|
||||
g_data.addrs, g_data.lens );
|
||||
}
|
||||
|
||||
-int ipfix_export_array( ipfix_t *ifh,
|
||||
- ipfix_template_t *templ,
|
||||
- int nfields,
|
||||
- void **fields,
|
||||
- uint16_t *lengths )
|
||||
+static int
|
||||
+_ipfix_export_array( ipfix_t *ifh,
|
||||
+ ipfix_template_t *templ,
|
||||
+ int nfields,
|
||||
+ void **fields,
|
||||
+ uint16_t *lengths )
|
||||
{
|
||||
- int i;
|
||||
+ int i, newset_f=0;
|
||||
size_t buflen, datasetlen;
|
||||
uint8_t *p, *buf;
|
||||
|
||||
@@ -2249,7 +2301,19 @@ int ipfix_export_array( ipfix_t
|
||||
|
||||
/** get size of data set, check space
|
||||
*/
|
||||
- for ( i=0, datasetlen=4; i<nfields; i++ ) {
|
||||
+ if ( templ->tid == ifh->cs_tid ) {
|
||||
+ newset_f = 0;
|
||||
+ datasetlen = 0;
|
||||
+ }
|
||||
+ else {
|
||||
+ if ( ifh->cs_tid > 0 ) {
|
||||
+ _finish_cs( ifh );
|
||||
+ }
|
||||
+ newset_f = 1;
|
||||
+ datasetlen = 4;
|
||||
+ }
|
||||
+
|
||||
+ for ( i=0; i<nfields; i++ ) {
|
||||
if ( templ->fields[i].flength == IPFIX_FT_VARLEN ) {
|
||||
if ( lengths[i]>254 )
|
||||
datasetlen += 3;
|
||||
@@ -2263,21 +2327,29 @@ int ipfix_export_array( ipfix_t
|
||||
}
|
||||
datasetlen += lengths[i];
|
||||
}
|
||||
- if ( ((ifh->offset + datasetlen) > IPFIX_DEFAULT_BUFLEN )
|
||||
- && (ipfix_export_flush( ifh ) <0) ) {
|
||||
- return -1;
|
||||
+
|
||||
+ if ( (ifh->offset + datasetlen) > IPFIX_DEFAULT_BUFLEN ) {
|
||||
+ if ( ifh->cs_tid )
|
||||
+ _finish_cs( ifh );
|
||||
+ newset_f = 1;
|
||||
+
|
||||
+ if ( _ipfix_export_flush( ifh ) <0 )
|
||||
+ return -1;
|
||||
}
|
||||
|
||||
- /* fill buffer
|
||||
- */
|
||||
+ /* fill buffer */
|
||||
buf = (uint8_t*)(ifh->buffer) + ifh->offset;
|
||||
buflen = 0;
|
||||
|
||||
- /* insert data set
|
||||
- */
|
||||
- ifh->nrecords ++;
|
||||
- INSERTU16( buf+buflen, buflen, templ->tid );
|
||||
- INSERTU16( buf+buflen, buflen, datasetlen );
|
||||
+ if ( newset_f ) {
|
||||
+ /* insert data set
|
||||
+ */
|
||||
+ ifh->cs_bytes = 0;
|
||||
+ ifh->cs_header = buf;
|
||||
+ ifh->cs_tid = templ->tid;
|
||||
+ INSERTU16( buf+buflen, buflen, templ->tid );
|
||||
+ INSERTU16( buf+buflen, buflen, 4 );
|
||||
+ }
|
||||
|
||||
/* insert data record
|
||||
*/
|
||||
@@ -2303,7 +2375,9 @@ int ipfix_export_array( ipfix_t
|
||||
buflen += lengths[i];
|
||||
}
|
||||
|
||||
+ ifh->nrecords ++;
|
||||
ifh->offset += buflen;
|
||||
+ ifh->cs_bytes += buflen;
|
||||
if ( ifh->version == IPFIX_VERSION )
|
||||
ifh->seqno ++;
|
||||
return 0;
|
||||
@@ -2313,7 +2387,7 @@ int ipfix_export_array( ipfix_t
|
||||
* parameters:
|
||||
* remarks: rewrite this func!
|
||||
*/
|
||||
-int ipfix_export_flush( ipfix_t *ifh )
|
||||
+int _ipfix_export_flush( ipfix_t *ifh )
|
||||
{
|
||||
iobuf_t *buf;
|
||||
ipfix_collector_t *col;
|
||||
@@ -2322,8 +2396,14 @@ int ipfix_export_flush( ipfix_t *ifh )
|
||||
if ( (ifh==NULL) || (ifh->offset==0) )
|
||||
return 0;
|
||||
|
||||
- if ( (buf=_ipfix_getbuf()) ==NULL )
|
||||
+ if ( ifh->cs_tid > 0 ) {
|
||||
+ /* finish current dataset */
|
||||
+ _finish_cs( ifh );
|
||||
+ }
|
||||
+
|
||||
+ if ( (buf=_ipfix_getbuf()) ==NULL ) {
|
||||
return -1;
|
||||
+ }
|
||||
|
||||
#ifdef DEBUG
|
||||
mlogf( 0, "[ipfix_export_flush] msg has %d records, %d bytes\n",
|
||||
@@ -2350,3 +2430,30 @@ int ipfix_export_flush( ipfix_t *ifh )
|
||||
_ipfix_freebuf( buf );
|
||||
return ret;
|
||||
}
|
||||
+
|
||||
+int ipfix_export_array( ipfix_t *ifh,
|
||||
+ ipfix_template_t *templ,
|
||||
+ int nfields,
|
||||
+ void **fields,
|
||||
+ uint16_t *lengths )
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ mod_lock();
|
||||
+ ret = _ipfix_export_array( ifh, templ, nfields, fields, lengths );
|
||||
+ mod_unlock();
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+int ipfix_export_flush( ipfix_t *ifh )
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ mod_lock();
|
||||
+ ret = _ipfix_export_flush( ifh );
|
||||
+ mod_unlock();
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
--- a/lib/ipfix.h
|
||||
+++ b/lib/ipfix.h
|
||||
@@ -142,6 +142,12 @@ typedef struct
|
||||
int nrecords; /* no. of records in buffer */
|
||||
size_t offset; /* output buffer fill level */
|
||||
uint32_t seqno; /* sequence no. of next message */
|
||||
+
|
||||
+ /* experimental */
|
||||
+ int cs_tid; /* template id of current dataset */
|
||||
+ int cs_bytes; /* size of current set */
|
||||
+ uint8_t *cs_header; /* start of current set */
|
||||
+
|
||||
} ipfix_t;
|
||||
|
||||
/** exporter funcs
|
||||
--- a/lib/ipfix_col.c
|
||||
+++ b/lib/ipfix_col.c
|
||||
@@ -907,7 +907,7 @@ int ipfix_decode_datarecord( ipfixt_node
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static void do_free_datarecord( ipfix_datarecord_t *data )
|
||||
+void ipfix_free_datarecord( ipfix_datarecord_t *data )
|
||||
{
|
||||
if ( data ) {
|
||||
if ( data->addrs )
|
||||
@@ -925,6 +925,7 @@ int ipfix_parse_msg( ipfix_input_t *inpu
|
||||
ipfix_hdr_t hdr; /* ipfix packet header */
|
||||
ipfixs_node_t *s;
|
||||
ipfix_datarecord_t data = { NULL, NULL, 0 };
|
||||
+ ipfixe_node_t *e;
|
||||
uint8_t *buf; /* ipfix payload */
|
||||
uint16_t setid, setlen; /* set id, set lenght */
|
||||
int i, nread, offset; /* counter */
|
||||
@@ -1042,6 +1043,12 @@ int ipfix_parse_msg( ipfix_input_t *inpu
|
||||
err_flag = 1;
|
||||
}
|
||||
else {
|
||||
+ for ( e=g_exporter; e!=NULL; e=e->next ) {
|
||||
+ if ( e->elem->export_dset )
|
||||
+ (void) e->elem->export_dset( t, buf+nread, setlen,
|
||||
+ e->elem->data );
|
||||
+ }
|
||||
+
|
||||
/** read data records
|
||||
*/
|
||||
for ( offset=nread, bytesleft=setlen; bytesleft>4; ) {
|
||||
@@ -1076,11 +1083,11 @@ int ipfix_parse_msg( ipfix_input_t *inpu
|
||||
goto errend;
|
||||
|
||||
end:
|
||||
- do_free_datarecord( &data );
|
||||
+ ipfix_free_datarecord( &data );
|
||||
return nread;
|
||||
|
||||
errend:
|
||||
- do_free_datarecord( &data );
|
||||
+ ipfix_free_datarecord( &data );
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1093,7 +1100,7 @@ void process_client_tcp( int fd, int mas
|
||||
tcp_conn_t *tcon = (tcp_conn_t*)data;
|
||||
char *func = "process_client_tcp";
|
||||
|
||||
- mlogf( 3, "[%s] fd %d mask %d called.\n", func, fd, mask );
|
||||
+ mlogf( 4, "[%s] fd %d mask %d called.\n", func, fd, mask );
|
||||
|
||||
/** read ipfix header
|
||||
*/
|
||||
--- a/lib/ipfix_col.h
|
||||
+++ b/lib/ipfix_col.h
|
||||
@@ -88,6 +88,7 @@ typedef struct ipfix_col_info
|
||||
int (*export_newsource)(ipfixs_node_t*,void*);
|
||||
int (*export_newmsg)(ipfixs_node_t*,ipfix_hdr_t*,void*);
|
||||
int (*export_trecord)(ipfixs_node_t*,ipfixt_node_t*,void*);
|
||||
+ int (*export_dset)(ipfixt_node_t*,uint8_t*,size_t,void*);
|
||||
int (*export_drecord)(ipfixs_node_t*,ipfixt_node_t*,
|
||||
ipfix_datarecord_t*,void*);
|
||||
void (*export_cleanup)(void*);
|
||||
--- a/lib/ipfix_col_files.c
|
||||
+++ b/lib/ipfix_col_files.c
|
||||
@@ -68,7 +68,7 @@ static int export_newsource_file( ipfixs
|
||||
return -1;
|
||||
}
|
||||
snprintf( s->fname+strlen(s->fname), PATH_MAX-strlen(s->fname),
|
||||
- "/%u", s->odid );
|
||||
+ "/%u", (unsigned int)s->odid );
|
||||
if ( (access( s->fname, R_OK ) <0 )
|
||||
&& (mkdir( s->fname, S_IRWXU ) <0) ) {
|
||||
mlogf( 0, "[%s] cannot access dir '%s': %s\n",
|
@ -0,0 +1,43 @@ |
||||
--- a/lib/ipfix_FOKUS_IEs.txt
|
||||
+++ b/lib/ipfix_FOKUS_IEs.txt
|
||||
@@ -38,4 +38,39 @@
|
||||
312, IPFIX_FT_OWDVARMEAN_NSEC, 4, IPFIX_CODING_INT, "owdvarmean_nsec", "FOKUS mean owd variace in ns"
|
||||
313, IPFIX_FT_OWDVARMIN_NSEC, 4, IPFIX_CODING_INT, "owdvarmin_nsec", "FOKUS minimum owd variance in ns"
|
||||
314, IPFIX_FT_OWDVARMAX_NSEC, 4, IPFIX_CODING_INT, "owdvarmax_nsec", "FOKUS maximum ow variance in ns"
|
||||
-
|
||||
+315, IPFIX_FT_WPROBE_NOISE_AVG, 4, IPFIX_CODING_FLOAT, "global_noise_avg", "wprobe global noice floor - Average"
|
||||
+316, IPFIX_FT_WPROBE_NOISE_STDEV, 4, IPFIX_CODING_FLOAT, "global_noise_stdev", "wprobe global noice floor - Standard deviation"
|
||||
+317, IPFIX_FT_WPROBE_NOISE_N, 4, IPFIX_CODING_UINT, "global_noise_n", "wprobe global noice floor - Number of samples"
|
||||
+318, IPFIX_FT_WPROBE_PHY_BUSY_AVG, 4, IPFIX_CODING_FLOAT, "global_phy_busy_avg", "wprobe global airtime total - Average"
|
||||
+319, IPFIX_FT_WPROBE_PHY_BUSY_STDEV, 4, IPFIX_CODING_FLOAT, "global_phy_busy_stdev", "wprobe global airtime total - Standard deviation"
|
||||
+320, IPFIX_FT_WPROBE_PHY_BUSY_N, 4, IPFIX_CODING_UINT, "global_phy_busy_n", "wprobe global airtime total - Number of samples"
|
||||
+321, IPFIX_FT_WPROBE_PHY_RX_AVG, 4, IPFIX_CODING_FLOAT, "global_phy_rx_avg", "wprobe global airtime total from rx-frame - Average"
|
||||
+322, IPFIX_FT_WPROBE_PHY_RX_STDEV, 4, IPFIX_CODING_FLOAT, "global_phy_rx_stdev", "wprobe global airtime total from rx-frame - Standard deviation"
|
||||
+323, IPFIX_FT_WPROBE_PHY_RX_N, 4, IPFIX_CODING_UINT, "global_phy_rx_n", "wprobe global airtime total from rx-frame - Number of samples"
|
||||
+324, IPFIX_FT_WPROBE_PHY_TX_AVG, 4, IPFIX_CODING_FLOAT, "global_phy_tx_avg", "wprobe global airtime total from tx-frame - Average"
|
||||
+325, IPFIX_FT_WPROBE_PHY_TX_STDEV, 4, IPFIX_CODING_FLOAT, "global_phy_tx_stdev", "wprobe global airtime total from tx-frame - Standard deviation"
|
||||
+326, IPFIX_FT_WPROBE_PHY_TX_N, 4, IPFIX_CODING_UINT, "global_phy_tx_n", "wprobe global airtime total from tx-frame - Number of samples"
|
||||
+327, IPFIX_FT_WPROBE_RSSI_AVG, 4, IPFIX_CODING_FLOAT, "link_rssi_avg", "wprobe link received signal strength indication - Average"
|
||||
+328, IPFIX_FT_WPROBE_RSSI_STDEV, 4, IPFIX_CODING_FLOAT, "link_rssi_stdev", "wprobe link received signal strength indication - Standard deviation"
|
||||
+329, IPFIX_FT_WPROBE_RSSI_N, 4, IPFIX_CODING_UINT, "link_rssi_n", "wprobe link received signal strength indication - Number of samples"
|
||||
+330, IPFIX_FT_WPROBE_SIGNAL_AVG, 4, IPFIX_CODING_FLOAT, "link_signal_avg", "wprobe link signal strength in dB - Average"
|
||||
+331, IPFIX_FT_WPROBE_SIGNAL_STDEV, 4, IPFIX_CODING_FLOAT, "link_signal_stdev", "wprobe link signal strength in dB - Standard deviation"
|
||||
+332, IPFIX_FT_WPROBE_SIGNAL_N, 4, IPFIX_CODING_UINT, "link_signal_n", "wprobe link signal strength in dB - Number of samples"
|
||||
+333, IPFIX_FT_WPROBE_IEEE_RX_RATE_AVG, 4, IPFIX_CODING_FLOAT, "link_ieee_rx_rate_avg", "wprobe link IEEE 802.11 RX data rate - Average"
|
||||
+334, IPFIX_FT_WPROBE_IEEE_RX_RATE_STDEV, 4, IPFIX_CODING_FLOAT, "link_ieee_rx_rate_stdev", "wprobe link IEEE 802.11 RX data rate - Standard deviation"
|
||||
+335, IPFIX_FT_WPROBE_IEEE_RX_RATE_N, 4, IPFIX_CODING_UINT, "link_ieee_rx_rate_n", "wprobe link IEEE 802.11 RX data rate - Number of samples"
|
||||
+336, IPFIX_FT_WPROBE_IEEE_TX_RATE_AVG, 4, IPFIX_CODING_FLOAT, "link_ieee_tx_rate_avg", "wprobe link IEEE 802.11 TX data rate - Average"
|
||||
+337, IPFIX_FT_WPROBE_IEEE_TX_RATE_STDEV, 4, IPFIX_CODING_FLOAT, "link_ieee_tx_rate_stdev", "wprobe link IEEE 802.11 TX data rate - Standard deviation"
|
||||
+338, IPFIX_FT_WPROBE_IEEE_TX_RATE_N, 4, IPFIX_CODING_UINT, "link_ieee_tx_rate_n", "wprobe link IEEE 802.11 TX data rate - Number of samples"
|
||||
+339, IPFIX_FT_WPROBE_RETRANSMIT_200_AVG, 4, IPFIX_CODING_FLOAT, "link_retransmit_200_avg", "wprobe link total retransmissions per packet - <200 bytes - Average"
|
||||
+340, IPFIX_FT_WPROBE_RETRANSMIT_200_STDEV, 4, IPFIX_CODING_FLOAT, "link_retransmit_200_stdev", "wprobe link total retransmissions per packet - <200 bytes - Standard deviation"
|
||||
+341, IPFIX_FT_WPROBE_RETRANSMIT_200_N, 4, IPFIX_CODING_UINT, "link_retransmit_200_n", "wprobe link total retransmissions per packet - <200 bytes - Number of samples"
|
||||
+342, IPFIX_FT_WPROBE_RETRANSMIT_400_AVG, 4, IPFIX_CODING_FLOAT, "link_retransmit_400_avg", "wprobe link total retransmissions per packet - <400 bytes - Average"
|
||||
+343, IPFIX_FT_WPROBE_RETRANSMIT_400_STDEV, 4, IPFIX_CODING_FLOAT, "link_retransmit_400_stdev", "wprobe link total retransmissions per packet - <400 bytes - Standard deviation"
|
||||
+344, IPFIX_FT_WPROBE_RETRANSMIT_400_N, 4, IPFIX_CODING_UINT, "link_retransmit_400_n", "wprobe link total retransmissions per packet - <400 bytes - Number of samples"
|
||||
+345, IPFIX_FT_WPROBE_RETRANSMIT_800_AVG, 4, IPFIX_CODING_FLOAT, "link_retransmit_800_avg", "wprobe link total retransmissions per packet - <800 bytes - Average"
|
||||
+346, IPFIX_FT_WPROBE_RETRANSMIT_800_STDEV, 4, IPFIX_CODING_FLOAT, "link_retransmit_800_stdev", "wprobe link total retransmissions per packet - <800 bytes - Standard deviation"
|
||||
+347, IPFIX_FT_WPROBE_RETRANSMIT_800_N, 4, IPFIX_CODING_UINT, "link_retransmit_800_n", "wprobe link total retransmissions per packet - <800 bytes - Number of samples"
|
||||
+348, IPFIX_FT_WPROBE_RETRANSMIT_1600_AVG, 4, IPFIX_CODING_FLOAT, "link_retransmit_1600_avg", "wprobe link total retransmissions per packet - >800 bytes - Average"
|
||||
+349, IPFIX_FT_WPROBE_RETRANSMIT_1600_STDEV, 4, IPFIX_CODING_FLOAT, "link_retransmit_1600_stdev", "wprobe link total retransmissions per packet - >800 bytes - Standard deviation"
|
||||
+350, IPFIX_FT_WPROBE_RETRANSMIT_1600_N, 4, IPFIX_CODING_UINT, "link_retransmit_1600_n", "wprobe link total retransmissions per packet - >800 bytes - Number of samples"
|
Loading…
Reference in new issue