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

  
 
  

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

NAME
     knet_handle_new_ex - create a new instance of a knet handle

SYNOPSIS
     #include <libknet.h>

     knet_handle_t knet_handle_new_ex(
	 knet_node_id_t  host_id,
	 int		 log_fd,
	 uint8_t	 default_log_level,
	 uint64_t	 flags
     );

DESCRIPTION
     knet_handle_new_ex

     host_id - Each host in a knet is identified with a unique ID. when creating
     a	new  handle  local  host_id  must  be specified (0 to UINT16_MAX are all
     valid). It is the user's responsibility to check that the value is  unique,
     or bad things might happen.

     log_fd  -	Write file descriptor. If set to a value > 0, it will be used to
     write log packets from libknet to the application. Setting to 0  will  dis-
     able  logging  from  libknet. It is possible to enable logging at any given
     time (see logging API). Make sure to either read from  this  filedescriptor
     properly  and/or  mark  it  O_NONBLOCK,  otherwise  if the fd becomes full,
     libknet could block. It is strongly encouraged to use pipes (ex: pipe(2) or
     pipe2(2)) for logging fds due to the atomic nature of writes  between  fds.
     See  also	libknet test suite for reference and guidance. The caller is re-
     sponsible for management of the  FD.  eg.	knet  will  not  close	it  when
     knet_handle_free(3) is called

     default_log_level	-  If logfd is specified, it will initialize all subsys-
     tems to log at default_log_level value. (see logging API)

     flags - bitwise OR of some of the following flags:  KNET_HANDLE_FLAG_PRIVI-
     LEGED:  use  privileged operations setting up the communication sockets. If
     disabled, failure to acquire large enough socket  buffers	is  ignored  but
     logged. Inadequate buffers lead to poor performance.

RETURN VALUE
     on  success,  a new knet_handle_t is returned. on failure, NULL is returned
     and errno is set. knet-specific errno values: ENAMETOOLONG - socket buffers
     couldn't be set big enough and  KNET_HANDLE_FLAG_PRIVILEGED  was  specified
     ERANGE - buffer size readback returned unexpected type

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_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_handle_compress(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_NEW_EX(3)

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

home | help