1KNET_HANDLE_COMPRESS(3) Kronosnet Programmer's Manual KNET_HANDLE_COMPRESS(3)
2
3
4
6 knet_handle_compress - Set up packet compression.
7
8
10 #include <libknet.h>
11
12 int knet_handle_compress(
13 knet_handle_t knet_h,
14 struct knet_handle_compress_cfg *knet_handle_compress_cfg
15 );
16
18 knet_handle_compress
19
20 knet_h - pointer to knet_handle_t
21
22 knet_handle_compress_cfg - pointer to a knet_handle_compress_cfg struc‐
23 ture
24
25 compress_model contains the model name. See "compress_level" for the
26 list of accepted values. Setting the value to "none" disables compres‐
27 sion.
28
29 compress_threshold tells the transmission thread to NOT compress any
30 packets that are smaller than the value indicated. Default 100 bytes.
31 Set to 0 to reset to the default. Set to 1 to compress everything. Max
32 accepted value is KNET_MAX_PACKET_SIZE.
33
34 compress_level is the "level" parameter for most models: zlib: 0 (no
35 compression), 1 (minimal) .. 9 (max compression). lz4: 1 (max compres‐
36 sion)... 9 (fastest compression). lz4hc: 1 (min compression) ...
37 LZ4HC_MAX_CLEVEL (16) or LZ4HC_CLEVEL_MAX (12) depending on the version
38 of lz4hc libknet was built with. lzma: 0 (minimal) .. 9 (max compres‐
39 sion) bzip2: 1 (minimal) .. 9 (max compression) For lzo2 it selects the
40 algorithm to use: 1 : lzo1x_1_compress (default) 11 : lzo1x_1_11_com‐
41 press 12 : lzo1x_1_12_compress 15 : lzo1x_1_15_compress 999:
42 lzo1x_999_compress Other values select the default algorithm. Please
43 refer to the documentation of the respective compression library for
44 guidance about setting this value.
45
46 Implementation notes:it is possible to enable/disable compression at
47 any time.
48
49 nodes can be using a different compression algorithm at any time.
50
51 knet does NOT implement the compression algorithm directly. it relies
52 on external libraries for this functionality. Please read the libraries
53 man pages to figure out which algorithm/compression level is best for
54 the data you are planning to transmit.
55
57 Structure passed into knet_handle_compress() to tell knet what type of compression to use for this communiction
58
59 struct knet_handle_compress_cfg {
60 char compress_model[16]; /* Compression library to use, bzip2 etc... */
61 /*
62 * Threshold. Packets smaller than this will not be compressed
63 */
64 uint32_t compress_threshold;
65 /*
66 * Passed into the compression library as an indication of the level of
67 * compression to apply
68 */
69 int compress_level;
70 };
71
73 knet_handle_compress returns 0 on success -1 on error and errno is set.
74 EINVAL means that either the model or the level are not supported.
75
77 knet_handle_remove_datafd(3), knet_handle_get_stats(3),
78 knet_host_add(3), knet_handle_pmtud_setfreq(3),
79 knet_handle_pmtud_get(3), knet_handle_crypto_use_config(3),
80 knet_host_get_id_by_host_name(3), knet_host_get_status(3),
81 knet_link_add_acl(3), knet_link_get_pong_count(3),
82 knet_link_get_priority(3), knet_handle_free(3),
83 knet_handle_enable_sock_notify(3), knet_handle_get_datafd(3),
84 knet_recv(3), knet_link_get_ping_timers(3),
85 knet_log_get_subsystem_id(3), knet_host_remove(3),
86 knet_host_enable_status_change_notify(3), knet_strtoaddr(3),
87 knet_link_rm_acl(3), knet_send(3), knet_handle_enable_pmtud_notify(3),
88 knet_handle_get_transport_reconnect_interval(3),
89 knet_link_get_enable(3), knet_link_set_priority(3),
90 knet_log_set_loglevel(3), knet_handle_get_channel(3),
91 knet_link_get_config(3), knet_link_get_link_list(3),
92 knet_get_transport_list(3), knet_get_transport_id_by_name(3),
93 knet_log_get_loglevel_id(3), knet_handle_new_ex(3),
94 knet_host_set_name(3), knet_addrtostr(3), knet_handle_setfwd(3),
95 knet_get_compress_list(3), knet_host_set_policy(3),
96 knet_get_transport_name_by_id(3), knet_handle_enable_filter(3),
97 knet_handle_crypto_rx_clear_traffic(3), knet_link_get_status(3),
98 knet_handle_add_datafd(3), knet_send_sync(3),
99 knet_log_get_loglevel_name(3), knet_handle_enable_access_lists(3),
100 knet_host_get_host_list(3), knet_host_get_policy(3),
101 knet_link_set_enable(3), knet_link_set_pong_count(3),
102 knet_log_get_subsystem_name(3), knet_host_get_name_by_host_id(3),
103 knet_link_clear_config(3), knet_log_get_loglevel(3),
104 knet_handle_new(3), knet_handle_pmtud_getfreq(3),
105 knet_handle_pmtud_set(3), knet_handle_clear_stats(3),
106 knet_link_set_config(3), knet_handle_crypto_set_config(3),
107 knet_handle_crypto(3), knet_get_crypto_list(3),
108 knet_handle_set_transport_reconnect_interval(3),
109 knet_link_clear_acl(3), knet_link_set_ping_timers(3),
110 knet_link_insert_acl(3)
111
113 Copyright (C) 2010-2022 Red Hat, Inc. All rights reserved.
114
115
116
117kronosnet 2022-05-30 KNET_HANDLE_COMPRESS(3)