1KNET_HANDLE_COMPRESS(3)  Kronosnet Programmer's Manual KNET_HANDLE_COMPRESS(3)
2
3
4

NAME

6       knet_handle_compress - Set up packet compression.
7
8

SYNOPSIS

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

DESCRIPTION

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

STRUCTURES

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

RETURN VALUE

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

SEE ALSO

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-2023 Red Hat, Inc. All rights reserved.
114
115
116
117kronosnet                         2023-01-04           KNET_HANDLE_COMPRESS(3)
Impressum