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

NAME

       knet_send_sync - Synchronously send data to knet nodes.

SYNOPSIS

       #include <libknet.h>

       int knet_send_sync(
           knet_handle_t  knet_h,
           const char    *buff,
           const size_t   buff_len,
           const int8_t   channel
       );

DESCRIPTION

       knet_send_sync

       knet_h - pointer to knet_handle_t

       buff - pointer to the buffer of data to send

       buff_len - length of data to send

       channel - data channel to use (see knet_handle_add_datafd(3))

       All  knet  RX/TX operations are async for performance reasons. There are applications that
       might need a sync version of data transmission and receive errors in case  of  failure  to
       deliver  to  another  host.  knet_send_sync bypasses the whole TX async layer and delivers
       data directly to the link layer, and returns errors accordingly. knet_send_sync sends only
       one  packet  to one host at a time. It does NOT support multiple destinations or multicast
       packets. Decision is still based on dst_host_filter_fn.

RETURN VALUE

       knet_send_sync returns 0 on success and -1  on  error.  In  addition  to  normal  sendmmsg
       errors, knet_send_sync can fail due to:

       ECANCELED  - data forward is disabled

       EFAULT     - dst_host_filter fatal error

       EINVAL     - dst_host_filter did not provide dst_host_ids_entries on unicast pckts

       E2BIG       -  dst_host_filter  did  return  more than one dst_host_ids_entries on unicast
       pckts

       ENOMSG     - received unknown message type

       EHOSTDOWN  - unicast pckt cannot be delivered because dest host is not connected yet

       ECHILD     - crypto failed

       EAGAIN     - sendmmsg was unable to send all messages and there  was  no  progress  during
       retry

       ENETDOWN    -  a  packet  filter  was not installed (necessary for knet_send_sync, but not
       knet_send)

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_handle_new_ex(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_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.