KNET_HANDLE_GET_STATS(3)
π KNET_HANDLE_GET_STATS(3) π
okay bestie, welcome to the Kronosnet Programmer's Manual, and today's main character is knet_handle_get_stats β¨ this is the one where you find out how hard your compression and crypto have been working. no cap.
πΈ NAME πΈ
knet_handle_get_stats β 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 is your little peek behind the curtain, fr fr. π
knet_hβ pointer toknet_handle_tknet_handle_statsβ pointer to aknet_handle_statsstructurestruct_sizeβ size ofknet_handle_statsstructure, and this one exists purely for backwards compatibility, iykyk. libknet will only copy this much data into the stats structure so that older callers will not get overflowed if new fields are added. she's thoughtful like that. π«Ά
π STRUCTURES π
Detailed stats for this knet handle as returned by knet_handle_get_stats(). look at all these little numbers, obsessed. π
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 π
0on success π₯³-1on error, anderrnois set. π
π SEE ALSO π
the whole group chat, literally everyone showed up:
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_get_crypto_cipher_list(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_crypto_hash_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_handle_setprio_dscp(3),knet_link_insert_acl(3)
π COPYRIGHT π
Copyright (C) 2010-2026 Red Hat, Inc. All rights reserved.
and that's the whole page bestie, you ate that πβ¨ this was kronosnet, dated 2026-07-20, straight out of the Kronosnet Programmer's Manual. slay, go read your stats. π
π
π¦ where this page comes from
- fedora 43: libknet1-devel 1.35-1.fc43 Β· LGPL-2.1-or-later
- fedora 43: libknet1-devel 1.35-1.fc43 Β· LGPL-2.1-or-later
- fedora 44: libknet1-devel 1.35-1.fc44 Β· LGPL-2.1-or-later
- fedora 44: libknet1-devel 1.35-1.fc44 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms