1KNET_HANDLE_NEW_EX(3)    Kronosnet Programmer's Manual   KNET_HANDLE_NEW_EX(3)
2
3
4

NAME

6       knet_handle_new_ex - create a new instance of a knet handle
7
8

SYNOPSIS

10       #include <libknet.h>
11
12       knet_handle_t knet_handle_new_ex(
13           knet_node_id_t  host_id,
14           int             log_fd,
15           uint8_t         default_log_level,
16           uint64_t        flags
17       );
18

DESCRIPTION

20       knet_handle_new_ex
21
22       host_id - Each host in a knet is identified with a unique ID. when cre‐
23       ating a new handle local host_id must be specified (0 to UINT16_MAX are
24       all  valid). It is the user's responsibility to check that the value is
25       unique, or bad things might happen.
26
27       log_fd - Write file descriptor. If set to a value > 0, it will be  used
28       to write log packets from libknet to the application. Setting to 0 will
29       disable logging from libknet. It is possible to enable logging  at  any
30       given  time  (see  logging  API).  Make  sure  to either read from this
31       filedescriptor properly and/or mark it O_NONBLOCK, otherwise if the  fd
32       becomes  full,  libknet  could  block. It is strongly encouraged to use
33       pipes (ex: pipe(2) or pipe2(2)) for logging fds due to the  atomic  na‐
34       ture  of  writes between fds. See also libknet test suite for reference
35       and guidance. The caller is responsible for management of the  FD.  eg.
36       knet will not close it when knet_handle_free(3) is called
37
38       default_log_level  - If logfd is specified, it will initialize all sub‐
39       systems to log at default_log_level value. (see logging API)
40
41       flags  -  bitwise  OR  of  some  of  the  following  flags:   KNET_HAN‐
42       DLE_FLAG_PRIVILEGED:  use privileged operations setting up the communi‐
43       cation sockets. If disabled, failure to  acquire  large  enough  socket
44       buffers  is ignored but logged. Inadequate buffers lead to poor perfor‐
45       mance.
46

RETURN VALUE

48       on success, a new knet_handle_t is returned. on failure,  NULL  is  re‐
49       turned  and  errno  is  set. knet-specific errno values: ENAMETOOLONG -
50       socket buffers couldn't be set big enough  and  KNET_HANDLE_FLAG_PRIVI‐
51       LEGED  was  specified ERANGE - buffer size readback returned unexpected
52       type
53

SEE ALSO

55       knet_handle_remove_datafd(3), knet_handle_get_stats(3),
56       knet_host_add(3), knet_handle_pmtud_setfreq(3),
57       knet_handle_pmtud_get(3), knet_handle_crypto_use_config(3),
58       knet_host_get_id_by_host_name(3), knet_host_get_status(3),
59       knet_link_add_acl(3), knet_link_get_pong_count(3),
60       knet_link_get_priority(3), knet_handle_free(3),
61       knet_handle_enable_sock_notify(3), knet_handle_get_datafd(3),
62       knet_recv(3), knet_link_get_ping_timers(3),
63       knet_log_get_subsystem_id(3), knet_host_remove(3),
64       knet_host_enable_status_change_notify(3), knet_strtoaddr(3),
65       knet_link_rm_acl(3), knet_send(3), knet_handle_enable_pmtud_notify(3),
66       knet_handle_get_transport_reconnect_interval(3),
67       knet_link_get_enable(3), knet_link_set_priority(3),
68       knet_log_set_loglevel(3), knet_handle_get_channel(3),
69       knet_link_get_config(3), knet_link_get_link_list(3),
70       knet_get_transport_list(3), knet_get_transport_id_by_name(3),
71       knet_log_get_loglevel_id(3), knet_host_set_name(3), knet_addrtostr(3),
72       knet_handle_setfwd(3), knet_get_compress_list(3),
73       knet_host_set_policy(3), knet_get_transport_name_by_id(3),
74       knet_handle_enable_filter(3), knet_handle_crypto_rx_clear_traffic(3),
75       knet_handle_compress(3), knet_link_get_status(3),
76       knet_handle_add_datafd(3), knet_send_sync(3),
77       knet_log_get_loglevel_name(3), knet_handle_enable_access_lists(3),
78       knet_host_get_host_list(3), knet_host_get_policy(3),
79       knet_link_set_enable(3), knet_link_set_pong_count(3),
80       knet_log_get_subsystem_name(3), knet_host_get_name_by_host_id(3),
81       knet_link_clear_config(3), knet_log_get_loglevel(3),
82       knet_handle_new(3), knet_handle_pmtud_getfreq(3),
83       knet_handle_pmtud_set(3), knet_handle_clear_stats(3),
84       knet_link_set_config(3), knet_handle_crypto_set_config(3),
85       knet_handle_crypto(3), knet_get_crypto_list(3),
86       knet_handle_set_transport_reconnect_interval(3),
87       knet_link_clear_acl(3), knet_link_set_ping_timers(3),
88       knet_link_insert_acl(3)
89
91       Copyright (C) 2010-2022 Red Hat, Inc. All rights reserved.
92
93
94
95kronosnet                         2022-05-30             KNET_HANDLE_NEW_EX(3)
Impressum