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

SYNOPSIS

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

DESCRIPTION

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

RETURN VALUE

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

SEE ALSO

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