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

FreeBSD Manual Pages

  
 
  

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	struc-
       ture

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

       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 compres-
       sion)...	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 compres-
       sion) bzip2: 1 (minimal)	.. 9 (max compression) For lzo2	it selects the
       algorithm to use: 1 : lzo1x_1_compress (default)	11  :  lzo1x_1_11_com-
       press   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.

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+14.3.quarterly>

home | help