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

NAME

6       knet_link_get_status - Get the status (and statistics) for a link.
7
8

SYNOPSIS

10       #include <libknet.h>
11
12       int knet_link_get_status(
13           knet_handle_t              knet_h,
14           knet_node_id_t             host_id,
15           uint8_t                    link_id,
16           struct knet_link_status   *status,
17           size_t                     struct_size
18       );
19

DESCRIPTION

21       knet_link_get_status
22
23       knet_h - pointer to knet_handle_t
24
25       host_id - see knet_host_add(3)
26
27       link_id - see knet_link_set_config(3)
28
29       status - pointer to knet_link_status struct
30
31       struct_size  -  max  size  of  knet_link_status - allows library to add
32       fields without ABI change. Returned structure will be truncated to this
33       length and .size member indicates the full size.
34

STRUCTURES

36       Status of a knet link as returned from knet_link_get_status()
37
38       struct knet_link_status {
39           /*
40            * Size of the structure for ABI checking, set this to
41            * sizeof(knet_link_status) before calling knet_link_get_status()
42            */
43           size_t              size;
44           char                src_ipaddr[KNET_MAX_HOST_LEN];  /* Local IP address as a string */
45           char                src_port[KNET_MAX_PORT_LEN];    /* Local IP port as a string */
46           char                dst_ipaddr[KNET_MAX_HOST_LEN];  /* Remote IP address as a string */
47           char                dst_port[KNET_MAX_PORT_LEN];    /* Remote IP port as a string */
48           uint8_t             enabled;                        /* Link is configured and admin enabled for traffic */
49           uint8_t             connected;                      /* Link is connected for data (local view) */
50           uint8_t             dynconnected;                   /* Link has been activated by remote dynip */
51           unsigned long long  latency;                        /* average latency computed by fix/exp */
52           struct timespec     pong_last;                      /* Timestamp of the past pong received */
53           unsigned int        mtu;                            /* Currently detected MTU on this link */
54           /*
55            * Contains the size of the IP protocol, knet headers and crypto headers
56            * (if configured). This value is filled in ONLY after the first PMTUd run on
57            * that given link, and can change if link configuration or crypto configuration
58            * changes at runtime. WARNING: in general mtu + proto_overhead might or might not
59            * match the output of ifconfig mtu due to crypto requirements to pad packets to
60            * some specific boundaries.
61            */
62           unsigned int        proto_overhead;
63           struct              stats;                          /* Link statistics */
64       };
65

RETURN VALUE

67       knet_link_get_status returns 0 on success -1 on error and errno is set.
68

SEE ALSO

70       knet_handle_remove_datafd(3), knet_handle_get_stats(3),
71       knet_host_add(3), knet_handle_pmtud_setfreq(3),
72       knet_handle_pmtud_get(3), knet_handle_crypto_use_config(3),
73       knet_host_get_id_by_host_name(3), knet_host_get_status(3),
74       knet_link_add_acl(3), knet_link_get_pong_count(3),
75       knet_link_get_priority(3), knet_handle_free(3),
76       knet_handle_enable_sock_notify(3), knet_handle_get_datafd(3),
77       knet_recv(3), knet_link_get_ping_timers(3),
78       knet_log_get_subsystem_id(3), knet_host_remove(3),
79       knet_host_enable_status_change_notify(3), knet_strtoaddr(3),
80       knet_link_rm_acl(3), knet_send(3), knet_handle_enable_pmtud_notify(3),
81       knet_handle_get_transport_reconnect_interval(3),
82       knet_link_get_enable(3), knet_link_set_priority(3),
83       knet_log_set_loglevel(3), knet_handle_get_channel(3),
84       knet_link_get_config(3), knet_link_get_link_list(3),
85       knet_get_transport_list(3), knet_get_transport_id_by_name(3),
86       knet_log_get_loglevel_id(3), knet_handle_new_ex(3),
87       knet_host_set_name(3), knet_addrtostr(3), knet_handle_setfwd(3),
88       knet_get_compress_list(3), knet_host_set_policy(3),
89       knet_get_transport_name_by_id(3), knet_handle_enable_filter(3),
90       knet_handle_crypto_rx_clear_traffic(3), knet_handle_compress(3),
91       knet_handle_add_datafd(3), knet_send_sync(3),
92       knet_log_get_loglevel_name(3), knet_handle_enable_access_lists(3),
93       knet_host_get_host_list(3), knet_host_get_policy(3),
94       knet_link_set_enable(3), knet_link_set_pong_count(3),
95       knet_log_get_subsystem_name(3), knet_host_get_name_by_host_id(3),
96       knet_link_clear_config(3), knet_log_get_loglevel(3),
97       knet_handle_new(3), knet_handle_pmtud_getfreq(3),
98       knet_handle_pmtud_set(3), knet_handle_clear_stats(3),
99       knet_link_set_config(3), knet_handle_crypto_set_config(3),
100       knet_handle_crypto(3), knet_get_crypto_list(3),
101       knet_handle_set_transport_reconnect_interval(3),
102       knet_link_clear_acl(3), knet_link_set_ping_timers(3),
103       knet_link_insert_acl(3)
104
106       Copyright (C) 2010-2023 Red Hat, Inc. All rights reserved.
107
108
109
110kronosnet                         2023-09-27           KNET_LINK_GET_STATUS(3)
Impressum