1KNET_HANDLE_ENABLE_FILTER(K3r)onosnet Programmer's ManKuNaElT_HANDLE_ENABLE_FILTER(3)
2
3
4

NAME

6       knet_handle_enable_filter - install a filter to route packets
7
8

SYNOPSIS

10       #include <libknet.h>
11
12       int knet_handle_enable_filter(
13           knet_handle_t  knet_h,
14           void          *dst_host_filter_fn_private_data,
15           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
16       );
17

DESCRIPTION

19       knet_handle_enable_filter
20
21       knet_h - pointer to knet_handle_t
22
23       dst_host_filter_fn_private_data  void  pointer to data that can be used
24       to identify the callback.
25
26       dst_host_filter_fn - is a callback function that is invoked every  time
27       a  packet  hits  datafd  (see  knet_handle_new(3)). the function allows
28       users to tell libknet where the packet has to be delivered.
29
30       const unsigned char *outdata - is  a  pointer  to  the  current  packet
31       ssize_t  outdata_len  - length of the above data uint8_t tx_rx - filter
32       is called on tx or rx (KNET_NOTIFY_TX,  KNET_NOTIFY_RX)  knet_node_id_t
33       this_host_id - host_id processing the packet knet_node_id_t src_host_id
34       - host_id that generated the packet knet_node_id_t *dst_host_ids -  ar‐
35       ray  of  KNET_MAX_HOST  knet_node_id_t  where to store the destinations
36       (uninitialized  by  caller,  callee  should  never  read   it)   size_t
37       *dst_host_ids_entries - number of hosts to send the message
38
39       dst_host_filter_fn  should  return  -1 on error, packet is discarded. 0
40       packet is unicast and should be sent  to  dst_host_ids  and  there  are
41       dst_host_ids_entries in the buffer. 1 packet is broadcast/multicast and
42       is sent all hosts. contents of  dst_host_ids  and  dst_host_ids_entries
43       are ignored.
44

RETURN VALUE

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

SEE ALSO

50       knet_handle_remove_datafd(3), knet_handle_get_stats(3),
51       knet_host_add(3), knet_handle_pmtud_setfreq(3),
52       knet_handle_pmtud_get(3), knet_handle_crypto_use_config(3),
53       knet_host_get_id_by_host_name(3), knet_host_get_status(3),
54       knet_link_add_acl(3), knet_link_get_pong_count(3),
55       knet_link_get_priority(3), knet_handle_free(3),
56       knet_handle_enable_sock_notify(3), knet_handle_get_datafd(3),
57       knet_recv(3), knet_link_get_ping_timers(3),
58       knet_log_get_subsystem_id(3), knet_host_remove(3),
59       knet_host_enable_status_change_notify(3), knet_strtoaddr(3),
60       knet_link_rm_acl(3), knet_send(3), knet_handle_enable_pmtud_notify(3),
61       knet_handle_get_transport_reconnect_interval(3),
62       knet_link_get_enable(3), knet_link_set_priority(3),
63       knet_log_set_loglevel(3), knet_handle_get_channel(3),
64       knet_link_get_config(3), knet_link_get_link_list(3),
65       knet_get_transport_list(3), knet_get_transport_id_by_name(3),
66       knet_log_get_loglevel_id(3), knet_handle_new_ex(3),
67       knet_host_set_name(3), knet_addrtostr(3), knet_handle_setfwd(3),
68       knet_get_compress_list(3), knet_host_set_policy(3),
69       knet_get_transport_name_by_id(3),
70       knet_handle_crypto_rx_clear_traffic(3), knet_handle_compress(3),
71       knet_link_get_status(3), knet_handle_add_datafd(3), knet_send_sync(3),
72       knet_log_get_loglevel_name(3), knet_handle_enable_access_lists(3),
73       knet_host_get_host_list(3), knet_host_get_policy(3),
74       knet_link_set_enable(3), knet_link_set_pong_count(3),
75       knet_log_get_subsystem_name(3), knet_host_get_name_by_host_id(3),
76       knet_link_clear_config(3), knet_log_get_loglevel(3),
77       knet_handle_new(3), knet_handle_pmtud_getfreq(3),
78       knet_handle_pmtud_set(3), knet_handle_clear_stats(3),
79       knet_link_set_config(3), knet_handle_crypto_set_config(3),
80       knet_handle_crypto(3), knet_get_crypto_list(3),
81       knet_handle_set_transport_reconnect_interval(3),
82       knet_link_clear_acl(3), knet_link_set_ping_timers(3),
83       knet_link_insert_acl(3)
84
86       Copyright (C) 2010-2023 Red Hat, Inc. All rights reserved.
87
88
89
90kronosnet                         2023-09-27      KNET_HANDLE_ENABLE_FILTER(3)
Impressum