Man page - knet_handle_enable_filter(3)

Packages contains this manual

Manual

KNET_HANDLE_ENABLE_FILTER

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
SEE ALSO
COPYRIGHT

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-2025 Red Hat, Inc. All rights reserved.