Provided by: libknet-doc_1.26-1_all bug

NAME

       knet_handle_enable_filter - install a filter to route packets

SYNOPSIS

       #include <libknet.h>

       int knet_handle_enable_filter(
           knet_handle_t  knet_h,
           void          *dst_host_filter_fn_private_data,
           int(*)(void *private_data, const unsigned char *outdata, ssize_t outdata_len, uint8_t tx_rx, knet_node_id_t this_host_id, knet_node_id_t src_host_id, int8_t *channel, knet_node_id_t *dst_host_ids, size_t *dst_host_ids_entries)  dst_host_filter_fn
       );

DESCRIPTION

       knet_handle_enable_filter

       knet_h - pointer to knet_handle_t

       dst_host_filter_fn_private_data  void  pointer  to  data  that can be used to identify the
       callback.

       dst_host_filter_fn - is a callback function that is  invoked  every  time  a  packet  hits
       datafd  (see  knet_handle_new(3)).  the  function  allows  users to tell libknet where the
       packet has to be delivered.

       const unsigned char *outdata - is a pointer to the current packet  ssize_t  outdata_len  -
       length  of  the  above  data uint8_t tx_rx - filter is called on tx or rx (KNET_NOTIFY_TX,
       KNET_NOTIFY_RX) knet_node_id_t this_host_id - host_id processing the packet knet_node_id_t
       src_host_id  -  host_id  that generated the packet knet_node_id_t *dst_host_ids - array of
       KNET_MAX_HOST knet_node_id_t where to store the  destinations  (uninitialized  by  caller,
       callee  should  never  read it) size_t *dst_host_ids_entries - number of hosts to send the
       message

       dst_host_filter_fn should return -1 on error, packet is discarded. 0 packet is unicast and
       should  be sent to dst_host_ids and there are dst_host_ids_entries in the buffer. 1 packet
       is  broadcast/multicast  and  is  sent   all   hosts.   contents   of   dst_host_ids   and
       dst_host_ids_entries are ignored.

RETURN VALUE

       knet_handle_enable_filter returns 0 on success -1 on error and errno is set.

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_crypto_rx_clear_traffic(3), knet_handle_compress(3), knet_link_get_status(3),
       knet_handle_add_datafd(3), knet_send_sync(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.