Provided by: libknet-doc_1.25-1_all bug

NAME

       knet_handle_compress - Set up packet compression.

SYNOPSIS

       #include <libknet.h>

       int knet_handle_compress(
           knet_handle_t                      knet_h,
           struct knet_handle_compress_cfg   *knet_handle_compress_cfg
       );

DESCRIPTION

       knet_handle_compress

       knet_h - pointer to knet_handle_t

       knet_handle_compress_cfg - pointer to a knet_handle_compress_cfg structure

       compress_model  contains  the  model  name.  See "compress_level" for the list of accepted
       values. Setting the value to "none" disables compression.

       compress_threshold tells the transmission thread to NOT  compress  any  packets  that  are
       smaller than the value indicated. Default 100 bytes. Set to 0 to reset to the default. Set
       to 1 to compress everything. Max accepted value is KNET_MAX_PACKET_SIZE.

       compress_level is the "level" parameter for most  models:  zlib:  0  (no  compression),  1
       (minimal)  ..  9  (max  compression). lz4: 1 (max compression)... 9 (fastest compression).
       lz4hc: 1 (min compression) ... LZ4HC_MAX_CLEVEL (16) or LZ4HC_CLEVEL_MAX (12) depending on
       the  version  of  lz4hc  libknet  was built with. lzma: 0 (minimal) .. 9 (max compression)
       bzip2: 1 (minimal) .. 9 (max compression) For lzo2 it selects the algorithm to  use:  1  :
       lzo1x_1_compress  (default)  11  :  lzo1x_1_11_compress  12  :  lzo1x_1_12_compress  15  :
       lzo1x_1_15_compress 999: lzo1x_999_compress Other values  select  the  default  algorithm.
       Please refer to the documentation of the respective compression library for guidance about
       setting this value.

       Implementation notes:it is possible to enable/disable compression at any time.

       nodes can be using a different compression algorithm at any time.

       knet does NOT  implement  the  compression  algorithm  directly.  it  relies  on  external
       libraries  for this functionality. Please read the libraries man pages to figure out which
       algorithm/compression level is best for the data you are planning to transmit.

STRUCTURES

       Structure passed into knet_handle_compress() to tell knet what type of compression to use for this communiction

       struct knet_handle_compress_cfg {
           char      compress_model[16]; /* Compression library to use, bzip2 etc... */
           /*
            * Threshold. Packets smaller than this will not be compressed
            */
           uint32_t  compress_threshold;
           /*
            * Passed into the compression library as an indication of the level of
            * compression to apply
            */
           int       compress_level;
       };

RETURN VALUE

       knet_handle_compress returns 0 on success -1 on error and errno is set. EINVAL means  that
       either the model or the level are not supported.

SEE ALSO

       knet_handle_remove_datafd(3), knet_handle_get_stats(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_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)

COPYRIGHT

       Copyright (C) 2010-2023 Red Hat, Inc. All rights reserved.