.\" File automatically generated by doxy2man0.2 .\" Generation date: Mon Jan 8 2018 .TH libknet.h 3 2018-01-08 "kronosnet" "Kronosnet Programmer's Manual" .SH "NAME" libknet.h \- kronosnet API include file .SH SYNOPSIS .nf .B #include .fi .SH DESCRIPTION .PP Kronosnet is an advanced VPN system for High Availability applications. .PP .sp .RS .nf \fB int knet_addrtostr(const struct sockaddr_storage *, socklen_t, char *, size_t, char *, size_t); int knet_get_compress_list(struct knet_compress_info *, size_t *); int knet_get_crypto_list(struct knet_crypto_info *, size_t *); uint8_t knet_get_transport_id_by_name(const char *); int knet_get_transport_list(struct knet_transport_info *, size_t *); const char *knet_get_transport_name_by_id(uint8_t); int knet_handle_add_datafd(knet_handle_t, int *, int8_t *); int knet_handle_clear_stats(knet_handle_t, int); int knet_handle_compress(knet_handle_t, struct knet_handle_compress_cfg *); int knet_handle_crypto(knet_handle_t, struct knet_handle_crypto_cfg *); int knet_handle_enable_filter(knet_handle_t, void *, int(*)(void *private_data, const unsigned char *outdata, ssize_t outdata_len, uint8_t tx_rx, knet_node_id_t this_host_id, knet_node_id_t src_host_id, int8_t *channel, knet_node_id_t *dst_host_ids, size_t *dst_host_ids_entries)); int knet_handle_enable_pmtud_notify(knet_handle_t, void *, void(*)(void *private_data, unsigned int data_mtu)); int knet_handle_enable_sock_notify(knet_handle_t, void *, void(*)(void *private_data, int datafd, int8_t channel, uint8_t tx_rx, int error, int errorno)); int knet_handle_free(knet_handle_t); int knet_handle_get_channel(knet_handle_t, const int, int8_t *); int knet_handle_get_datafd(knet_handle_t, const int8_t, int *); int knet_handle_get_stats(knet_handle_t, struct knet_handle_stats *, size_t); int knet_handle_get_transport_reconnect_interval(knet_handle_t, uint32_t *); knet_handle_t knet_handle_new(knet_node_id_t, int, uint8_t); int knet_handle_pmtud_get(knet_handle_t, unsigned int *); int knet_handle_pmtud_getfreq(knet_handle_t, unsigned int *); int knet_handle_pmtud_setfreq(knet_handle_t, unsigned int); int knet_handle_remove_datafd(knet_handle_t, int); int knet_handle_set_transport_reconnect_interval(knet_handle_t, uint32_t); int knet_handle_setfwd(knet_handle_t, unsigned int); int knet_host_add(knet_handle_t, knet_node_id_t); int knet_host_enable_status_change_notify(knet_handle_t, void *, void(*)(void *private_data, knet_node_id_t host_id, uint8_t reachable, uint8_t remote, uint8_t external)); int knet_host_get_host_list(knet_handle_t, knet_node_id_t *, size_t *); int knet_host_get_id_by_host_name(knet_handle_t, const char *, knet_node_id_t *); int knet_host_get_name_by_host_id(knet_handle_t, knet_node_id_t, char *); int knet_host_get_policy(knet_handle_t, knet_node_id_t, uint8_t *); int knet_host_get_status(knet_handle_t, knet_node_id_t, struct knet_host_status *); int knet_host_remove(knet_handle_t, knet_node_id_t); int knet_host_set_name(knet_handle_t, knet_node_id_t, const char *); int knet_host_set_policy(knet_handle_t, knet_node_id_t, uint8_t); int knet_link_clear_config(knet_handle_t, knet_node_id_t, uint8_t); int knet_link_get_config(knet_handle_t, knet_node_id_t, uint8_t, uint8_t *, struct sockaddr_storage *, struct sockaddr_storage *, uint8_t *, uint64_t *); int knet_link_get_enable(knet_handle_t, knet_node_id_t, uint8_t, unsigned int *); int knet_link_get_link_list(knet_handle_t, knet_node_id_t, uint8_t *, size_t *); int knet_link_get_ping_timers(knet_handle_t, knet_node_id_t, uint8_t, time_t *, time_t *, unsigned int *); int knet_link_get_pong_count(knet_handle_t, knet_node_id_t, uint8_t, uint8_t *); int knet_link_get_priority(knet_handle_t, knet_node_id_t, uint8_t, uint8_t *); int knet_link_get_status(knet_handle_t, knet_node_id_t, uint8_t, struct knet_link_status *, size_t); int knet_link_set_config(knet_handle_t, knet_node_id_t, uint8_t, uint8_t, struct sockaddr_storage *, struct sockaddr_storage *, uint64_t); int knet_link_set_enable(knet_handle_t, knet_node_id_t, uint8_t, unsigned int); int knet_link_set_ping_timers(knet_handle_t, knet_node_id_t, uint8_t, time_t, time_t, unsigned int); int knet_link_set_pong_count(knet_handle_t, knet_node_id_t, uint8_t, uint8_t); int knet_link_set_priority(knet_handle_t, knet_node_id_t, uint8_t, uint8_t); int knet_log_get_loglevel(knet_handle_t, uint8_t, uint8_t *); uint8_t knet_log_get_loglevel_id(const char *); const char *knet_log_get_loglevel_name(uint8_t); uint8_t knet_log_get_subsystem_id(const char *); const char *knet_log_get_subsystem_name(uint8_t); int knet_log_set_loglevel(knet_handle_t, uint8_t, uint8_t); ssize_t knet_recv(knet_handle_t, char *, const size_t, const int8_t); ssize_t knet_send(knet_handle_t, const char *, const size_t, const int8_t); int knet_send_sync(knet_handle_t, const char *, const size_t, const int8_t); int knet_strtoaddr(const char *, const char *, struct sockaddr_storage *, socklen_t); \fP .fi .RE .SS "" .PP .sp .sp .RS .nf \fB struct knet_handle_compress_cfg { char \fIcompress_model\fP; uint32_t \fIcompress_threshold\fP; int \fIcompress_level\fP; }; \fP .fi .RE .SS "" .PP .sp .sp .RS .nf \fB struct knet_handle_stats { size_t \fIsize\fP; uint64_t \fItx_uncompressed_packets\fP; uint64_t \fItx_compressed_packets\fP; uint64_t \fItx_compressed_original_bytes\fP; uint64_t \fItx_compressed_size_bytes\fP; uint64_t \fItx_compress_time_ave\fP; uint64_t \fItx_compress_time_min\fP; uint64_t \fItx_compress_time_max\fP; uint64_t \fIrx_compressed_packets\fP; uint64_t \fIrx_compressed_original_bytes\fP; uint64_t \fIrx_compressed_size_bytes\fP; uint64_t \fIrx_compress_time_ave\fP; uint64_t \fIrx_compress_time_min\fP; uint64_t \fIrx_compress_time_max\fP; uint64_t \fItx_crypt_packets\fP; uint64_t \fItx_crypt_byte_overhead\fP; uint64_t \fItx_crypt_time_ave\fP; uint64_t \fItx_crypt_time_min\fP; uint64_t \fItx_crypt_time_max\fP; uint64_t \fIrx_crypt_packets\fP; uint64_t \fIrx_crypt_time_ave\fP; uint64_t \fIrx_crypt_time_min\fP; uint64_t \fIrx_crypt_time_max\fP; }; \fP .fi .RE .SS "" .PP .sp .sp .RS .nf \fB struct knet_crypto_info { const char *\fIname\fP; uint8_t \fIproperties\fP; char \fIpad\fP; }; \fP .fi .RE .SS "" .PP .sp .sp .RS .nf \fB struct knet_compress_info { const char *\fIname\fP; uint8_t \fIproperties\fP; char \fIpad\fP; }; \fP .fi .RE .SS "" .PP .sp .sp .RS .nf \fB struct knet_handle_crypto_cfg { char \fIcrypto_model\fP; char \fIcrypto_cipher_type\fP; char \fIcrypto_hash_type\fP; unsigned char \fIprivate_key\fP; unsigned int \fIprivate_key_len\fP; }; \fP .fi .RE .SS "" .PP .sp .sp .RS .nf \fB struct knet_host_status { uint8_t \fIreachable\fP; uint8_t \fIremote\fP; uint8_t \fIexternal\fP; }; \fP .fi .RE .SS "" .PP .sp .sp .RS .nf \fB struct knet_transport_info { const char *\fIname\fP; uint8_t \fIid\fP; uint8_t \fIproperties\fP; char \fIpad\fP; }; \fP .fi .RE .SS "" .PP .sp .sp .RS .nf \fB struct knet_link_status { size_t \fIsize\fP; char \fIsrc_ipaddr\fP; char \fIsrc_port\fP; char \fIdst_ipaddr\fP; char \fIdst_port\fP; uint8_t \fIenabled\fP; uint8_t \fIconnected\fP; uint8_t \fIdynconnected\fP; unsigned long long \fIlatency\fP; struct timespec \fIpong_last\fP; unsigned int \fImtu\fP; unsigned int \fIproto_overhead\fP; struct knet_link_stats \fIstats\fP; }; \fP .fi .RE .SH SEE ALSO .PP .nh .ad l \fIknet_addrtostr\fP(3), \fIknet_get_compress_list\fP(3), \fIknet_get_crypto_list\fP(3), \fIknet_get_transport_id_by_name\fP(3), \fIknet_get_transport_list\fP(3), \fIknet_get_transport_name_by_id\fP(3), \fIknet_handle_add_datafd\fP(3), \fIknet_handle_clear_stats\fP(3), \fIknet_handle_compress\fP(3), \fIknet_handle_crypto\fP(3), \fIknet_handle_enable_filter\fP(3), \fIknet_handle_enable_pmtud_notify\fP(3), \fIknet_handle_enable_sock_notify\fP(3), \fIknet_handle_free\fP(3), \fIknet_handle_get_channel\fP(3), \fIknet_handle_get_datafd\fP(3), \fIknet_handle_get_stats\fP(3), \fIknet_handle_get_transport_reconnect_interval\fP(3), \fIknet_handle_new\fP(3), \fIknet_handle_pmtud_get\fP(3), \fIknet_handle_pmtud_getfreq\fP(3), \fIknet_handle_pmtud_setfreq\fP(3), \fIknet_handle_remove_datafd\fP(3), \fIknet_handle_set_transport_reconnect_interval\fP(3), \fIknet_handle_setfwd\fP(3), \fIknet_host_add\fP(3), \fIknet_host_enable_status_change_notify\fP(3), \fIknet_host_get_host_list\fP(3), \fIknet_host_get_id_by_host_name\fP(3), \fIknet_host_get_name_by_host_id\fP(3), \fIknet_host_get_policy\fP(3), \fIknet_host_get_status\fP(3), \fIknet_host_remove\fP(3), \fIknet_host_set_name\fP(3), \fIknet_host_set_policy\fP(3), \fIknet_link_clear_config\fP(3), \fIknet_link_get_config\fP(3), \fIknet_link_get_enable\fP(3), \fIknet_link_get_link_list\fP(3), \fIknet_link_get_ping_timers\fP(3), \fIknet_link_get_pong_count\fP(3), \fIknet_link_get_priority\fP(3), \fIknet_link_get_status\fP(3), \fIknet_link_set_config\fP(3), \fIknet_link_set_enable\fP(3), \fIknet_link_set_ping_timers\fP(3), \fIknet_link_set_pong_count\fP(3), \fIknet_link_set_priority\fP(3), \fIknet_log_get_loglevel\fP(3), \fIknet_log_get_loglevel_id\fP(3), \fIknet_log_get_loglevel_name\fP(3), \fIknet_log_get_subsystem_id\fP(3), \fIknet_log_get_subsystem_name\fP(3), \fIknet_log_set_loglevel\fP(3), \fIknet_recv\fP(3), \fIknet_send\fP(3), \fIknet_send_sync\fP(3), \fIknet_strtoaddr\fP(3) .ad .hy .SH COPYRIGHT .PP Copyright (C) 2010-2018 Red Hat, Inc. All rights reserved.