knet_handle_get_stats - Man Page

Get statistics for compression & crypto.

Synopsis

#include <libknet.h>

int knet_handle_get_stats(
    knet_handle_t               knet_h,
    struct knet_handle_stats   *stats,
    size_t                      struct_size
);

Description

knet_handle_get_stats

knet_h - pointer to knet_handle_t

knet_handle_stats pointer to a knet_handle_stats structure

struct_size size of knet_handle_stats structure to allow for backwards compatibility. libknet will only copy this much data into the stats structure so that older callers will not get overflowed if new fields are added.

Structures

Detailed stats for this knet handle as returned by knet_handle_get_stats() 


struct knet_handle_stats {


    /*
     * Size of the structure. set this to sizeof(struct knet_handle_stats)
     * before calling
     */
    size_t    size;

    uint64_t  tx_uncompressed_packets;       /* Number of uncompressed packets sent */

    uint64_t  tx_compressed_packets;         /* Number of compressed packets sent */

    /*
     * Number of bytes sent (as if uncompressed, ie actual data bytes)
     */
    uint64_t  tx_compressed_original_bytes;

    /*
     * Number of bytes sent on the wire after compression
     */
    uint64_t  tx_compressed_size_bytes;

    /*
     * Average(mean) time take to compress transmitted packets
     */
    uint64_t  tx_compress_time_ave;

    /*
     * Minimum time taken to compress transmitted packets
     */
    uint64_t  tx_compress_time_min;

    /*
     * Maximum time taken to compress transmitted packets
     */
    uint64_t  tx_compress_time_max;

    uint64_t  rx_compressed_packets;         /* Number of compressed packets received */

    uint64_t  rx_compressed_original_bytes;  /* Number of bytes received - after decompression */

    /*
     * Number of compressed bytes received before decompression
     */
    uint64_t  rx_compressed_size_bytes;

    /*
     * Average(mean) time take to decompress received packets
     */
    uint64_t  rx_compress_time_ave;

    uint64_t  rx_compress_time_min;          /* Minimum time take to decompress received packets */

    uint64_t  rx_compress_time_max;          /* Maximum time take to decompress received packets */

    uint64_t  tx_crypt_packets;              /* Number of encrypted packets sent */

    uint64_t  tx_crypt_byte_overhead;        /* Cumulative byte overhead of encrypted traffic */

    /*
     * Average(mean) time take to encrypt packets in usecs
     */
    uint64_t  tx_crypt_time_ave;

    uint64_t  tx_crypt_time_min;             /* Minimum time take to encrypto packets in usecs */

    uint64_t  tx_crypt_time_max;             /* Maximum time take to encrypto packets in usecs */

    uint64_t  rx_crypt_packets;              /* Number of encrypted packets received */

    /*
     * Average(mean) time take to decrypt received packets
     */
    uint64_t  rx_crypt_time_ave;

    /*
     * Minimum time take to decrypt received packets in usecs
     */
    uint64_t  rx_crypt_time_min;

    /*
     * Maximum time take to decrypt received packets in usecs
     */
    uint64_t  rx_crypt_time_max;
};

Return Value

0 on success -1 on error and errno is set.

See Also

knet_handle_remove_datafd(3), knet_host_add(3), knet_handle_pmtud_setfreq(3), knet_handle_pmtud_get(3), knet_handle_crypto_use_config(3), knet_host_get_id_by_host_name(3), knet_host_get_status(3), knet_link_add_acl(3), knet_link_get_pong_count(3), knet_link_get_priority(3), knet_handle_free(3), knet_handle_enable_sock_notify(3), knet_handle_get_datafd(3), knet_recv(3), knet_link_get_ping_timers(3), knet_log_get_subsystem_id(3), knet_host_remove(3), knet_host_enable_status_change_notify(3), knet_strtoaddr(3), knet_link_rm_acl(3), knet_send(3), knet_handle_enable_pmtud_notify(3), knet_handle_get_transport_reconnect_interval(3), knet_link_get_enable(3), knet_link_set_priority(3), knet_log_set_loglevel(3), knet_handle_get_channel(3), knet_link_get_config(3), knet_link_get_link_list(3), knet_get_transport_list(3), knet_get_transport_id_by_name(3), knet_log_get_loglevel_id(3), knet_handle_new_ex(3), knet_host_set_name(3), knet_addrtostr(3), knet_handle_setfwd(3), knet_get_compress_list(3), knet_host_set_policy(3), knet_get_transport_name_by_id(3), knet_handle_enable_filter(3), knet_handle_crypto_rx_clear_traffic(3), knet_handle_compress(3), knet_link_get_status(3), knet_handle_add_datafd(3), knet_send_sync(3), knet_log_get_loglevel_name(3), knet_handle_enable_access_lists(3), knet_host_get_host_list(3), knet_host_get_policy(3), knet_link_set_enable(3), knet_link_set_pong_count(3), knet_log_get_subsystem_name(3), knet_host_get_name_by_host_id(3), knet_link_clear_config(3), knet_log_get_loglevel(3), knet_handle_new(3), knet_handle_pmtud_getfreq(3), knet_handle_pmtud_set(3), knet_handle_clear_stats(3), knet_link_set_config(3), knet_handle_crypto_set_config(3), knet_handle_crypto(3), knet_get_crypto_list(3), knet_handle_set_transport_reconnect_interval(3), knet_link_clear_acl(3), knet_link_set_ping_timers(3), knet_link_insert_acl(3)

Referenced By

knet_addrtostr(3), knet_get_compress_list(3), knet_get_crypto_list(3), knet_get_transport_id_by_name(3), knet_get_transport_list(3), knet_get_transport_name_by_id(3), knet_handle_add_datafd(3), knet_handle_clear_stats(3), knet_handle_compress(3), knet_handle_crypto(3), knet_handle_crypto_rx_clear_traffic(3), knet_handle_crypto_set_config(3), knet_handle_crypto_use_config(3), knet_handle_enable_access_lists(3), knet_handle_enable_filter(3), knet_handle_enable_pmtud_notify(3), knet_handle_enable_sock_notify(3), knet_handle_free(3), knet_handle_get_channel(3), knet_handle_get_datafd(3), knet_handle_get_transport_reconnect_interval(3), knet_handle_new(3), knet_handle_new_ex(3), knet_handle_pmtud_get(3), knet_handle_pmtud_getfreq(3), knet_handle_pmtud_set(3), knet_handle_pmtud_setfreq(3), knet_handle_remove_datafd(3), knet_handle_setfwd(3), knet_handle_set_transport_reconnect_interval(3), knet_host_add(3), knet_host_enable_status_change_notify(3), knet_host_get_host_list(3), knet_host_get_id_by_host_name(3), knet_host_get_name_by_host_id(3), knet_host_get_policy(3), knet_host_get_status(3), knet_host_remove(3), knet_host_set_name(3), knet_host_set_policy(3), knet_link_add_acl(3), knet_link_clear_acl(3), knet_link_clear_config(3), knet_link_get_config(3), knet_link_get_enable(3), knet_link_get_link_list(3), knet_link_get_ping_timers(3), knet_link_get_pong_count(3), knet_link_get_priority(3), knet_link_get_status(3), knet_link_insert_acl(3), knet_link_rm_acl(3), knet_link_set_config(3), knet_link_set_enable(3), knet_link_set_ping_timers(3), knet_link_set_pong_count(3), knet_link_set_priority(3), knet_log_get_loglevel(3), knet_log_get_loglevel_id(3), knet_log_get_loglevel_name(3), knet_log_get_subsystem_id(3), knet_log_get_subsystem_name(3), knet_log_set_loglevel(3), knet_recv(3), knet_send(3), knet_send_sync(3), knet_strtoaddr(3).

2023-09-27 Kronosnet Programmer's Manual