Provided by: libknet-doc_1.28-2ubuntu2_all bug

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 disable 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 responsible 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 subsystems to log at default_log_level
       value. (see logging API)

       flags - bitwise OR of some of the following flags: KNET_HANDLE_FLAG_PRIVILEGED: 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.