X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frouteros_api.h;h=73b6583cc773bba27f49825e8c074981ad05ca80;hb=a118e47dc674ac8789629705da1fd9eb44d631f8;hp=f1395c950f812ffbc478e92ab5c835174218deb0;hpb=a2645e996327fdd35f57c7beb8e98d2a4ccb9d63;p=routeros-api.git diff --git a/src/routeros_api.h b/src/routeros_api.h index f1395c9..73b6583 100644 --- a/src/routeros_api.h +++ b/src/routeros_api.h @@ -22,6 +22,9 @@ #ifndef ROUTEROS_API_H #define ROUTEROS_API_H 1 +#include +#include + #include #define ROUTEROS_API_PORT "8728" @@ -69,9 +72,48 @@ const char *ros_reply_param_val_by_index (const ros_reply_t *r, unsigned int index); const char *ros_reply_param_val_by_key (const ros_reply_t *r, const char *key); -/* - * High-level function for accessing /interface/wireless/registration-table - */ +/* High-level function for accessing /interface {{{ */ +struct ros_interface_s; +typedef struct ros_interface_s ros_interface_t; +struct ros_interface_s +{ + /* Name of the interface */ + const char *name; + const char *type; + const char *comment; + + /* Packet, octet and error counters. */ + uint64_t rx_packets; + uint64_t tx_packets; + uint64_t rx_bytes; + uint64_t tx_bytes; + uint64_t rx_errors; + uint64_t tx_errors; + uint64_t rx_drops; + uint64_t tx_drops; + + /* Maximum transfer unit */ + unsigned int mtu; + unsigned int l2mtu; + + /* Interface flags */ + _Bool dynamic; + _Bool running; + _Bool enabled; + + /* Next interface */ + const ros_interface_t *next; +}; + +/* Callback function */ +typedef int (*ros_interface_handler_t) (ros_connection_t *c, + const ros_interface_t *i, void *user_data); + +int ros_interface (ros_connection_t *c, + ros_interface_handler_t handler, void *user_data); +/* }}} /interface */ + +/* High-level function for accessing /interface/wireless/registration-table {{{ */ struct ros_registration_table_s; typedef struct ros_registration_table_s ros_registration_table_t; struct ros_registration_table_s @@ -107,15 +149,16 @@ struct ros_registration_table_s double tx_ccq; /* Next interface */ - ros_registration_table_t *next; + const ros_registration_table_t *next; }; /* Callback function */ -typedef int (*ros_registration_table_handler) (ros_connection_t *c, +typedef int (*ros_registration_table_handler_t) (ros_connection_t *c, const ros_registration_table_t *r, void *user_data); int ros_registration_table (ros_connection_t *c, - ros_registration_table_handler handler, void *user_data); + ros_registration_table_handler_t handler, void *user_data); +/* }}} /interface/wireless/registration-table */ #ifdef __cplusplus }