Files
systemd/src/libsystemd-network/ndisc-internal.h
T
Daan De Meyer 5cdf13c70c libsystemd: Clean up includes
For libsystemd's headers, the changes made depend on whether the
header is installed or not. For installed headers, the only change
made is that commonly included headers were moved to _sd-common.h.
For these headers, there should be no noticeable change in behavior
when including them. For non-installed headers, includes were replaced
with forward declarations where possible as usual.

Split out of #37344.
2025-05-25 03:40:24 +09:00

58 lines
1.6 KiB
C

/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
/***
Copyright © 2014 Intel Corporation. All rights reserved.
***/
#include <net/ethernet.h>
#include <netinet/in.h>
#include "sd-event.h"
#include "sd-ndisc.h" /* IWYU pragma: export */
#include "forward.h"
#include "network-common.h"
#include "time-util.h"
#define NDISC_ROUTER_SOLICITATION_INTERVAL (4U * USEC_PER_SEC)
#define NDISC_MAX_ROUTER_SOLICITATION_INTERVAL (3600U * USEC_PER_SEC)
#define NDISC_MAX_ROUTER_SOLICITATIONS 3U
typedef struct sd_ndisc {
unsigned n_ref;
int ifindex;
char *ifname;
int fd;
sd_event *event;
int event_priority;
struct in6_addr link_local_addr;
struct ether_addr mac_addr;
sd_event_source *recv_event_source;
sd_event_source *timeout_event_source;
sd_event_source *timeout_no_ra;
usec_t retransmit_time;
sd_ndisc_callback_t callback;
void *userdata;
} sd_ndisc;
const char* ndisc_event_to_string(sd_ndisc_event_t e) _const_;
sd_ndisc_event_t ndisc_event_from_string(const char *s) _pure_;
#define log_ndisc_errno(ndisc, error, fmt, ...) \
log_interface_prefix_full_errno( \
"NDISC: ", \
sd_ndisc, ndisc, \
error, fmt, ##__VA_ARGS__)
#define log_ndisc(ndisc, fmt, ...) \
log_interface_prefix_full_errno_zerook( \
"NDISC: ", \
sd_ndisc, ndisc, \
0, fmt, ##__VA_ARGS__)