1knet_handle_enable_filter(K3r)onosnet Programmer's Mankunaelt_handle_enable_filter(3)
2
3
4
6 knet_handle_enable_filter - install a filter to route packets
7
9 #include <libknet.h>
10
11 int knet_handle_enable_filter(
12 knet_handle_t knet_h,
13 void *dst_host_filter_fn_private_data,
14 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
15 );
16
18 knet_handle_enable_filter
19
20 knet_h - pointer to knet_handle_t
21
22 dst_host_filter_fn_private_data void pointer to data that can be used
23 to identify the callback.
24
25 dst_host_filter_fn - is a callback function that is invoked every time
26 a packet hits datafd (see knet_handle_new(3)). the function allows
27 users to tell libknet where the packet has to be delivered.
28
29 const unsigned char *outdata - is a pointer to the current packet
30 ssize_t outdata_len - length of the above data uint8_t tx_rx - filter
31 is called on tx or rx (KNET_NOTIFY_TX, KNET_NOTIFY_RX) knet_node_id_t
32 this_host_id - host_id processing the packet knet_node_id_t src_host_id
33 - host_id that generated the packet knet_node_id_t *dst_host_ids -
34 array of KNET_MAX_HOST knet_node_id_t where to store the destinations
35 size_t *dst_host_ids_entries - number of hosts to send the message
36
37 dst_host_filter_fn should return -1 on error, packet is discarded. 0
38 packet is unicast and should be sent to dst_host_ids and there are
39 dst_host_ids_entries in the buffer. 1 packet is broadcast/multicast and
40 is sent all hosts. contents of dst_host_ids and dst_host_ids_entries
41 are ignored. (see also kronosnetd/etherfilter.* for an example that
42 filters based on ether protocol)
43
45 knet_handle_enable_filter returns 0 on success -1 on error and errno is
46 set.
47
49 knet_handle_remove_datafd(3), knet_handle_get_stats(3),
50 knet_host_add(3), knet_handle_pmtud_setfreq(3),
51 knet_handle_pmtud_get(3), knet_host_get_id_by_host_name(3),
52 knet_host_get_status(3), knet_link_get_pong_count(3),
53 knet_link_get_priority(3), knet_handle_free(3),
54 knet_handle_enable_sock_notify(3), knet_handle_get_datafd(3),
55 knet_recv(3), knet_link_get_ping_timers(3),
56 knet_log_get_subsystem_id(3), knet_host_remove(3),
57 knet_host_enable_status_change_notify(3), knet_strtoaddr(3),
58 knet_send(3), knet_handle_enable_pmtud_notify(3),
59 knet_handle_get_transport_reconnect_interval(3),
60 knet_link_get_enable(3), knet_link_set_priority(3),
61 knet_log_set_loglevel(3), knet_handle_get_channel(3),
62 knet_link_get_config(3), knet_link_get_link_list(3),
63 knet_get_transport_list(3), knet_get_transport_id_by_name(3),
64 knet_log_get_loglevel_id(3), knet_handle_new_ex(3),
65 knet_host_set_name(3), knet_addrtostr(3), knet_handle_setfwd(3),
66 knet_get_compress_list(3), knet_host_set_policy(3),
67 knet_get_transport_name_by_id(3), knet_handle_compress(3),
68 knet_link_get_status(3), knet_handle_add_datafd(3), knet_send_sync(3),
69 knet_log_get_loglevel_name(3), knet_host_get_host_list(3),
70 knet_host_get_policy(3), knet_link_set_enable(3),
71 knet_link_set_pong_count(3), knet_log_get_subsystem_name(3),
72 knet_host_get_name_by_host_id(3), knet_link_clear_config(3),
73 knet_log_get_loglevel(3), knet_handle_new(3),
74 knet_handle_pmtud_getfreq(3), knet_handle_clear_stats(3),
75 knet_link_set_config(3), knet_handle_crypto(3),
76 knet_get_crypto_list(3),
77 knet_handle_set_transport_reconnect_interval(3),
78 knet_link_set_ping_timers(3)
79
81 Copyright (C) 2010-2019 Red Hat, Inc. All rights reserved.
82
83
84
85kronosnet 2019-05-09 knet_handle_enable_filter(3)