1KNET_HANDLE_NEW_EX(3) Kronosnet Programmer's Manual KNET_HANDLE_NEW_EX(3)
2
3
4
6 knet_handle_new_ex - create a new instance of a knet handle
7
8
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
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.
36
37 default_log_level - If logfd is specified, it will initialize all sub‐
38 systems to log at default_log_level value. (see logging API)
39
40 flags - bitwise OR of some of the following flags: KNET_HAN‐
41 DLE_FLAG_PRIVILEGED: use privileged operations setting up the communi‐
42 cation sockets. If disabled, failure to acquire large enough socket
43 buffers is ignored but logged. Inadequate buffers lead to poor perfor‐
44 mance.
45
47 on success, a new knet_handle_t is returned. on failure, NULL is re‐
48 turned and errno is set. knet-specific errno values: ENAMETOOLONG -
49 socket buffers couldn't be set big enough and KNET_HANDLE_FLAG_PRIVI‐
50 LEGED was specified ERANGE - buffer size readback returned unexpected
51 type
52
54 knet_handle_remove_datafd(3), knet_handle_get_stats(3),
55 knet_host_add(3), knet_handle_pmtud_setfreq(3),
56 knet_handle_pmtud_get(3), knet_handle_crypto_use_config(3),
57 knet_host_get_id_by_host_name(3), knet_host_get_status(3),
58 knet_link_add_acl(3), knet_link_get_pong_count(3),
59 knet_link_get_priority(3), knet_handle_free(3),
60 knet_handle_enable_sock_notify(3), knet_handle_get_datafd(3),
61 knet_recv(3), knet_link_get_ping_timers(3),
62 knet_log_get_subsystem_id(3), knet_host_remove(3),
63 knet_host_enable_status_change_notify(3), knet_strtoaddr(3),
64 knet_link_rm_acl(3), knet_send(3), knet_handle_enable_pmtud_notify(3),
65 knet_handle_get_transport_reconnect_interval(3),
66 knet_link_get_enable(3), knet_link_set_priority(3),
67 knet_log_set_loglevel(3), knet_handle_get_channel(3),
68 knet_link_get_config(3), knet_link_get_link_list(3),
69 knet_get_transport_list(3), knet_get_transport_id_by_name(3),
70 knet_log_get_loglevel_id(3), knet_host_set_name(3), knet_addrtostr(3),
71 knet_handle_setfwd(3), knet_get_compress_list(3),
72 knet_host_set_policy(3), knet_get_transport_name_by_id(3),
73 knet_handle_enable_filter(3), knet_handle_crypto_rx_clear_traffic(3),
74 knet_handle_compress(3), knet_link_get_status(3),
75 knet_handle_add_datafd(3), knet_send_sync(3),
76 knet_log_get_loglevel_name(3), knet_handle_enable_access_lists(3),
77 knet_host_get_host_list(3), knet_host_get_policy(3),
78 knet_link_set_enable(3), knet_link_set_pong_count(3),
79 knet_log_get_subsystem_name(3), knet_host_get_name_by_host_id(3),
80 knet_link_clear_config(3), knet_log_get_loglevel(3),
81 knet_handle_new(3), knet_handle_pmtud_getfreq(3),
82 knet_handle_pmtud_set(3), knet_handle_clear_stats(3),
83 knet_link_set_config(3), knet_handle_crypto_set_config(3),
84 knet_handle_crypto(3), knet_get_crypto_list(3),
85 knet_handle_set_transport_reconnect_interval(3),
86 knet_link_clear_acl(3), knet_link_set_ping_timers(3),
87 knet_link_insert_acl(3)
88
90 Copyright (C) 2010-2020 Red Hat, Inc. All rights reserved.
91
92
93
94kronosnet 2020-10-19 KNET_HANDLE_NEW_EX(3)