.\" Automatically generated man page, do not edit .TH knet_send_sync 3 2020-04-23 "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: \fBECANCELED \fP\fI- data forward is disabled \fP .PP \fBEFAULT \fP\fI- dst_host_filter fatal error \fP .PP \fBEINVAL \fP\fI- dst_host_filter did not provide dst_host_ids_entries on unicast pckts \fP .PP \fBE2BIG \fP\fI- dst_host_filter did return more than one dst_host_ids_entries on unicast pckts \fP .PP \fBENOMSG \fP\fI- received unknown message type \fP .PP \fBEHOSTDOWN \fP\fI- unicast pckt cannot be delivered because dest host is not connected yet \fP .PP \fBECHILD \fP\fI- crypto failed \fP .PP \fBEAGAIN \fP\fI- sendmmsg was unable to send all messages and there was no progress during retry \fP .PP .SH SEE ALSO .PP .nh .ad l \fIknet_handle_remove_datafd(3), \fIknet_handle_get_stats(3), \fIknet_host_add(3), \fIknet_handle_pmtud_setfreq(3), \fIknet_handle_pmtud_get(3), \fIknet_host_get_id_by_host_name(3), \fIknet_host_get_status(3), \fIknet_link_add_acl(3), \fIknet_link_get_pong_count(3), \fIknet_link_get_priority(3), \fIknet_handle_free(3), \fIknet_handle_enable_sock_notify(3), \fIknet_handle_get_datafd(3), \fIknet_recv(3), \fIknet_link_get_ping_timers(3), \fIknet_log_get_subsystem_id(3), \fIknet_host_remove(3), \fIknet_host_enable_status_change_notify(3), \fIknet_strtoaddr(3), \fIknet_link_rm_acl(3), \fIknet_send(3), \fIknet_handle_enable_pmtud_notify(3), \fIknet_handle_get_transport_reconnect_interval(3), \fIknet_link_get_enable(3), \fIknet_link_set_priority(3), \fIknet_log_set_loglevel(3), \fIknet_handle_get_channel(3), \fIknet_link_get_config(3), \fIknet_link_get_link_list(3), \fIknet_get_transport_list(3), \fIknet_get_transport_id_by_name(3), \fIknet_log_get_loglevel_id(3), \fIknet_handle_new_ex(3), \fIknet_host_set_name(3), \fIknet_addrtostr(3), \fIknet_handle_setfwd(3), \fIknet_get_compress_list(3), \fIknet_host_set_policy(3), \fIknet_get_transport_name_by_id(3), \fIknet_handle_enable_filter(3), \fIknet_handle_compress(3), \fIknet_link_get_status(3), \fIknet_handle_add_datafd(3), \fIknet_log_get_loglevel_name(3), \fIknet_handle_enable_access_lists(3), \fIknet_host_get_host_list(3), \fIknet_host_get_policy(3), \fIknet_link_set_enable(3), \fIknet_link_set_pong_count(3), \fIknet_log_get_subsystem_name(3), \fIknet_host_get_name_by_host_id(3), \fIknet_link_clear_config(3), \fIknet_log_get_loglevel(3), \fIknet_handle_new(3), \fIknet_handle_pmtud_getfreq(3), \fIknet_handle_pmtud_set(3), \fIknet_handle_clear_stats(3), \fIknet_link_set_config(3), \fIknet_handle_crypto(3), \fIknet_get_crypto_list(3), \fIknet_handle_set_transport_reconnect_interval(3), \fIknet_link_clear_acl(3), \fIknet_link_set_ping_timers(3), \fIknet_link_insert_acl(3) .ad .hy .SH "COPYRIGHT" .PP Copyright (C) 2010-2020 Red Hat, Inc. All rights reserved.