Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
KNET_HANDLE_COMPRESS(3)   Kronosnet Programmer's Manual  KNET_HANDLE_COMPRESS(3)

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  pack-
     ets  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 com-
     pression), 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_com-
     press  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.

kronosnet			   2023-07-10		 KNET_HANDLE_COMPRESS(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=knet_handle_compress&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help