]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/libsystemd-network/ndisc-internal.h
Merge pull request #16223 from cgzones/user_selinux
[thirdparty/systemd.git] / src / libsystemd-network / ndisc-internal.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
2 #pragma once
3
4 /***
5 Copyright © 2014 Intel Corporation. All rights reserved.
6 ***/
7
8 #include "log.h"
9 #include "time-util.h"
10
11 #include "sd-ndisc.h"
12
13 #define NDISC_ROUTER_SOLICITATION_INTERVAL (4U * USEC_PER_SEC)
14 #define NDISC_MAX_ROUTER_SOLICITATION_INTERVAL (3600U * USEC_PER_SEC)
15 #define NDISC_MAX_ROUTER_SOLICITATIONS 3U
16
17 struct sd_ndisc {
18 unsigned n_ref;
19
20 int ifindex;
21 int fd;
22
23 sd_event *event;
24 int event_priority;
25
26 struct ether_addr mac_addr;
27 uint8_t hop_limit;
28 uint32_t mtu;
29
30 sd_event_source *recv_event_source;
31 sd_event_source *timeout_event_source;
32 sd_event_source *timeout_no_ra;
33
34 usec_t retransmit_time;
35
36 sd_ndisc_callback_t callback;
37 void *userdata;
38 };
39
40 #define log_ndisc_errno(error, fmt, ...) log_internal(LOG_DEBUG, error, PROJECT_FILE, __LINE__, __func__, "NDISC: " fmt, ##__VA_ARGS__)
41 #define log_ndisc(fmt, ...) log_ndisc_errno(0, fmt, ##__VA_ARGS__)
42
43 const char* ndisc_event_to_string(sd_ndisc_event e) _const_;
44 sd_ndisc_event ndisc_event_from_string(const char *s) _pure_;