summaryrefslogtreecommitdiff
path: root/package/wprobe/src/user/wprobe.h
diff options
context:
space:
mode:
Diffstat (limited to 'package/wprobe/src/user/wprobe.h')
-rw-r--r--package/wprobe/src/user/wprobe.h213
1 files changed, 0 insertions, 213 deletions
diff --git a/package/wprobe/src/user/wprobe.h b/package/wprobe/src/user/wprobe.h
deleted file mode 100644
index 706facc..0000000
--- a/package/wprobe/src/user/wprobe.h
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- * wprobe.h: Wireless probe user space library
- * Copyright (C) 2008-2009 Felix Fietkau <nbd@openwrt.org>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#ifndef __WPROBE_USER_H
-#define __WPROBE_USER_H
-#include <inttypes.h>
-#include <stdint.h>
-#include <stdbool.h>
-#include "list.h"
-
-/**
- * struct wprobe_value: data structure for attribute values
- * @STRING: string value (currently unsupported)
- * @U8: unsigned 8-bit integer value
- * @U16: unsigned 16-bit integer value
- * @U32: unsigned 32-bit integer value
- * @U64: unsigned 64-bit integer value
- * @S8: signed 8-bit integer value
- * @S16: signed 16-bit integer value
- * @S32: signed 32-bit integer value
- * @S64: signed 64-bit integer value
- *
- * @n: number of sample values
- * @avg: average value
- * @stdev: standard deviation
- * @s: sum of all sample values (internal use)
- * @ss: sum of all sample values squared (internal use)
- */
-struct wprobe_value {
- /* attribute value */
- union {
- const char *STRING;
- uint8_t U8;
- uint16_t U16;
- uint32_t U32;
- uint64_t U64;
- int8_t S8;
- int16_t S16;
- int32_t S32;
- int64_t S64;
- };
- /* statistics */
- int64_t s, ss;
- float avg, stdev;
- unsigned int n;
-};
-
-/**
- * struct wprobe_attribute: data structures for attribute descriptions
- * @list: linked list data structure for a list of attributes
- * @id: attribute id
- * @type: netlink type for the attribute (see kernel api documentation)
- * @flags: attribute flags (see kernel api documentation)
- * @val: cached version of the last netlink query, will be overwritten on each request
- * @name: attribute name
- */
-struct wprobe_attribute {
- struct list_head list;
- int id;
- int type;
- uint32_t flags;
- struct wprobe_value val;
- char name[];
-};
-
-/**
- * struct wprobe_link: data structure for the link description
- * @list: linked list data structure for a list of links
- * @flags: link flags (see kernel api documentation)
- * @addr: mac address of the remote link partner
- */
-struct wprobe_link {
- struct list_head list;
- uint32_t flags;
- unsigned char addr[6];
-};
-
-struct wprobe_filter_item {
- char name[32];
- uint64_t rx;
- uint64_t tx;
-};
-
-struct wprobe_iface_ops;
-struct wprobe_iface {
- const struct wprobe_iface_ops *ops;
-
- int sockfd;
- const char *ifname;
- unsigned int genl_family;
- char addr[6];
-
- struct list_head global_attr;
- struct list_head link_attr;
- struct list_head links;
-
- /* config */
- int interval;
- int scale_min;
- int scale_max;
- int scale_m;
- int scale_d;
-
- /* filter */
- void *filter;
-
- /* filter_len:
- * set to -1 to drop the current filter
- * automatically reset to 0 after config apply
- */
- int filter_len;
-};
-
-typedef void (*wprobe_filter_cb)(void *arg, const char *group, struct wprobe_filter_item *items, int n_items);
-extern int wprobe_port;
-
-/**
- * wprobe_update_links: get a list of all link partners
- * @dev: wprobe device structure
- * @list: linked list for storing link descriptions
- *
- * when wprobe_update_links is called multiple times, the linked list
- * is updated with new link partners, old entries are automatically expired
- */
-extern int wprobe_update_links(struct wprobe_iface *dev);
-
-/**
- * wprobe_dump_filters: dump all layer 2 filter counters
- * @dev: wprobe device structure
- * @cb: callback (called once per filter group)
- * @arg: user argument for the callback
- */
-extern int wprobe_dump_filters(struct wprobe_iface *dev, wprobe_filter_cb cb, void *arg);
-
-/**
- * wprobe_measure: start a measurement request for all global attributes
- * @dev: wprobe device structure
- *
- * not all attributes are automatically filled with data, since for some
- * it may be desirable to control the sampling interval from user space
- * you can use this function to do that.
- */
-extern int wprobe_measure(struct wprobe_iface *dev);
-
-/**
- * wprobe_get_dev: get a handle to a local wprobe device
- * @ifname: name of the wprobe interface
- *
- * queries the wprobe interface for all attributes
- * must be freed with wprobe_free_dev
- */
-extern struct wprobe_iface *wprobe_get_dev(const char *ifname);
-
-/**
- * wprobe_get_auto: get a handle to a local or remote wprobe device
- * @arg: pointer to the wprobe device, either <dev> (local) or <host>:<dev> (remote)
- */
-extern struct wprobe_iface *wprobe_get_auto(const char *arg, char **err);
-
-/**
- * wprobe_get_dev: free all device information
- * @dev: wprobe device structure
- */
-extern void wprobe_free_dev(struct wprobe_iface *dev);
-
-/**
- * wprobe_apply_config: apply configuration data
- * @dev: wprobe device structure
- *
- * uploads all configuration values from @dev that are not set to -1
- */
-extern int wprobe_apply_config(struct wprobe_iface *dev);
-
-/**
- * wprobe_request_data: request new sampling values for the given list of attributes
- * @dev: wprobe device structure
- * @addr: (optional) mac address of the link partner
- *
- * if addr is unset, global values are stored in the global attributes list
- * if addr is set, per-link values for the given address are stored in the link attributes list
- */
-extern int wprobe_request_data(struct wprobe_iface *dev, const unsigned char *addr);
-
-/**
- * wprobe_server_init: send a wprobe server init message to a server's client socket
- * @socket: socket of the connection to the client
- */
-extern int wprobe_server_init(int socket);
-
-/**
- * wprobe_server_handle: read a request from the client socket, process it, send the response
- * @socket: socket of the connection to the client
- */
-extern int wprobe_server_handle(int socket);
-
-/**
- * wprobe_server_done: release memory allocated for the server connection
- */
-extern void wprobe_server_done(void);
-
-#endif