Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
KNET_SEND_SYNC(3)	 Kronosnet Programmer's	Manual	     KNET_SEND_SYNC(3)

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  di-
       rectly	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_en-
       tries 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.

kronosnet			  2023-07-10		     KNET_SEND_SYNC(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=knet_send_sync&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help