.\" Automatically generated man page, do not edit .TH KNET_SEND_SYNC 3 2020-10-19 "kronosnet" "Kronosnet Programmer's Manual" .SH NAME knet_send_sync \- Synchronously send data to knet nodes. .SH SYNOPSIS .nf .B #include .sp \fBint knet_send_sync\fP( \fBknet_handle_t \fP\fIknet_h\fP, \fBconst char *\fP\fIbuff\fP, \fBconst size_t \fP\fIbuff_len\fP, \fBconst int8_t \fP\fIchannel\fP ); .fi .SH DESCRIPTION .PP knet_send_sync .PP knet_h - pointer to knet_handle_t .PP buff - pointer to the buffer of data to send .PP buff_len - length of data to send .PP channel - data channel to use (see knet_handle_add_datafd(3)) .PP 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. .SH RETURN VALUE .PP knet_send_sync returns 0 on success and -1 on error. In addition to normal sendmmsg errors, knet_send_sync can fail due to: .PP \fBECANCELED \fP- data forward is disabled .PP \fBEFAULT \fP- dst_host_filter fatal error .PP \fBEINVAL \fP- dst_host_filter did not provide dst_host_ids_entries on unicast pckts .PP \fBE2BIG \fP- dst_host_filter did return more than one dst_host_ids_entries on unicast pckts .PP \fBENOMSG \fP- received unknown message type .PP \fBEHOSTDOWN \fP- unicast pckt cannot be delivered because dest host is not connected yet .PP \fBECHILD \fP- crypto failed .PP \fBEAGAIN \fP- sendmmsg was unable to send all messages and there was no progress during retry .PP .SH SEE ALSO .PP .nh .ad l \fIknet_handle_remove_datafd\fR(3), \fIknet_handle_get_stats\fR(3), \fIknet_host_add\fR(3), \fIknet_handle_pmtud_setfreq\fR(3), \fIknet_handle_pmtud_get\fR(3), \fIknet_handle_crypto_use_config\fR(3), \fIknet_host_get_id_by_host_name\fR(3), \fIknet_host_get_status\fR(3), \fIknet_link_add_acl\fR(3), \fIknet_link_get_pong_count\fR(3), \fIknet_link_get_priority\fR(3), \fIknet_handle_free\fR(3), \fIknet_handle_enable_sock_notify\fR(3), \fIknet_handle_get_datafd\fR(3), \fIknet_recv\fR(3), \fIknet_link_get_ping_timers\fR(3), \fIknet_log_get_subsystem_id\fR(3), \fIknet_host_remove\fR(3), \fIknet_host_enable_status_change_notify\fR(3), \fIknet_strtoaddr\fR(3), \fIknet_link_rm_acl\fR(3), \fIknet_send\fR(3), \fIknet_handle_enable_pmtud_notify\fR(3), \fIknet_handle_get_transport_reconnect_interval\fR(3), \fIknet_link_get_enable\fR(3), \fIknet_link_set_priority\fR(3), \fIknet_log_set_loglevel\fR(3), \fIknet_handle_get_channel\fR(3), \fIknet_link_get_config\fR(3), \fIknet_link_get_link_list\fR(3), \fIknet_get_transport_list\fR(3), \fIknet_get_transport_id_by_name\fR(3), \fIknet_log_get_loglevel_id\fR(3), \fIknet_handle_new_ex\fR(3), \fIknet_host_set_name\fR(3), \fIknet_addrtostr\fR(3), \fIknet_handle_setfwd\fR(3), \fIknet_get_compress_list\fR(3), \fIknet_host_set_policy\fR(3), \fIknet_get_transport_name_by_id\fR(3), \fIknet_handle_enable_filter\fR(3), \fIknet_handle_crypto_rx_clear_traffic\fR(3), \fIknet_handle_compress\fR(3), \fIknet_link_get_status\fR(3), \fIknet_handle_add_datafd\fR(3), \fIknet_log_get_loglevel_name\fR(3), \fIknet_handle_enable_access_lists\fR(3), \fIknet_host_get_host_list\fR(3), \fIknet_host_get_policy\fR(3), \fIknet_link_set_enable\fR(3), \fIknet_link_set_pong_count\fR(3), \fIknet_log_get_subsystem_name\fR(3), \fIknet_host_get_name_by_host_id\fR(3), \fIknet_link_clear_config\fR(3), \fIknet_log_get_loglevel\fR(3), \fIknet_handle_new\fR(3), \fIknet_handle_pmtud_getfreq\fR(3), \fIknet_handle_pmtud_set\fR(3), \fIknet_handle_clear_stats\fR(3), \fIknet_link_set_config\fR(3), \fIknet_handle_crypto_set_config\fR(3), \fIknet_handle_crypto\fR(3), \fIknet_get_crypto_list\fR(3), \fIknet_handle_set_transport_reconnect_interval\fR(3), \fIknet_link_clear_acl\fR(3), \fIknet_link_set_ping_timers\fR(3), \fIknet_link_insert_acl\fR(3) .ad .hy .SH "COPYRIGHT" .PP Copyright (C) 2010-2020 Red Hat, Inc. All rights reserved.