]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/libsystemd-network/lldp-rx-internal.h
dhcp: introduce sd_dhcp_lease_get_timestamp()
[thirdparty/systemd.git] / src / libsystemd-network / lldp-rx-internal.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 #pragma once
3
4 #include "sd-event.h"
5 #include "sd-lldp-rx.h"
6
7 #include "hashmap.h"
8 #include "network-common.h"
9 #include "prioq.h"
10
11 struct sd_lldp_rx {
12 unsigned n_ref;
13
14 int ifindex;
15 char *ifname;
16 int fd;
17
18 sd_event *event;
19 int64_t event_priority;
20 sd_event_source *io_event_source;
21 sd_event_source *timer_event_source;
22
23 Prioq *neighbor_by_expiry;
24 Hashmap *neighbor_by_id;
25
26 uint64_t neighbors_max;
27
28 sd_lldp_rx_callback_t callback;
29 void *userdata;
30
31 uint16_t capability_mask;
32
33 struct ether_addr filter_address;
34 };
35
36 const char* lldp_rx_event_to_string(sd_lldp_rx_event_t e) _const_;
37 sd_lldp_rx_event_t lldp_rx_event_from_string(const char *s) _pure_;
38
39 #define log_lldp_rx_errno(lldp_rx, error, fmt, ...) \
40 log_interface_prefix_full_errno( \
41 "LLDP Rx: ", \
42 sd_lldp_rx, lldp_rx, \
43 error, fmt, ##__VA_ARGS__)
44 #define log_lldp_rx(lldp_rx, fmt, ...) \
45 log_interface_prefix_full_errno_zerook( \
46 "LLDP Rx: ", \
47 sd_lldp_rx, lldp_rx, \
48 0, fmt, ##__VA_ARGS__)